/* Basic Reset */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth; /* Smooth scroll for anchor links */
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    line-height: 1.7; /* Slightly increased line height */
    color: #343a40; /* New text color */
    background-color: #f8f9fa; /* New page background color */
    padding-top: 70px; /* Add padding for fixed header */
}

/* Hero Section */
#hero {
    padding: 0;
    margin-bottom: 30px; /* Increased spacing */
    border-bottom: none;
}

.hero-image {
    width: 100%;
    height: auto;
    max-height: 450px;
    object-fit: cover;
    display: block;
}

.container {
    width: 85%; /* Slightly wider container */
    max-width: 1200px; /* Max width for large screens */
    margin: auto;
    overflow: hidden;
    padding: 0 20px;
}

/* Header */
header {
    background: #FFFFFF; /* White background for header */
    color: #343a40; /* Dark text for header */
    padding: 15px 0; /* Adjusted padding */
    border-bottom: 1px solid #dee2e6; /* Lighter border */
    position: fixed; /* Fixed header */
    top: 0;
    left: 0;
    right: 0; /* Ensures it spans full width */
    z-index: 1000; /* Keep header on top */
    box-shadow: 0 2px 5px rgba(0,0,0,0.05); /* Subtle shadow */
}

header .container { /* Ensure header container also follows width */
     width: 85%;
     max-width: 1200px;
}


header h1 {
    text-align: center;
    text-transform: uppercase;
    margin: 0; /* Remove default margin */
    font-size: 26px; /* Adjusted H1 size */
    color: #007BFF; /* Primary color for clinic name */
    font-weight: 700; /* Bold H1 */
}

header nav {
    text-align: center;
    margin-top: 10px; /* Space between H1 and nav */
}

header ul {
    padding: 0;
    list-style: none;
}

header li {
    display: inline;
    padding: 0 15px; /* Adjusted padding */
}

header a {
    color: #343a40; /* Dark links */
    text-decoration: none;
    text-transform: uppercase;
    font-size: 15px; /* Slightly smaller nav links */
    font-weight: 500; /* Medium weight */
    transition: color 0.2s ease-in-out; /* Smoother transition for nav links */
    position: relative; /* For potential underline effect */
}

header a::after { /* Underline effect for nav links */
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: -5px; /* Position underline below text */
    left: 50%;
    transform: translateX(-50%);
    background-color: #007BFF;
    transition: width 0.3s ease-in-out;
}

header a:hover::after, header a.active::after {
    width: 100%; /* Full width underline on hover/active */
}

header a:hover, header a.active {
    color: #007BFF; /* Primary color on hover/active */
}

/* Sections */
section {
    padding: 40px 0; /* Increased section padding */
    border-bottom: 1px solid #dee2e6; /* Consistent border color */
}

#hero + section { /* The first section after hero should not have a top border if hero has bottom margin */
    /* No specific style needed here unless hero's bottom margin causes double spacing perception */
}

section h2 {
    text-align: center;
    margin-bottom: 35px; /* Increased margin */
    font-size: 30px; /* Adjusted H2 size */
    color: #343a40; /* Dark gray for headings */
    font-weight: 600; /* Bolder H2 */
}

/* Services Section */
#services .services-list { /* Changed from #services ul */
    list-style-type: none; /* Remove default bullets */
    padding-left: 0; /* Remove default padding */
}

#services .services-list li { /* Card-like styling */
    background: #FFFFFF; /* White card background */
    padding: 25px;
    border: 1px solid #dee2e6; /* Card border */
    margin-bottom: 20px; /* Space between cards */
    display: flex;
    align-items: center;
    gap: 20px; /* Increased gap */
    border-radius: 8px; /* More rounded corners */
    box-shadow: 0 4px 8px rgba(0,0,0,0.05); /* Card shadow */
    transition: box-shadow 0.25s ease-in-out, transform 0.25s ease-in-out; /* Adjusted transition timing */
}

#services .services-list li:hover {
    box-shadow: 0 7px 14px rgba(0,0,0,0.12); /* Slightly more pronounced shadow */
    transform: translateY(-5px); /* Slightly more lift */
}

.service-image {
    width: 100px; /* Or desired fixed width */
    height: 100px; /* Or desired fixed height */
    object-fit: cover; /* Ensures the image covers the area, may crop */
    border: 1px solid #eee; /* Light border for the image itself */
    border-radius: 8px; /* Consistent rounded corners */
}

#services .services-list li div {
    flex: 1;
}

#services .services-list li h3 { /* Styling for service titles */
    font-size: 20px;
    color: #007BFF; /* Primary color for service titles */
    margin-bottom: 8px;
    font-weight: 600;
}


/* Testimonials Section */
#testimonials blockquote { /* Card-like styling */
    font-style: italic;
    margin-bottom: 20px;
    padding: 25px;
    background: #FFFFFF; /* White card background */
    border: 1px solid #dee2e6; /* Card border */
    border-left: 5px solid #007BFF; /* Primary color accent */
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.05);
    transition: box-shadow 0.25s ease-in-out, transform 0.25s ease-in-out; /* Adjusted transition timing */
}

#testimonials blockquote:hover {
    box-shadow: 0 7px 14px rgba(0,0,0,0.12); /* Slightly more pronounced shadow */
    transform: translateY(-5px); /* Slightly more lift */
}

#testimonials blockquote p {
    margin-bottom: 10px; /* Space before cite */
    font-size: 16px; /* Standard testimonial text size */
}

#testimonials blockquote cite {
    display: block;
    text-align: right;
    font-style: normal;
    color: #55595c; /* Slightly darker cite text */
    font-weight: 500;
    font-size: 15px;
}


/* Contact Us Section - Form Styling */
#contact form { /* Card-like styling */
    background: #FFFFFF;
    padding: 30px; /* More padding */
    border: 1px solid #dee2e6;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.05);
}

#contact form label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}

#contact form input[type="text"],
#contact form input[type="email"],
#contact form textarea {
    width: 100%;
    padding: 10px;
    margin-bottom: 10px;
    border: 1px #ccc solid;
    border-radius: 8px; /* Consistent rounded corners */
    font-size: 16px;
}

#contact form button {
    display: inline-block; /* More flexible button sizing */
    width: auto; /* Fit content or set specific width */
    padding: 12px 25px; /* Adjusted padding */
    background-color: #007BFF; /* Primary button color */
    color: #FFFFFF;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600; /* Bolder text */
    text-transform: uppercase; /* Uppercase button text */
    letter-spacing: 0.5px; /* Slight letter spacing */
    transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, transform 0.2s ease-in-out; /* Smoother button transitions */
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

#contact form button:hover {
    background-color: #0056b3; /* Darker primary on hover */
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
    transform: translateY(-2px); /* Slight lift on button hover */
}

/* Location Section */
#location #map-placeholder {
    width: 100%;
    height: 450px; /* Increased height */
    background-color: #e9ecef; /* Lighter placeholder */
    border: 1px solid #dee2e6; /* Consistent border */
    text-align: center;
    line-height: 450px;
    color: #6c757d; /* Muted text color */
    margin-top: 20px;
    border-radius: 8px; /* Rounded corners */
}

/* Footer */
footer {
    text-align: center;
    padding: 30px 0; /* Increased padding */
    background: #343a40; /* Dark footer background */
    color: #f8f9fa; /* Light text color for footer */
    margin-top: 40px; /* Increased top margin */
    border-top: 1px solid #495057; /* Subtle top border for footer */
}

/* Responsive Design */
@media(max-width: 992px){ /* Tablet and larger mobile */
    .container, header .container {
        width: 90%;
    }
    section h2 { font-size: 28px; }
    #services .services-list,
    #testimonials .testimonial-grid { /* Apply grid adjustments here too */
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* Adjust grid for tablets */
    }
}

@media(max-width: 768px){ /* Smaller tablets and mobile */
    body {
        padding-top: 0; /* Remove padding if header is not fixed */
    }
    header {
        position: static; /* Header becomes static */
        box-shadow: none; /* Remove shadow if static */
    }
    header .container {
        width: 100%;
        padding: 0 15px; /* Adjust padding for mobile header */
    }
    header h1 { font-size: 22px; }
    header nav { margin-top: 10px; }
    header nav ul { display: flex; flex-direction: column; align-items: center; }
    header nav li { display: block; margin-bottom: 8px; padding: 0 10px; }
    header a { font-size: 14px; }

    section { padding: 30px 0; }
    section h2 { font-size: 26px; line-height: 1.3; } /* Added line-height for headings */

    #services .services-list,
    #testimonials .testimonial-grid { /* Ensure testimonial grid also stacks to 1 column */
        grid-template-columns: 1fr; /* Single column for services & testimonials on mobile */
    }
    #services .services-list li {
        flex-direction: column;
        text-align: center;
        gap: 15px;
    }
    .service-image {
        width: 80px;
        height: 80px;
        margin-bottom: 10px;
    }
    #services .services-list li h3 { font-size: 18px; }

    #testimonials blockquote {
        padding: 20px;
    }
    #testimonials blockquote p { font-size: 15px; }

    #contact form { padding: 25px; }
    #contact form button { width: 100%; } /* Full width button on mobile */

    .container { /* General container for mobile */
        width: 90%;
        padding: 0 15px;
    }
}

@media(max-width: 480px){ /* Small mobile specific tweaks */
    section h2 {
        font-size: 22px; /* Further reduce H2 size */
        margin-bottom: 25px;
        line-height: 1.4; /* Adjusted line-height for smaller headings */
    }
    #contact form button {
        padding: 10px 20px;
        font-size: 15px;
    }
    header h1 { font-size: 20px; }
    /* Further adjustments if needed for very small screens */
}
