/* Basic Styling */
body {
    font-family: sans-serif;
    margin: 0;
    padding: 0;
}

header {
    background: linear-gradient(to right, #2c405c, #33def9); /* Gradient background */
    color: white;
    display: flex; /* Flexbox for positioning content */
    justify-content: center; /* Center everything horizontally */
    align-items: center; /* Align items vertically */
    padding: 1rem 0;
}

.header-content {
    display: flex; /* Use flexbox to position the image and text side by side */
    justify-content: center; /* Center the content horizontally */
    align-items: center; /* Vertically center the items */
    gap: 20px; /* Space between the image and the text */
    padding: 0 20px; /* Added padding to the left and right */
}

.header-logo {
    max-height: 175px; /* Limit the logo size (increased size for mobile) */
    width: auto; /* Maintain aspect ratio */
}

.header-text {
    text-align: center; /* Ensure the text is centered */
}

/* Navbar Styling */
.navbar {
    background-color: #333;
    position: relative; /* Position it below the header */
    width: 100%;
    z-index: 1000;
    margin-top: 0; /* Remove any margin at the top of the navbar */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Added shadow for visual separation */
}

.navbar ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center; /* Center align links */
}

.navbar li {
    padding: 0 15px;
}

.navbar a {
    display: block;
    padding: 14px 20px;
    text-decoration: none;
    color: white;
    text-align: center;
}

.navbar a:hover {
    background-color: #ddd;
    color: black;
}

/* Active Link Styling */
.active {
    background-color: #2d7099;
    color: white;
}

/* Footer */
footer {
    background-color: #333;
    color: white;
    text-align: center;
    padding: 1rem 0;
    display: flex;
    flex-direction: column; /* Stack the footer items vertically */
    justify-content: center;
    align-items: center;
    position: relative;
    bottom: 0;
    width: 100%;
}

.footer-content {
    display: flex; /* Use flexbox to align the footer items next to each other */
    justify-content: center; /* Center the items horizontally */
    gap: 20px; /* Space between items */
    flex-wrap: wrap; /* Allow items to wrap to next line on smaller screens */
    margin-bottom: 10px; /* Space between the footer content and disclaimer */
}

footer p {
    margin: 0; /* Remove margin to ensure no extra space */
    line-height: 1.2; /* Adjust line height for spacing */
}

/* Style for hyperlinks in the footer */
footer a {
    color: #007bff; /* Light blue color for links */
    text-decoration: none; /* Remove underline from links */
}

footer a:hover {
    color: #0056b3; /* Darker blue on hover */
    text-decoration: underline; /* Underline on hover for better visibility */
}

/* Label Styling (removed underlining) */
footer .label {
    font-weight: bold; /* Make labels stand out more */
}

/* Legal Disclaimer */
footer .legal-disclaimer {
    font-size: 0.65rem; /* Optional smaller font size for legal text */
    font-style: italic; /* Italicize the disclaimer text */
    margin-top: 10px; /* Space between the content and disclaimer */
    text-align: center;
    width: 100%;
}

/* Copyright Styling (smaller font and placed below the disclaimer) */
footer .copyright {
    font-size: 0.75rem; /* Even smaller font for copyright */
    margin-top: 5px; /* Space between the disclaimer and copyright */
}

/* Hero Section */
.hero {
    display: flex;
    flex-direction: column; /* Stack image and text */
    justify-content: center; /* Center content vertically */
    align-items: center; /* Center content horizontally */
    text-align: center; /* Center text */
    background-color: #ffffff; /* Optional background color for the hero section */
    padding-top: 20px; /* Reduced space between header and hero section */
}

.hero-image img {
    max-width: 75%; /* Make the image 25% smaller for mobile */
    height: auto;
    margin-bottom: 10px; /* Space between the image and text */
    border-radius: 12px; /* Rounded corners */
    border: 5px solid white; /* White frame */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); /* Slight drop shadow */
}

.hero-content {
    margin-top: 10px;
    margin-bottom: 20px;
    padding: 20px;
    background-color: #f9f9f9; /* Light background for text */
    border-radius: 10px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* Button Container */
.button-container {
    display: flex; /* Flexbox for alignment */
    gap: 20px; /* Space between buttons */
    margin-top: 20px; /* Space between text and buttons */
    justify-content: center; /* Center the buttons horizontally */
}

/* Button Styles */
.btn {
    display: flex; /* Align icon and text side by side */
    align-items: center; /* Vertically center the icon and text */
    background-color: #007bff; /* Blue color for buttons */
    color: white; /* Text color */
    padding: 12px 20px; /* Padding inside buttons */
    border-radius: 25px; /* Rounded corners */
    text-decoration: none; /* Remove underline */
    font-size: 16px; /* Font size */
    transition: background-color 0.3s; /* Smooth hover effect */
}

.btn:hover {
    background-color: #0056b3; /* Darker blue on hover */
}

/* Icon Style */
.btn i {
    margin-right: 10px; /* Space between icon and text */
    font-size: 18px; /* Icon size */
}

/* Service Grid Styles */
.service-grid {
    margin: 40px auto;
    padding: 0 20px;
    text-align: center;
    max-width: 800px; /* Set a max-width to make the grid smaller */
}

.grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3 columns by default */
    gap: 20px;
    width: 100%; /* Ensures it spans the full container */
    margin: 0 auto; /* Centers the grid */
}

.grid-item {
    border-radius: 10px;
    border: 5px solid white;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: transform 0.3s ease;
    max-width: 100%; /* Ensures no grid item overflows */
}

.grid-item:hover {
    transform: scale(1.05);
}

.grid-item img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.grid-item h3 {
    margin-top: 10px;
    font-size: 1.2rem;
    color: #333;
    text-align: center;
}

/* Popup Styling */
.popup-container {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: white;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    max-width: 80%;
    z-index: 1000;
}

.popup-container.active {
    display: block;
}

.popup-content {
    max-width: 100%;
    color: black; /* Ensure text is black */
    font-size: 16px; /* Make sure text is readable */
}

.popup-content h2 {
    font-weight: bold; /* Make the title bold */
    font-size: 1.5rem; /* Adjust title font size */
    text-align: center; /* Center-align the title */
}

.popup-content ul {
    padding-left: 20px; /* Add padding to make bullet points appear cleanly */
    list-style-type: disc; /* Add standard bullet points */
    text-align: left; /* Ensure the bullet points are aligned left */
}

.popup-content li {
    line-height: 1.6; /* Increase line height for readability */
    text-align: left; /* Ensure the bullet points stay aligned left */
}

/* Close Button (X) */
.close-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 24px;
    font-weight: bold;
    color: #2d7099; /* Button color */
    background-color: transparent;
    border: none;
    cursor: pointer;
    transition: color 0.3s, transform 0.3s;
}

.close-btn:hover {
    color: black; /* Change to black on hover */
    transform: scale(1.1); /* Slight zoom effect on hover */
}

/* Responsive Design (Media Queries) */
@media (min-width: 768px) { 
    .hero {
        flex-direction: column; /* Stack image and text */
        justify-content: center;
        align-items: center;
    }

    .hero-image img {
        max-width: 45%; /* Adjust image size for larger screens (25% smaller than 60%) */
        margin-bottom: 20px;
    }

    .hero-content {
        max-width: 80%;
    }
}

/* Mobile Design Adjustments */
@media (max-width: 768px) {
    header .header-text h1 {
        font-size: 1.5rem; /* Reduce header font size on mobile */
    }

    header .header-text h2 {
        font-size: 1.25rem; /* Reduce subheader font size on mobile */
    }

    .hero {
        padding-top: 30px; /* More padding to give space on mobile */
    }

    .hero-image img {
        max-width: 80%; /* Increase image size for mobile (larger image) */
    }

    .grid-item h3 {
        font-size: 1rem; /* Scale text size on mobile */
    }
}

/* Contact Page */
.contact {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 30px 20px;
    gap: 30px;
}

.contact-form-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 900px;
    background-color: #ffffff;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin-bottom: 30px;
}

.contact form label {
    font-weight: bold;
    margin-bottom: 5px;
}

.contact form input,
.contact form textarea {
    display: block;
    width: 100%;
    padding: 10px;
    margin-bottom: 15px;
    border-radius: 8px;
    border: 1px solid #ccc;
    font-size: 1rem;
}

.contact form button {
    background-color: #007bff;
    color: white;
    border: none;
    padding: 12px 20px;
    border-radius: 25px;
    cursor: pointer;
    font-size: 16px;
}

.contact form button:hover {
    background-color: #0056b3;
}

.contact-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #f9f9f9;
    padding: 20px;
    border-radius: 12px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    width: 100%;
    max-width: 500px;
}

.contact-info h2 {
    margin-bottom: 10px;
}

.contact-info p {
    font-size: 1rem;
    margin: 5px 0;
}

/* Responsive Design Adjustments */
@media (max-width: 768px) {
    .contact {
        padding: 20px 15px;
    }

    .contact-form-container {
        flex-direction: column;
        padding: 20px;
        gap: 20px;
    }

    .contact-info {
        width: 100%;
        padding: 15px;
    }
}

/* Style for the map container to add a white frame */
.map-container {
    border: 5px solid white; /* Default white border around the map */
    border-radius: 12px; /* Rounded corners */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); /* Optional drop shadow for extra effect */
    overflow: hidden; /* Ensures iframe content stays inside the frame */
}

/* Responsive Design: Make the map larger on mobile */
@media (max-width: 768px) {
    .map-container {
        width: 100%; /* Make the container full width */
        max-width: 100%; /* Ensure it doesn't exceed screen width */
    }

    .map-container iframe {
        width: 100%; /* Make the iframe responsive */
        height: 480px; /* Double the height for mobile (480px * 2) */
    }
}

/* Title above the contact buttons */
.contact-title {
    font-size: 2rem; /* Larger font size for emphasis */
    font-weight: bold;
    text-align: center; /* Centered title */
    margin-bottom: 10px; /* Space below the title */
    color: #333; /* Dark text color */
}

/* Description text above the contact buttons */
.contact-description {
    font-size: 1.1rem;
    text-align: center;
    margin-bottom: 20px; /* Space below the description */
    color: #666; /* Slightly lighter text color */
    max-width: 700px; /* Max width for better readability */
    margin-left: auto;
    margin-right: auto; /* Center the text */
}

/* Title above the map */
.map-title {
    font-size: 1.8rem; /* Slightly smaller title than contact title */
    font-weight: bold;
    text-align: center; /* Centered title */
    margin-top: 20px; /* Reduced space above the title */
    margin-bottom: 10px; /* Reduced space below the title */
    color: #333; /* Dark text color */
}


/* Base styling for the contact buttons */
.contact-btn {
    display: flex; /* Align icon and text side by side */
    align-items: center; /* Vertically center the icon and text */
    background-color: #007bff; /* Blue background color */
    color: white; /* White text color */
    padding: 12px 20px; /* Padding inside buttons */
    border-radius: 25px; /* Rounded corners */
    text-decoration: none; /* Remove underline */
    font-size: 16px; /* Font size */
    transition: background-color 0.3s; /* Smooth hover effect */
    margin-bottom: 10px; /* Space between buttons */
    max-width: fit-content; /* Ensure buttons don’t stretch to the full width */
}

/* Button hover effect */
.contact-btn:hover {
    background-color: #0056b3; /* Darker blue on hover */
}

/* Icon style within the buttons */
.contact-btn i {
    margin-right: 10px; /* Space between the icon and text */
    font-size: 18px; /* Icon size */
}

/* Specific style for Call button */
.call-btn {
    background-color: #28a745; /* Green for the Call button */
}

.call-btn:hover {
    background-color: #218838; /* Darker green on hover */
}

/* Specific style for Email button */
.email-btn {
    background-color: #17a2b8; /* Light blue for the Email button */
}

.email-btn:hover {
    background-color: #138496; /* Darker blue on hover */
}


/* Contact buttons container */
.contact-buttons {
    display: flex; /* Align buttons horizontally */
    gap: 20px; /* Space between buttons */
    flex-wrap: wrap; /* Allow the buttons to stack on small screens */
}

/* Desktop (leave as-is) */
.click-instruction {
    text-align: center;
    font-size: 0.95rem;
    color: #333;
    background-color: #fffde1;
    border: 1px solid #e0d97a;
    padding: 15px 20px;
    margin: 30px auto;
    max-width: 500px; /* Keep desktop size same */
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* Mobile only adjustment */
@media (max-width: 600px) {
    .click-instruction {
        width: 70%; /* Narrower on small screens */
    }
}