.ltb-faq {
    padding: 88px 0 48px;
    background: #fff;
}

.ltb-faq__frame {
    width: min(1358px, 100% - 48px);
    margin: 0 auto;
}

.ltb-faq__rule {
    display: block;
    height: 2px;
    border-radius: 2px;
    background: var(--ltb-ash);
}

.ltb-faq__grid {
    display: flex;
    align-items: flex-start;
    gap: 34px;
    padding-top: 64px;
}

/* desktop: the head sits on the photo card, 48px in from its top-left corner;
   the column keeps the design's 874px so the list never sets the section height alone */
.ltb-faq__side {
    position: relative;
    display: flex;
    flex: 0 0 470px;
    flex-direction: column;
    width: 470px;
    height: 874px;
}

.ltb-faq__intro {
    position: absolute;
    top: 48px;
    right: 48px;
    left: 48px;
    z-index: 1;
    padding-right: 24px;
}

.ltb-page .ltb-faq__intro .ltb-overline {
    color: var(--ltb-ash);
}

.ltb-faq__title {
    margin-top: 16px;
    color: #000;
    font-size: 34px;
    font-weight: 800;
    line-height: 36px;
}

/* a dark photo: the head on it in white, the green words brighter (desktop, where it sits on the photo) */
@media (min-width: 1024px) {
    .ltb-faq--dark .ltb-faq__title,
    .ltb-page .ltb-faq--dark .ltb-faq__intro .ltb-overline {
        color: #fff;
    }

    .ltb-faq--dark .ltb-faq__title .green {
        color: var(--ltb-green);
    }
}

.ltb-faq__accent {
    display: none;
    width: 64px;
    height: 4px;
    border-radius: 2px;
    background: var(--ltb-green);
}

.ltb-faq__photo {
    height: 775px;
    overflow: hidden;
    border-radius: 16px;
    background: #FAF9F6;
}

.ltb-faq__photo-img {
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
}

.ltb-faq__list {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    min-width: 0;
}

/* Open and close run at the same time with the same curve, so the list keeps its height;
   paddings swap instantly (they add up to the same total) and the question glides via JS. */
.ltb-faq__item {
    --ltb-faq-ease: cubic-bezier(.33, 1, .68, 1);
    --ltb-faq-time: .42s;
    --ltb-faq-pad: 32px;
    position: relative;
    padding: 0 32px;
    border-radius: 16px;
    background-color: transparent;
    transition: background-color .3s ease;
}

.ltb-faq__inner {
    padding: 32px 0 42px;
    border-bottom: 1px solid var(--ltb-light-grey);
    transition: border-color .3s ease;
}

.ltb-faq__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font-family: Nunito, sans-serif;
    text-align: left;
    cursor: pointer;
}

/* the whole card (padding included) toggles; an open card keeps its answer selectable */
.ltb-faq__head::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 16px;
}

.ltb-faq__head:focus-visible {
    outline: 2px solid var(--ltb-green);
    outline-offset: 4px;
}

.ltb-faq__heading {
    position: relative;
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-width: 0;
}

.ltb-faq__num {
    color: var(--ltb-soft-grey);
    font-size: 14px;
    font-style: italic;
    font-weight: 500;
    line-height: 18px;
    transition: opacity .3s ease .08s;
}

.ltb-faq__badge {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    flex: 0 0 36px;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    opacity: 0;
    transform: scale(.5) rotate(-30deg);
    pointer-events: none;
    transition: opacity .18s ease, transform .3s var(--ltb-faq-ease);
}

.ltb-faq__badge-brush {
    display: block;
    width: 30.787px;
    max-width: none;
    height: 30.787px;
}

.ltb-page--travel .ltb-faq__badge-brush {
    position: absolute;
    top: 3px;
    left: 3px;
}

.ltb-faq__badge-num {
    position: absolute;
    top: 9px;
    left: 9.5px;
    color: var(--ltb-carbon);
    font-size: 14px;
    font-style: italic;
    font-weight: 900;
    line-height: 16px;
    white-space: nowrap;
}

.ltb-page--travel .ltb-faq__badge-num {
    top: 10px;
}

.ltb-faq__question {
    color: var(--ltb-ash);
    font-size: 21px;
    font-weight: 700;
    line-height: 32px;
    transition:
        color .26s ease .06s,
        font-size var(--ltb-faq-time) var(--ltb-faq-ease),
        transform var(--ltb-faq-time) var(--ltb-faq-ease);
}

.ltb-faq__toggle {
    position: relative;
    flex: 0 0 20px;
    width: 20px;
    height: 42px;
}

.ltb-faq__arrow {
    position: absolute;
    top: 22px;
    left: 0;
    display: block;
    width: 20px;
    height: 20px;
    transition:
        top var(--ltb-faq-time) var(--ltb-faq-ease),
        opacity .2s ease,
        transform .45s cubic-bezier(.34, 1.56, .64, 1);
}

.ltb-faq__arrow--up {
    opacity: 0;
    transform: rotate(-180deg) scale(.6);
}

.ltb-faq__answer {
    display: grid;
    grid-template-rows: 0fr;
    max-width: 644px;
    margin-top: 0;
    padding-left: 44px;
    box-sizing: border-box;
    opacity: 0;
    visibility: hidden;
    transition:
        grid-template-rows var(--ltb-faq-time) var(--ltb-faq-ease),
        margin-top var(--ltb-faq-time) var(--ltb-faq-ease),
        opacity .16s ease,
        visibility 0s linear var(--ltb-faq-time);
}

.ltb-faq__answer-inner {
    min-height: 0;
    overflow: clip;
    overflow-clip-margin: 8px;
}

.ltb-faq__answer-text {
    color: #FAFAFA;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
}

.ltb-faq__answer-text strong {
    color: #fff;
}

/* open */
.ltb-faq__item.is-open {
    padding: var(--ltb-faq-pad) var(--ltb-faq-pad) 16px;
    background-color: var(--ltb-anthracite);
}

.ltb-faq__item.is-open .ltb-faq__inner {
    padding: 0 0 31px;
    border-bottom-color: transparent;
}

.ltb-faq__item.is-open .ltb-faq__head {
    position: relative;
}

.ltb-faq__item.is-open .ltb-faq__head::after {
    inset: calc(-1 * var(--ltb-faq-pad)) calc(-1 * var(--ltb-faq-pad)) -12px;
}

.ltb-faq__item.is-open .ltb-faq__heading {
    flex-direction: row;
    gap: 0;
}

.ltb-faq__item.is-open .ltb-faq__num {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity .12s ease;
}

.ltb-faq__item.is-open .ltb-faq__badge {
    position: relative;
    opacity: 1;
    transform: none;
    transition: opacity .25s ease .06s, transform .5s cubic-bezier(.34, 1.56, .64, 1) .04s;
}

.ltb-faq__item.is-open .ltb-faq__question {
    padding: 9px 0 0 8px;
    color: #fff;
    font-size: 26px;
    font-weight: 800;
}

.ltb-faq__item.is-open .ltb-faq__toggle {
    height: 28px;
}

.ltb-faq__item.is-open .ltb-faq__arrow {
    top: 8px;
}

.ltb-faq__item.is-open .ltb-faq__arrow--down {
    opacity: 0;
    transform: rotate(180deg) scale(.6);
}

.ltb-faq__item.is-open .ltb-faq__arrow--up {
    opacity: 1;
    transform: none;
}

.ltb-faq__item.is-open .ltb-faq__answer {
    grid-template-rows: 1fr;
    margin-top: 24px;
    opacity: 1;
    visibility: visible;
    transition:
        grid-template-rows var(--ltb-faq-time) var(--ltb-faq-ease),
        margin-top var(--ltb-faq-time) var(--ltb-faq-ease),
        opacity .3s ease .12s,
        visibility 0s;
}

.ltb-faq__help {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px 10px;
    padding: 56px 0 0 24px;
}

.ltb-faq__help-lead,
.ltb-faq__help-text {
    color: var(--ltb-jet);
    font-size: 20px;
    font-weight: 800;
    line-height: 30px;
    white-space: nowrap;
}

.ltb-faq__help-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    text-decoration: none;
}

.ltb-faq__help-text {
    text-decoration: underline;
    text-decoration-color: var(--ltb-green);
    text-decoration-thickness: 4px;
    text-decoration-skip-ink: none;
    text-underline-offset: 5px;
}

.ltb-faq__help-icon {
    display: block;
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
}

@media (hover: hover) and (pointer: fine) {
    .ltb-faq__item:not(.is-open) .ltb-faq__head:hover .ltb-faq__question {
        color: #000;
    }

    .ltb-faq__help-link:hover .ltb-faq__help-text {
        text-decoration-color: var(--ltb-green-hover);
    }
}

@media (max-width: 1199px) {
    .ltb-faq__side {
        flex-basis: 400px;
        width: 400px;
    }

    .ltb-faq__intro {
        padding-right: 0;
    }

    .ltb-page .ltb-faq__intro .ltb-overline {
        white-space: normal;
    }
}

@media (max-width: 1023px) {
    .ltb-faq {
        padding: 24px 20px 64px;
    }

    .ltb-faq__frame {
        width: auto;
    }

    .ltb-faq__rule,
    .ltb-faq__photo {
        display: none;
    }

    .ltb-faq__grid {
        flex-direction: column;
        align-items: stretch;
        gap: 24px;
        padding-top: 0;
    }

    .ltb-faq__side {
        flex: none;
        width: auto;
        height: auto;
    }

    .ltb-faq__intro {
        position: static;
        padding: 0 24px;
    }

    .ltb-page .ltb-faq__intro .ltb-overline {
        color: var(--ltb-soft-grey);
    }

    .ltb-faq__title {
        margin-top: 0;
        font-size: 32px;
        line-height: 40px;
        text-box: normal;
    }

    .ltb-faq__help-lead,
    .ltb-faq__help-text {
        white-space: normal;
    }

    .ltb-faq__item {
        --ltb-faq-pad: 24px;
    }

    .ltb-faq__item.is-open .ltb-faq__inner {
        padding-bottom: 23px;
    }

    .ltb-faq__item.is-open .ltb-faq__answer {
        margin-top: 32px;
    }

    .ltb-faq__help {
        gap: 32px 10px;
    }
}

/* Finance: the FAQ follows the plans directly (no steps): 40 above the grid, the photo card
   sets the column (775) and 88 of air under it */
@media (min-width: 1024px) {
    .ltb-page--finance .ltb-faq {
        padding-top: 40px;
        padding-bottom: 88px;
    }

    .ltb-page--finance .ltb-faq__side {
        height: 775px;
    }
}
