/* Base & Grain Texture */
body { background-color: #F4F2EC; color: #121F17; overflow-x: hidden; margin: 0; padding: 0; }
body::after {
    content: ""; position: fixed; inset: 0; width: 100vw; height: 100vh;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
    opacity: 0.035; pointer-events: none; z-index: 9999;
}
::selection { background-color: #121F17; color: #F4F2EC; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

/* Premium Multi-Trigger Reveals */
.reveal-up { opacity: 0; transform: translateY(40px); transition: opacity 1s cubic-bezier(0.25, 1, 0.5, 1), transform 1s cubic-bezier(0.25, 1, 0.5, 1); will-change: opacity, transform; }
.reveal-up.is-visible { opacity: 1; transform: translateY(0); }
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }

/* Header Nav & Crisper Hamburger */
.hamburger-menu { width: 18px; height: 10px; position: relative; display: flex; flex-direction: column; justify-content: space-between; cursor: pointer; }
.hamburger-line { width: 100%; height: 1.5px; background-color: #121F17; transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1); transform-origin: center; border-radius: 2px; }
.menu-open .hamburger-line:first-child { transform: translateY(4.25px) rotate(45deg); }
.menu-open .hamburger-line:last-child { transform: translateY(-4.25px) rotate(-45deg); }

.nav-card { border-radius: 1rem; position: relative; display: flex; flex-direction: column; padding: 24px; gap: 12px; user-select: none; width: 220px; transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.4s ease; }
.nav-card-label { font-family: 'Satoshi', sans-serif; font-weight: 500; font-size: 1.25rem; }
.nav-card-links { margin-top: auto; display: flex; flex-direction: column; gap: 10px; }
.nav-card-link { font-size: 0.85rem; cursor: pointer; text-decoration: none; transition: opacity 0.3s ease; display: inline-flex; align-items: center; gap: 8px; opacity: 0.6; }
.nav-card-link:hover { opacity: 1; }

/* Consistent Premium Buttons */
.btn-premium { position: relative; overflow: hidden; border: 1px solid #121F17; color: #121F17; background-color: transparent; transition: color 0.4s ease, border-color 0.4s ease; z-index: 1; }
.btn-premium::before { content: ''; position: absolute; top: 100%; left: 0; width: 100%; height: 100%; background-color: #121F17; transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1); z-index: -1; border-radius: 50% 50% 0 0; }
.btn-premium:hover::before { transform: translateY(-100%); border-radius: 0; }
.btn-premium:hover { color: #F4F2EC; border-color: #121F17; }
.btn-premium-dark { border-color: rgba(244, 242, 236, 0.3); color: #F4F2EC; }
.btn-premium-dark::before { background-color: #F4F2EC; }
.btn-premium-dark:hover { color: #121F17; border-color: #F4F2EC; }

.btn-premium-accent { border-color: #121F17; color: #F4F2EC; background-color: #121F17; }
.btn-premium-accent::before { background-color: #F4F2EC; }
.btn-premium-accent:hover { color: #121F17; border-color: #121F17; }

/* Service & Doctor Cards */
.service-card { position: relative; overflow: hidden; transition: border-color 0.4s ease; z-index: 1; display: flex; flex-direction: column; justify-content: flex-end; }
.service-card::before { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 0%; background-color: #121F17; transition: height 0.5s cubic-bezier(0.77, 0, 0.175, 1); z-index: -1; }
.service-card:hover::before { height: 100%; }
.service-card h3 { transition: color 0.4s ease; }
.service-card:hover h3 { color: #F4F2EC; }
.service-arrow-wrap { position: absolute; top: 2rem; right: 2rem; transition: all 0.4s ease; }
.service-card:hover .service-arrow-wrap { background-color: #F4F2EC; color: #121F17; border-color: #F4F2EC; transform: scale(1.1); }
.service-card:hover .service-arrow-wrap svg { transform: rotate(0deg); }

.doctor-card .absolute.bottom-4.right-4 { transition: all 0.5s ease; }
.doctor-card:hover .absolute.bottom-4.right-4 { opacity: 1; transform: translateY(0); }
.doctor-card:hover .absolute.inset-0.bg-black\/0 { background-color: rgba(0,0,0,0.1); }
.doctor-card:hover img { transform: scale(1); }

/* Location Cards */
.loc-card { transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.4s ease, border-color 0.4s ease; }
.loc-card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px -10px rgba(18, 31, 23, 0.08); border-color: rgba(18, 31, 23, 0.3); }

/* Gallery Hover Effects */
.gallery-item { position: relative; overflow: hidden; border-radius: 1.5rem; cursor: pointer; }
.gallery-item img { transition: transform 0.7s cubic-bezier(0.25, 1, 0.5, 1); width: 100%; height: 100%; object-fit: cover; }
.gallery-item:hover img { transform: scale(1.05); }
.gallery-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(18, 31, 23, 0.8) 0%, rgba(18, 31, 23, 0) 50%); opacity: 0; transition: opacity 0.5s ease; display: flex; flex-direction: column; justify-content: flex-end; padding: 2rem; }
.gallery-item:hover .gallery-overlay { opacity: 1; }
.gallery-text { transform: translateY(20px); transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1); }
.gallery-item:hover .gallery-text { transform: translateY(0); }

/* Service specific styles */
.service-list-item { position: relative; padding-left: 1.5rem; }
.service-list-item::before { content: '\2014'; position: absolute; left: 0; color: #121F17; font-weight: 700; }

/* --- MOBILE SPECIFIC UPGRADES --- */
.hide-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

@media (max-width: 768px) {
    #main-header { padding: 1.5rem 1.25rem; background: transparent !important; }
    #main-logo, #menu-toggle { background: transparent !important; border: none !important; box-shadow: none !important; padding: 0 !important; backdrop-filter: none !important; }
    #main-logo { opacity: 1 !important; transform: translateY(0) !important; pointer-events: auto !important; }
    
    #menu-dropdown { top: 4.5rem; background: #121F17; padding: 1rem; border-radius: 1.5rem; }
    .nav-card { width: 100%; min-height: auto; padding: 1rem; background: transparent !important; box-shadow: none !important; }
    .nav-card-label { font-size: 1rem; opacity: 0.6; margin-bottom: 0.5rem; }
    .nav-card-link { font-size: 1.1rem; opacity: 1; font-weight: 500; }

    .mobile-slider {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        padding-top: 1rem;
        padding-bottom: 2rem;
        padding-right: 1.5rem; 
    }
    .mobile-slider > * {
        flex: 0 0 82% !important; 
    }

    .doctor-card.reveal-up { transition-delay: 0ms !important; transform: translateY(20px); }

    .review-stack-container {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        padding-bottom: 0;
    }
    .review-stack-card {
        position: relative;
        top: auto;
        margin-bottom: 0;
        transform: none !important;
        opacity: 1 !important;
        filter: none !important;
    }

    .gallery-overlay { opacity: 1; background: linear-gradient(to top, rgba(18, 31, 23, 0.7) 0%, rgba(18, 31, 23, 0) 60%); }
    .gallery-text { transform: translateY(0); }
    
    .delay-100, .delay-200, .delay-300 { transition-delay: 0ms !important; }
}
