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

        :root{
            --text:#111827;
            --muted:#4b5563;
            --muted-light:#6b7280;

            --blue:#006bb6;
            --blue-dark:#004f9e;
            --blue-soft:#edf6ff;

            --gold:#c58b1c;
            --red:#db1818;

            --white:#ffffff;
            --surface:#f7f8fa;

            --border:rgba(17,24,39,0.1);
            --blue-border:rgba(0,79,158,0.14);

            --shadow-sm:0 8px 22px rgba(17,24,39,0.06);
            --shadow-md:0 16px 38px rgba(17,24,39,0.1);
            --shadow-lg:0 28px 60px rgba(17,24,39,0.15);

            --radius:24px;
            --transition:all .28s ease;

            --container:1220px;
            --container-padding:clamp(1rem,4vw,2rem);

            --section:clamp(3.5rem,7vw,6rem);
        }

        html{
            scroll-behavior:smooth;
            overflow-x:hidden;
        }

        body{
            font-family:"Manrope",sans-serif;
            background:var(--surface);
            color:var(--text);
            line-height:1.6;
            overflow-x:hidden;
        }

        img{
            max-width:100%;
            display:block;
        }

        .container{
            width:100%;
            max-width:var(--container);
            margin:0 auto;
            padding:0 var(--container-padding);
        }

        section{
            padding:var(--section) 0;
        }

        h1,h2,h3,h4{
            line-height:1.12;
            letter-spacing:-0.03em;
        }

        h1{
            font-size:clamp(2.5rem,6vw,5rem);
            font-weight:800;
        }

        h2{
            font-size:clamp(2rem,4vw,3rem);
            font-weight:800;
        }

        h3{
            font-size:clamp(1.3rem,2vw,1.8rem);
            font-weight:800;
        }

        p{
            color:var(--muted);
        }

        .eyebrow{
            display:inline-flex;
            align-items:center;
            gap:.5rem;
            background:rgba(0,107,182,.1);
            border:1px solid rgba(0,107,182,.14);
            color:var(--blue-dark);
            padding:.55rem .9rem;
            border-radius:999px;
            font-size:.78rem;
            font-weight:900;
            letter-spacing:.08em;
            text-transform:uppercase;
        }

        /* HEADER */

        .header{
            position:fixed;
            top:0;
            left:0;
            width:100%;
            z-index:1000;
            background:#fff;
            border-bottom:1px solid rgba(17,24,39,.08);
            box-shadow:0 6px 18px rgba(17,24,39,.08);
            padding:.55rem 0;
        }

        .header-container{
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:1rem;
        }

        .logo img{
            height:56px;
        }

        .nav-list{
            display:flex;
            align-items:center;
            gap:clamp(.4rem,1vw,1rem);
            list-style:none;
        }

        .nav-link{
            position:relative;
            display:inline-flex;
            align-items:center;
            min-height:42px;
            padding:0 .6rem;
            text-decoration:none;
            color:#004b87;
            font-weight:800;
            font-size:.92rem;
            transition:var(--transition);
        }

        .nav-link::after{
            content:"";
            position:absolute;
            left:.6rem;
            right:.6rem;
            bottom:.25rem;
            height:2px;
            background:var(--gold);
            border-radius:999px;
            transform:scaleX(0);
            transform-origin:left;
            transition:var(--transition);
        }

        .nav-link:hover,
        .nav-link.active{
            color:var(--gold);
        }

        .nav-link:hover::after,
        .nav-link.active::after{
            transform:scaleX(1);
        }

        .btn-don-nav{
            background:var(--red);
            color:#fff !important;
            border-radius:999px;
            padding:0 1rem;
            box-shadow:0 10px 24px rgba(219,24,24,.22);
        }

        .btn-don-nav::after{
            display:none;
        }

        .btn-don-nav:hover{
            background:#b91c1c;
            transform:translateY(-2px);
        }

        .hamburger{
            display:none;
            width:46px;
            height:46px;
            border-radius:14px;
            border:1px solid var(--border);
            background:#fff;
            flex-direction:column;
            align-items:center;
            justify-content:center;
            gap:5px;
            cursor:pointer;
            box-shadow:var(--shadow-sm);
        }

        .hamburger span{
            width:22px;
            height:2px;
            border-radius:999px;
            background:var(--blue-dark);
            transition:var(--transition);
        }

        .hamburger.active span:nth-child(1){
            transform:rotate(45deg) translate(5px,5px);
        }

        .hamburger.active span:nth-child(2){
            opacity:0;
        }

        .hamburger.active span:nth-child(3){
            transform:rotate(-45deg) translate(5px,-5px);
        }

        .menu-overlay{
            display:none;
        }

        /* HERO */

        .page-hero{
            margin-top:74px;
            min-height:58vh;
            display:flex;
            align-items:center;
            position:relative;
            overflow:hidden;

            background:
                linear-gradient(
                    90deg,
                    rgba(255,255,255,.96) 0%,
                    rgba(255,255,255,.9) 44%,
                    rgba(255,255,255,.62) 68%,
                    rgba(255,255,255,.32) 100%
                ),
                none center/cover no-repeat;
        }

        .page-hero::before{
            content:"";
            position:absolute;
            inset:0;
            background:
                linear-gradient(90deg, rgba(0,107,182,.08), transparent 45%),
                radial-gradient(circle at 88% 20%, rgba(0,107,182,.16), transparent 34%);
        }

        .page-hero::after{
            content:"";
            position:absolute;
            left:0;
            top:0;
            bottom:0;
            width:7px;
            background:linear-gradient(180deg,var(--blue),var(--gold));
        }

        .page-hero .container{
            position:relative;
            z-index:2;
        }

        .hero-content{
            max-width:760px;
        }

        .breadcrumb{
            display:flex;
            align-items:center;
            flex-wrap:wrap;
            gap:.6rem;
            margin-bottom:1.4rem;
            font-size:.95rem;
            font-weight:700;
            color:var(--muted);
        }

        .breadcrumb a{
            text-decoration:none;
            color:var(--blue-dark);
        }

        .breadcrumb a:hover{
            color:var(--gold);
        }

        .page-hero h1{
            margin:1rem 0;
        }

        .page-hero p{
            max-width:700px;
            font-size:clamp(1.05rem,1.7vw,1.22rem);
            color:#374151;
        }

        /* CONTACT GRID */

        .contact-section{
            background:var(--surface);
        }

        .contact-grid{
            display:grid;
            grid-template-columns:380px minmax(0,1fr);
            gap:clamp(1.5rem,4vw,3rem);
            align-items:start;
        }

        .contact-card{
            background:#fff;
            border-radius:28px;
            border:1px solid var(--border);
            box-shadow:var(--shadow-md);
            overflow:hidden;
        }

        .contact-info{
            background:
                linear-gradient(180deg, rgba(0,79,158,.98), rgba(0,107,182,.94)),
                none center/cover no-repeat;

            color:#fff;
            padding:2rem;
            position:relative;
        }

        .contact-info::before{
            content:"";
            position:absolute;
            top:-60px;
            right:-60px;
            width:200px;
            height:200px;
            border-radius:50%;
            background:rgba(255,255,255,.08);
        }

        .contact-info h3{
            color:#fff;
            margin-bottom:2rem;
            position:relative;
            z-index:2;
        }

        .contact-detail{
            display:flex;
            gap:1rem;
            align-items:flex-start;
            margin-bottom:1.4rem;
            position:relative;
            z-index:2;
        }

        .contact-icon{
            width:58px;
            height:58px;
            border-radius:18px;
            background:rgba(255,255,255,.12);
            border:1px solid rgba(255,255,255,.15);
            display:flex;
            align-items:center;
            justify-content:center;
            color:#fff;
            font-size:1.2rem;
            flex-shrink:0;
        }

        .contact-text h4{
            margin-bottom:.25rem;
            color:#fff;
            font-size:1rem;
        }

        .contact-text p,
        .contact-text a{
            color:rgba(255,255,255,.86);
            text-decoration:none;
        }

        .contact-text a:hover{
            color:#fff;
        }

        .rdv-box{
            margin-top:2rem;
            padding:1rem 1.1rem;
            border-radius:18px;
            background:rgba(255,255,255,.12);
            border:1px solid rgba(255,255,255,.15);
            color:#fff;
            font-weight:700;
            position:relative;
            z-index:2;
        }

        .social-links-contact{
            display:flex;
            gap:.7rem;
            margin-top:1.4rem;
            flex-wrap:wrap;
            position:relative;
            z-index:2;
        }

        .social-links-contact a{
            width:44px;
            height:44px;
            border-radius:50%;
            background:rgba(255,255,255,.12);
            border:1px solid rgba(255,255,255,.15);
            display:flex;
            align-items:center;
            justify-content:center;
            color:#fff;
            text-decoration:none;
            transition:var(--transition);
        }

        .social-links-contact a:hover{
            background:#fff;
            color:var(--blue-dark);
            transform:translateY(-3px);
        }

        .contact-form{
            padding:clamp(1.6rem,4vw,3rem);
        }

        .contact-form h3{
            margin-bottom:1.8rem;
        }

        .form-row{
            display:grid;
            grid-template-columns:1fr 1fr;
            gap:1rem;
        }

        .form-group{
            margin-bottom:1.2rem;
        }

        .form-group label{
            display:block;
            margin-bottom:.55rem;
            font-weight:800;
            color:var(--text);
            font-size:.94rem;
        }

        .form-group input,
        .form-group textarea,
        .form-group select{
            width:100%;
            min-height:54px;
            border-radius:18px;
            border:1px solid rgba(17,24,39,.12);
            background:#fff;
            padding:0 1rem;
            font-size:.96rem;
            font-family:"Manrope",sans-serif;
            transition:var(--transition);
            color:var(--text);
        }

        .form-group textarea{
            min-height:150px;
            padding:1rem;
            resize:vertical;
        }

        .form-group input:focus,
        .form-group textarea:focus,
        .form-group select:focus{
            outline:none;
            border-color:var(--blue);
            box-shadow:0 0 0 4px rgba(0,107,182,.08);
        }

        .form-check{
            display:flex;
            gap:.8rem;
            align-items:flex-start;
            margin-bottom:1.5rem;
            color:var(--muted);
            font-size:.94rem;
        }

        .form-check input{
            margin-top:.2rem;
            accent-color:var(--blue);
        }

        .alert{
            padding:1rem 1.1rem;
            border-radius:18px;
            margin-bottom:2rem;
            font-weight:700;
        }

        .alert-success{
            background:#dcfce7;
            color:#166534;
            border:1px solid #bbf7d0;
        }

        .alert-error{
            background:#fee2e2;
            color:#991b1b;
            border:1px solid #fecaca;
        }

        /* BUTTONS */

        .btn{
            display:inline-flex;
            align-items:center;
            justify-content:center;
            gap:.55rem;
            min-height:52px;
            padding:.9rem 1.35rem;
            border-radius:999px;
            border:0;
            text-decoration:none;
            font-weight:900;
            cursor:pointer;
            transition:var(--transition);
        }

        .btn-primary{
            background:var(--blue);
            color:#fff;
            box-shadow:0 10px 24px rgba(0,107,182,.2);
        }

        .btn-primary:hover{
            background:var(--blue-dark);
            transform:translateY(-2px);
        }

        .btn-block{
            width:100%;
        }

        /* MAP */

        .map-section{
            background:#fff;
        }

        .section-header{
            text-align:center;
            max-width:760px;
            margin:0 auto 2.8rem;
        }

        .section-header h2{
            margin:1rem 0;
        }

        .map-container{
            border-radius:30px;
            overflow:hidden;
            border:1px solid var(--blue-border);
            box-shadow:var(--shadow-lg);
            height:500px;
        }

        #map{
            width:100%;
            height:100%;
        }

        /* HOURS */

        .hours-section{
            background:var(--surface);
        }

        .hours-grid{
            display:grid;
            grid-template-columns:repeat(4,1fr);
            gap:1.2rem;
        }

        .hours-card{
            background:#fff;
            border:1px solid var(--border);
            border-radius:24px;
            padding:2rem 1.3rem;
            text-align:center;
            box-shadow:var(--shadow-sm);
            transition:var(--transition);
        }

        .hours-card:hover{
            transform:translateY(-5px);
            border-color:var(--blue-border);
            box-shadow:var(--shadow-md);
        }

        .hours-card i{
            width:74px;
            height:74px;
            border-radius:22px;
            background:rgba(0,107,182,.08);
            display:flex;
            align-items:center;
            justify-content:center;
            color:var(--blue-dark);
            font-size:1.8rem;
            margin:0 auto 1rem;
        }

        .hours-card h4{
            margin-bottom:.5rem;
        }

        .hours-card p{
            font-weight:700;
        }

        .badge{
            display:inline-flex;
            margin-top:.8rem;
            background:rgba(0,107,182,.08);
            color:var(--blue-dark);
            border:1px solid rgba(0,107,182,.12);
            padding:.4rem .85rem;
            border-radius:999px;
            font-size:.8rem;
            font-weight:900;
        }

        /* FAQ */

        .faq-section{
            background:#fff;
        }

        .faq-wrapper{
            max-width:920px;
            margin:0 auto;
        }

        .faq-item{
            background:#fff;
            border:1px solid rgba(17,24,39,.08);
            border-radius:22px;
            padding:1.35rem 1.5rem;
            margin-bottom:1rem;
            box-shadow:var(--shadow-sm);
        }

        .faq-question{
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:1rem;
            cursor:pointer;
        }

        .faq-question h4{
            font-size:1.05rem;
        }

        .faq-question i{
            color:var(--blue-dark);
            transition:var(--transition);
            flex-shrink:0;
        }

        .faq-answer{
            max-height:0;
            overflow:hidden;
            transition:max-height .28s ease;
        }

        .faq-answer p{
            padding-top:1rem;
        }

        .faq-item.active .faq-answer{
            max-height:240px;
        }

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

        /* CTA */

        .cta-section{
            background:var(--surface);
        }

        .cta-box{
            border-radius:30px;
            padding:clamp(2rem,5vw,4rem);

            background:
                linear-gradient(90deg, rgba(0,79,158,.93), rgba(0,107,182,.86)),
                none center/cover no-repeat;

            color:#fff;
            text-align:center;
            box-shadow:var(--shadow-lg);
        }

        .cta-box h2,
        .cta-box p{
            color:#fff;
        }

        .cta-box p{
            max-width:700px;
            margin:1rem auto 2rem;
            color:rgba(255,255,255,.88);
            font-size:1.1rem;
        }

        .cta-actions{
            display:flex;
            justify-content:center;
            flex-wrap:wrap;
            gap:1rem;
        }

        .btn-white{
            background:#fff;
            color:var(--blue-dark);
        }

        .btn-white:hover{
            transform:translateY(-2px);
        }

        .btn-transparent{
            background:rgba(255,255,255,.08);
            border:1px solid rgba(255,255,255,.25);
            color:#fff;
        }

        .btn-transparent:hover{
            background:rgba(255,255,255,.14);
            transform:translateY(-2px);
        }

        /* FOOTER */

        .footer{
            background:#003f7f;
            color:#fff;
            padding:clamp(3rem,6vw,4.5rem) 0 2rem;
        }

        .footer-grid{
            display:grid;
            grid-template-columns:1.5fr .8fr .8fr 1fr;
            gap:clamp(2rem,4vw,3rem);
            margin-bottom:2.5rem;
        }

        .footer-logo img{
            height:62px;
            margin-bottom:1rem;
        }

        .footer p,
        .footer li{
            color:rgba(255,255,255,.78);
        }

        .footer h4{
            margin-bottom:1rem;
            color:#fff;
        }

        .footer ul{
            list-style:none;
            display:grid;
            gap:.7rem;
        }

        .footer a{
            text-decoration:none;
            color:rgba(255,255,255,.82);
            transition:var(--transition);
        }

        .footer a:hover{
            color:#fff;
        }

        .social-links{
            display:flex;
            gap:.75rem;
            margin-top:1.2rem;
            flex-wrap:wrap;
        }

        .social-links a{
            width:42px;
            height:42px;
            border-radius:50%;
            background:rgba(255,255,255,.12);
            display:flex;
            align-items:center;
            justify-content:center;
            color:#fff;
            text-decoration:none;
        }

        .social-links a:hover{
            background:#fff;
            color:var(--blue-dark);
            transform:translateY(-3px);
        }

        .copyright{
            border-top:1px solid rgba(255,255,255,.12);
            padding-top:1.5rem;
            text-align:center;
        }

        /* ANIMATION */

        .fade-in{
            opacity:0;
            transform:translateY(24px);
            transition:opacity .65s ease, transform .65s ease;
        }

        .fade-in.visible{
            opacity:1;
            transform:translateY(0);
        }

        /* RESPONSIVE */

        @media (max-width:1100px){
            .contact-grid{
                grid-template-columns:1fr;
            }

            .footer-grid{
                grid-template-columns:repeat(2,1fr);
            }

            .hours-grid{
                grid-template-columns:repeat(2,1fr);
            }
        }

        @media (max-width:960px){
            .hamburger{
                display:flex;
                position:relative;
                z-index:1002;
            }

            .menu-overlay{
                position:fixed;
                inset:0;
                background:rgba(17,24,39,.55);
                z-index:998;
            }

            .menu-overlay.active{
                display:block;
            }

            .nav-list{
                position:fixed;
                top:0;
                right:-110%;
                width:min(86vw,420px);
                height:100vh;
                z-index:1001;

                display:flex;
                flex-direction:column;
                align-items:stretch;
                justify-content:flex-start;

                gap:.45rem;
                padding:6.5rem 1.2rem 2rem;

                background:#fff;
                box-shadow:-25px 0 60px rgba(17,24,39,.18);

                transition:right .28s ease;
            }

            .nav-list.active{
                right:0;
            }

            .nav-link{
                width:100%;
                min-height:54px;
                border-radius:16px;
                background:rgba(0,107,182,.06);
                font-size:1rem;
            }

            .nav-link::after{
                display:none;
            }

            .btn-don-nav{
                justify-content:center;
            }
        }

        @media (max-width:760px){
            .page-hero{
                margin-top:66px;
                min-height:auto;
                padding:4.2rem 0;

                background:
                    linear-gradient(
                        180deg,
                        rgba(255,255,255,.97),
                        rgba(255,255,255,.88)
                    ),
                    none center/cover no-repeat;
            }

            .form-row{
                grid-template-columns:1fr;
            }

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

            .footer-grid{
                grid-template-columns:1fr;
                text-align:center;
            }

            .footer-logo img,
            .social-links{
                margin-left:auto;
                margin-right:auto;
                justify-content:center;
            }

            .cta-actions{
                flex-direction:column;
            }

            .btn{
                width:100%;
            }

            .map-container{
                height:380px;
            }
        }

        @media (prefers-reduced-motion:reduce){
            *,
            *::before,
            *::after{
                transition:none !important;
                scroll-behavior:auto !important;
            }

            .fade-in{
                opacity:1;
                transform:none;
            }
        }
