/* Sunrise FAQ: shared visual language, native disclosure behaviour retained.
 * Scope excludes non-FAQ disclosures (e.g. withdrawal forms / legal documents).
 */
body main {
    --sds-faq-ink: var(--sds-brand-ink, #082635);
    --sds-faq-accent: var(--sds-brand-primary, #086b9c);
    --sds-faq-line: #cedfe7;
    --sds-faq-soft: var(--sds-brand-surface, #f4fafc);
}

body main section[class*="-faq"] {
    background: var(--sds-faq-soft) !important;
}

body main section[class*="-faq"] h2 {
    margin-bottom: 24px !important;
    color: var(--sds-faq-ink) !important;
    font-size: clamp(1.4rem, 2.5vw, 2rem) !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.02em !important;
    border: 0 !important;
    padding-inline: 0 !important;
}

body main :is(.sds-faq-list, .std-faq-list) {
    gap: 0 !important;
}

body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) details,
body main .std-faq-item {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    margin: 0 0 12px !important;
    padding: 0 !important;
    border: 1px solid var(--sds-faq-line) !important;
    border-radius: 14px !important;
    background: #fff !important;
    color: var(--sds-faq-ink) !important;
    box-shadow: 0 3px 12px rgb(8 38 53 / 4%) !important;
    overflow: hidden;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) details[open],
body main .std-faq-item:has(.std-faq-toggle[aria-expanded="true"]) {
    border-color: var(--sds-faq-accent) !important;
    box-shadow: 0 5px 18px rgb(8 38 53 / 7%) !important;
}

body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) summary,
body main .std-faq-toggle {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 64px !important;
    margin: 0 !important;
    padding: 19px 68px 19px 22px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--sds-faq-ink) !important;
    font-family: inherit !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
    letter-spacing: normal !important;
    text-align: left !important;
    text-transform: none !important;
    list-style: none !important;
    overflow-wrap: anywhere;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) summary::-webkit-details-marker,
body main .std-faq-chevron {
    display: none !important;
}

body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) summary::marker {
    content: "";
}

body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) summary::before,
body main .std-faq-toggle::before {
    content: none !important;
}

/* Decorative CSS icon: no extra accessible name or inserted text. */
body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) summary::after,
body main .std-faq-toggle::after {
    content: "" !important;
    position: absolute !important;
    inset: 50% 22px auto auto !important;
    width: 28px !important;
    height: 28px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background-color: #eaf4f8 !important;
    background-image: linear-gradient(var(--sds-faq-accent), var(--sds-faq-accent)), linear-gradient(var(--sds-faq-accent), var(--sds-faq-accent)) !important;
    background-position: center !important;
    background-size: 12px 2px, 2px 12px !important;
    background-repeat: no-repeat !important;
    transform: translateY(-50%) !important;
    transition: background-color 160ms ease;
}

body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) details[open] > summary::after,
body main .std-faq-toggle[aria-expanded="true"]::after {
    background-size: 12px 2px, 0 0 !important;
    background-color: #dceef5 !important;
}

body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) summary:focus-visible,
body main .std-faq-toggle:focus-visible {
    outline: 3px solid var(--sds-faq-accent) !important;
    outline-offset: -4px !important;
    border-radius: 12px !important;
}

body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) details > :not(summary),
body main .std-faq-answer {
    box-sizing: border-box;
    margin: 0 22px !important;
    padding: 0 0 20px !important;
    color: #3d4f5f !important;
    font-size: 1rem !important;
    line-height: 1.7 !important;
    overflow-wrap: anywhere;
}

body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) details > :not(summary):first-of-type {
    padding-top: 16px !important;
    border-top: 1px solid #e5eef2 !important;
}

body main .std-faq-answer p,
body main .sds-faq-body p {
    margin: 0 0 12px !important;
    padding: 0 !important;
    font-size: inherit !important;
    line-height: inherit !important;
}

/* The legacy button accordion owns max-height: closed answers must not
 * acquire vertical padding, otherwise the closed card contains an empty gap. */
body main .std-faq-answer {
    padding: 0 !important;
}

body main .std-faq-item--open .std-faq-answer {
    padding: 16px 0 20px !important;
    border-top: 1px solid #e5eef2 !important;
}

body main .std-faq-answer p:last-child,
body main .sds-faq-body p:last-child {
    margin-bottom: 0 !important;
}

body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) details a,
body main .std-faq-answer a {
    color: var(--sds-faq-accent) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
    body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) summary:hover,
    body main .std-faq-toggle:hover {
        background: #f7fbfd !important;
    }
}

@media (max-width: 600px) {
    body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) summary,
    body main .std-faq-toggle {
        min-height: 60px !important;
        padding: 17px 58px 17px 17px !important;
        font-size: 1rem !important;
    }
    body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) summary::after,
    body main .std-faq-toggle::after {
        right: 17px !important;
    }
    body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) details > :not(summary),
    body main .std-faq-answer {
        margin-inline: 17px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) details,
    body main .std-faq-item,
    body main :is([class*="-faq"], [id^="faq"], .sds-before-booking) summary::after,
    body main .std-faq-toggle::after {
        transition: none !important;
    }
}
