/* General Styles */
body {
    font-family: 'Inter', sans-serif;
    color: #333333;
    margin: 0;
    padding: 0;
    overflow-x: hidden; /* Prevent horizontal scrolling */
}

.header {
    background-color: #ffffff;
    padding: 20px 0;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    position: sticky;
    top: 0;
    z-index: 1100; /* Keep header on top */
}

.container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.header .container {
    justify-content: flex-start;
    gap: 14px;
}

.header .container > a {
    text-decoration: none;
}

#nav-placeholder {
    margin-left: auto;
}

.logo-container {
    text-decoration: none; /* Remove underline from the logo container */
    display: inline-block; /* Make the container act like a link */
    cursor: pointer; /* Add a pointer cursor for hover effect */
    vertical-align: middle; /* Align the text vertically to avoid shifting */
}

.logo-container .logo-text {
    text-decoration: none; /* Ensure no underline for the text */
    vertical-align: middle; /* Align text with the logo image */
}

.logo-container img {
    display: inline-block; /* Ensure the image behaves like a link */
    vertical-align: middle; /* Align the image and text */
}

.logo-image {
    height: 80px;
}

.logo-text {
    font-size: 3em;
    font-weight: 700;
    color: #2E7D32;
    margin-left: 10px;
}

.header .logo-text::after {
    content: "\00AE";
    font-size: 0.42em;
    line-height: 0;
    vertical-align: super;
    margin-left: 2px;
}


/* Desktop Navigation */
.nav {
    display: flex;
    align-items: center;
    gap: 20px;
    position: relative;
}

.nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 20px;
}

.nav ul li {
    position: relative; /* Necessary for positioning the dropdown */
}

.nav > ul > li {
    display: flex;
    align-items: center;
}

.nav ul li a {
    text-decoration: none;
    color: #333;
    font-weight: bold;
    transition: color 0.3s ease;
}

.nav ul li a:hover {
    color: #2E7D32;
}

/* Desktop language dropdown */
.desktop-lang-switch {
    position: relative;
    display: flex;
    align-items: center;
}

.desktop-lang-switch > .desktop-selected-language {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 9px 11px;
    border: 1px solid #dce6dd;
    border-radius: 999px;
    background: #ffffff;
    color: #1E5B24;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
}

.desktop-lang-switch > .desktop-selected-language:hover {
    color: #2E7D32;
    border-color: #2E7D32;
}

.desktop-lang-switch .dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    left: auto;
    min-width: 92px;
    padding: 6px 0;
    margin: 0;
    list-style: none;
    text-align: center;
    background-color: #ffffff;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    border: 1px solid #dce6dd;
    z-index: 1300;
    white-space: nowrap;
}

.desktop-lang-switch.is-open .dropdown-menu {
    display: block;
}

.desktop-lang-switch .dropdown-menu li {
    padding: 0;
}

.desktop-lang-switch .dropdown-menu li a {
    display: block;
    padding: 7px 10px;
    font-weight: 700;
    color: #333333;
    text-decoration: none;
}

.desktop-lang-switch .dropdown-menu li a:hover {
    color: #2E7D32;
    background: #f4f9f4;
}

.desktop-lang-switch .dropdown-menu li a.is-active {
    color: #1E5B24;
    background: #f4f9f4;
}

.desktop-lang-switch > .desktop-selected-language[lang="zh-CN"],
.desktop-lang-switch .dropdown-menu li a[lang="zh-CN"],
.mobile-nav a[lang="zh-CN"] {
    font-family: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Inter", sans-serif;
    font-weight: 700;
}

/* Styling for the dropdown arrow */
.nav ul li a i {
    font-size: 0.8em; /* Adjust the size */
    margin-left: 5px; /* Add some space between the text and the icon */
    transition: transform 0.3s ease; /* Smooth transition for rotation */
}

.desktop-lang-switch > .desktop-selected-language i {
    font-size: 0.74em;
    margin-left: 2px;
    transition: transform 0.3s ease;
}

.nav ul li:hover a i {
    transform: rotate(180deg); /* Rotate the chevron when hovered */
}

.desktop-lang-switch.is-open > .desktop-selected-language i {
    transform: rotate(180deg);
}

.nav .dropdown-menu li.dropdown-group-label {
    color: #1E5B24;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 8px 12px 5px;
}

.nav .dropdown-menu li.dropdown-group-label:first-child {
    padding-top: 4px;
}

.nav .dropdown-menu li.dropdown-divider {
    margin: 6px 0;
    padding: 0;
    height: 1px;
    background: #e8eee8;
}

/* Dropdown Menu */
.nav .dropdown-menu {
    display: none; /* Hide dropdown by default */
    position: absolute;
    top: 100%; /* Position below the parent item */
    left: 0;
    background-color: #ffffff;
    padding: 10px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    z-index: 100; /* Ensure the dropdown stays on top */
    white-space: nowrap; /* Prevent text from breaking into multiple rows */
}

.nav .dropdown:hover .dropdown-menu {
    display: block; /* Show dropdown on hover */
}

.nav .dropdown-menu li {
    display: block; /* Ensure dropdown items are displayed in block format */
    padding: 5px 0;
}

.nav .dropdown-menu li a {
    color: #333;
}

.nav .dropdown-menu li a:hover {
    color: #2E7D32;
}

/* Desktop services flyout menu */
.nav .services-categories-menu {
    min-width: 230px;
    padding: 8px;
}

.nav .services-categories-menu .services-category {
    position: relative;
    padding: 0;
}

.nav .services-categories-menu .services-category-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 10px;
    border-radius: 6px;
}

.nav .services-categories-menu .services-category-link:hover {
    background: #f4f9f4;
}

.nav .services-categories-menu .services-submenu-arrow {
    font-size: 1rem;
    color: #5c6f5e;
    line-height: 1;
}

.nav .services-categories-menu .services-submenu {
    display: none;
    position: absolute;
    left: calc(100% + 8px);
    top: 0;
    min-width: 280px;
    max-height: 70vh;
    overflow-y: auto;
    list-style: none;
    margin: 0;
    padding: 10px;
    background: #ffffff;
    border: 1px solid #dfe9df;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
    z-index: 1400;
    white-space: nowrap;
}

.nav .services-categories-menu .services-category:hover > .services-submenu,
.nav .services-categories-menu .services-category:focus-within > .services-submenu {
    display: block;
}

.nav .services-categories-menu .services-submenu li {
    padding: 5px 0;
}

.nav .services-categories-menu .services-submenu a {
    display: block;
    padding: 4px 2px;
}

/* Styles for the Navigation Button */
.nav-cta-button {
    background-color: #2E7D32; /* Dark green */
    color: white;
        padding: 15px 30px;
    font-size: 1.2em;
    border-radius: 5px;
    font-weight: bold;
    text-decoration: none;
    margin-left: 0;
    transition: transform 0.3s ease, background-color 0.3s ease;

}

.nav-cta-button:hover {
    background-color: #1E5B24; /* Darker green on hover */
    transform: scale(1.05);
}

/* Ensure the button is aligned with the navigation */
.nav {
    display: flex;
    align-items: center;
    gap: 20px;
}


/* Mobile Navigation */
.menu-toggle {
    display: none; /* Hide hamburger on desktop */
    cursor: pointer;
    z-index: 1200;
    padding: 20px; 
}

.hamburger {
    width: 30px;
    height: 3px;
    background-color: #333;
    position: relative;
}

.hamburger::before, .hamburger::after {
    content: '';
    position: absolute;
    width: 30px;
    height: 3px;
    background-color: #333;
    transition: all 0.3s ease-in-out;
}

.hamburger::before {
    transform: translateY(-10px);
}

.hamburger::after {
    transform: translateY(10px);
}

/* Active hamburger icon style */
.menu-toggle.active .hamburger {
    background-color: transparent;
}

.menu-toggle.active .hamburger::before {
    transform: translateY(0) rotate(45deg);
}

.menu-toggle.active .hamburger::after {
    transform: translateY(0) rotate(-45deg);
}

/* Mobile Navigation */
.mobile-nav {
    position: fixed;
    left: 0;
    width: 100%;
    background-color: white;
    padding: 0;
    margin: 0;
    overflow-y: auto; /* Ensure it scrolls if necessary */
    z-index: 1000; /* Keep it on top */
    display: none; /* Hidden by default */
    align-items: center;
    box-shadow: -4px 0px 10px rgba(0, 0, 0, 0.1);
}

/* Mobile Navigation active state */
.mobile-nav.active {
    display: flex;
    flex-direction: column;
    justify-content: flex-start; /* Ensure items start from the top */
    align-items: center; /* Horizontally center the items */
}

.mobile-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center;
    width: 100%;
}

.mobile-nav ul li {
    margin: 0;
}

.mobile-nav ul li a {
    color: #333;
    text-decoration: none;
    font-size: 1.2em;
    font-weight: bold;
}

.mobile-nav ul li a:hover {
    color: #2E7D32;
}

/* Main Menu Items */
.menu-list > li > a {
    text-decoration: none;
    font-size: 1.2em;
    font-weight: bold;
    color: #333;
    padding: 10px 15px;
    display: block;
    text-align: center; /* Center align for main menu items */
    background-color: #f0f0f0;
    border-bottom: 1px solid #ddd;
}

.menu-list > li {
    width: 100%;
}

.menu-list > li.mobile-lang-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    padding: 10px 16px;
    background-color: #ffffff;
    border-bottom: 1px solid #ddd;
}

.menu-list > li.mobile-lang-row > a {
    display: inline-flex;
    padding: 6px 8px;
    font-size: 1.05em;
    font-weight: 700;
    background: transparent;
    border-bottom: 0;
}

.menu-list .mobile-accordion-toggle {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-decoration: none;
    font-size: 1.2em;
    font-weight: bold;
    color: #333;
    padding: 12px 15px;
    background-color: #f0f0f0;
    border: 0;
    border-bottom: 1px solid #ddd;
    cursor: pointer;
}

.menu-list .mobile-accordion-toggle i {
    font-size: 0.85em;
    transition: transform 0.25s ease;
}

.menu-list .mobile-accordion.is-open .mobile-accordion-toggle {
    color: #2E7D32;
}

.menu-list .mobile-accordion.is-open .mobile-accordion-toggle i {
    transform: rotate(180deg);
}

.menu-list .mobile-accordion .dropdown-menu {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition: max-height 0.28s ease, opacity 0.2s ease;
}

.menu-list .mobile-accordion.is-open .dropdown-menu {
    max-height: 1200px;
    opacity: 1;
    visibility: visible;
}

/* Submenu Items (under Our Services) */
.menu-list .dropdown-menu li > a {
    font-size: 1em;
    font-weight: normal;
    color: #666;
    padding: 10px 15px; /* Adjust padding for left-alignment */
    text-align: left; /* Left align submenu items */
    background-color: #ffffff;
    border-left: 3px solid #2E7D32; /* Green left border */
    display: block; /* Ensure full width is clickable */
}

.menu-list .dropdown-menu li.dropdown-group-label {
    font-size: 0.82em;
    font-weight: 700;
    color: #2E7D32;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 10px 15px 6px;
    background: #ffffff;
    border-left: 3px solid #d5e8d6;
}

.menu-list .dropdown-menu li.dropdown-divider {
    height: 1px;
    margin: 8px 0;
    background: #e6ece6;
}

/* Hover Effect for Main Menu and Submenu */
.menu-list li a:hover {
    color: #2E7D32;

}



/* Responsive Design for Mobile and Tablet */
@media (max-width: 1024px) {
    .menu-list > li > a, .menu-list .dropdown-menu li > a {
        font-size: 1.1em;
        padding: 12px 20px;
    }
}



/* Hero Section Container */
.hero {
    padding: 20px 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    background-color: #ffffff;
}

.hero-content {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
}
/* Hero Text Styling */

.hero-text {
    flex: 1;
    max-width: 600px;
}

.hero-text h1 {
    font-size: 2.5em;
    color: #2E7D32;
    font-weight: bold;
    margin-bottom: 20px;
}

.hero-text p {
    font-size: 1.5em;
    color: #333333;
    margin-bottom: 30px;
    line-height: 1.8;
}

/* Hero Text Styling */
.hero-video {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
}

.hero-vid {
    width: 100%;
    height: auto;
    object-fit: cover; /* Ensures the video fills the space properly */
    border-radius: 5px; /* Add consistent rounding, if needed */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Optional: Add depth */
}

.services-vid {
  width: 100%;
  height: auto;
  object-fit: cover;  /* or contain, depending on your preference */
border-radius: 5px; /* Add consistent rounding, if needed */
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Optional: Add depth */
}

/* Icon and text styling (without affecting hero image and H1) */
.icon-list {
    margin: 0;
    padding: 0;
}

.icon-text {
    display: flex;
    align-items: center; /* Align icon and text properly */
    margin-bottom: 10px;
    position: relative;
}

.icon {
    font-size: 24px;
    color: #4CAF50;
    margin-right: 15px;
    flex-shrink: 0;
    width: 30px;
}

.icon-text .text {
    display: inline-block;
    line-height: 1.6;
    padding-left: 0;
    text-indent: 0; /* Reset indent */
}

/* Specific alignment for wrapping text */
.icon-text .text::before {
    content: "";
    display: inline-block;
    width: 45px; /* Width matching icon + margin */
    margin-left: -45px; /* Prevent text shift and align second line */
}

    .icon-text .break-text {
        display: block; /* Break text to the next line */
    }

/* Adjust for desktop screens */
@media (min-width: 768px) {
.hero .cta-button {
    margin-left: 40px;
}
}

/* Hero Image Container */
/* Hero Image Container */
.hero-image {
    width: min(100%, 500px);
    max-width: 500px; /* Reduce the overall max width of the hero image container */
    margin: 0 auto; /* Center the image */
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 28px;
    background-color: #eef7ee;
    background-image:
        linear-gradient(145deg, rgba(235, 246, 236, 0.94) 0%, rgba(255, 255, 255, 0.96) 100%),
        url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQABLAEsAAD/4QB0RXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAAEsAAAAAQAAASwAAAABAAKgAgAEAAAAAQAAABigAwAEAAAAAQAAABgAAAAA/+0AOFBob3Rvc2hvcCAzLjAAOEJJTQQEAAAAAAAAOEJJTQQlAAAAAAAQ1B2M2Y8AsgTpgAmY7PhCfv/iAshJQ0NfUFJPRklMRQABAQAAArhhcHBsBEAAAG1udHJSR0IgWFlaIAfqAAMADQAQABIAHWFjc3BBUFBMAAAAAEFQUEwAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBwbOaGHu+elX9dUcdTsaWtrvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWRlc2MAAAEgAAAAQGNwcnQAAAFgAAAAUHd0cHQAAAGwAAAAFHJYWVoAAAHEAAAAFGdYWVoAAAHYAAAAFGJYWVoAAAHsAAAAFHJUUkMAAAIAAAAAIGNoYWQAAAIgAAAALGNocm0AAAJMAAAAJGRtZGQAAAJwAAAAJGRtbmQAAAKUAAAAJGJUUkMAAAIAAAAAIGdUUkMAAAIAAAAAIG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAJAAAABwARwBJAE0AUAAgAGIAdQBpAGwAdAAtAGkAbgAgAHMAUgBHAEJtbHVjAAAAAAAAAAEAAAAMZW5VUwAAADQAAAAcAEMAbwBwAHkAcgBpAGcAaAB0ACAAQQBwAHAAbABlACAASQBuAGMALgAsACAAMgAwADIANlhZWiAAAAAAAAD21gABAAAAANMtWFlaIAAAAAAAAG+gAAA49QAAA5BYWVogAAAAAAAAYpcAALeHAAAY2VhZWiAAAAAAAAAknwAAD4QAALbEcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJQAAB5MAAP2Q///7of///aIAAAPcAADAbmNocm0AAAAAAAMAAAAAo9cAAFR8AABMzQAAmZoAACZnAAAPXG1sdWMAAAAAAAAAAQAAAAxlblVTAAAACAAAABwAcwBSAEcAQm1sdWMAAAAAAAAAAQAAAAxlblVTAAAACAAAABwARwBJAE0AUP/AABEIABgAGAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2Nri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAICAgICAgMCAgMFAwMDBQYFBQUFBggGBgYGBggKCAgICAgICgoKCgoKCgoMDAwMDAwODg4ODg8PDw8PDw8PDw//2wBDAQICAgQEBAcEBAcQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/3QAEAAL/2gAMAwEAAhEDEQA/APoT9sT4v/tQQfGu7+GvwC1W6sZrO3tJvkezhtlR4t7K5uYZGeSRm4wRtVR758g0f9qH4/aT4OvtA+Jni7UtF1jS5EF3cRixmuGnZGSP7PMLfyTFIXjbBT5WBB4zn3T9p220kfHDX7yaGK5umSwjZWVnaJDboVk+QFlDYZd2OTx64+Bv2lRpmi6R4fultxLbLrOnz6hYRBlaVYkuZPIdT86tIFRsHGcqSAK86dSTk4+v9b/oe9DB01QjVvq7f1a36n3j+zR8a/jc/wAdPC3w/wDinrusSjxPDd3Vvb6obKRJrSG2mfKm2tYCkiyJGxBJO1iD6V+tdfix8GvEuo65+2r8NNFl0hYbbSNN1Gd7raQwnu7CZTCQCwjKLHhkJzuHtX7T1eX1ZTpKcupy5zhoUcRKlTd0j//Q++PjP+x/qnjr476l8bLS4OpR6hptlYrp8eo3WkvE9ss6O7y2/wDrVZZFKqSu1xnkdPm7wZ+xh4o8M6zqt/KRqd1faxb3NlaajDPcwwwW9qbaMS3kgZpJVOCXKBSOc88fsrXNf8vkX+9/U1oqrtboJKzutz5f+HHwM8f6Z8Q9D8deJn03TbbSftDva2heWSaWWGWFcsygKoEzMTuY5HuSPsWiiovokkkl2VvyLnOUnzSd356n/9k=");
    background-size: cover;
    background-position: center;
    box-shadow: 0 24px 48px rgba(16, 24, 40, 0.12);
    margin-bottom: 10px;
}

.hero-image a {
    display: block;
    width: 100%;
    height: 100%;
}

/* Hero Image Styling */
.hero-image img {
    display: block; /* Ensure the image is visible */
    width: 100%;
    height: 100%;
    object-fit: cover;
    background-color: #eef7ee;
}


/* Call-to-Action Button */
.hero .cta-button {
    background-color: #2E7D32; /* Dark green button */
    color: white;
    padding: 15px 30px;
    font-size: 1.2em;
    border-radius: 5px;
    transition: transform 0.3s ease, background-color 0.3s ease;
}

.hero .cta-button:hover {
    background-color: #1E5B24;
    color: white;
    transform: scale(1.05);
}

.cross-promo-banner {
    width: 100%;
    margin: 26px 0 34px;
    padding: 22px 0;
    background: linear-gradient(90deg, rgba(235, 246, 236, 0.95) 0%, rgba(248, 252, 248, 0.98) 100%);
    border-top: 1px solid #dbe9de;
    border-bottom: 1px solid #d1e3d5;
}

.cross-promo-banner__wrap {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.cross-promo-banner__text {
    margin: 0;
    text-align: center;
    color: #214f26;
    font-size: clamp(1.1rem, 1.35vw, 1.32rem);
    line-height: 1.6;
    font-weight: 600;
}

.cross-promo-banner__link {
    color: #1b6526;
    font-weight: 800;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.cross-promo-banner__link:hover,
.cross-promo-banner__link:focus-visible {
    color: #15531f;
    border-color: #15531f;
}

.cross-promo-banner__link:focus-visible {
    outline: 2px solid rgba(46, 125, 50, 0.3);
    outline-offset: 3px;
}

.hero-image img, .service-item img {
    border-radius: 5px; /* Adjust the radius value for a subtle rounded effect */
}

/* Green color for only the language links */
.icon-list .icon-text a.text {
    color: #2E7D32;
    text-decoration: none;
}

/* Hover effect for links */
.icon-list .icon-text a.text:hover {
    text-decoration: underline;
}

/* Style for the separator */
.icon-list .icon-text .separator {
    color: #888; /* A lighter gray for a subtle look */
    padding: 0 8px; /* Adds space around the separator */
    font-size: 0.9em; /* Slightly smaller to avoid visual weight */
    vertical-align: middle; /* Aligns it neatly with the text */
}


.cta-button {
    background-color: #2E7D32;
    color: white;
    padding: 15px 30px;
    border-radius: 5px;
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
    transition: transform 0.3s ease, background-color 0.3s ease;
}

.cta-button:hover {
    background-color: #1E5B24;
    transform: scale(1.05);
}


/* Services Section Container */
.services-section {
    text-align: center;
    padding: 0px 0; /* Add more padding for consistency */
    position: relative;
    background-color: #ffffff;
}

/* Services Section Title */
.services-title-container {
    margin-bottom: 0px;
}

.section-title {
    font-size: 2.5em; /* Consistent with footer headings */
    color: #0e3d12; /* Dark green to match footer */
    font-weight: 600; /* Make the title stand out */
    text-align: center;
    margin-bottom: 20px; /* Add more spacing below the title for balance */
}

/* Scrollable container styling */
.scrollable-section {
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 1168px;
    margin: 0 auto;
    overflow: hidden;
    position: relative;
}

/* Scroll container holds all the items */
.scroll-container {
    display: flex;
    width: 1168px; /* Adjust to ensure it contains the items for scrolling */
    transition: transform 0.5s ease-in-out;
    position: relative;
}

/* Each service item will take up one third of the container */
.service-item {
    flex: 0 0 33%; /* Display 3 items per view */
    box-sizing: border-box;
    padding: 10px;
    text-align: center;
    margin-bottom: 30px; /* Add spacing at the bottom for better alignment */
}

/* Modify the service item hover effect to match the hero image transition */
.service-item img {
    max-width: 260px;
    width: 100%;
    height: auto;
    transition: opacity 1s ease-in-out; /* Smooth fade-in/out transition */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */

}

.service-item img:hover {
    opacity: 0.8; /* Slight fade effect instead of bounce */
}

.service-text {
    font-size: 1.5em;
    color: #333;
    font-weight: 500;
    margin-top: 15px;
    margin-bottom: 10px;
    margin-left: 0; /* Ensure no left margin causes overflow */
    margin-right: 0; /* Ensure no right margin causes overflow */
    text-align: center; /* Center the text to avoid cutting */
    overflow: visible; /* Ensure the text is not clipped */
    white-space: normal; /* Allow wrapping of text */
}

.service-description {
    font-size: 1.1em;
    color: #666;
    line-height: 1.6;
    margin-top: 10px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: center; /* Ensure text alignment */
    overflow: visible; /* Prevent clipping */
    white-space: normal; /* Ensure text wraps and doesn’t get cut off */

}

.service-item {
    text-decoration: none; /* Remove underline from the logo container */
    display: inline-block; /* Make the container act like a link */
    cursor: pointer; /* Add a pointer cursor for hover effect */
    
}

.service-item .service-text {
    text-decoration: none; /* Ensure no underline for the text */
    display: inline-block; /* Make the container act like a link */
    
}

.service-item .service-description {
    text-decoration: none; /* Ensure no underline for the text */
    display: inline-block; /* Make the container act like a link */
    
}

/* Styling for the Learn More button */
.learn-more-button {
    display: inline-block;
    margin-top: 10px; /* Space between description and button */
    padding: 10px 20px;
    background-color: #2E7D32; /* Dark green to match the title */
    color: white;
    text-decoration: none;
    font-size: 1.1em;
    font-weight: 600;
    border-radius: 5px; /* Optional rounded corners */
    transition: background-color 0.3s ease;
}

.learn-more-button:hover {
    background-color: #1b5e20; /* Darker green on hover */
    color: white;
}


/* Scroll buttons default state - white with border */
.prev-arrow, .next-arrow {
    background-color: white; /* White background */
    border: 1px solid rgba(100, 100, 100, 0.7); /* Light border */
    color: rgba(0, 0, 0, 0.7); /* Darker arrow color */
    border-radius: 50%; /* Circular arrows */
    width: 35px;
    height: 35px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    font-size: 1.2em; 
    position: absolute;
    top: 25%;
    transform: translateY(-30%);
    z-index: 10;
    transition: background-color 0.3s ease, color 0.3s ease, border 0.3s ease;
}

/* Position the left arrow */
.prev-arrow {
    left: 10px;
}

/* Position the right arrow */
.next-arrow {
    right: 10px;
}

/* Hover effect - gray background without border */
.prev-arrow:hover, .next-arrow:hover {
    background-color: rgba(100, 100, 100, 0.7); /* Gray background */
    border: none; /* Remove border on hover */
    color: white; /* White arrow */
}

/* Dots for scroll indication */
.scroll-dots {
    position: relative; /* Ensure the dots are still in the normal flow */
    top: -40px; /* Move the dots higher */
    z-index: 10; /* Ensure they appear above other elements */

}

.dot {
    display: inline-block;
    width: 12px;
    height: 12px;
    margin: 0 5px;
    background-color: #bbb;
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.dot.active, .dot:hover {
    background-color: #2E7D32; /* Green to match footer links */
}

/* General Styles */
.quote-section {
    padding: 10px 20px; /* Adjust padding for all screen sizes */
    background-color: #ffffff; /* Light background */
    display: flex;
    justify-content: center; /* Center the content */
    align-items: center; /* Align items in the center */
}

.quote-container {
    max-width: 90%; /* Use percentage to adapt to screen size */
    margin: 0 auto; /* Center the container */
}

/* Add this to your styles.css */
.quote-container > p { 
    text-align: center;
    margin: 20px 0;
}

.quote-title {
    font-size: 2em; /* Responsive font size */
    color: #2E7D32; /* Euca MD dark green */
    margin-bottom: 15px; /* Space below the heading */
    font-weight: bold; /* Bold for emphasis */
    text-align: center; /* Center align the heading */
}

.quote-text {
    font-size: 1.3em; /* Text size that adapts well */
    color: #333; /* Dark text color */
    line-height: 1.6; /* Adjusted line height */
    font-style: italic; /* Italicized text */
    text-align: justify; /* Justify text for clean alignment */
    margin: 0; /* Remove default margin */
    padding: 0 20px; /* Slight padding to avoid edge cut-off */
    position: relative; /* Position for quotation marks */
    max-width: 100%; /* Ensure it doesn’t overflow */
}

.quote-text span {
        
    font-weight: bold; /* Emphasize text */
}

/* Single Responsive Style for Quotation Marks */
.quote-text::before,
.quote-text::after {
    content: '“'; /* Quotation mark */
    font-size: 3em; /* Adjusted size for all screens */
    color: #2E7D32; /* Euca MD dark green */
    position: absolute; /* Absolute position for styling */
    opacity: 0.3; /* Light effect for subtle look */

}

.quote-text::before {
    top: -40px; /* Position it relative to the text */
    left: -10px; /* Move it closer to the text */
}

.quote-text::after {
    content: '”';
    bottom: -30px; /* Position it relative to the text */
    right: 10px; /* Move it closer to the text */
}

.quote-source {
    font-size: 1em; /* Small font size for attribution */
    color: #555; /* Darker grey for distinction */
    margin-top: 10px; /* Space above the footer */
    text-align: right; /* Right align the source */
    padding-right: 20px; /* Padding to align with text */
}

.doctor-section {
    padding: 60px 20px;
    background-color: white; /* Light background for contrast */
    display: flex;
    justify-content: center;
    align-items: center;
}

.doctor-container {
    flex-direction: column; /* Stack image and text vertically */
        text-align: justified; /* Center-align text */
    max-width: 1000px; /* Adjust to fit your content width */
    margin: 0 auto;
    flex-wrap: wrap; /* Allows wrapping for smaller screens */
}

.doctor-image {
    position: relative; /* Relative positioning for overlay */
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle, #f2f2f2 30%, #cccccc 100%); /* Middle is the original color, edges are darker */
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    margin: 0 auto; /* Center the image horizontally */
    display: flex; /* Use flexbox to center the image */
    align-items: center; /* Center the content vertically */
    justify-content: center; /* Center the content horizontally */
}

.doctor-image img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Cover ensures the image scales well */
    filter: brightness(0.9); /* Optional: Slight darkening for uniformity */
}

.university-logos {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px; /* Space between the logos */
    margin-top: 20px;
}

/* Specific styles for each logo */
.university-logos img#usyd-logo {
    width: 180px;
}

.university-logos img#ubc-logo {
    width: 320px;
}


/* Media query for mobile devices */
@media (max-width: 768px) {
    .university-logos {
        flex-direction: column; /* Stack logos vertically */
        gap: 20px; /* Adjust spacing between stacked logos */
    }

    /* Adjust the size for mobile view */
    .university-logos img {
        width: 70%; /* Adjust the size of the logos for mobile view */
        max-width: 300px; /* Optional: set a max-width to prevent logos from becoming too large */
    }
}


.doctor-info {
    flex: 2;
    padding: 20px;
}

.doctor-info h3 {
    font-size: 2em; /* Heading size */
    color: #2E7D32; /* Euca MD dark green */
    margin-bottom: 5px; /* Reduce space below the heading */
    text-align: center;
    font-weight: 700; /* Bold weight for the heading */
}

.doctor-info .degrees {
    font-size: 1.2em; /* Slightly smaller size for subtext */
    color: #555; /* Use a lighter grey for better contrast */
    font-weight: 400; /* Use a standard weight for subtext */
    text-align: center; /* Centered under the heading */
    margin: 0; /* Remove default margins */
    margin-top: -10px; /* Reduce the space above the subtext */
    letter-spacing: 0.5px; /* Slightly increase letter spacing for readability */
}

.doctor-info p {
    font-size: 1.2em; /* Text size */
    color: #333; /* Slightly darker text */
    line-height: 1.8;
    margin: 0;
}

.doctor-section-lily {
    background-color: #ffffff; /* Light background to match the light site sections. */
    padding: 60px 20px; /* Maintain padding consistency */
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Adjust paragraph styles for mobile devices */
@media (max-width: 768px) {
    .quote-text,
    .doctor-info p {
        text-align: justify; /* Keeps the justified alignment */
        hyphens: auto; /* Enables word breaks to reduce gaps */
        line-height: 1.6; /* Improves readability */
        font-size: 1.1em; /* Slightly smaller font for mobile */
        word-spacing: normal; /* Avoids excessive spacing */
    }
}

/* Alternative: Left-align paragraphs for better mobile display */
@media (max-width: 768px) {
    .quote-text,
    .doctor-info p {
        text-align: left; /* Use left alignment for better consistency */
        line-height: 1.6; /* Adjust for readability */
        font-size: 1.1em; /* Dynamically adjust font size */
        margin-bottom: 1em; /* Space between paragraphs */
    }
}


    /* Basic styles for the timeline and icons */
    .timeline {
        position: relative;
        max-width: 800px;
        margin: 20px auto;
        padding: 20px;
        list-style-type: none;
    }

    .timeline::before {
        content: '';
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 2px;
        height: 100%;
        background-color: #e0e0e0;
    }

    .timeline-item {
        margin: 20px 0;
        position: relative;
        display: flex;
        align-items: center;
    }

    .timeline-item.left {
        justify-content: flex-start;
    }

    .timeline-item.right {
        justify-content: flex-end;
    }

    .timeline-item::before {
        content: '';
        position: absolute;
        top: 10px;
        left: 50%;
        transform: translateX(-50%);
        width: 20px;
        height: 20px;
        background-color: #2E7D32; /* Euca MD dark green */
        border-radius: 50%;
        border: 3px solid #fff;
        box-shadow: 0 0 0 4px #e0e0e0;
        z-index: 2; /* Ensure it appears above the content boxes */
    }

    .timeline-content {
            margin-left: -20px; /* Increase this value to add space on the left */
    margin-right: -20px; /* Increase this value to add space on the right */

        max-width: 45%;
        background-color: #fff;
        padding: 15px;
        border-radius: 8px;
        box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
        position: relative;
        z-index: 1;
    }

    .timeline-item.left .timeline-content {
        margin-right: auto;
        text-align: left;
    }

    .timeline-item.right .timeline-content {
        margin-left: auto;
        text-align: right;
    }

    .timeline-icon {
        width: 40px;
        height: 40px;
        display: inline-block;
        background-color: #2E7D32;
        color: #fff;
        border-radius: 50%;
        text-align: center;
        line-height: 40px;
        font-size: 20px;
        margin-bottom: 10px;
    }

    .timeline-title {
        font-size: 1.1em;
        font-weight: bold;
        color: #333;
    }

    .timeline-date {
        font-size: 0.9em;
        color: #666;
        margin-bottom: 5px;
    }

    .timeline-desc {
        font-size: 0.95em;
        line-height: 1.4;
        color: #555;
    }

    .timeline-link {
        color: #2E7D32;
        text-decoration: none;
        font-weight: bold;
    }

.custom-blog-section {
    background-color: white;
    padding: 30px;
    max-width: 800px;
    margin: 0 auto; /* Center content */
}

.custom-container {
    display: block; /* Ensure headers and paragraphs stack vertically */
}



.custom-blog-section h2 {
    font-size: 1.8em;
    color: #2E7D32; /* Euca MD dark green */
    margin-bottom: 15px;
}

.custom-blog-section p {
    font-size: 1.2em;
    color: #333;
    line-height: 1.8;
    margin-bottom: 20px;
}

.custom-blog-section ul {
    font-size: 1.2em; /* Match paragraph text size */
    color: #333; /* Same color as paragraph text */
    line-height: 1.8; /* Match paragraph line height for readability */
    margin-bottom: 20px; /* Add space after the list */
    padding-left: 20px; /* Indent to separate from paragraph text */
}

.custom-blog-section ul li {
    margin-bottom: 10px; /* Add space between bullet points */
}

.custom-blog-section ul li::marker {
    color: #2E7D32; /* Euca MD dark green for bullet points */
}

/* Center the button within the custom blog section */
.custom-blog-section .cta-button {
    display: block; /* Make the button behave as a block element */
    margin: 20px auto; /* Center the button horizontally */
    padding: 12px 30px; /* Add some padding to the button */
    font-size: 1.2em; /* Adjust the font size */
    background-color: #2E7D32; /* Euca MD dark green */
    color: white; /* White text for contrast */
    text-align: center; /* Center text within the button */
    border: none; /* Remove default borders */
    border-radius: 5px; /* Optional: Add some border radius for a rounded look */
    cursor: pointer; /* Change cursor to pointer on hover */
    text-decoration: none; /* Remove underline */
}

.custom-blog-section .cta-button:hover {
    background-color: #256a27; /* Darker green on hover */
}

.custom-blog-section a {
    color: #2E7D32;
    text-decoration: none;
    font-weight: bold;
}

.custom-blog-section a:hover {
    text-decoration: underline;
}

/* Table Styles */
table {
    width: 100%;
    border-collapse: collapse; /* Remove gaps between cells */
    margin-bottom: 20px;
}

thead {
    background-color: #2E7D32; /* Dark green for header */
    color: white; /* White text for contrast */
}

thead th {
    padding: 12px;
    text-align: left; /* Left align text in header */
    font-size: 1.1em;
}

tbody td {
    padding: 10px;
    border-bottom: 1px solid #ddd; /* Light border between rows */
    color: #333; /* Standard text color */
    font-size: 1em;
}

tbody tr:nth-child(even) {
    background-color: #f9f9f9; /* Light gray background for even rows */
}

tbody tr:hover {
    background-color: #e0f7e0; /* Lighter green on hover */
}

strong {
    color: #2E7D32; /* Use the dark green color for strong text */
}


.iframe-container {
    width: 100%;
    height: 1300px; /* Adjust the height as needed */
}

.iframe-container iframe {
    width: 100%;
    height: 100%;
    border: 0; /* Removes any border around the iframe */
}

.booking-text {
    text-align: center;
    margin-top: 10px;
}

.booking-text a {
    color: #2E7D32; /* Use your consistent link color */
    font-weight: bold;
    text-decoration: none;
}

.booking-text a:hover {
    text-decoration: underline;
}

.tos-contact-info {
    text-align: center;
    font-size: 1em;
    color: #666;
    margin-bottom: 20px;
    line-height: 1.5;
}

.tos-contact-info a {
    color: #2E7D32;
    text-decoration: none;
}

.tos-contact-info a:hover {
    text-decoration: underline;
}

.tos-section {
    background-color: white;
    padding: 40px 20px;
    max-width: 900px;
    margin: 0 auto;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.tos-container h2 {
    font-size: 2em;
    color: #2E7D32;
    text-align: center;
    margin-bottom: 20px;
}

.tos-container h3 {
    font-size: 1.5em;
    color: #333;
    margin-top: 20px;
    margin-bottom: 10px;
}

.tos-container p {
    font-size: 1.1em;
    color: #555;
    line-height: 1.6;
    margin-bottom: 15px;
    text-align: justify;
}



/* FAQ Section */
.faq-section {
    max-width: 800px;
    margin: 0 auto;
    padding: 3rem 1rem;
    font-family: 'Inter', sans-serif;
}

/* FAQ Title */
.faq-title {
    font-size: 2rem;
    font-weight: 600;
    text-align: center;
    margin-bottom: 2rem;
    color: #2E7D32; /* Simple dark color for title */
}


/* Service-Specific FAQ Title */
.service-faq-title {
    font-size: 1.75rem;
    font-weight: 600;
    color: #333; /* Green for Euca MD services */
    text-align: center; /* Center the text */
    margin-top: 2rem;
}

/* FAQ Item */
.faq-item {
    margin-bottom: 1.5rem;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 1rem;
}

.faq-item:last-child {
    border-bottom: none;
}

/* FAQ Question */
.faq-question {
    font-size: 1.25rem;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #2E7D32; /* Euca MD green */
    padding: 0.5rem 0;
    transition: color 0.3s ease;
    border-bottom: 1px solid transparent;
}

.faq-question:hover {
    color: #1B5E20; /* Slightly darker hover color */
}

/* FAQ Icons */
.faq-question i {
    font-size: 1rem;
    transition: transform 0.3s ease;
}

.faq-item.active .faq-question i {
    transform: rotate(180deg);
}

/* FAQ Answer */
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding-top 0.3s ease;
    color: #555;
    font-size: 1rem;
    line-height: 1.6;
    padding-top: 0;
}

.faq-item.active .faq-answer {
    max-height: 600px; /* Adjustable based on content */
    padding-top: 1rem;
}

.faq-links {
    list-style: none;
    padding: 0;
    margin-bottom: 1.5rem;
    text-align: center;
}

.faq-links li {
    display: inline-block;
    margin-right: 1.5rem;
    margin-bottom: 0.5rem; /* Small space between items */
}

.faq-links a {
    color: #2E7D32;
    text-decoration: none;
    font-size: 1rem;
    transition: color 0.3s ease;
}

.faq-links a:hover {
    color: #1B5E20;
}


/* Media Queries for Smaller Screens */
@media (max-width: 600px) {
    .faq-title {
        font-size: 1.75rem;
    }

    .faq-question {
        font-size: 1.1rem;
    }

    .faq-answer {
        font-size: 0.95rem;
    }
}
/* General form styling */
.form-container {
    max-width: 600px;
    margin: 20px auto;
    padding: 20px;
    background-color: #f9f9f9;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* Form heading */
.form-heading {
    font-size: 1.8em;
    color: #2E7D32; /* Euca MD dark green */
    margin-bottom: 15px;
    text-align: center;
}

/* Input, email, phone, and textarea styling */
input[type="text"],
input[type="email"],
input[type="tel"], /* New phone input styling */
textarea {
    width: 100%;
    padding: 12px;
    margin: 10px 0 20px 0;
    border: 1px solid #ddd;
    border-radius: 6px;
    box-sizing: border-box;
    font-size: 16px;
    font-family: inherit;
    background-color: #fff;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus, /* Add focus state for phone field */
textarea:focus {
    border-color: #67a16b; /* Euca MD green for focus state */
    outline: none;
    box-shadow: 0 0 8px rgba(103, 161, 107, 0.4);
}

/* Textarea specific styling */
textarea {
    min-height: 120px;
    resize: vertical;
}

/* Submit button styling */
button[type="submit"] {
    background-color: #2E7D32; /* Euca MD green */
    color: white;
    padding: 0.75rem 2rem;
    font-size: 1.2rem;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    display: block;
    margin: 0 auto;
}

button[type="submit"]:hover {
    background-color: #1B5E20;
}

/* Responsive design for mobile */
@media (max-width: 768px) {
    form {
        padding: 15px;
    }
    
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    textarea {
        font-size: 14px;
    }

    button[type="submit"] {
        font-size: 16px;
        padding: 10px 15px;
    }
}

/* Label styling */
label {
    font-size: 14px;
    font-weight: bold;
    color: #4c4c4c;
    display: block;
    margin-bottom: 8px;
}

/* Additional spacing for the form */
input[type="text"],
input[type="email"],
input[type="tel"], /* Added phone number field margin */
textarea,
button[type="submit"] {
    margin-bottom: 15px;
}

/* Hover and focus states for accessibility */
input[type="text"]:hover,
input[type="email"]:hover,
input[type="tel"]:hover, /* Added hover for phone field */
textarea:hover {
    border-color: #8cc790;
}

/* Form heading (optional) */
form h2 {
    font-size: 24px;
    text-align: center;
    margin-bottom: 20px;
    color: #4a7747;
}

.contact-turnstile {
    margin: 2px 0 14px;
}

.contact-form-status {
    margin: 0;
    min-height: 24px;
    font-weight: 600;
    text-align: center;
}

.contact-form-status.is-pending {
    color: #255f2a;
}

.contact-form-status.is-success {
    color: #1f6f2c;
}

.contact-form-status.is-error {
    color: #9f2323;
}


/* Container to center the message */
.thank-you-container {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh; /* Full height of the viewport */
    background-color: white; /* Light background for contrast */
}

/* Message styling */
.thank-you-message {
    text-align: center;
    padding: 30px;
    background-color: #f9f9f9;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); /* Subtle shadow */
    max-width: 600px;
    width: 100%;
}

/* Heading (Thank You) */
.thank-you-message h1 {
    font-size: 2.5rem;
    color: #2E7D32; /* Euca MD green */
    margin-bottom: 20px;
}

/* Paragraph */
.thank-you-message p {
    font-size: 1.2rem;
    color: #555; /* Dark gray for readability */
    margin-bottom: 40px;
}

/* Home button */
.home-button {
    background-color: #2E7D32; /* Euca MD green */
    color: white;
    padding: 0.75rem 2rem;
    font-size: 1.2rem;
    border-radius: 5px;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.home-button:hover {
    background-color: #1B5E20; /* Darker green on hover */
}

/* Responsive Design */
@media (max-width: 768px) {
    .thank-you-message h1 {
        font-size: 2rem;
    }

    .thank-you-message p {
        font-size: 1rem;
    }

    .home-button {
        font-size: 1rem;
        padding: 0.6rem 1.5rem;
    }
}


/* Center the CTA button */
.cta-section {
    text-align: left; /* Keep text left-aligned */
}

.cta-section .cta-button {
    display: block;
    margin: 1rem auto 0; /* Center the button */
    text-align: center; /* Ensure the button text is centered */
    width: fit-content; /* Fit the button width to the text */
}

.cta-button {
    background-color: #2E7D32; /* Euca MD green */
    color: white;
    padding: 0.75rem 2rem;
    font-size: 1.2rem;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    transition: background-color 0.3s ease;
}

.cta-button:hover {
    background-color: #1B5E20; /* Slightly darker hover color */
}

p a.cta-button:hover {
    text-decoration: none; /* Prevent underline on hover as well */
}

/*How it works section*/
.how-it-works {
    padding: 40px 0;
    background-color: #ffffff; /* Match your website’s background */
}

.section-title {
    font-size: 2.5em;
    color: #2E7D32; /* Euca MD dark green */
    margin-bottom: 20px;
    font-weight: bold;
}



/* How it Works Description - New Row Above Icons */
.how-it-works-description {
    font-size: 1.2em;
    color: #666;
    margin-bottom: 40px;
}

/* Steps Section */
.steps {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
}

.step {
    flex: 0 0 23%; /* 4 icons per row on desktop */
    text-align: center;
    margin-bottom: 40px;
}

.step i {
    font-size: 3.5em; /* Icon size */
    color: #2E7D32; /* Euca MD green */
    margin-bottom: 15px;
    background-color: #ffffff; /* White background for the circle */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */

    padding: 20px;
    border-radius: 50%; /* Make it a circle */
    border: 2px solid #ddd; /* Gray border around the circle */
    width: 100px;
    height: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 15px; /* Center the circle */
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

/* Hover effect */
.step i:hover {
    transform: scale(1.1); /* Scale up the circle */
    border-color: #2E7D32; /* Change border color on hover */
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); /* Add subtle shadow */
}


.step-number {
    display: block;
    font-size: 2.5em;
    color: #333;
    font-weight: bold;
    margin-bottom: 15px;
}

.step h3 {
    font-size: 1.5em;
    margin-bottom: 10px;
    color: #333;
}

.step p {
    font-size: 1em;
    color: #666;
    line-height: 1.6;
}

/* Responsive adjustments for mobile and tablet */
@media (max-width: 1024px) {
    .step {
        flex: 0 0 48%; /* 2 steps per row on tablet */
    }
}

@media (max-width: 768px) {
    .step {
        flex: 0 0 45%; /* 2 step per row on mobile */
    }
}


/*Why choose EUCA*/
.why-choose-euca {
    padding: 40px 0;
    background-color: #ffffff; /* White background, matching Our Services */
}

.section-title {
    font-size: 2.5em;
    color: #2E7D32; /* Euca MD dark green */
    margin-bottom: 20px;
    font-weight: bold;
}

.why-choose-description {
    font-size: 1.2em;
    color: #666;
    margin-bottom: 40px;
}

.features {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.feature {
    flex: 0 0 30%; /* 3 icons per row on desktop */
    text-align: center;
    margin-bottom: 40px;
}

.feature i {
    font-size: 3.5em;
    color: #2E7D32; /* Euca MD green */
    background-color: #ffffff; /* Light gray background for circles */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */

    padding: 20px;
    border-radius: 50%; /* Circle */
    border: 2px solid #ddd; /* Light gray border */
    width: 100px;
    height: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 15px;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.feature:hover i {
    transform: scale(1.1); /* Pop effect on hover */
    border-color: #2E7D32; /* Change border color on hover */
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); /* Shadow effect */
}

.feature-title {
    display: block;
    font-size: 1.5em;
    font-weight: bold;
    color: #333;
    margin-bottom: 10px;
}

.feature p {
    font-size: 1em;
    color: #666;
    line-height: 1.6;
}

/* Responsive adjustments */
@media (max-width: 1024px) {
    .feature {
        flex: 0 0 48%; /* 2 icons per row on tablet */
    }
}

@media (max-width: 768px) {
    .feature {
        flex: 0 0 45%; /* 2 icons per row on mobile */
    }
}


/* Call to Action Section */
.call-to-action {
    background-color: #e0f7e0; /* Lighter green to make the CTA stand out */
    color: #2E7D32; /* Dark green text to keep contrast */
    text-align: center;
}

.call-to-action h2 {
    font-size: 3em;
    margin-bottom: 30px;
}

.call-to-action .cta-button {
    background-color: #2E7D32; /* Dark green button */
    color: white;
    padding: 15px 30px;
    font-size: 1.2em;
    border-radius: 5px;
    transition: transform 0.3s ease, background-color 0.3s ease;
}

.call-to-action .cta-button:hover {
    background-color: #1E5B24;
    color: white;
    transform: scale(1.05);
}

/* Footer Layout */
.footer {
    background-color: #f8f8f8;
    padding: 0px 0;
    font-size: 0.9em;
    color: #333;
    text-align: left;
}

/* Footer Container */
.footer-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
    padding-bottom: 20px;
}

/* Footer Logo Section - Left Aligned */
.footer-logo {
    text-align: left;
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start; /* Left align the content */
    position: relative; /* Position relative to adjust logo without affecting other elements */
}

/* Shift the logo image more to the left */
.footer-logo img {
    max-width: 150px;
    margin-left: -35px; /* Manually shift the logo left without disrupting layout */
    margin-bottom: -10px; /* Reduce space between the logo and the EUCA MD text */
}

/* Adjust the space between logo and text */
.footer-logo-text {
    font-size: 1.2em;
    font-weight: bold;
    color: #2E7D32; /* Dark green */
    margin-top: -20px; /* Reduce the space between the logo and text */
    display: block;
    white-space: nowrap;
    text-align: left;
}

/* Follow Us Section - Left Aligned */
.footer-social {
    margin-top: -30px; /* Reduce space between "Follow Us" and EUCA MD text */
    text-align: left;
}

.footer-social h3 {
    margin-bottom: 10px;
}

/* Social Media Icons Left Aligned */
.footer-social-icons {
    display: flex;
    justify-content: flex-start; /* Align icons to the left */
    gap: 10px;
    margin-top: 10px;
}

/* Social Media Icons */
.footer-social-icons a {
    display: inline-block;
}

.footer-social-icons img {
    width: 32px;
    height: 32px;
    transition: transform 0.3s ease;
}

.footer-social-icons a:hover img {
    transform: scale(1.1);
}

.footer-social-icons .social-icon-button:hover img,
.footer-social-icons .social-icon-button:focus-visible img {
    transform: scale(1.1);
}

.footer-social-icons-group {
    margin-bottom: 20px;
}

.social-group-label {
    font-weight: bold;
    color: #2E7D32; /* Euca MD green */
    margin-bottom: 8px;
    font-size: 1.1em;
}

.footer-social-icons {
    display: flex;
    gap: 10px;
}

.social-icon-button {
    border: 0;
    background: none;
    padding: 0;
    cursor: pointer;
}

.social-icon-button img {
    display: block;
}

.footer-social-icons img.wechat-icon-image {
    height: 32px;
    width: auto;
}

.wechat-modal[hidden] {
    display: none;
}

.wechat-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.wechat-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}

.wechat-modal-content {
    position: relative;
    z-index: 1;
    width: min(420px, 100%);
    background: #ffffff;
    border-radius: 12px;
    padding: 20px 20px 16px;
    text-align: center;
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.2);
}

.wechat-modal-close {
    position: absolute;
    top: 8px;
    right: 10px;
    border: 0;
    background: transparent;
    cursor: pointer;
    font-size: 1.8rem;
    line-height: 1;
    color: #2f2f2f;
}

.wechat-modal-content h4 {
    margin: 0 0 12px;
    color: #2E7D32;
    font-size: 1.15rem;
}

.wechat-qr-image {
    width: min(320px, 100%);
    height: auto;
    border-radius: 8px;
    margin-bottom: 12px;
}

.wechat-account-name {
    margin: 0 0 6px;
    color: #2E7D32;
    font-weight: 600;
}

.wechat-account-id {
    margin: 0 0 8px;
    color: #2f2f2f;
    font-weight: 500;
}

.wechat-modal-tip {
    margin: 0;
    color: #4f4f4f;
    font-size: 0.95rem;
    line-height: 1.4;
}

body.wechat-modal-open {
    overflow: hidden;
}


/* Contact Icons Specific Section */
.contact-icon {
    margin-right: 10px; /* Space between icon and text */
    color: #2E7D32; /* Matches the theme color */
    font-size: 1.1em;
    /* Remove vertical-align, let flexbox handle it */
}

/* Flexbox for proper alignment of icon and address */
.contact-address {
    display: flex;
    align-items: flex-start; /* Align icon and text neatly */
}

.contact-address-text {
    line-height: 1.6; /* Adjust line height for better spacing */
    margin: 0; /* Remove any default margins to avoid misalignment */
}


/* Quick Links, Services, and Contact Sections */
.footer-links, .footer-services, .footer-contact, .footer-social {
    flex: 1;
    margin: 0 20px;
}

.footer-links h3, .footer-services h3, .footer-contact h3, .footer-social h3 {
    font-size: 1.2em;
    margin-bottom: 15px;
}

.footer-links ul, .footer-services ul {
    list-style: none;
    padding: 0;
}

.footer-links li, .footer-services li {
    margin-bottom: 10px;
}

.footer-links a, .footer-services a {
    color: #2E7D32;
    text-decoration: none;
}

.footer-links a:hover, .footer-services a:hover {
    text-decoration: underline;
}

.footer-contact p {
    margin-bottom: 10px;
}

.footer-contact a {
    color: #2E7D32;
    text-decoration: none;
}

.footer-contact a:hover {
    text-decoration: underline;
}


/* Legal Section */
.footer-legal {
    text-align: center;
    padding: 20px 0;
    background-color: #f0f0f0;
    font-size: 0.8em;
}

.footer-legal p {
    margin: 5px 0;
}

.footer-legal a {
    color: #2E7D32;
    text-decoration: none;
}

.footer-legal a:hover {
    text-decoration: underline;
}


/* Adjust for desktop (min-width 1024px) */
@media (min-width: 1024px) {

    /* Global desktop spacing for image + text sections used site-wide */
    .hero-content {
        gap: clamp(40px, 5vw, 84px);
        align-items: flex-start;
    }

    /* Keep first service-page media aligned with section heading baseline */
    .services-section.title + .hero .hero-image {
        margin-top: clamp(14px, 1.8vw, 24px);
    }

    .hero-text {
        max-width: min(640px, 56ch);
    }

    .hero-image {
        flex-shrink: 0;
        max-width: min(500px, 44vw);
    }

    .prev-arrow, .next-arrow {
        width: 40px;    /* Same as or slightly larger than desktop */
        height: 40px;
        font-size: 1.2em; /* Adjust size as per need */
        padding: 10px;  /* Ensure a comfortable clickable area */
    }

    .prev-arrow, .next-arrow {
        width: 40px;    /* Same as or slightly larger than desktop */
        height: 40px;
        font-size: 1.2em; /* Adjust size as per need */
        padding: 10px;  /* Ensure a comfortable clickable area */
        top: 25%; /* Adjust the height for tablet screens */
    }


   .scroll-dots {
        margin-bottom: 20px; /* Reduce the bottom space for dots */
        margin-top: 35px;  /* Optional: reduce space above dots */
    }
    
    .dot {
        width: 16px;  /* Make the dots slightly larger for easier tapping */
        height: 16px;
        margin: 0 8px;  /* Space the dots a bit more for easier tapping */
    }

}

/* Tablet: 1 items per row */
@media (min-width: 769px) and (max-width: 1024px) {
    .hero-content {
        flex-direction: column; /* Stack the text and image vertically on smaller screens */
        text-align: center; /* Center-align the content */
    }

    .hero-text {
        margin-bottom: 20px; /* Add margin below the text for spacing */
    }

    .hero-text p {
        text-align: left; /* Left-align the text on mobile */
        padding-left: 15px; /* Add padding for better alignment on mobile */
        padding-right: 15px; /* Keep padding consistent */
    }

    .hero-image {
        order: -1; /* Move the image to the top */
        width: 80%; /* Make it full width on mobile */
        margin: 0 auto; /* Center the image */
        margin-bottom: 20px;
    }

    .hero-image img {
        width: 100%; /* Make the image fully responsive */
        height: auto; /* Maintain the aspect ratio */
    }

    .scroll-container {
        max-width: 600px;  /* Limit the width of the scroll-container */
        margin: 0 auto;    /* Center it */
    }

    .service-item {
        flex: 0 0 100%;  /* 1 item per row */
        padding: 0 10px;   /* Reduced padding between items */
        box-sizing: border-box;
    }

    .service-item img {
        max-width: 80%;  /* Use 100% width to ensure it fills its container */
        height: auto;
        margin-bottom: 5px;
    }

    .service-text, .service-description {
        text-align: center;
        margin-top: 5px;
    }

    .prev-arrow, .next-arrow {
        width: 40px;    /* Same as or slightly larger than desktop */
        height: 40px;
        font-size: 1.2em; /* Adjust size as per need */
        padding: 10px;  /* Ensure a comfortable clickable area */
        top: 35%; /* Adjust the height for tablet screens */
    }


   .scroll-dots {
        margin-bottom: 20px; /* Reduce the bottom space for dots */
        margin-top: 35px;  /* Optional: reduce space above dots */
    }
    
    .dot {
        width: 16px;  /* Make the dots slightly larger for easier tapping */
        height: 16px;
        margin: 0 8px;  /* Space the dots a bit more for easier tapping */
    }

    .nav {
        display: none; /* Hide the full nav on tablet and mobile */
    }

    .desktop-lang-switch {
        display: none;
    }

    .menu-toggle {
        display: inline-block; /* Show the hamburger menu */
    }

    /* Ensure the Book Now button is visible */
    .nav-cta-button {
        display: inline-block; /* Ensure the button is visible */
                padding: 15px 30px;
    font-size: 1.2em;
        margin-right: 10px; /* Space between button and hamburger */
        background-color: #2E7D32; /* Ensure background color is visible */
        color: white;
        border-radius: 5px;
        font-weight: bold;
        text-decoration: none;
        margin-left: auto;
    }

    .container {
        display: flex;
        justify-content: space-between; /* Align hamburger and button to opposite sides */
        align-items: center;
    }

    .mobile-nav {
        display: none; /* Ensure mobile menu is hidden by default */
    }

        .logo-image {
        height: 70px; /* Reduce the size for mobile screens */
    }

    .logo-text {
        font-size: 2.5em; /* Reduce size for mobile screens */
    }

}

/* Mobile: 1 item per row */
@media (max-width: 768px) {
    .nav {
        display: none; /* Hide desktop menu on mobile */
    }

    .desktop-lang-switch {
        display: none;
    }

    .menu-toggle {
        display: block; /* Show hamburger on mobile */
    }

    .mobile-nav {
        display: flex; /* Show mobile menu */
        visibility: visible; /* Visible by default */
        opacity: 1; /* Fully opaque by default */
    }

    .hero-title {
        font-size: 2.5em;
    }

    .cta-button {
        font-size: 1em;
    }

    .hero-content {
        flex-direction: column; /* Stack the text and image vertically on smaller screens */
        text-align: center; /* Center-align the content */
    }

    .hero-text {
        margin-bottom: 20px; /* Add margin below the text for spacing */
    }


    .hero-section {
        flex-direction: column; /* Stack content vertically */
        justify-content: flex-start; /* Align content at the top */
    }

    .hero-image {
        order: -1; /* Move the image to the top */
        width: 100%; /* Make it full width on mobile */
        margin-bottom: 20px !important; /* Add spacing below the image */
        margin: 0 auto; /* Center the image */
    }

    .hero-image img {
        width: 100%; /* Make the image fully responsive */
        
    }


    .hero-text {
        padding: 10px; /* Adjust padding for mobile */
    }

    .hero-text h1 {
        font-size: 2em; /* Adjust the title size for smaller screens */
        margin-top: 10px; /* Adjust this value to reduce space above the h1 */
    }

    .hero-text p {
        text-align: left;
        font-size: 1.2em; /* Adjust the paragraph size */
        padding-left: 15px; /* Add padding for better alignment on mobile */
        padding-right: 15px; /* Keep padding consistent */
    }

    .cross-promo-banner {
        margin: 18px 0 24px;
        padding: 16px 0;
    }

    .cross-promo-banner__wrap {
        width: 92%;
    }

    .cross-promo-banner__text {
        font-size: 1rem;
        line-height: 1.5;
    }


.scroll-container {
        max-width: 380px;  /* Limit the width of the scroll-container */
        margin: 0 auto;    /* Center it */
                transition: transform 0.5s ease-in-out;
    }

        .services-grid {
    flex-direction: column;
    align-items: center;
    }

    .service-item {
        flex: 0 0 100%;     /* 1 items per row */
        padding: 10px;   /* Reduced padding between items */
        box-sizing: border-box;
    }

    .service-item img {
        max-width: 90%;  /* Use 100% width to ensure it fills its container */
        height: auto;
        margin-bottom: 5px;
    }

    .service-text, .service-description {
        text-align: center;
        margin-top: 5px;
    }

            .prev-arrow, .next-arrow {
        width: 40px;    /* Same as or slightly larger than desktop */
        height: 40px;
        font-size: 1.2em; /* Adjust size as per need */
        padding: 10px;  /* Ensure a comfortable clickable area */
                top: 30%; /* Adjust the height for tablet screens */
    }

   .scroll-dots {
        margin-bottom: 20px; /* Reduce the bottom space for dots */
        margin-top: 15px;  /* Optional: reduce space above dots */
    }
    
    .dot {
        width: 16px;  /* Make the dots slightly larger for easier tapping */
        height: 16px;
        margin: 0 8px;  /* Space the dots a bit more for easier tapping */
    }

    .logo-image {
        height: 50px; /* Reduce the size for mobile screens */
    }

    .logo-text {
        font-size: 1em; /* Reduce size for mobile screens */
    }

     /* Ensure the Book Now button is visible */
    .nav-cta-button {
        display: inline-block; /* Ensure the button is visible */
        font-size: 0.9em; /* Adjust size for smaller screens */
        padding: 10px 15px; /* Adjust padding */
        margin-right: 10px; /* Space between button and hamburger */
        background-color: #2E7D32; /* Ensure background color is visible */
        color: white;
        border-radius: 5px;
        font-weight: bold;
        text-decoration: none;
        margin-left: auto;
    }

    /* Ensure that the call-to-action text and button are stacked vertically */
    .call-to-action {
        text-align: center;
    }

    /* Move the Book Now button below the text in a new row */
    .call-to-action .container {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .call-to-action .cta-button {
        display: block; /* Ensures button takes full width */
        width: auto; /* Makes the button fit its content */
        margin-top: -20px; /* Reduce space above the button */
        margin-bottom: 20px; /* Add more space below the button */
    }

    /* Stack all footer sections vertically */
    .footer-container {
        display: flex;
        flex-direction: column; /* Stack all sections vertically */
        align-items: center; /* Center align items */
    }

    /* Center the footer logo, social, quick links, services, and contact sections */
    .footer-logo, .footer-social, .footer-links, .footer-services, .footer-contact {
        text-align: center; /* Center the text in each section */
        width: 100%; /* Make each section full width */
        margin: 0 auto; /* Ensure sections are centered */
        margin-bottom: 20px; /* Add spacing between sections */
    }

    /* Center the footer logo and reset left margin */
    .footer-logo {
        display: flex;
        flex-direction: column;
        align-items: center; /* Center align both logo and text */
        text-align: center;
        margin-bottom: 20px;
        width: 100%;
    }

    .footer-logo img {
        margin: 0 auto; /* Center the logo image */
        max-width: 150px; /* Maintain a reasonable size */
    }

    /* Center the footer logo text */
    .footer-logo-text {
        margin-top: -30px;
        text-align: center;
    }

    /* Center the social icons below "Follow Us" text */
    .footer-social-icons {
        display: flex;
        justify-content: center; /* Center the social icons */
        gap: 10px; /* Add space between icons */
    }

    /* Reset left alignment for lists in Quick Links and Services */
    .footer-links ul, .footer-services ul {
        list-style: none;
        padding: 0;
        display: inline-block; /* Center the list */
    }

    /* Center the Contact section */
    .footer-contact p, .footer-contact a {
        text-align: center; /* Center text in Contact section */
    }

    /* Ensure each section takes full width for better layout on mobile */
    .footer-links, .footer-services, .footer-contact, .footer-social {
        width: 100%; /* Full width on mobile */
        margin-bottom: 20px; /* Space between sections */
    }

    /* Center the address on mobile */
    .contact-address {
        display: flex;
        justify-content: center; /* Center align the icon and text */
        text-align: center; /* Center-align the text */
    }

    /* Center-align the address text */
    .contact-address-text {
        line-height: 1.6;
        margin: 0;
    }
}

/* =========================
   EUCA MD Match – New Styles
   ========================= */

/* Buttons */
.btn {
  display: inline-block;
  padding: 14px 26px;
  border-radius: 8px;
  font-weight: 700;
  text-decoration: none;
  transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
  line-height: 1;
}
.btn:focus { outline: 2px solid rgba(46,125,50,.35); outline-offset: 2px; }
.btn--primary {
  background: #2E7D32;
  color: #fff;
  border: 2px solid #2E7D32;
}
.btn--primary:hover { transform: translateY(-1px); background: #1E5B24; border-color: #1E5B24; }
.btn--ghost {
  background: #fff;
  color: #2E7D32;
  border: 2px solid #2E7D32;
}
.btn--ghost:hover { transform: translateY(-1px); background: #f5fff5; }
.btn--link {
  color: #2E7D32;
  font-weight: 700;
  text-decoration: none;
}
.btn--link:hover { text-decoration: underline; }

/* HERO */
.match-hero {
  background: #ffffff;
  padding: 56px 0 24px;
}
.match-hero__wrap {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 40px;
  align-items: center;
}
.match-hero__title {
  font-size: clamp(2.2rem, 3.5vw, 3.25rem);
  line-height: 1.1;
  color: #0e3d12;
  margin: 0 0 16px;
  font-weight: 800;
}
.match-hero__subtitle {
  font-size: clamp(1.1rem, 1.7vw, 1.35rem);
  color: #333;
  margin: 0 0 20px;
}
.match-hero__buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 14px;
  margin-bottom: 18px;
}
.match-hero__link {
  display: inline-block;
  margin-left: 8px;
  color: #2E7D32;
  font-weight: 600;
  text-decoration: none;
}
.match-hero__link:hover { text-decoration: underline; }
.match-hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 20px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  color: #444;
  font-size: 0.98rem;
}
.match-hero__badges i { color: #2E7D32; margin-right: 8px; }
.match-hero__media {
  width: 100%;
  justify-self: end;
}
.match-hero__media img, .match-hero__media video {
  width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(0,0,0,.08);
}

/* Sticky CTA (mobile) */
.sticky-cta {
  position: fixed;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  display: none;
  gap: 10px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
  padding: 10px 12px;
  border-radius: 999px;
  z-index: 1200;
}
.sticky-cta__btn {
  padding: 10px 18px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  background: #2E7D32; color: #fff; border: 2px solid #2E7D32;
}
.sticky-cta__btn--ghost { background: #fff; color:#2E7D32; }

/* Show sticky CTA on small screens */
@media (max-width: 768px) {
  .sticky-cta { display: flex; }
}

/* Devices section */
.devices {
  background: #fff;
  padding: 48px 0 16px;
}
.devices__intro h2 {
  font-size: clamp(1.75rem, 2.6vw, 2.4rem);
  color: #2E7D32;
  margin: 0 0 10px;
  font-weight: 800;
  text-align: center;
}
.devices__intro p {
  max-width: 860px;
  margin: 0 auto 22px;
  color: #444;
  text-align: center;
  font-size: 1.1rem;
}
.device-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 16px;
}
.device-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 14px;
  padding: 18px;
  box-shadow: 0 6px 22px rgba(0,0,0,.05);
  transition: transform .2s ease, box-shadow .2s ease;
}
.device-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0,0,0,.08);
}
.device-card__img {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 10px;
  margin-bottom: 14px;
  background: #f8f8f8;
}
.device-card__img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.device-card h3 {
  margin: 0 0 6px; color:#0e3d12; font-size: 1.15rem;
}
.device-card p { margin: 0; color:#555; }

.devices__ctas {
  margin-top: 24px;
  display: flex;
  gap: 12px;
  justify-content: center;
}

/* Stack device cards on tablet/mobile */
@media (max-width: 1024px) {
  .match-hero__wrap { grid-template-columns: 1fr; }
  .match-hero__media { justify-self: stretch; }
  .device-cards { grid-template-columns: 1fr; }
}

/* Explainers (split rows) */
.explainers {
  background: #ffffff;
  padding: 34px 0 10px;
}
.split {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 36px;
  align-items: center;
  margin: 18px 0 28px;
}
.split--reverse { grid-template-columns: 1fr 1.1fr; }
.split--reverse .split__media { order: 2; }
.split--reverse .split__text { order: 1; }
.split__media img {
  width: 100%; height: auto; border-radius: 10px; box-shadow: 0 10px 28px rgba(0,0,0,.07);
}
.split__text h3 {
  margin: 0 0 8px; color:#0e3d12; font-size: 1.5rem;
}
.split__text p { margin: 0 0 12px; color:#444; }
.split__text .btn { margin-top: 2px; }

@media (max-width: 1024px) {
  .split, .split--reverse {
    grid-template-columns: 1fr;
  }
  .split--reverse .split__media,
  .split--reverse .split__text { order: initial; }
}

/* How it works: small tweaks to your existing styles so headings align */
.how-ctas {
  margin-top: 10px;
  display: flex;
  gap: 12px;
  justify-content: center;
}

/* Corporate page */
.corporate-page {
  background: #f6faf6;
  padding: 30px 0 64px;
}

.corporate-shell {
  width: 90%;
  max-width: 1080px;
  margin: 0 auto;
}

.corporate-hero {
  background: linear-gradient(145deg, #ffffff 0%, #f5fbf5 100%);
  border: 1px solid #dfe9df;
  border-radius: 14px;
  padding: 38px;
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.06);
  margin-bottom: 26px;
}

.corporate-hero h1 {
  margin: 0;
  color: #0f3e14;
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  line-height: 1.2;
}

.corporate-subheading {
  margin: 12px 0 0;
  color: #2E7D32;
  font-size: 1.1rem;
  font-weight: 700;
}

.corporate-lead {
  margin: 16px 0 0;
  color: #444;
  line-height: 1.75;
  max-width: 880px;
}

.corporate-actions {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.corporate-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 18px;
  box-sizing: border-box;
  max-width: 100%;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 700;
  border: 2px solid #2E7D32;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.corporate-btn:hover {
  transform: translateY(-1px);
}

.corporate-btn--primary {
  background: #2E7D32;
  color: #ffffff;
}

.corporate-btn--primary:hover {
  background: #1E5B24;
  border-color: #1E5B24;
}

.corporate-btn--secondary {
  background: #ffffff;
  color: #1E5B24;
}

.corporate-btn--secondary:hover {
  background: #f3f9f3;
}

.corporate-section {
  background: #ffffff;
  border: 1px solid #e3ece3;
  border-radius: 14px;
  padding: 30px 32px;
  margin-bottom: 18px;
}

.corporate-section h2 {
  margin: 0 0 14px;
  color: #0f3e14;
  font-size: clamp(1.35rem, 2.3vw, 1.85rem);
}

.corporate-section p {
  margin: 0 0 12px;
  color: #444;
  line-height: 1.75;
}

.corporate-list {
  margin: 0;
  padding-left: 20px;
  color: #333;
}

.corporate-list li {
  margin-bottom: 10px;
  line-height: 1.65;
}

.corporate-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.corporate-card {
  background: #f8fcf8;
  border: 1px solid #e1ece1;
  border-radius: 10px;
  padding: 16px 18px;
}

.corporate-card h3 {
  margin: 0 0 8px;
  color: #1E5B24;
  font-size: 1.05rem;
}

.corporate-card p {
  margin: 0;
}

.corporate-steps {
  margin: 0;
  padding-left: 20px;
  color: #333;
}

.corporate-steps li {
  margin-bottom: 10px;
  line-height: 1.7;
}

.corporate-note {
  margin-top: 14px;
  padding: 14px 16px;
  border-left: 4px solid #2E7D32;
  background: #f3f9f3;
  color: #1d4621;
  border-radius: 6px;
  font-weight: 600;
}

.corporate-section p.corporate-note--spaced {
  margin-top: 34px;
}

.corporate-contact {
  margin: 0 0 14px;
  font-size: 1.06rem;
}

.corporate-contact a {
  color: #1E5B24;
  font-weight: 700;
  text-decoration: underline;
}

.corporate-section--form h2 {
  margin-bottom: 18px;
}

.corporate-cta-note {
  margin: 2px 0 0;
  color: #5b6f5d;
  font-size: 0.92rem;
  line-height: 1.5;
}

.corporate-form {
  display: grid;
  gap: 16px;
}

.corporate-field {
  display: grid;
  gap: 8px;
}

.corporate-field label,
.corporate-fieldset legend {
  color: #1a3f1e;
  font-weight: 700;
  font-size: 0.98rem;
}

.corporate-field input:not([type="radio"]):not([type="checkbox"]),
.corporate-field select,
.corporate-field textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #cfe0cf;
  border-radius: 8px;
  padding: 11px 12px;
  font: inherit;
  color: #222;
  background: #ffffff;
}

.corporate-field input:focus,
.corporate-field select:focus,
.corporate-field textarea:focus {
  outline: 2px solid rgba(46, 125, 50, 0.25);
  border-color: #2E7D32;
}

.corporate-field textarea {
  resize: vertical;
  min-height: 104px;
}

.corporate-urgency-reason[hidden] {
  display: none;
}

.corporate-fieldset {
  margin: 0;
  padding: 0;
  border: 0;
  display: grid;
  gap: 8px;
}

.corporate-field-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.corporate-field-help {
  margin: 0;
  color: #5b6f5d;
  font-size: 0.92rem;
  line-height: 1.5;
}

.corporate-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #2d412f;
  line-height: 1.6;
}

.corporate-checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 3px;
  accent-color: #2E7D32;
}

.corporate-turnstile {
  margin-top: 2px;
}

.corporate-submit-btn {
  width: fit-content;
  min-width: 180px;
}

.corporate-submit-btn:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.corporate-form-status {
  margin: 0;
  font-weight: 600;
  min-height: 24px;
}

.corporate-form-status.is-pending {
  color: #255f2a;
}

.corporate-form-status.is-success {
  color: #1f6f2c;
}

.corporate-form-status.is-error {
  color: #9f2323;
}

.corporate-contact-alt {
  margin-top: 18px;
  color: #5b6f5d;
  font-size: 0.92rem;
  line-height: 1.5;
}

.corporate-contact-alt a {
  color: #1E5B24;
  font-weight: 600;
  text-decoration: underline;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Corporate knowledge base */
.kb-controls {
  margin-bottom: 14px;
}

.kb-controls input[type="search"] {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #cfe0cf;
  border-radius: 10px;
  padding: 12px 14px;
  font: inherit;
  color: #223025;
  background: #ffffff;
}

.kb-controls input[type="search"]:focus {
  outline: 2px solid rgba(46, 125, 50, 0.22);
  border-color: #2E7D32;
}

.kb-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}

.kb-filter-btn {
  border: 1px solid #cddfce;
  background: #f7fbf7;
  color: #214526;
  padding: 8px 12px;
  border-radius: 999px;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.kb-filter-btn:hover {
  border-color: #2E7D32;
  background: #eff7ef;
}

.kb-filter-btn.is-active {
  border-color: #2E7D32;
  background: #2E7D32;
  color: #ffffff;
}

.kb-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.kb-card {
  border: 1px solid #e0e9e0;
  border-radius: 12px;
  padding: 18px;
  background: #ffffff;
  box-shadow: 0 4px 16px rgba(17, 54, 23, 0.04);
}

.kb-card h3 {
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.4;
}

.kb-card h3 a {
  color: #113f16;
  text-decoration: none;
}

.kb-card h3 a:hover {
  text-decoration: underline;
}

.kb-card p {
  margin: 10px 0 0;
  color: #425046;
  line-height: 1.6;
}

.kb-tag-row {
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.kb-tag {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid #dae6db;
  background: #f7fbf7;
  color: #2a4d2f;
  font-size: 0.8rem;
  font-weight: 600;
}

.kb-card-meta {
  margin-top: 10px;
  color: #5a6b5e;
  font-size: 0.88rem;
}

.kb-empty-state {
  margin: 10px 0 0;
  color: #4f5f53;
  font-weight: 600;
}

.kb-cta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.kb-cta-card {
  border: 1px solid #e0eae1;
  border-radius: 12px;
  background: #fbfdfb;
  padding: 22px;
}

.kb-cta-card h2 {
  margin: 0 0 10px;
}

.kb-cta-card p {
  margin: 0 0 14px;
}

.kb-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
  font-size: 0.92rem;
  color: #5b6f5d;
}

.kb-breadcrumb a {
  color: #1E5B24;
  text-decoration: none;
}

.kb-breadcrumb a:hover {
  text-decoration: underline;
}

.kb-article h1 {
  margin-top: 0;
}

.kb-article > section {
  margin-top: 24px;
}

.kb-last-updated {
  margin-top: 6px;
  color: #5b6f5d;
  font-size: 0.92rem;
}

.kb-callout {
  margin-top: 18px;
  border-radius: 10px;
  border: 1px solid #dbe8dc;
  background: #f7fbf7;
  padding: 16px 18px;
}

.kb-callout h2 {
  margin-bottom: 8px;
  font-size: 1.08rem;
}

.kb-callout p,
.kb-callout ul {
  margin: 0;
}

.kb-disclaimer {
  border-left: 4px solid #2E7D32;
}

.kb-language-rules {
  background: #fbfdfb;
}

.kb-prose {
  margin-top: 18px;
}

.kb-prose-section {
  margin-top: 26px;
}

.kb-prose-section h2 {
  margin-bottom: 10px;
}

.kb-prose-section p {
  margin: 0 0 12px;
  line-height: 1.78;
}

.kb-inline-list {
  margin-top: 8px;
}

.kb-related-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.kb-related-card {
  display: block;
  border: 1px solid #dfe9df;
  border-radius: 11px;
  padding: 14px 16px;
  background: #fbfdfb;
  text-decoration: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.kb-related-card h3 {
  margin: 0 0 8px;
  color: #113f16;
  font-size: 1.02rem;
  line-height: 1.42;
}

.kb-related-card p {
  margin: 0;
  color: #425046;
  line-height: 1.58;
}

.kb-related-card:hover {
  border-color: #2E7D32;
  box-shadow: 0 8px 18px rgba(17, 63, 22, 0.08);
  transform: translateY(-1px);
}

@media (max-width: 1024px) {
  .corporate-hero {
    padding: 30px 24px;
  }

  .corporate-section {
    padding: 26px 22px;
  }

  .corporate-grid {
    grid-template-columns: 1fr;
  }

  .kb-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .kb-related-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .corporate-page {
    padding: 18px 0 40px;
  }

  .corporate-hero {
    padding: 24px 18px;
    border-radius: 12px;
  }

  .corporate-section {
    padding: 22px 18px;
    border-radius: 12px;
  }

  .corporate-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .corporate-btn {
    width: 100%;
    white-space: normal;
    line-height: 1.35;
    text-align: center;
  }

  .corporate-field-grid {
    grid-template-columns: 1fr;
  }

  .corporate-submit-btn {
    width: 100%;
  }

  .kb-filters {
    gap: 6px;
  }

  .kb-filter-btn {
    font-size: 0.86rem;
    padding: 7px 10px;
  }

  .kb-card-grid {
    grid-template-columns: 1fr;
  }

  .kb-cta-grid {
    grid-template-columns: 1fr;
  }
}

/* Utility */
.container { max-width: 1200px; }

/* Mobile header polish: keep brand on one line and rebalance CTA/menu */
@media (max-width: 768px) {
  .header {
    padding: 10px 0;
  }

  .header .container {
    min-height: 64px;
    gap: 8px;
    align-items: center;
    justify-content: flex-start;
  }

  .logo-container {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    white-space: nowrap;
    flex: 0 1 auto;
  }

  .logo-image {
    height: 44px;
    flex-shrink: 0;
  }

  .logo-text {
    margin-left: 0;
    font-size: 1.5rem;
    line-height: 1;
    letter-spacing: 0.01em;
    white-space: nowrap;
  }

  #nav-placeholder {
    margin-left: auto;
    min-width: 0;
  }

  .nav-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 9px 12px;
    margin-right: 8px;
    border-radius: 10px;
    font-size: 0.95rem;
    line-height: 1;
    white-space: nowrap;
  }

  .menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    flex-shrink: 0;
  }

  .hamburger,
  .hamburger::before,
  .hamburger::after {
    width: 26px;
    height: 2.5px;
  }

  .hamburger::before {
    transform: translateY(-8px);
  }

  .hamburger::after {
    transform: translateY(8px);
  }
}

@media (max-width: 420px) {
  .logo-image {
    height: 40px;
  }

  .logo-text {
    font-size: 1.35rem;
  }

  .nav-cta-button {
    font-size: 0.9rem;
    padding: 9px 11px;
  }
}

/* EUCA homepage visual system for shared clinic pages. Excludes booking/women pages by deploy scope. */
:root {
  --ink: #10251d;
  --muted: #5f6f69;
  --green: #2E7D32;
  --green-dark: #1E5B24;
  --blue: #176b8f;
  --cream: #fffaf1;
  --cream-2: #f8f3e8;
  --line: rgba(28, 72, 52, .14);
  --shadow: 0 26px 70px rgba(33, 66, 49, .12);
  --women: linear-gradient(135deg, #d93f9a 0%, #6d42d8 100%);
  --doctor: linear-gradient(135deg, #2E7D32 0%, #1E5B24 100%);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 112px; }
body {
  color: var(--ink) !important;
  background: #f5f5f7 !important;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  line-height: 1.45;
}
a { color: inherit; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 1100;
  background: rgba(255, 255, 255, .88);
  border-bottom: 1px solid rgba(16, 37, 29, .08);
  backdrop-filter: blur(18px);
  box-shadow: none;
}
.header-inner {
  width: min(1180px, calc(100% - 28px));
  min-height: 76px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 16px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-right: auto;
  color: var(--green);
  font-weight: 900;
  letter-spacing: .01em;
  white-space: nowrap;
  text-decoration: none !important;
}
.brand img {
  width: 46px;
  height: 46px;
  object-fit: contain;
}
.brand span {
  color: var(--green);
  font-size: 1.85rem;
  line-height: 1;
}
.brand sup {
  margin-left: 2px;
  font-size: .42em;
  line-height: 0;
  vertical-align: super;
}
.header-actions,
.hero-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.header-actions { margin-left: auto; }
.nav-link,
.nav-button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: #18382a !important;
  padding: 9px 10px;
  font: inherit;
  font-size: .93rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  text-decoration: none !important;
}
.nav-link:hover,
.nav-button:hover {
  background: rgba(46, 125, 50, .08);
}
.btn {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  color: #fff !important;
  padding: 14px 24px;
  font-weight: 900;
  line-height: 1;
  text-align: center;
  text-decoration: none !important;
  box-shadow: 0 18px 38px rgba(33, 66, 49, .18);
}
.btn-doctor { background: var(--doctor); }
.btn-women { background: var(--women); }
.services-dropdown { position: relative; }
.services-menu {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  width: min(760px, calc(100vw - 28px));
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255,255,255,.97);
  box-shadow: var(--shadow);
  list-style: none;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity .2s ease, transform .2s ease;
  backdrop-filter: blur(18px);
  z-index: 1200;
}
.services-dropdown.is-open .services-menu {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.services-menu a {
  min-height: 116px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: 1px solid rgba(28,72,52,.1);
  border-radius: 18px;
  background: linear-gradient(135deg, #fff, #f8fbf8);
  padding: 18px;
  color: var(--ink) !important;
  text-decoration: none !important;
}
.services-menu strong {
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 900;
}
.services-menu span {
  color: var(--muted);
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.35;
}
.menu-icon {
  width: 46px;
  height: 46px;
  display: none;
  place-items: center;
  gap: 5px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  padding: 0;
  cursor: pointer;
}
.menu-icon span {
  width: 30px;
  height: 3px;
  display: block;
  border-radius: 999px;
  background: var(--ink);
  transition: transform .2s ease, opacity .2s ease;
}
.menu-icon[aria-expanded="true"] {
  border: 1px solid rgba(30, 91, 36, .18);
  background: rgba(30, 91, 36, .06);
}
.menu-icon[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.menu-icon[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-icon[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
.menu-panel {
  position: fixed;
  top: 88px;
  right: 14px;
  z-index: 1090;
  width: min(552px, calc(100% - 28px));
  max-height: calc(100dvh - 104px);
  display: none;
  overflow: auto;
  border: 1px solid rgba(28, 72, 52, .12);
  border-radius: 30px;
  background: rgba(255,255,255,.98);
  box-shadow: var(--shadow);
  padding: 26px;
  backdrop-filter: blur(18px);
}
.menu-panel.is-open { display: block; }
.menu-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.menu-panel h2,
.menu-panel h3 {
  margin: 0 0 14px;
  color: var(--ink);
  font-size: 1.04rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.menu-panel h2 {
  font-size: 2rem;
  letter-spacing: -.04em;
  text-transform: none;
}
.menu-close {
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 2rem;
  cursor: pointer;
}
.menu-list {
  display: grid;
  gap: 10px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}
.menu-list a,
.menu-contact a,
.menu-contact span {
  display: block;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  color: var(--ink) !important;
  padding: 13px 16px;
  font-weight: 900;
  text-decoration: none !important;
}
.menu-contact {
  display: grid;
  gap: 10px;
}

.services-section.title,
.services-section {
  width: min(1440px, calc(100% - 24px));
  margin: 12px auto;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(239,249,242,.92) 48%, rgba(245,239,255,.88)) !important;
  border: 0 !important;
  overflow: hidden;
}
.services-section.title {
  padding: clamp(54px, 7vw, 86px) clamp(20px, 5vw, 64px) !important;
}
.section-title,
.services-section.title .section-title,
.services-section h2.section-title,
.hero-text h1,
.corporate-hero h1,
.kb-hero h1,
.contact-section h1,
.faq-hero h1 {
  color: var(--ink) !important;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: clamp(2.45rem, 6vw, 5.2rem) !important;
  line-height: .95 !important;
  letter-spacing: -.055em !important;
  font-weight: 900 !important;
  text-align: center;
}
.hero-text h1 {
  max-width: 980px;
  margin: 0 auto 28px !important;
}
.hero-content,
.services-section .hero-content {
  color: var(--ink);
}
.hero-text p,
.services-section p,
.service-card p,
.info-list li,
.feature p,
.step p {
  color: #394a43;
  font-weight: 650;
}
.hero-image img,
.services-section img,
.service-image img {
  border-radius: 32px !important;
  box-shadow: var(--shadow) !important;
}

#footer-placeholder .section {
  position: relative;
  width: min(1440px, calc(100% - 24px));
  margin: 12px auto;
  padding: clamp(58px, 8vw, 104px) clamp(22px, 5vw, 64px);
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(239,249,242,.92) 48%, rgba(245,239,255,.88));
  overflow: hidden;
}
#footer-placeholder .section h2 {
  max-width: 980px;
  margin: 0 auto 20px;
  color: var(--ink);
  font-size: clamp(2.25rem, 6vw, 4.9rem);
  line-height: .92;
  letter-spacing: -.055em;
  text-align: center;
  font-weight: 900;
}
#footer-placeholder .section-copy {
  max-width: 760px;
  margin: 0 auto 34px;
  color: var(--muted);
  font-size: clamp(1rem, 2.2vw, 1.24rem);
  line-height: 1.45;
  text-align: center;
  font-weight: 800;
}
#footer-placeholder .hero-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  margin: 24px 0 42px;
}
#footer-placeholder .clinic-feature-grid,
#footer-placeholder .process-grid {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
#footer-placeholder .process-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
#footer-placeholder .clinic-feature,
#footer-placeholder .step-card {
  min-height: 178px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: rgba(255, 255, 255, .78);
  padding: 24px;
  color: var(--ink);
  box-shadow: 0 18px 46px rgba(16, 37, 29, .06);
}
#footer-placeholder .clinic-feature strong,
#footer-placeholder .step-card strong {
  color: var(--ink);
  font-size: 1.1rem;
  line-height: 1.15;
  font-weight: 900;
}
#footer-placeholder .clinic-feature span:not(.feature-icon),
#footer-placeholder .step-card span:not(.feature-icon) {
  color: var(--muted);
  font-weight: 750;
  line-height: 1.38;
}
.feature-icon {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(30, 125, 50, .12), rgba(109, 66, 216, .1));
  color: var(--green);
}
.feature-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
#footer-placeholder .ready-cta {
  margin-bottom: 0;
  background: linear-gradient(135deg, #10251d 0%, #1E5B24 48%, #6d42d8 100%);
}
#footer-placeholder .ready-cta h2,
#footer-placeholder .ready-cta .section-copy {
  color: #fff;
}
#footer-placeholder .ready-cta .section-copy { opacity: .86; }

.clinic-footer {
  width: min(1440px, calc(100% - 24px));
  margin: 12px auto 0;
  display: grid;
  grid-template-columns: 1.05fr 1fr 1fr 1.3fr;
  gap: 24px;
  border-radius: 34px;
  background: #10251d;
  color: #ecf5ef;
  padding: clamp(26px, 5vw, 54px);
}
.footer-column {
  border: 0;
  padding: 0;
}
.footer-column summary {
  list-style: none;
  cursor: default;
}
.footer-column summary::-webkit-details-marker { display: none; }
.clinic-footer h3 {
  margin: 0 0 14px;
  color: #fff;
  font-size: 1rem;
  font-weight: 900;
}
.clinic-footer a,
.clinic-footer p {
  display: block;
  margin: 0 0 9px;
  color: rgba(255,255,255,.78) !important;
  font-weight: 750;
  text-decoration: none !important;
}
.clinic-footer a:hover { color: #fff !important; }
.footer-social-mini {
  display: grid;
  gap: 14px;
  margin-top: 20px;
}
.footer-social-label {
  display: block;
  margin-bottom: 8px;
  color: #fff;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.footer-social-icons {
  display: flex;
  align-items: center;
  gap: 10px;
}
.footer-social-icons a,
.footer-social-icons button {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  padding: 0;
  cursor: pointer;
}
.footer-social-icons img {
  width: 20px;
  height: 20px;
  object-fit: contain;
}
.wechat-logo-icon {
  position: relative;
  width: 22px;
  height: 18px;
  display: inline-block;
}
.wechat-logo-icon::before,
.wechat-logo-icon::after {
  content: "";
  position: absolute;
  border-radius: 999px;
}
.wechat-logo-icon::before {
  left: 0;
  top: 0;
  width: 16px;
  height: 13px;
  background: #1aad19;
  box-shadow: inset 4px 4px 0 -2px rgba(255,255,255,.92), inset 10px 4px 0 -2px rgba(255,255,255,.92);
}
.wechat-logo-icon::after {
  right: 0;
  bottom: 0;
  width: 14px;
  height: 11px;
  background: #fff;
  box-shadow: inset 4px 4px 0 -2px #1aad19, inset 9px 4px 0 -2px #1aad19;
}
.site-footer {
  width: min(1440px, calc(100% - 24px));
  margin: 12px auto 0;
  padding: 28px 18px 36px;
  color: #64736d;
  text-align: center;
  font-size: .92rem;
}
.site-footer p { margin: 0; }
.site-footer .bottom-legal-links {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 8px;
  flex-wrap: wrap;
  font-weight: 800;
}
.site-footer .bottom-legal-links a {
  color: #42554d;
  text-decoration: none;
}
.site-footer .bottom-legal-links a:hover {
  color: var(--green-dark);
  text-decoration: underline;
}
.wechat-modal[hidden] { display: none; }
.wechat-modal {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: grid;
  place-items: center;
  padding: 18px;
}
.wechat-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 18, 13, .62);
}
.wechat-modal-content {
  position: relative;
  z-index: 1;
  width: min(420px, 100%);
  border-radius: 24px;
  background: #fff;
  color: var(--ink);
  padding: 24px;
  text-align: center;
  box-shadow: 0 30px 80px rgba(7, 18, 13, .28);
}
.wechat-modal-close {
  position: absolute;
  top: 10px;
  right: 12px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
}
.wechat-modal-content h4 {
  margin: 0 0 14px;
  color: var(--green-dark);
  font-size: 1.2rem;
}
.wechat-qr-image {
  width: min(300px, 100%);
  aspect-ratio: 1;
  height: auto;
  border-radius: 14px;
  object-fit: cover;
  object-position: center 95%;
}
.wechat-account-name,
.wechat-account-id,
.wechat-modal-tip {
  color: var(--ink);
  margin: 8px 0 0;
  font-weight: 700;
}
.wechat-modal-tip {
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.4;
}

@media (max-width: 1024px) {
  .nav-about,
  .services-dropdown,
  .header-actions > .nav-link,
  .header-actions > .nav-button { display: none; }
  .menu-icon { display: grid; }
  .header-inner { min-height: 84px; }
  .header-actions { margin-left: auto; }
  .clinic-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #footer-placeholder .clinic-feature-grid,
  #footer-placeholder .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  [id] { scroll-margin-top: 92px; }
  .header-inner {
    width: min(100% - 14px, 1180px);
    min-height: 78px;
    gap: 6px;
  }
  .brand img { width: 38px; height: 38px; }
  .brand span { font-size: 1.28rem; }
  .header-actions .btn {
    min-height: 44px;
    min-width: 86px;
    border-radius: 14px;
    padding: 8px 10px;
    font-size: .78rem;
    line-height: 1.05;
  }
  .menu-panel {
    top: 88px;
    right: 7px;
    width: calc(100% - 14px);
    max-height: calc(100dvh - 104px);
    border-radius: 28px;
    padding: 20px;
  }
  .services-section.title,
  .services-section,
  #footer-placeholder .section {
    width: 100%;
    margin: 10px 0;
    padding: 52px 20px !important;
  }
  .section-title,
  .services-section.title .section-title,
  .services-section h2.section-title,
  .hero-text h1,
  .corporate-hero h1,
  .kb-hero h1,
  .contact-section h1,
  .faq-hero h1 {
    font-size: clamp(2.2rem, 13vw, 3.8rem) !important;
    line-height: .98 !important;
  }
  #footer-placeholder .section h2 {
    font-size: clamp(2.1rem, 14vw, 3.8rem);
  }
  #footer-placeholder .clinic-feature-grid,
  #footer-placeholder .process-grid,
  .clinic-footer {
    grid-template-columns: 1fr;
  }
  #footer-placeholder .clinic-feature,
  #footer-placeholder .step-card {
    min-height: auto;
    border-radius: 22px;
    padding: 20px;
  }
  #footer-placeholder .hero-actions {
    flex-direction: column;
    margin-bottom: 30px;
  }
  #footer-placeholder .btn { width: min(260px, 100%); }
  .clinic-footer {
    width: 100%;
    border-radius: 30px;
    margin-top: 10px;
    gap: 8px;
  }
  .footer-column {
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 18px;
    padding: 0;
  }
  .footer-column summary {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    padding: 14px 16px;
  }
  .footer-column summary::after {
    content: "+";
    color: rgba(255,255,255,.78);
    font-size: 1.25rem;
    font-weight: 900;
  }
  .footer-column[open] summary::after { content: "-"; }
  .footer-column h3 { margin: 0; }
  .footer-column-content { padding: 0 16px 16px; }
}

/* Homepage-identical shared header/menu override */
.site-header { position: sticky !important; top: 0 !important; z-index: 1100 !important; background: rgba(255,255,255,.88) !important; border-bottom: 1px solid rgba(16,37,29,.08) !important; backdrop-filter: blur(18px) !important; box-shadow: none !important; }
.site-header .header-inner { width: min(1180px, calc(100% - 28px)) !important; min-height: 76px !important; margin: 0 auto !important; display: flex !important; align-items: center !important; gap: 16px !important; }
.site-header .brand { display: inline-flex !important; align-items: center !important; gap: 10px !important; margin-right: auto !important; color: #2E7D32 !important; font-weight: 900 !important; letter-spacing: .01em !important; white-space: nowrap !important; text-decoration: none !important; }
.site-header .brand img { width: 46px !important; height: 46px !important; object-fit: contain !important; }
.site-header .brand span { color: #2E7D32 !important; font-size: 1.85rem !important; line-height: 1 !important; }
.site-header .brand sup { margin-left: 2px !important; font-size: .42em !important; line-height: 0 !important; vertical-align: super !important; }
.site-header .header-actions { display: flex !important; align-items: center !important; gap: 10px !important; margin-left: auto !important; }
.site-header .nav-link, .site-header .nav-button { min-height: 42px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; border: 1px solid transparent !important; border-radius: 999px !important; background: transparent !important; color: #18382a !important; padding: 9px 10px !important; font: inherit !important; font-size: .92rem !important; font-weight: 900 !important; line-height: 1 !important; white-space: nowrap !important; cursor: pointer !important; text-decoration: none !important; }
.site-header .nav-link:hover, .site-header .nav-button:hover { background: rgba(46,125,50,.08) !important; }
.site-header .nav-lang { gap: 6px !important; border-color: rgba(46,125,50,.16) !important; background: #f4fbf5 !important; color: #1E5B24 !important; padding-inline: 13px !important; }
.site-header .nav-button .arrow, .site-header .nav-lang .arrow { margin-left: 6px !important; font-size: .78em !important; line-height: 1 !important; transition: transform .18s ease !important; }
.site-header .nav-button[aria-expanded="true"] .arrow, .site-header .nav-lang[aria-expanded="true"] .arrow, .site-header .services-dropdown-wrap:hover .nav-button .arrow, .site-header .services-dropdown-wrap:focus-within .nav-button .arrow, .site-header .services-dropdown-wrap.is-open .nav-button .arrow { transform: rotate(180deg) !important; }
.site-header .btn { min-height: 52px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; border: 0 !important; border-radius: 999px !important; color: #fff !important; padding: 14px 24px !important; font-weight: 900 !important; line-height: 1 !important; text-align: center !important; text-decoration: none !important; box-shadow: 0 18px 38px rgba(33,66,49,.18) !important; }
.site-header .btn-doctor { background: linear-gradient(135deg, #2E7D32 0%, #1E5B24 100%) !important; }
.site-header .btn-women { background: linear-gradient(135deg, #d93f9a 0%, #6d42d8 100%) !important; }
.site-header .language-dropdown-wrap, .site-header .services-dropdown-wrap { position: relative !important; display: inline-flex !important; align-items: center !important; }
.site-header .services-dropdown, .site-header .language-dropdown { position: absolute !important; top: 100% !important; z-index: 1200 !important; margin: 0 !important; padding: 10px !important; list-style: none !important; border: 1px solid rgba(28,72,52,.14) !important; border-radius: 14px !important; background: #fff !important; box-shadow: 0 18px 42px rgba(24,50,35,.16) !important; opacity: 0 !important; transform: translateY(6px) !important; pointer-events: none !important; transition: opacity .14s ease, transform .14s ease !important; }
.site-header .services-dropdown { left: 0 !important; min-width: 230px !important; }
.site-header .language-dropdown { right: 0 !important; min-width: 154px !important; padding: 8px !important; }
.site-header .services-dropdown-wrap:hover .services-dropdown, .site-header .services-dropdown-wrap:focus-within .services-dropdown, .site-header .services-dropdown-wrap.is-open .services-dropdown, .site-header .language-dropdown-wrap:hover .language-dropdown, .site-header .language-dropdown-wrap:focus-within .language-dropdown, .site-header .language-dropdown-wrap.is-open .language-dropdown { opacity: 1 !important; transform: translateY(0) !important; pointer-events: auto !important; }
.site-header .services-dropdown li, .site-header .language-dropdown li { padding: 0 !important; }
.site-header .services-dropdown a, .site-header .language-dropdown a, .site-header .language-dropdown button { width: 100% !important; min-height: 38px !important; display: flex !important; align-items: center !important; border: 0 !important; border-radius: 10px !important; background: transparent !important; color: #18382a !important; padding: 8px 10px !important; font: inherit !important; font-size: .92rem !important; font-weight: 850 !important; text-align: left !important; white-space: nowrap !important; cursor: pointer !important; text-decoration: none !important; }
.site-header .services-dropdown a:hover, .site-header .services-dropdown a:focus, .site-header .language-dropdown a:hover, .site-header .language-dropdown a:focus, .site-header .language-dropdown button:hover, .site-header .language-dropdown button:focus { background: rgba(46,125,50,.08) !important; color: #1E5B24 !important; outline: none !important; }
.site-header .language-dropdown [aria-current="true"] { background: #edf8f0 !important; color: #1E5B24 !important; }
.site-header .language-label-mobile, .site-header .mobile-label { display: none !important; }
.site-header .menu-icon { width: 42px !important; height: 42px !important; display: none !important; align-items: center !important; justify-content: center !important; border: 0 !important; background: transparent !important; color: #1d2c26 !important; cursor: pointer !important; position: relative !important; flex-shrink: 0 !important; padding: 0 !important; }
.site-header .menu-icon span { width: 26px !important; height: 2.5px !important; display: block !important; border-radius: 999px !important; background: currentColor !important; position: relative !important; transition: background-color .18s ease !important; }
.site-header .menu-icon span::before, .site-header .menu-icon span::after { content: "" !important; position: absolute !important; left: 0 !important; width: 26px !important; height: 2.5px !important; border-radius: 999px !important; background: currentColor !important; transition: transform .18s ease !important; }
.site-header .menu-icon span::before { transform: translateY(-8px) !important; }
.site-header .menu-icon span::after { transform: translateY(8px) !important; }
.site-header .menu-icon[aria-expanded="true"] { border: 1px solid #f2a000 !important; border-radius: 10px !important; background: #fff !important; }
.site-header .menu-icon[aria-expanded="true"] span { background: transparent !important; }
.site-header .menu-icon[aria-expanded="true"] span::before { transform: rotate(45deg) !important; }
.site-header .menu-icon[aria-expanded="true"] span::after { transform: rotate(-45deg) !important; }
.menu-panel { position: fixed !important; top: 88px !important; right: 14px !important; z-index: 1090 !important; width: min(552px, calc(100% - 28px)) !important; max-height: calc(100dvh - 104px) !important; display: none !important; overflow: auto !important; border: 1px solid rgba(28,72,52,.12) !important; border-radius: 30px !important; background: rgba(255,255,255,.98) !important; box-shadow: 0 26px 70px rgba(33,66,49,.12) !important; padding: 26px !important; backdrop-filter: blur(18px) !important; }
.menu-panel.is-open { display: block !important; }
.menu-panel h2, .menu-panel h3 { margin: 0 0 14px !important; color: #10251d !important; }
.menu-panel h2 { font-size: 1.75rem !important; line-height: 1 !important; }
.menu-panel h3 { margin-top: 24px !important; color: #6b7280 !important; font-size: .9rem !important; letter-spacing: .08em !important; text-transform: uppercase !important; }
.menu-close { position: absolute !important; top: 14px !important; right: 18px !important; border: 0 !important; background: transparent !important; color: #10251d !important; font-size: 2rem !important; line-height: 1 !important; cursor: pointer !important; }
.menu-list { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.menu-list a, .menu-language-list button, .menu-language-list a { width: 100% !important; min-height: 48px !important; display: flex !important; align-items: center !important; border: 1px solid rgba(28,72,52,.14) !important; border-radius: 14px !important; background: #fff !important; color: #10251d !important; padding: 12px 14px !important; font: inherit !important; font-weight: 900 !important; text-decoration: none !important; cursor: pointer !important; }
.menu-list a:hover, .menu-language-list button:hover, .menu-language-list a:hover, .menu-language-list [aria-current="true"] { border-color: rgba(46,125,50,.24) !important; background: #edf8f0 !important; color: #1E5B24 !important; }
.menu-contact { display: grid !important; gap: 8px !important; color: #5f6f69 !important; font-weight: 800 !important; }
.menu-contact a { color: #1E5B24 !important; text-decoration: none !important; }
body.menu-open { overflow: hidden !important; }
@media (max-width: 1020px) { .site-header .header-inner { min-height: 84px !important; } .site-header .header-actions { margin-left: auto !important; } .site-header .header-actions .btn, .site-header .nav-link, .site-header .nav-button { min-height: 40px !important; padding: 9px 12px !important; font-size: .78rem !important; } .site-header .menu-icon { display: grid !important; } }
@media (max-width: 680px) { .site-header .header-inner { width: min(100% - 14px, 1180px) !important; min-height: 78px !important; gap: 6px !important; } .site-header .brand img { width: 38px !important; height: 38px !important; } .site-header .brand span { font-size: 1.32rem !important; } .site-header .header-actions { gap: 3px !important; max-width: none !important; overflow: visible !important; } .site-header .nav-services, .site-header .nav-women, .site-header .nav-about, .site-header .language-dropdown-wrap, .site-header .services-dropdown-wrap { display: none !important; } .site-header .header-actions .btn, .site-header .nav-link { min-height: 32px !important; border-radius: 10px !important; padding: 6px 8px !important; font-size: .66rem !important; white-space: normal !important; } .site-header .header-actions .btn { width: auto !important; min-width: 0 !important; } .site-header .desktop-label { display: none !important; } .site-header .mobile-label { display: inline !important; } .site-header .language-label-mobile { display: inline !important; } .site-header .menu-icon { width: 38px !important; height: 38px !important; } .menu-close { display: none !important; } .menu-panel { top: 88px !important; right: 7px !important; width: calc(100% - 14px) !important; max-height: calc(100dvh - 104px) !important; border-radius: 28px !important; padding: 20px !important; } .menu-list { grid-template-columns: 1fr !important; } .menu-language-list { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 6px !important; } .menu-language-list button, .menu-language-list a { min-height: 38px !important; justify-content: center !important; border-radius: 12px !important; padding: 8px 7px !important; font-size: .82rem !important; line-height: 1 !important; text-align: center !important; white-space: nowrap !important; } }
@media (max-width: 410px) { .site-header .header-inner { gap: 5px !important; width: calc(100% - 10px) !important; } .site-header .brand { gap: 7px !important; } .site-header .brand img { width: 34px !important; height: 34px !important; } .site-header .brand span { font-size: 1.18rem !important; } .site-header .header-actions .btn { min-height: 50px !important; min-width: 78px !important; padding: 7px 8px !important; font-size: .68rem !important; } .site-header .menu-icon { width: 34px !important; height: 44px !important; } .site-header .menu-icon span, .site-header .menu-icon span::before, .site-header .menu-icon span::after { width: 25px !important; } }

/* Fix expanded hamburger conflict from legacy nth-child rules. */
.site-header .menu-icon[aria-expanded="true"] span {
  transform: none !important;
  background: transparent !important;
}
.site-header .menu-icon[aria-expanded="true"] span::before {
  transform: rotate(45deg) !important;
}
.site-header .menu-icon[aria-expanded="true"] span::after {
  transform: rotate(-45deg) !important;
}

/* Homepage-style body treatment for legacy doctors/about pages. */
.quote-section,
.doctor-section,
.doctor-section-lily {
  width: min(1440px, calc(100% - 24px));
  margin: 12px auto;
  border-radius: 0;
  background: #fff;
  color: var(--ink);
  padding: clamp(48px, 7vw, 96px) clamp(18px, 5vw, 72px) !important;
}
.quote-container,
.doctor-container {
  width: min(1040px, 100%);
  margin: 0 auto;
}
.quote-title,
.doctor-info h3 {
  margin: 0 0 22px;
  color: var(--ink) !important;
  font-size: clamp(2.6rem, 7vw, 5.4rem) !important;
  font-weight: 900 !important;
  letter-spacing: -.06em;
  line-height: .95;
  text-align: center;
}
.quote-text {
  margin: 0 auto;
  border: 1px solid var(--line);
  border-radius: 32px;
  background: linear-gradient(135deg, rgba(46,125,50,.05), rgba(109,66,216,.07));
  padding: clamp(24px, 4vw, 48px);
  box-shadow: var(--shadow);
}
.quote-text p,
.doctor-info p,
.timeline-desc {
  color: #33463e !important;
  font-size: clamp(1rem, 1.55vw, 1.18rem) !important;
  font-weight: 700;
  line-height: 1.65 !important;
}
.quote-source {
  display: block;
  margin-top: 22px;
  color: var(--green-dark) !important;
  font-weight: 900;
}
.doctor-container {
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(20px, 5vw, 56px);
  border: 1px solid var(--line);
  border-radius: 34px;
  background: linear-gradient(135deg, #fff, #f8fbf8);
  padding: clamp(22px, 4vw, 42px);
  box-shadow: var(--shadow);
}
.doctor-image img {
  width: 100%;
  max-width: 300px;
  display: block;
  margin: 0 auto;
  border-radius: 28px;
  object-fit: cover;
  box-shadow: 0 22px 48px rgba(33,66,49,.14);
}
.doctor-info h3 {
  text-align: left;
  font-size: clamp(2.1rem, 5vw, 4rem) !important;
  letter-spacing: -.045em;
}
.degrees {
  color: var(--muted) !important;
  font-weight: 900 !important;
}
.university-logos {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.university-logos img {
  max-height: 58px;
  width: auto;
  object-fit: contain;
}
.timeline {
  position: relative;
  display: grid;
  gap: 16px;
  margin: 26px 0 0 !important;
  padding: 0 !important;
  list-style: none;
}
.timeline::before { display: none !important; }
.timeline-item,
.timeline-item.left,
.timeline-item.right {
  width: 100% !important;
  left: auto !important;
  right: auto !important;
  padding: 0 !important;
}
.timeline-content {
  border: 1px solid var(--line) !important;
  border-radius: 22px !important;
  background: #fff !important;
  box-shadow: 0 18px 38px rgba(33,66,49,.09) !important;
  padding: 22px !important;
}
.timeline-icon {
  background: #edf8f0 !important;
  color: var(--green-dark) !important;
}
.timeline-title {
  color: var(--ink) !important;
  font-weight: 900 !important;
}
.timeline-date {
  color: var(--blue) !important;
  font-weight: 900 !important;
}
.timeline-link {
  color: #1a73e8 !important;
  font-weight: 900 !important;
}
@media (max-width: 680px) {
  .quote-section,
  .doctor-section,
  .doctor-section-lily {
    width: 100%;
    margin: 10px 0;
    padding: 48px 18px !important;
  }
  .doctor-container {
    grid-template-columns: 1fr;
    text-align: center;
    border-radius: 28px;
  }
  .doctor-info h3 { text-align: center; }
  .quote-text { border-radius: 26px; }
}

/* Final about-page typography cleanup after legacy quote styles. */
.quote-title,
.doctor-info h3 {
  letter-spacing: -.035em !important;
  word-spacing: .08em !important;
}
.quote-text,
.quote-text p,
.quote-text blockquote,
.quote-text * {
  font-style: normal !important;
}
.quote-text::before,
.quote-text::after,
.quote-section::before,
.quote-section::after {
  display: none !important;
  content: none !important;
}
.quote-text {
  position: relative !important;
  text-align: left !important;
}
@media (max-width: 680px) {
  .quote-title,
  .doctor-info h3 {
    letter-spacing: -.025em !important;
    word-spacing: .1em !important;
  }
  .quote-text p,
  .doctor-info p,
  .timeline-desc {
    font-size: 1rem !important;
    line-height: 1.58 !important;
  }
}

/* About page final layout: align university logos and make publications a real card grid. */
#doctor-lily-vu .doctor-container,
#doctor-dong-zhao .doctor-container {
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr) !important;
  grid-template-areas:
    "photo info"
    "photo logos" !important;
}
#doctor-lily-vu .doctor-image,
#doctor-dong-zhao .doctor-image {
  grid-area: photo !important;
}
#doctor-lily-vu .doctor-info,
#doctor-dong-zhao .doctor-info {
  grid-area: info !important;
  align-self: end !important;
}
#doctor-lily-vu .university-logos,
#doctor-dong-zhao .university-logos {
  grid-area: logos !important;
  justify-content: flex-start !important;
  align-items: center !important;
  margin-top: 10px !important;
  min-height: 64px !important;
}
#doctor-lily-vu .university-logos img,
#doctor-dong-zhao .university-logos img {
  max-height: 54px !important;
  max-width: 180px !important;
  width: auto !important;
  object-fit: contain !important;
}
#doctor-dong-zhao .university-logos img#ubc-logo {
  max-height: 48px !important;
}
#our-publications .doctor-container {
  display: block !important;
  width: min(1180px, 100%) !important;
  max-width: 1180px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}
#our-publications .doctor-info {
  width: 100% !important;
  max-width: none !important;
}
#our-publications .doctor-info > h3 {
  margin-bottom: 28px !important;
  text-align: center !important;
}
#our-publications .doctor-info > p {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
#our-publications .timeline {
  position: static !important;
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
#our-publications .timeline::before,
#our-publications .timeline::after,
#our-publications .timeline-item::before,
#our-publications .timeline-item::after,
#our-publications .timeline-content::before,
#our-publications .timeline-content::after {
  display: none !important;
  content: none !important;
}
#our-publications .timeline-item,
#our-publications .timeline-item.left,
#our-publications .timeline-item.right {
  position: static !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  float: none !important;
  clear: none !important;
}
#our-publications .timeline-content,
#our-publications .timeline-item.left .timeline-content,
#our-publications .timeline-item.right .timeline-content {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 260px !important;
  display: grid !important;
  grid-template-rows: auto auto auto 1fr !important;
  gap: 10px !important;
  margin: 0 !important;
  border: 1px solid var(--line) !important;
  border-radius: 24px !important;
  background: linear-gradient(135deg, #fff, #f8fbf8) !important;
  box-shadow: 0 18px 38px rgba(33,66,49,.09) !important;
  padding: 22px !important;
  text-align: left !important;
  transform: none !important;
}
#our-publications .timeline-icon {
  position: static !important;
  width: 44px !important;
  height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 14px !important;
  background: #edf8f0 !important;
  color: var(--green-dark) !important;
  box-shadow: none !important;
  transform: none !important;
}
#our-publications .timeline-title {
  color: var(--ink) !important;
  font-size: 1.08rem !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  overflow-wrap: anywhere !important;
}
#our-publications .timeline-date {
  color: var(--blue) !important;
  font-size: .95rem !important;
  font-weight: 900 !important;
}
#our-publications .timeline-desc {
  color: #33463e !important;
  font-size: .94rem !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}
#our-publications .timeline-link {
  display: inline-flex !important;
  margin-top: 8px !important;
  color: #1a73e8 !important;
  font-weight: 900 !important;
}
@media (max-width: 760px) {
  #doctor-lily-vu .doctor-container,
  #doctor-dong-zhao .doctor-container {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "photo"
      "info"
      "logos" !important;
  }
  #doctor-lily-vu .university-logos,
  #doctor-dong-zhao .university-logos {
    justify-content: center !important;
    min-height: 52px !important;
  }
  #doctor-lily-vu .university-logos img,
  #doctor-dong-zhao .university-logos img {
    max-height: 44px !important;
    max-width: 150px !important;
  }
  #doctor-dong-zhao .university-logos img#ubc-logo { max-height: 40px !important; }
  #our-publications .timeline {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  #our-publications .timeline-content,
  #our-publications .timeline-item.left .timeline-content,
  #our-publications .timeline-item.right .timeline-content {
    min-height: 0 !important;
    border-radius: 22px !important;
    padding: 18px !important;
  }
}

/* Backup selector for repaired publications markup. */
.publications-section .doctor-container { display: block !important; width: min(1180px, 100%) !important; max-width: 1180px !important; border: 0 !important; background: transparent !important; box-shadow: none !important; padding: 0 !important; }
.publications-section .doctor-info { width: 100% !important; max-width: none !important; }
.publications-section .doctor-info > h3 { text-align: center !important; }
.publications-section .publications-list-wrap { width: 100% !important; display: block !important; }
.publications-section .timeline { position: static !important; width: 100% !important; display: grid !important; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important; gap: 18px !important; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.publications-section .timeline::before, .publications-section .timeline::after, .publications-section .timeline-item::before, .publications-section .timeline-item::after { display: none !important; content: none !important; }
.publications-section .timeline-item, .publications-section .timeline-item.left, .publications-section .timeline-item.right { position: static !important; width: auto !important; max-width: none !important; min-width: 0 !important; left: auto !important; right: auto !important; margin: 0 !important; padding: 0 !important; transform: none !important; float: none !important; clear: none !important; }
.publications-section .timeline-content, .publications-section .timeline-item.left .timeline-content, .publications-section .timeline-item.right .timeline-content { position: relative !important; width: 100% !important; height: 100% !important; min-height: 260px !important; left: auto !important; right: auto !important; display: grid !important; grid-template-rows: auto auto auto 1fr !important; gap: 10px !important; margin: 0 !important; border-radius: 24px !important; padding: 22px !important; text-align: left !important; transform: none !important; }
@media (max-width: 760px) { .publications-section .timeline { grid-template-columns: 1fr !important; } .publications-section .timeline-content, .publications-section .timeline-item.left .timeline-content, .publications-section .timeline-item.right .timeline-content { min-height: 0 !important; padding: 18px !important; } }

/* Final about-page publication layout guard: override legacy alternating timeline widths. */
body #our-publications.publications-section .timeline {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
  max-width: 1180px !important;
  width: 100% !important;
}
body #our-publications.publications-section .timeline-item,
body #our-publications.publications-section .timeline-item.left,
body #our-publications.publications-section .timeline-item.right {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}
body #our-publications.publications-section .timeline-content,
body #our-publications.publications-section .timeline-item.left .timeline-content,
body #our-publications.publications-section .timeline-item.right .timeline-content {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  margin: 0 !important;
}
@media (max-width: 900px) {
  body #our-publications.publications-section .timeline {
    grid-template-columns: 1fr !important;
  }
}

/* About page: UniMelb mark is a compact portrait logo, so scale it up separately. */
#doctor-lily-vu .university-logos img#unimelb-logo {
  max-height: 96px !important;
  max-width: 170px !important;
  width: auto !important;
}
@media (max-width: 760px) {
  #doctor-lily-vu .university-logos {
    min-height: 92px !important;
  }
  #doctor-lily-vu .university-logos img#unimelb-logo {
    max-height: 82px !important;
    max-width: 150px !important;
  }
}
