/* =====================================================================
   index.css - ALS Landing Page Styles
   Extracted from index.php for maintainability
   ===================================================================== */

        body {
            zoom: var(--font-scale, 1);
        }
        /* Fonts are served locally via assets/vendor/fonts/all-fonts.css for instant offline & high-speed rendering */

        :root {
            /* Core Palette */
            --indigo:       #4f46e5;
            --indigo-dark:  #3730a3;
            --indigo-light: #818cf8;
            --teal:         #0d9488;
            --teal-light:   #2dd4bf;
            --amber:        #f59e0b;
            --rose:         #f43f5e;

            /* Semantic */
            --primary:      var(--indigo);
            --primary-rgb:  79, 70, 229;
            --accent:       var(--teal);
            --accent-rgb:   13, 148, 136;

            /* Neutrals */
            --navy-950:  #0b0f1a;
            --navy-900:  #0f172a;
            --navy-800:  #1e293b;
            --navy-700:  #334155;
            --navy-600:  #475569;
            --navy-400:  #94a3b8;
            --navy-200:  #e2e8f0;
            --navy-100:  #f1f5f9;
            --navy-50:   #f8fafc;

            /* Surface */
            --bg:         #f5f7fb;
            --surface:    #ffffff;
            --surface-2:  #fafbff;

            /* Gradients */
            --grad-primary:  linear-gradient(135deg, var(--indigo) 0%, #7c3aed 100%);
            --grad-accent:   linear-gradient(135deg, var(--teal) 0%, var(--teal-light) 100%);
            --grad-hero:     linear-gradient(135deg, #090a0f 0%, #0d1222 45%, #081622 100%);
            --grad-mesh:     radial-gradient(ellipse 80% 60% at 70% 0%, rgba(79,70,229,.22) 0%, transparent 70%),
                             radial-gradient(ellipse 60% 50% at 10% 90%, rgba(13,148,136,.16) 0%, transparent 70%);

            /* Shadows */
            --shadow-xs:  0 1px 3px rgba(0,0,0,.04), 0 1px 2px rgba(0,0,0,.03);
            --shadow-sm:  0 4px 12px rgba(0,0,0,.05), 0 2px 6px rgba(0,0,0,.04);
            --shadow-md:  0 10px 30px rgba(0,0,0,.07), 0 4px 12px rgba(0,0,0,.05);
            --shadow-lg:  0 20px 50px rgba(0,0,0,.09), 0 8px 24px rgba(0,0,0,.06);
            --shadow-xl:  0 35px 70px rgba(0,0,0,.13), 0 15px 35px rgba(0,0,0,.08);
            --shadow-glow-primary: 0 12px 40px -4px rgba(79,70,229,.35);
            --shadow-glow-accent:  0 12px 40px -4px rgba(13,148,136,.30);

            /* Borders */
            --border: rgba(15,23,42,.07);
            --border-accent: rgba(79,70,229,.15);

            /* Radius */
            --radius-sm:  8px;
            --radius-md:  14px;
            --radius-lg:  22px;
            --radius-xl:  32px;
            --radius-full: 9999px;

            /* Transitions */
            --ease:    cubic-bezier(.16,1,.3,1);
            --ease-in: cubic-bezier(.4,0,1,1);
        }

        /* ══ RESET & BASE ══ */
        *, *::before, *::after { box-sizing: border-box; }

        html {
            scroll-behavior: smooth;
            font-size: 16px;
            margin: 0 !important;
            padding: 0 !important;
        }

        body {
            font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
            background: linear-gradient(160deg, #f0f4ff 0%, #e8fdf5 50%, #f5f0ff 100%) !important;
            background-attachment: fixed !important;
            color: var(--navy-900);
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            letter-spacing: -.01em;
            margin: 0 !important;
            padding: 0 !important;
        }

        /* Custom Scrollbar */
        ::-webkit-scrollbar { width: 7px; }
        ::-webkit-scrollbar-track { background: var(--navy-100); }
        ::-webkit-scrollbar-thumb {
            background: var(--indigo);
            border-radius: 6px;
            border: 2px solid var(--navy-100);
        }
        ::-webkit-scrollbar-thumb:hover { background: var(--teal); }

        /* ══════════════════════════════════════════════════════════
           UTILITY CLASSES
           ══════════════════════════════════════════════════════════ */
        .text-navy  { color: var(--navy-900) !important; }
        .text-muted { color: var(--navy-400) !important; }
        .fw-extrabold { font-weight: 800 !important; }

        /* Gradient text */
        .grad-text {
            background: var(--grad-primary);
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
        }
        .grad-text-accent {
            background: linear-gradient(135deg, var(--teal-light) 0%, #a5b4fc 100%);
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
            display: inline-block;
            vertical-align: bottom;
            min-height: 1.15em;
        }

        /* Section tag pill */
        .section-tag {
            display: inline-flex;
            align-items: center;
            gap: 7px;
            font-size: .72rem;
            font-weight: 800;
            letter-spacing: 1.4px;
            text-transform: uppercase;
            padding: 6px 15px;
            border-radius: var(--radius-full);
            margin-bottom: 18px;
            background: rgba(79,70,229,.08);
            color: var(--indigo);
            border: 1.5px solid rgba(79,70,229,.14);
        }
        .section-tag-green {
            background: rgba(13,148,136,.08);
            color: var(--teal);
            border-color: rgba(13,148,136,.15);
        }
        .section-tag-amber {
            background: rgba(245,158,11,.08);
            color: var(--amber);
            border-color: rgba(245,158,11,.14);
        }

        /* Glass card */
        .glass {
            background: rgba(255,255,255,.75);
            -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
            border: 1px solid rgba(255,255,255,.55);
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-md);
        }

        /* Hover lift */
        .hover-lift {
            transition: transform .4s var(--ease), box-shadow .4s var(--ease);
        }
        .hover-lift:hover {
            transform: translateY(-7px);
            box-shadow: var(--shadow-xl);
        }

        /* ══════════════════════════════════════════════════════════
           BUTTONS
           ══════════════════════════════════════════════════════════ */
        .btn-primary-custom {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            background: var(--grad-primary);
            color: #fff !important;
            font-weight: 700;
            font-size: .95rem;
            padding: 14px 32px;
            border-radius: var(--radius-md);
            border: none;
            box-shadow: var(--shadow-glow-primary);
            transition: all .3s var(--ease);
            position: relative;
            overflow: hidden;
            text-decoration: none;
        }
        .btn-primary-custom::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 60%);
            opacity: 0;
            transition: opacity .3s;
        }
        .btn-primary-custom:hover {
            transform: translateY(-3px);
            box-shadow: 0 18px 40px -6px rgba(79,70,229,.45);
        }
        .btn-primary-custom:hover::before { opacity: 1; }

        .btn-secondary-custom {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            background: rgba(255,255,255,.9);
            color: var(--navy-900) !important;
            font-weight: 700;
            font-size: .95rem;
            padding: 13px 30px;
            border-radius: var(--radius-md);
            border: 1.5px solid var(--border);
            box-shadow: var(--shadow-xs);
            transition: all .3s var(--ease);
            text-decoration: none;
        }
        .btn-secondary-custom:hover {
            background: var(--surface);
            border-color: rgba(79,70,229,.25);
            transform: translateY(-3px);
            box-shadow: var(--shadow-md);
        }

        /* ── White Eye-Friendly How to Apply Button ── */
        .btn-how-to-apply-white {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            background: #ffffff !important;
            color: #0f172a !important;
            font-weight: 700;
            font-size: .95rem;
            padding: 13px 28px;
            border-radius: var(--radius-md);
            border: 1.5px solid #e2e8f0;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.04);
            transition: all .28s var(--ease);
            text-decoration: none;
            cursor: pointer;
        }
        .btn-how-to-apply-white i {
            color: #4f46e5;
            font-size: 1.1rem;
            transition: transform .25s ease, color .25s ease;
        }
        .btn-how-to-apply-white:hover {
            background: #ffffff !important;
            color: #4f46e5 !important;
            border-color: #cbd5e1;
            transform: translateY(-3px);
            box-shadow: 0 12px 28px -4px rgba(0, 0, 0, 0.14), 0 4px 12px -2px rgba(79, 70, 229, 0.12);
        }
        .btn-how-to-apply-white:hover i {
            transform: scale(1.15) rotate(-6deg);
            color: #4338ca;
        }
        .btn-how-to-apply-white:active {
            transform: translateY(-1px);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
        }

        /* Shimmer effect on CTA button */
        .btn-shimmer {
            position: relative;
            overflow: hidden;
        }
        .btn-shimmer::after {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 60%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
            transform: skewX(-20deg);
            animation: shimmer 3s ease-in-out infinite;
        }
        @keyframes shimmer {
            0% { left: -100%; }
            60%, 100% { left: 150%; }
        }

        /* ══════════════════════════════════════════════════════════
           NAVBAR — Premium floating glass bar
           ══════════════════════════════════════════════════════════ */
        #main-nav {
            position: sticky;
            top: 0 !important;
            left: 0;
            right: 0;
            width: 100%;
            margin: 0 !important;
            margin-top: 0 !important;
            z-index: 1030;
            padding: 14px 0;
            background: rgba(255,255,255,.92);
            -webkit-backdrop-filter: blur(24px);
            backdrop-filter: blur(24px);
            border-bottom: 1px solid rgba(15,23,42,.06);
            box-shadow: 0 2px 20px rgba(0,0,0,.03);
            transition: all .4s var(--ease);
        }
        #main-nav.scrolled {
            padding: 10px 0;
            background: rgba(255,255,255,.96);
            border-bottom-color: rgba(79,70,229,.12);
            box-shadow: 0 8px 32px rgba(0,0,0,.06);
        }

        .navbar-brand {
            font-weight: 800;
            font-size: 1.1rem;
            color: var(--navy-900) !important;
            line-height: 1.2;
        }
        .navbar-brand strong { color: var(--indigo); }
        .navbar-brand span {
            font-size: .72rem;
            color: var(--navy-600);
            font-weight: 600;
            display: block;
            letter-spacing: .4px;
        }
        .nav-logo-icon-wrapper {
            transition: transform .4s var(--ease);
        }
        .navbar-brand:hover .nav-logo-icon-wrapper {
            transform: rotate(8deg) scale(1.05);
        }

        .navbar-toggler {
            width: 42px;
            height: 42px;
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(79,70,229,.06);
            transition: all .2s ease;
        }
        .navbar-toggler:focus {
            box-shadow: 0 0 0 3px rgba(79,70,229,.2);
        }

        .nav-link {
            font-weight: 600;
            color: var(--navy-600) !important;
            padding: 7px 14px !important;
            border-radius: var(--radius-sm);
            transition: all .25s ease;
            font-size: .875rem;
            white-space: nowrap;
            position: relative;
        }
        .nav-link::after {
            content: '';
            position: absolute;
            bottom: 4px;
            left: 50%;
            transform: translateX(-50%) scaleX(0);
            width: 16px;
            height: 2.5px;
            border-radius: 2px;
            background: var(--indigo);
            transition: transform .25s var(--ease);
        }
        .nav-link:hover { color: var(--indigo) !important; background: rgba(79,70,229,.05); }
        .nav-link:hover::after,
        .nav-link.active::after { transform: translateX(-50%) scaleX(1); }
        .nav-link.active { color: var(--indigo) !important; font-weight: 700; }

        /* ── Mobile Navbar Menu Drawer (< 992px) ── */
        @media (max-width: 991.98px) {
            #navbarContent {
                background: rgba(255, 255, 255, 0.98);
                -webkit-backdrop-filter: blur(20px);
                backdrop-filter: blur(20px);
                border: 1px solid rgba(79, 70, 229, 0.12);
                border-radius: 18px;
                padding: 16px 18px 20px;
                margin-top: 12px;
                box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
            }
            #navbarContent .navbar-nav {
                gap: 4px !important;
                margin-bottom: 12px !important;
            }
            #navbarContent .nav-link {
                padding: 10px 14px !important;
                border-radius: 10px;
                font-size: 0.92rem;
                display: flex;
                align-items: center;
            }
            #navbarContent .nav-link::after {
                display: none;
            }
            #navbarContent .nav-link.active {
                background: rgba(79, 70, 229, 0.08);
                color: var(--indigo) !important;
            }
            #navbarContent .d-flex.align-items-center.gap-3 {
                border-top: 1px solid rgba(15, 23, 42, 0.08);
                padding-top: 14px !important;
                margin-top: 8px;
                justify-content: space-between;
                width: 100%;
                position: relative;
            }
            #navbarContent .dropdown {
                position: relative;
            }
            #navbarContent .dropdown-menu {
                position: absolute !important;
                left: 0 !important;
                right: auto !important;
                top: 100% !important;
                margin-top: 6px !important;
                min-width: 190px !important;
                background: #ffffff !important;
                border: 1px solid rgba(79, 70, 229, 0.15) !important;
                box-shadow: 0 12px 32px rgba(15, 23, 42, 0.15) !important;
                z-index: 1060 !important;
                transform: none !important;
            }
            #navbarContent .dropdown-menu .dropdown-item {
                font-size: 0.88rem !important;
                font-weight: 600 !important;
            }
            #navbar-login-btn {
                padding: 8px 18px !important;
                font-size: 0.88rem !important;
            }
        }
        @media (max-width: 420px) {
            .navbar-brand {
                font-size: 0.95rem;
            }
            .navbar-brand span {
                display: block !important;
                font-size: 0.64rem !important;
                line-height: 1.2 !important;
                color: var(--navy-600) !important;
                font-weight: 600 !important;
                letter-spacing: 0.2px !important;
            }
            .nav-logo-icon-wrapper {
                width: 38px !important;
                height: 38px !important;
            }
        }


        /* ══════════════════════════════════════════════════════════
           HERO SECTION
           ══════════════════════════════════════════════════════════ */
        #home-section {
            position: relative;
            background: var(--grad-hero);
            color: #fff;
            min-height: 88vh;
            display: flex;
            align-items: center;
            padding: 80px 0 100px;
            overflow: hidden;
        }
        .hero-video-bg {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: 0;
            pointer-events: none;
        }
        .hero-video-overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(135deg, rgba(11, 15, 26, 0.8) 0%, rgba(17, 24, 39, 0.7) 50%, rgba(13, 31, 45, 0.8) 100%);
            z-index: 1;
            pointer-events: none;
        }
        #home-section .container {
            position: relative;
            z-index: 3;
        }
        
        /* ── SECTION SEPARATORS ── */
        #about-als, #programs, #als-centers, #requirements, #enrollment-process, #why-choose-als, #faq-section, #contact-section {
            position: relative;
        }
        #about-als::after, #programs::after, #als-centers::after, #requirements::after, #enrollment-process::after, #why-choose-als::after, #faq-section::after, #contact-section::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: linear-gradient(90deg, transparent 5%, rgba(79, 70, 229, 0.65) 25%, rgba(13, 148, 136, 0.65) 75%, transparent 95%);
            pointer-events: none;
            z-index: 5;
        }
        .section-divider {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: linear-gradient(90deg, transparent 5%, rgba(79, 70, 229, 0.65) 25%, rgba(13, 148, 136, 0.65) 75%, transparent 95%);
            pointer-events: none;
            z-index: 5;
        }
        
        /* ── LEAFLET CUSTOM POPUP ── */
        .custom-leaflet-popup .leaflet-popup-content-wrapper {
            border-radius: 16px;
            padding: 8px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.15);
            border: 1px solid rgba(0,0,0,0.05);
        }
        .custom-leaflet-popup .leaflet-popup-tip {
            box-shadow: 0 10px 30px rgba(0,0,0,0.15);
        }
        
        /* ── PIN BOUNCE & PULSE ANIMATIONS ── */
        @keyframes pinBounce {
            0% { transform: translateY(0); }
            50% { transform: translateY(-12px); }
            100% { transform: translateY(0); }
        }
        .bouncing-pin {
            animation: pinBounce 1.4s ease-in-out infinite;
        }
        @keyframes pulse {
            0% { transform: scale(0.9); box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7); }
            70% { transform: scale(1.1); box-shadow: 0 0 0 12px rgba(59, 130, 246, 0); }
            100% { transform: scale(0.9); box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); }
        }
        .pulse-dot {
            animation: pulse 1.8s infinite;
        }
        .hero-mesh {
            position: absolute;
            inset: 0;
            background: var(--grad-mesh);
            pointer-events: none;
        }
        .hero-grid {
            position: absolute;
            inset: 0;
            background-image:
                linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
                linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
            background-size: 48px 48px;
            pointer-events: none;
        }
        .hero-noise {
            position: absolute;
            inset: 0;
            opacity: .025;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
            pointer-events: none;
        }

        /* ══════════════════════════════════════════════════════════
           EXPANSIVE DESKTOP CONTAINERS & FORMATTED TEXT LAYOUT
           ══════════════════════════════════════════════════════════ */
        @media (min-width: 992px) {
            .container {
                max-width: 1560px !important;
                width: 96% !important;
            }
            #main-nav .container {
                max-width: 1560px !important;
                width: 96% !important;
            }
            .nav-link {
                font-size: 16.5px !important;
                font-weight: 700 !important;
                padding: 8px 16px !important;
            }
            .navbar-brand {
                font-size: 1.3rem !important;
                font-weight: 800 !important;
            }
            .section-title-xl {
                font-size: clamp(2.2rem, 2.8vw, 2.75rem) !important;
                font-weight: 900 !important;
            }
            .about-explanation-text {
                font-size: 1.12rem !important;
                line-height: 1.9 !important;
            }
        }

        @media (min-width: 1400px) {
            .container,
            #main-nav .container {
                max-width: 1640px !important;
                width: 96% !important;
            }
            .nav-link {
                font-size: 17px !important;
            }
            .section-title-xl {
                font-size: 2.95rem !important;
            }
            .about-explanation-text {
                font-size: 1.18rem !important;
            }
        }
