/*
|--------------------------------------------------------------------------
| Royal Servicess LLC
| Public FAQ Page
|--------------------------------------------------------------------------
|
| ONYX-FAQ-2026
|
|--------------------------------------------------------------------------
*/


/* ==========================================================================
   01. HERO
   ========================================================================== */

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

    padding:
        clamp(72px, 8vw, 118px)
        0
        clamp(64px, 7vw, 96px);

    border-bottom:
        1px solid
        var(--public-line);

    background:
        radial-gradient(
            circle at 82% 15%,
            rgba(200, 165, 91, 0.10),
            transparent 31%
        ),
        linear-gradient(
            180deg,
            #09090a,
            #0b0b0c
        );
}

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

    position: absolute;
    right: 5%;
    bottom: -0.42em;

    color:
        rgba(200, 165, 91, 0.03);

    font-family:
        var(--public-serif);

    font-size:
        clamp(
            13rem,
            27vw,
            26rem
        );

    line-height: 1;

    pointer-events: none;
}

.faq-hero__grid {
    position: relative;
    z-index: 2;

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

    align-items: end;

    gap:
        clamp(
            50px,
            8vw,
            120px
        );
}

.faq-hero__title {
    max-width: 800px;

    margin:
        18px
        0
        0;

    font-family:
        var(--public-serif);

    font-size:
        clamp(
            3.9rem,
            7vw,
            7rem
        );

    font-weight: 400;
    line-height: 0.92;

    letter-spacing: -0.055em;
}

.faq-hero__title span {
    display: block;

    color:
        var(--public-gold-soft);

    font-style: italic;
}

.faq-hero__lead {
    max-width: 690px;

    margin:
        28px
        0
        0;

    color: #9c9890;

    font-size: 0.92rem;
    line-height: 1.82;
}

.faq-hero__actions {
    margin-top: 30px;

    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}


/* ==========================================================================
   02. HERO INDEX
   ========================================================================== */

.faq-hero__index {
    overflow: hidden;

    border:
        1px solid
        var(--public-line);

    border-radius: 18px;

    background:
        rgba(16, 16, 17, 0.84);

    box-shadow:
        var(--public-shadow);
}

.faq-hero__index > div {
    min-height: 68px;

    padding:
        15px
        18px;

    display: grid;
    grid-template-columns:
        34px
        1fr;

    align-items: center;
    gap: 12px;

    border-bottom:
        1px solid
        var(--public-line);
}

.faq-hero__index > div:last-child {
    border-bottom: 0;
}

.faq-hero__index span {
    color:
        var(--public-gold);

    font-family:
        var(--public-serif);

    font-size: 0.7rem;
}

.faq-hero__index strong {
    color: #cbc6bc;

    font-family:
        var(--public-serif);

    font-size: 1rem;
    font-weight: 400;
}


/* ==========================================================================
   03. FAQ SECTIONS
   ========================================================================== */

.faq-section {
    padding:
        clamp(70px, 8vw, 108px)
        0;

    border-bottom:
        1px solid
        var(--public-line);

    background:
        #09090a;
}

.faq-section--alternate {
    background:
        #0b0b0c;
}

.faq-heading {
    max-width: 760px;

    margin-bottom:
        clamp(34px, 5vw, 50px);
}

.faq-heading h2 {
    margin:
        13px
        0
        0;

    font-family:
        var(--public-serif);

    font-size:
        clamp(
            2.65rem,
            4.8vw,
            4.5rem
        );

    font-weight: 400;
    line-height: 1;

    letter-spacing: -0.04em;
}


/* ==========================================================================
   04. ACCORDION LIST
   ========================================================================== */

.faq-list {
    border-top:
        1px solid
        var(--public-line);
}

.faq-item {
    border-bottom:
        1px solid
        var(--public-line);

    background:
        transparent;
}

.faq-item summary {
    min-height: 94px;

    padding:
        20px
        4px;

    display: grid;
    grid-template-columns:
        52px
        minmax(0, 1fr)
        40px;

    align-items: center;
    gap: 22px;

    color: #d4cfc5;

    cursor: pointer;

    font-family:
        var(--public-serif);

    font-size:
        clamp(
            1.3rem,
            2.3vw,
            1.85rem
        );

    line-height: 1.25;

    list-style: none;

    transition:
        padding
        var(--public-transition),
        background
        var(--public-transition);
}

.faq-item summary::-webkit-details-marker {
    display: none;
}

.faq-item summary:hover {
    padding-left: 12px;
    padding-right: 12px;

    background:
        rgba(200, 165, 91, 0.025);
}

.faq-item__number {
    color:
        var(--public-gold);

    font-size: 0.68rem;
}

.faq-item__icon {
    width: 34px;
    height: 34px;

    display: grid;
    place-items: center;

    justify-self: end;

    color:
        var(--public-gold-soft);

    border:
        1px solid
        rgba(200, 165, 91, 0.22);

    border-radius: 50%;

    font-family: Arial, sans-serif;
    font-size: 1rem;
    font-weight: 300;

    transition:
        transform
        var(--public-transition),
        background
        var(--public-transition);
}

.faq-item[open]
.faq-item__icon {
    transform:
        rotate(45deg);

    background:
        rgba(200, 165, 91, 0.06);
}

.faq-item__answer {
    max-width: 860px;

    padding:
        0
        50px
        30px
        78px;
}

.faq-item__answer p {
    margin: 0;

    color: #88847c;

    font-size: 0.8rem;
    line-height: 1.82;
}

.faq-text-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    margin-top: 17px;

    color:
        var(--public-gold-soft);

    font-size: 0.59rem;
    font-weight: 900;

    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.faq-text-link span {
    transition:
        transform
        var(--public-transition);
}

.faq-text-link:hover span {
    transform:
        translateX(4px);
}


/* ==========================================================================
   05. MORE DETAIL PANEL
   ========================================================================== */

.faq-more {
    padding:
        clamp(65px, 7vw, 96px)
        0;

    background:
        #09090a;
}

.faq-more__panel {
    padding:
        clamp(
            32px,
            5vw,
            50px
        );

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 45px;

    border:
        1px solid
        rgba(200, 165, 91, 0.19);

    border-radius: 19px;

    background:
        linear-gradient(
            130deg,
            #171510,
            #0f0f10
        );
}

.faq-more__panel h2 {
    max-width: 720px;

    margin:
        12px
        0
        15px;

    font-family:
        var(--public-serif);

    font-size:
        clamp(
            2.1rem,
            3.8vw,
            3.4rem
        );

    font-weight: 400;
    line-height: 1.04;
}

.faq-more__panel p {
    max-width: 720px;

    margin: 0;

    color: #817d76;

    font-size: 0.76rem;
    line-height: 1.72;
}

.faq-more__actions {
    flex: 0 0 auto;

    display: flex;
    flex-direction: column;
    gap: 9px;
}


/* ==========================================================================
   06. FINAL CTA
   ========================================================================== */

.faq-final {
    padding:
        0
        0
        clamp(80px, 8vw, 116px);

    background:
        #09090a;
}

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

    padding:
        clamp(
            38px,
            6vw,
            66px
        );

    border:
        1px solid
        rgba(200, 165, 91, 0.20);

    border-radius: 22px;

    background:
        radial-gradient(
            circle at 84% 15%,
            rgba(200, 165, 91, 0.12),
            transparent 35%
        ),
        linear-gradient(
            130deg,
            #171511,
            #0e0e0f 68%
        );

    box-shadow:
        var(--public-shadow);
}

.faq-final__panel::after {
    content: "FAQ";

    position: absolute;
    right: 18px;
    bottom: -48px;

    color:
        rgba(200, 165, 91, 0.03);

    font-family:
        var(--public-serif);

    font-size:
        clamp(
            7rem,
            17vw,
            12rem
        );

    line-height: 1;

    pointer-events: none;
}

.faq-final__panel > * {
    position: relative;
    z-index: 2;
}

.faq-final__panel h2 {
    max-width: 740px;

    margin:
        13px
        0
        17px;

    font-family:
        var(--public-serif);

    font-size:
        clamp(
            2.8rem,
            5vw,
            4.7rem
        );

    font-weight: 400;
    line-height: 1;

    letter-spacing: -0.04em;
}

.faq-final__panel p {
    max-width: 640px;

    margin:
        0
        0
        25px;

    color: #89857d;

    font-size: 0.8rem;
    line-height: 1.76;
}

.faq-final__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}


/* ==========================================================================
   07. TABLET
   ========================================================================== */

@media (max-width: 980px) {

    .faq-hero__grid {
        grid-template-columns: 1fr;

        gap: 40px;
    }

    .faq-hero__index {
        max-width: 760px;

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

    .faq-hero__index > div {
        min-height: 88px;

        grid-template-columns: 1fr;
        gap: 4px;

        border-bottom: 0;

        border-right:
            1px solid
            var(--public-line);
    }

    .faq-hero__index > div:last-child {
        border-right: 0;
    }

    .faq-more__panel {
        align-items: stretch;
        flex-direction: column;
    }

    .faq-more__actions {
        flex-direction: row;
        flex-wrap: wrap;
    }
}


/* ==========================================================================
   08. MOBILE
   ========================================================================== */

@media (max-width: 720px) {

    .faq-hero {
        padding:
            56px
            0
            52px;
    }

    .faq-hero__title {
        font-size:
            clamp(
                3rem,
                14vw,
                4.7rem
            );
    }

    .faq-hero__lead {
        font-size: 0.82rem;
    }

    .faq-hero__actions,
    .faq-final__actions,
    .faq-more__actions {
        flex-direction: column;
    }

    .faq-hero__actions
    .public-button,
    .faq-final__actions
    .public-button,
    .faq-more__actions
    .public-button {
        width: 100%;
    }

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

    .faq-hero__index > div {
        min-height: 58px;

        grid-template-columns:
            34px
            1fr;

        border-right: 0;

        border-bottom:
            1px solid
            var(--public-line);
    }

    .faq-hero__index > div:last-child {
        border-bottom: 0;
    }

    .faq-section {
        padding:
            58px
            0;
    }

    .faq-heading h2 {
        font-size:
            clamp(
                2.35rem,
                11vw,
                3.5rem
            );
    }

    .faq-item summary {
        min-height: 82px;

        padding:
            17px
            0;

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

        gap: 12px;

        font-size:
            clamp(
                1.12rem,
                5vw,
                1.45rem
            );
    }

    .faq-item summary:hover {
        padding-left: 5px;
        padding-right: 5px;
    }

    .faq-item__icon {
        width: 30px;
        height: 30px;
    }

    .faq-item__answer {
        padding:
            0
            34px
            26px
            47px;
    }

    .faq-more {
        padding:
            58px
            0;
    }

    .faq-more__panel {
        padding:
            30px
            23px;
    }

    .faq-final__panel {
        padding:
            33px
            23px;
    }

    .faq-final__panel h2 {
        font-size:
            clamp(
                2.4rem,
                11vw,
                3.7rem
            );
    }
}


/* ==========================================================================
   09. SMALL MOBILE
   ========================================================================== */

@media (max-width: 430px) {

    .faq-item summary {
        grid-template-columns:
            30px
            minmax(0, 1fr)
            30px;

        gap: 9px;
    }

    .faq-item__answer {
        padding:
            0
            6px
            24px
            39px;
    }
}


/* ==========================================================================
   10. REDUCED MOTION
   ========================================================================== */

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

    .faq-item summary,
    .faq-item__icon,
    .faq-text-link span {
        transition: none;
    }
}
