:root {
        --faq-blue: #0ea5e9;
        --faq-blue-dark: #0369a1;
        --faq-navy: #071827;
    }

    html {
        scroll-behavior: smooth;
        background: #f7fcff;
    }

    body {
        margin: 0;
        overflow-x: hidden;
        background: #f7fcff;
    }


    #page-scroll-progress {
        position: fixed;
        z-index: 10001;
        top: 0;
        left: 0;

        width: 100%;
        height: 2px;

        transform: scaleX(0);
        transform-origin: left center;

        background:
            linear-gradient(
                90deg,
                rgba(14,165,233,.18),
                #0ea5e9 46%,
                #38bdf8
            );

        box-shadow:
            0 0 15px
            rgba(14,165,233,.28);

        will-change: transform;
    }


    /* ====================================================== */
    /* HERO */
    /* ====================================================== */

    .faq-hero {
        position: relative;
        min-height: 760px;
        overflow: hidden;
        isolation: isolate;

        display: flex;
        align-items: center;

        padding:
            148px 24px
            96px;
    }


    .faq-hero-map {
        position: absolute;
        inset: -4%;
        z-index: -5;

        background-image:
            linear-gradient(
                180deg,
                rgba(248,252,255,.68),
                rgba(248,252,255,.91)
            ),
            linear-gradient(
                90deg,
                rgba(255,255,255,.78),
                rgba(255,255,255,.38)
            ),
            url('https://lh3.googleusercontent.com/d/1_uJr5viwuC4N85Fo5GnzSIlpDvhPBQc4');

        background-size: cover;
        background-position: center;

        transform:
            scale(
                var(
                    --faq-bg-scale,
                    1.035
                )
            );

        will-change:
            transform;
    }


    .faq-hero::after {
        content: "";

        position: absolute;
        z-index: -4;

        width: 620px;
        height: 620px;

        top: 6%;
        left: 50%;

        transform:
            translateX(-50%);

        border-radius:
            50%;

        background:
            radial-gradient(
                circle,
                rgba(14,165,233,.15),
                rgba(125,211,252,.05) 44%,
                transparent 72%
            );

        pointer-events: none;
    }


    .faq-hero-inner {
        width:
            min(
                1000px,
                100%
            );

        margin:
            0 auto;

        text-align:
            center;
    }


    .faq-eyebrow {
        display:
            inline-flex;

        align-items:
            center;

        gap:
            8px;

        padding:
            8px 14px;

        border:
            1px solid
            rgba(186,230,253,.98);

        border-radius:
            999px;

        color:
            #0369a1;

        background:
            rgba(255,255,255,.82);

        backdrop-filter:
            blur(13px);

        -webkit-backdrop-filter:
            blur(13px);

        box-shadow:
            0 8px 22px
            rgba(14,165,233,.07);

        font-size:
            10px;

        font-weight:
            800;

        letter-spacing:
            .12em;

        text-transform:
            uppercase;
    }


    .faq-title {
        max-width:
            880px;

        margin:
            22px auto 0;

        color:
            #0f172a;

        font-size:
            clamp(
                48px,
                7vw,
                82px
            );

        line-height:
            1.01;

        letter-spacing:
            -.065em;

        font-weight:
            800;
    }


    .faq-title span {
        color:
            #0ea5e9;
    }


    .faq-lead {
        max-width:
            720px;

        margin:
            21px auto 0;

        color:
            #64748b;

        font-size:
            14px;

        line-height:
            1.88;
    }


    .faq-hero-stats {
        margin-top:
            29px;

        display:
            flex;

        align-items:
            center;

        justify-content:
            center;

        flex-wrap:
            wrap;

        gap:
            9px;
    }


    .faq-stat {
        display:
            inline-flex;

        align-items:
            center;

        gap:
            7px;

        padding:
            9px 13px;

        border:
            1px solid
            rgba(255,255,255,.96);

        border-radius:
            999px;

        color:
            #475569;

        background:
            rgba(255,255,255,.75);

        backdrop-filter:
            blur(12px);

        -webkit-backdrop-filter:
            blur(12px);

        box-shadow:
            0 8px 22px
            rgba(15,23,42,.04);

        font-size:
            9.5px;

        font-weight:
            700;
    }


    /* ====================================================== */
    /* SEARCH */
    /* ====================================================== */

    .faq-search-wrap {
        max-width:
            760px;

        margin:
            38px auto 0;
    }


    .faq-search {
        min-height:
            62px;

        display:
            flex;

        align-items:
            center;

        gap:
            12px;

        padding:
            8px 10px
            8px 21px;

        border:
            1px solid
            rgba(255,255,255,.98);

        border-radius:
            999px;

        background:
            rgba(255,255,255,.88);

        backdrop-filter:
            blur(18px)
            saturate(140%);

        -webkit-backdrop-filter:
            blur(18px)
            saturate(140%);

        box-shadow:
            0 21px 55px
            rgba(14,165,233,.10),
            inset 0 1px 0
            rgba(255,255,255,.96);

        transition:
            transform .38s
            cubic-bezier(.16,1,.3,1),
            border-color .3s ease,
            box-shadow .38s ease;
    }


    .faq-search:hover {
        transform:
            translateY(-2px);

        box-shadow:
            0 25px 65px
            rgba(14,165,233,.13),
            inset 0 1px 0
            rgba(255,255,255,.96);
    }


    .faq-search:focus-within {
        border-color:
            #7dd3fc;

        box-shadow:
            0 25px 65px
            rgba(14,165,233,.14),
            0 0 0 5px
            rgba(14,165,233,.06);
    }


    .faq-search svg {
        flex: none;
        color: #64748b;
    }


    .faq-search input {
        flex: 1;
        min-width: 0;

        border: 0;
        outline: 0;

        color: #0f172a;
        background: transparent;

        font-family: inherit;
        font-size: 13px;
    }


    .faq-search input::placeholder {
        color: #94a3b8;
    }


    .faq-search-count {
        flex: none;

        padding:
            8px 11px;

        border-radius:
            999px;

        color:
            #0369a1;

        background:
            #f0f9ff;

        border:
            1px solid
            #e0f2fe;

        font-size:
            9px;

        font-weight:
            800;
    }


    /* ====================================================== */
    /* POPULAR */
    /* ====================================================== */

    .faq-popular-section {
        position: relative;
        z-index: 2;

        margin-top:
            -52px;

        padding:
            0 24px
            80px;
    }


    .faq-container {
        width:
            min(
                1180px,
                100%
            );

        margin:
            0 auto;
    }


    .popular-faq-grid {
        display:
            grid;

        grid-template-columns:
            repeat(
                4,
                minmax(0,1fr)
            );

        gap:
            15px;
    }


    .popular-faq-card {
        position:
            relative;

        overflow:
            hidden;

        min-height:
            152px;

        display:
            grid;

        grid-template-columns:
            46px
            minmax(0,1fr)
            30px;

        align-items:
            center;

        gap:
            12px;

        padding:
            19px;

        border:
            1px solid
            rgba(226,232,240,.94);

        border-radius:
            24px;

        text-align:
            left;

        background:
            rgba(255,255,255,.94);

        box-shadow:
            0 17px 42px
            rgba(15,23,42,.07),
            inset 0 1px 0
            rgba(255,255,255,.96);

        cursor:
            pointer;

        transition:
            transform .45s
            cubic-bezier(.16,1,.3,1),
            box-shadow .45s ease,
            border-color .3s ease;
    }


    .popular-faq-card::after {
        content: "";

        position: absolute;

        width:
            150px;

        height:
            150px;

        right:
            -68px;

        top:
            -78px;

        border-radius:
            50%;

        background:
            radial-gradient(
                circle,
                rgba(125,211,252,.22),
                transparent 70%
            );

        pointer-events:
            none;
    }


    .popular-faq-card:hover {
        transform:
            translateY(-7px);

        border-color:
            #bae6fd;

        box-shadow:
            0 25px 58px
            rgba(14,165,233,.11),
            inset 0 1px 0
            #ffffff;
    }


    .popular-faq-card-icon {
        width:
            46px;

        height:
            46px;

        display:
            flex;

        align-items:
            center;

        justify-content:
            center;

        border-radius:
            15px;

        color:
            #0284c7;

        background:
            #f0f9ff;

        border:
            1px solid
            #bae6fd;
    }


    .popular-faq-card-copy {
        min-width: 0;
    }


    .popular-faq-card-copy small {
        display: block;

        color:
            #0ea5e9;

        font-size:
            8px;

        font-weight:
            800;

        letter-spacing:
            .09em;

        text-transform:
            uppercase;
    }


    .popular-faq-card-copy strong {
        display:
            -webkit-box;

        margin-top:
            6px;

        overflow:
            hidden;

        -webkit-box-orient:
            vertical;

        -webkit-line-clamp:
            3;

        color:
            #0f172a;

        font-size:
            11px;

        line-height:
            1.5;

        font-weight:
            800;
    }


    .popular-faq-card-arrow {
        width:
            30px;

        height:
            30px;

        display:
            flex;

        align-items:
            center;

        justify-content:
            center;

        border-radius:
            999px;

        color:
            #0284c7;

        background:
            #f0f9ff;

        transition:
            color .3s ease,
            background .3s ease,
            transform .35s
            cubic-bezier(.16,1,.3,1);
    }


    .popular-faq-card:hover
    .popular-faq-card-arrow {
        color:
            #ffffff;

        background:
            #0ea5e9;

        transform:
            translate(2px,-2px);
    }


    /* ====================================================== */
    /* FAQ MAIN */
    /* ====================================================== */

    .faq-main-section {
        padding:
            82px 24px
            105px;

        background:
            radial-gradient(
                circle at 50% 0%,
                rgba(125,211,252,.10),
                transparent 30%
            ),
            linear-gradient(
                180deg,
                #ffffff,
                #f8fcff
            );
    }


    .faq-main-header {
        max-width:
            760px;

        margin:
            0 auto;

        text-align:
            center;
    }


    .faq-section-kicker {
        display:
            inline-flex;

        align-items:
            center;

        gap:
            7px;

        padding:
            7px 12px;

        border-radius:
            999px;

        color:
            #0369a1;

        background:
            #f0f9ff;

        border:
            1px solid
            #bae6fd;

        font-size:
            9px;

        font-weight:
            800;

        letter-spacing:
            .10em;

        text-transform:
            uppercase;
    }


    .faq-section-title {
        margin-top:
            15px;

        color:
            #0f172a;

        font-size:
            clamp(
                34px,
                4.4vw,
                54px
            );

        line-height:
            1.08;

        letter-spacing:
            -.045em;

        font-weight:
            800;
    }


    .faq-section-copy {
        max-width:
            650px;

        margin:
            14px auto 0;

        color:
            #64748b;

        font-size:
            12.5px;

        line-height:
            1.82;
    }


    .faq-filter-row {
        margin-top:
            31px;

        display:
            flex;

        align-items:
            center;

        justify-content:
            center;

        flex-wrap:
            wrap;

        gap:
            8px;
    }


    .faq-filter {
        position: relative;
        overflow: hidden;

        min-height:
            39px;

        display:
            inline-flex;

        align-items:
            center;

        justify-content:
            center;

        gap:
            7px;

        padding:
            0 15px;

        border:
            1px solid
            #e2e8f0;

        border-radius:
            999px;

        color:
            #64748b;

        background:
            rgba(255,255,255,.88);

        font-family:
            inherit;

        font-size:
            9.5px;

        font-weight:
            750;

        cursor:
            pointer;

        transition:
            color .25s ease,
            background .25s ease,
            border-color .25s ease,
            transform .3s
            cubic-bezier(.16,1,.3,1),
            box-shadow .3s ease;
    }


    .faq-filter:hover {
        color:
            #0284c7;

        border-color:
            #bae6fd;

        transform:
            translateY(-2px);
    }


    .faq-filter.active {
        color:
            #ffffff;

        background:
            #0ea5e9;

        border-color:
            #0ea5e9;

        box-shadow:
            0 10px 24px
            rgba(14,165,233,.20);
    }


    .faq-list-wrap {
        max-width:
            920px;

        margin:
            43px auto 0;
    }


    .faq-list {
        display:
            grid;

        gap:
            11px;
    }


    .faq-item {
        overflow:
            hidden;

        border:
            1px solid
            #e2e8f0;

        border-radius:
            23px;

        background:
            rgba(255,255,255,.94);

        box-shadow:
            0 9px 26px
            rgba(15,23,42,.035);

        transition:
            border-color .3s ease,
            box-shadow .4s ease,
            transform .4s
            cubic-bezier(.16,1,.3,1);
    }


    .faq-item:hover {
        border-color:
            #bae6fd;

        box-shadow:
            0 17px 38px
            rgba(14,165,233,.07);
    }


    .faq-item.open {
        border-color:
            #7dd3fc;

        box-shadow:
            0 20px 46px
            rgba(14,165,233,.09);

        transform:
            translateY(-2px);
    }


    .faq-question {
        width:
            100%;

        min-height:
            78px;

        display:
            flex;

        align-items:
            center;

        justify-content:
            space-between;

        gap:
            16px;

        padding:
            16px 18px;

        border:
            0;

        color:
            #0f172a;

        background:
            transparent;

        font-family:
            inherit;

        text-align:
            left;

        cursor:
            pointer;
    }


    .faq-question-left {
        min-width: 0;

        display:
            flex;

        align-items:
            center;

        gap:
            11px;
    }


    .faq-number {
        width:
            30px;

        flex:
            none;

        color:
            #94a3b8;

        font-size:
            8px;

        font-weight:
            800;

        letter-spacing:
            .05em;
    }


    .faq-question-icon {
        width:
            38px;

        height:
            38px;

        flex:
            none;

        display:
            flex;

        align-items:
            center;

        justify-content:
            center;

        border-radius:
            13px;

        color:
            #0284c7;

        background:
            #f0f9ff;

        border:
            1px solid
            #e0f2fe;

        transition:
            color .3s ease,
            background .3s ease,
            transform .4s
            cubic-bezier(.16,1,.3,1);
    }


    .faq-item.open
    .faq-question-icon {
        color:
            #ffffff;

        background:
            #0ea5e9;

        transform:
            scale(1.05)
            rotate(-3deg);
    }


    .faq-question-text {
        min-width: 0;

        color:
            #0f172a;

        font-size:
            12px;

        line-height:
            1.5;

        font-weight:
            800;
    }


    .faq-popular-badge {
        flex:
            none;

        display:
            inline-flex;

        align-items:
            center;

        gap:
            4px;

        padding:
            6px 8px;

        border-radius:
            999px;

        color:
            #0369a1;

        background:
            #f0f9ff;

        border:
            1px solid
            #bae6fd;

        font-size:
            7.5px;

        font-weight:
            800;
    }


    .faq-toggle-icon {
        width:
            35px;

        height:
            35px;

        flex:
            none;

        display:
            flex;

        align-items:
            center;

        justify-content:
            center;

        border-radius:
            999px;

        color:
            #64748b;

        background:
            #f8fafc;

        border:
            1px solid
            #e2e8f0;

        transition:
            color .3s ease,
            background .3s ease,
            transform .45s
            cubic-bezier(.16,1,.3,1);
    }


    .faq-item.open
    .faq-toggle-icon {
        color:
            #ffffff;

        background:
            #0ea5e9;

        transform:
            rotate(45deg);
    }


    .faq-answer-wrap {
        display:
            grid;

        grid-template-rows:
            0fr;

        transition:
            grid-template-rows .48s
            cubic-bezier(.16,1,.3,1);
    }


    .faq-item.open
    .faq-answer-wrap {
        grid-template-rows:
            1fr;
    }


    .faq-answer {
        min-height:
            0;

        overflow:
            hidden;

        display:
            grid;

        grid-template-columns:
            38px minmax(0,1fr);

        gap:
            11px;

        padding:
            0 18px;
    }


    .faq-item.open
    .faq-answer {
        padding-bottom:
            20px;
    }


    .faq-answer-line {
        width:
            1px;

        height:
            100%;

        justify-self:
            center;

        background:
            linear-gradient(
                180deg,
                #bae6fd,
                transparent
            );
    }


    .faq-answer p {
        padding-top:
            2px;

        max-width:
            760px;

        color:
            #64748b;

        font-size:
            11px;

        line-height:
            1.85;
    }


    #faq-empty {
        display:
            none;

        margin-top:
            25px;

        padding:
            34px 20px;

        border:
            1px dashed
            #bae6fd;

        border-radius:
            22px;

        color:
            #64748b;

        background:
            #f8fcff;

        text-align:
            center;

        font-size:
            11px;

        line-height:
            1.7;
    }


    /* ====================================================== */
    /* CTA CONTACT */
    /* ====================================================== */

    .faq-contact-section {
        padding:
            16px 24px
            100px;

        background:
            #f8fcff;
    }


    .faq-contact-card {
        position:
            relative;

        overflow:
            hidden;

        width:
            min(
                1050px,
                100%
            );

        margin:
            0 auto;

        display:
            grid;

        grid-template-columns:
            minmax(0,1fr)
            auto;

        align-items:
            center;

        gap:
            30px;

        padding:
            38px 42px;

        border-radius:
            31px;

        color:
            #ffffff;

        background:
            radial-gradient(
                circle at 14% 5%,
                rgba(56,189,248,.25),
                transparent 30%
            ),
            linear-gradient(
                135deg,
                #075985,
                #0369a1 50%,
                #0c4a6e
            );

        box-shadow:
            0 28px 75px
            rgba(3,105,161,.21),
            inset 0 1px 0
            rgba(255,255,255,.14);
    }


    .faq-contact-card::after {
        content: "";

        position:
            absolute;

        width:
            310px;

        height:
            310px;

        right:
            -95px;

        top:
            -125px;

        border-radius:
            50%;

        border:
            1px solid
            rgba(255,255,255,.09);

        box-shadow:
            0 0 0 38px
            rgba(255,255,255,.024),
            0 0 0 78px
            rgba(255,255,255,.015);

        pointer-events:
            none;
    }


    .faq-contact-card small {
        color:
            #7dd3fc;

        font-size:
            9px;

        font-weight:
            800;

        letter-spacing:
            .11em;

        text-transform:
            uppercase;
    }


    .faq-contact-card h2 {
        max-width:
            650px;

        margin-top:
            7px;

        font-size:
            clamp(
                28px,
                3.8vw,
                43px
            );

        line-height:
            1.13;

        letter-spacing:
            -.04em;

        font-weight:
            800;
    }


    .faq-contact-card p {
        max-width:
            650px;

        margin-top:
            10px;

        color:
            #cbd5e1;

        font-size:
            10.5px;

        line-height:
            1.75;
    }


    .faq-contact-actions {
        position: relative;
        z-index: 2;

        display:
            flex;

        align-items:
            center;

        flex-wrap:
            wrap;

        gap:
            9px;
    }


    .faq-contact-button {
        min-height:
            46px;

        display:
            inline-flex;

        align-items:
            center;

        justify-content:
            center;

        gap:
            8px;

        padding:
            0 17px;

        border-radius:
            999px;

        color:
            #075985;

        background:
            #ffffff;

        font-size:
            10px;

        font-weight:
            800;

        box-shadow:
            0 11px 25px
            rgba(7,24,39,.17);

        transition:
            transform .35s
            cubic-bezier(.16,1,.3,1),
            box-shadow .35s ease;
    }


    .faq-contact-button:hover {
        transform:
            translateY(-3px);

        box-shadow:
            0 16px 34px
            rgba(7,24,39,.23);
    }


    /* ====================================================== */
    /* SCROLL REVEAL */
    /* ====================================================== */

    .faq-reveal {
        opacity:
            0;

        transform:
            translate3d(
                0,
                32px,
                0
            )
            scale(.985);

        filter:
            blur(5px);

        transition:
            opacity .8s
            cubic-bezier(.16,1,.3,1),
            transform .9s
            cubic-bezier(.16,1,.3,1),
            filter .7s ease;
    }


    .faq-reveal.visible {
        opacity:
            1;

        transform:
            translate3d(
                0,
                0,
                0
            )
            scale(1);

        filter:
            blur(0);
    }


    /* ====================================================== */
    /* RESPONSIVE */
    /* ====================================================== */

    @media (
        max-width: 980px
    ) {

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


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

    }


    @media (
        max-width: 680px
    ) {

        .faq-hero {
            min-height:
                auto;

            padding:
                116px 14px
                105px;
        }


        .faq-title {
            font-size:
                46px;
        }


        .faq-lead {
            font-size:
                12.5px;
        }


        .faq-search-wrap {
            margin-top:
                31px;
        }


        .faq-search {
            min-height:
                56px;

            padding-left:
                17px;
        }


        .faq-search-count {
            display:
                none;
        }


        .faq-popular-section {
            margin-top:
                -55px;

            padding:
                0 14px
                65px;
        }


        .popular-faq-grid {
            grid-template-columns:
                1fr;
        }


        .popular-faq-card {
            min-height:
                125px;
        }


        .faq-main-section {
            padding:
                68px 14px
                82px;
        }


        .faq-filter-row {
            justify-content:
                flex-start;

            overflow-x:
                auto;

            flex-wrap:
                nowrap;

            padding-bottom:
                5px;

            scrollbar-width:
                none;
        }


        .faq-filter-row::-webkit-scrollbar {
            display:
                none;
        }


        .faq-filter {
            flex:
                none;
        }


        .faq-question {
            min-height:
                72px;

            padding:
                14px;
        }


        .faq-number,
        .faq-popular-badge {
            display:
                none;
        }


        .faq-question-left {
            gap:
                9px;
        }


        .faq-question-text {
            font-size:
                11px;
        }


        .faq-answer {
            grid-template-columns:
                35px minmax(0,1fr);

            padding:
                0 14px;
        }


        .faq-contact-section {
            padding:
                8px 14px
                80px;
        }


        .faq-contact-card {
            padding:
                29px 23px;
        }


        .faq-contact-actions {
            align-items:
                stretch;

            flex-direction:
                column;
        }


        .faq-contact-button {
            width:
                100%;
        }

    }


    @media (
        prefers-reduced-motion:
        reduce
    ) {

        .faq-reveal {
            opacity:
                1 !important;

            transform:
                none !important;

            filter:
                none !important;

            transition:
                none !important;
        }

    }
