/* all-inclusive-section — «Всё включено, без сюрпризов».
   Figma: complex-repair-desktop → all-inclusive-section (набор вариантов 87:3285),
          complex-repair-mobile  → all-inclusive-section-mobile (144:3249).

   Состояния State=default…State=step-4: текст неизменен, карточки
   накапливаются в стопку по мере прокрутки (CSS view timeline; JavaScript не требуется). */

.all-inclusive {
    --static-inset: 5.1429rem;
    --static-bottom: 4rem;
    display: flex;
    align-items: center;
    gap: 15.9375rem;
    padding-left: 5.1429rem;
}

.all-inclusive__text {
    flex: 0 0 44.9375rem;
    width: 44.9375rem;
}

.all-inclusive__title {
    margin: 0 0 3.4286rem;
    font-family: var(--font-display);
    font-weight: 400;
    font-size: 4.4571rem;
    line-height: 1;
    letter-spacing: -0.03em;
    text-transform: uppercase;
}

.all-inclusive__subtitle {
    margin: 0 0 2.5rem;
    font-size: 1.5429rem;
    line-height: 1.15;
}

.all-inclusive__body {
    margin: 0;
    font-size: 1.3714rem;
    line-height: 1.2;
    opacity: 0.6;
}

/* Scroll progress supplies each card's pose between the five Figma states. */
.all-inclusive__cards {
    position: relative;
    flex: 0 0 54rem;
    height: 36rem;
}

.all-inclusive__cards-stage {
    position: relative;
    isolation: isolate;
    width: 100%;
    height: 100%;
}

.all-inclusive__card {
    position: absolute;
    inset: 0 auto auto 0;
    display: flex;
    flex-direction: column;
    gap: 1.7143rem;
    width: 44.5714rem;
    height: 36rem;
    margin: 0;
    padding: 1.7143rem;
    border-radius: var(--radius-md);
    background: var(--c-surface);
    transform-origin: center bottom;
    opacity: 1;
    z-index: var(--i);
    pointer-events: none;
}

.all-inclusive__card img {
    flex: 1;
    width: 100%;
    min-height: 0;
    border-radius: var(--radius-sm);
    object-fit: cover;
}

.all-inclusive__card figcaption {
    font-size: 1.5429rem;
    line-height: 1.15;
}

@media (max-width: 1200px) {
    .all-inclusive {
        --static-inset: clamp(1.25rem, 6.25vw, 2.5rem);
        --static-bottom: 9.375rem;
        --static-columns: minmax(0, 1fr);
        --mobile-card-height: clamp(20rem, 65.625vw, 26.25rem);
        --mobile-stack-height: calc(var(--mobile-card-height) + 10rem);
        --mobile-sticky-top: min(5.3125rem, calc(100svh - var(--mobile-stack-height) - 1.25rem));
        flex-direction: column;
        align-items: stretch;
        gap: 2.5rem;
        max-width: 40rem;
        margin-inline: auto;
        padding: 0 var(--static-inset) var(--static-bottom);
    }

    .all-inclusive__text {
        flex: none;
        width: auto;
        display: flex;
        flex-direction: column;
        gap: 2.5rem;
    }

    .all-inclusive__title {
        margin: 0;
        font-size: 2.0625rem;
        line-height: 2.25rem;
        letter-spacing: -0.1875rem;
    }

    .all-inclusive__subtitle,
    .all-inclusive__body {
        margin: 0;
        font-size: 1rem;
        line-height: 1.1875rem;
    }

    /* Five mobile states share one sticky stack, with 40px between card tops.
       Only this track is pinned, so the longer text remains readable on phones. */
    .all-inclusive__cards {
        position: relative;
        flex: none;
        height: calc(var(--mobile-stack-height) + 100svh);
    }

    .all-inclusive__cards-stage {
        position: sticky;
        top: var(--mobile-sticky-top);
        height: var(--mobile-stack-height);
    }

    .all-inclusive__card {
        width: 100%;
        height: var(--mobile-card-height);
        padding: 1.25rem;
        gap: 1.25rem;
        border-radius: 0.5rem;
        backdrop-filter: blur(13px);
        -webkit-backdrop-filter: blur(13px);
    }

    .all-inclusive__card img {
        height: 0;
        flex: 1 1 0;
        aspect-ratio: auto;
    }

    .all-inclusive__card figcaption {
        font-size: 1.125rem;
    }
}

@supports not ((animation-timeline: --all-inclusive) and (view-timeline-inset: 1px) and (animation-range: contain)) {
    /* Unsupported scroll timelines and reduced motion use a fully visible list. */
    .all-inclusive {
        flex-direction: column;
        align-items: stretch;
        gap: 2.5rem;
        padding: 0 var(--static-inset) var(--static-bottom);
    }

    .all-inclusive__text {
        flex: none;
        width: auto;
    }

    .all-inclusive__cards {
        position: static;
        flex: none;
        height: auto;
    }

    .all-inclusive__cards-stage {
        position: static;
        display: grid;
        grid-template-columns: var(--static-columns, repeat(auto-fit, minmax(min(100%, 20rem), 1fr)));
        gap: 1.25rem;
        height: auto;
    }

    .all-inclusive__card {
        position: static;
        width: auto;
        height: auto;
        transform: none;
        opacity: 1;
        will-change: auto;
    }

    .all-inclusive__card img {
        flex: none;
        height: auto;
        aspect-ratio: 520 / 318;
    }
}

@media (prefers-reduced-motion: reduce) {
    /* Unsupported scroll timelines and reduced motion use a fully visible list. */
    .all-inclusive {
        flex-direction: column;
        align-items: stretch;
        gap: 2.5rem;
        padding: 0 var(--static-inset) var(--static-bottom);
    }

    .all-inclusive__text {
        flex: none;
        width: auto;
    }

    .all-inclusive__cards {
        position: static;
        flex: none;
        height: auto;
    }

    .all-inclusive__cards-stage {
        position: static;
        display: grid;
        grid-template-columns: var(--static-columns, repeat(auto-fit, minmax(min(100%, 20rem), 1fr)));
        gap: 1.25rem;
        height: auto;
    }

    .all-inclusive__card {
        position: static;
        width: auto;
        height: auto;
        transform: none;
        opacity: 1;
        will-change: auto;
    }

    .all-inclusive__card img {
        flex: none;
        height: auto;
        aspect-ratio: 520 / 318;
    }
}

@supports (animation-timeline: --all-inclusive) and (view-timeline-inset: 1px) and (animation-range: contain) {
    @media (prefers-reduced-motion: no-preference) {
        .all-inclusive__card {
            animation-duration: auto;
            animation-timing-function: ease-out, ease-in-out;
            animation-fill-mode: both;
            animation-timeline: --all-inclusive;
            animation-range: contain;
        }
    }

    @media (max-width: 1200px) and (prefers-reduced-motion: no-preference) {
        .all-inclusive__cards {
            view-timeline-name: --all-inclusive;
            view-timeline-axis: block;
            /* Make the timeline's visibility window equal the sticky stack.
               contain then runs from track.top = sticky.top for exactly 100svh. */
            view-timeline-inset: var(--mobile-sticky-top)
                calc(100% - var(--mobile-stack-height) - var(--mobile-sticky-top));
        }
    }
}
