/* scroll-story.css -- reusable pinned scrollytelling component.
 *
 * Elementor owns the panel content. This file only supplies the pinned stage,
 * stacked panel state, and accessible fallbacks once JS activates the story.
 */

.feat-scroll-story,
.feat-stage-swap {
    --feat-scroll-story-panel-count: 1;
    --feat-scroll-story-scroll-range: 100svh;
    --feat-scroll-story-stage-top: 0px;
    --feat-scroll-story-bg: var(--ch-bg, #071421);
    --feat-scroll-story-ink: var(--ink-primary, #e7e6dd);
    --feat-scroll-story-ease: var(--ch-ease, cubic-bezier(0.22, 1, 0.36, 1));
    position: relative;
    background: var(--feat-scroll-story-bg);
    overflow: visible;
}

[data-feat-stage-carousel-shell],
.feat-stage-carousel-shell {
    position: relative;
    overflow: visible;
    isolation: isolate;
    background: var(--feat-scroll-story-bg, var(--ch-bg, #071421));
}

[data-feat-stage-carousel-shell]:has(.is-feat-stage-carousel-handoff-active),
.feat-stage-carousel-shell:has(.is-feat-stage-carousel-handoff-active),
[data-feat-stage-carousel-state="transitioning-to-carousel"],
[data-feat-stage-carousel-state="transitioning-to-panel"] {
    touch-action: none;
}

[data-feat-stage-carousel-viewport],
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active {
    display: grid !important;
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
    overflow: visible;
    color: var(--feat-scroll-story-ink, var(--ink-primary, #e7e6dd));
}

[data-feat-stage-carousel-viewport] > :where(.feat-stage-swap, [data-feat-stage-swap]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active > :where(.feat-stage-swap, [data-feat-stage-swap]),
[data-feat-stage-carousel-viewport] > :has([data-drag-carousel]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active > :has([data-drag-carousel]) {
    grid-area: 1 / 1;
    min-width: 0;
    min-height: 100vh;
    min-height: 100svh;
}

[data-feat-stage-carousel-viewport] > :where(.feat-stage-swap, [data-feat-stage-swap]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active > :where(.feat-stage-swap, [data-feat-stage-swap]) {
    z-index: 2;
}

[data-feat-stage-carousel-viewport] > :has([data-drag-carousel]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active > :has([data-drag-carousel]) {
    z-index: 1;
    align-self: stretch;
    padding-top: var(--feat-stage-carousel-layer-padding-top, 0px);
    box-sizing: border-box;
}

.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="transitioning-to-carousel"]) > :where(.feat-stage-swap, [data-feat-stage-swap]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="transitioning-to-panel"]) > :where(.feat-stage-swap, [data-feat-stage-swap]) {
    z-index: 4;
    pointer-events: none;
    background: transparent !important;
}

.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="transitioning-to-carousel"]) > :where(.feat-stage-swap, [data-feat-stage-swap]) :where(.feat-stage-swap__stage, .feat-scroll-story__stage),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="transitioning-to-panel"]) > :where(.feat-stage-swap, [data-feat-stage-swap]) :where(.feat-stage-swap__stage, .feat-scroll-story__stage) {
    background: transparent !important;
}

.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="transitioning-to-carousel"]) > :has([data-drag-carousel]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="transitioning-to-panel"]) > :has([data-drag-carousel]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="transitioning-to-page"]) > :has([data-drag-carousel]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="transitioning-from-page"]) > :has([data-drag-carousel]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="carousel-active"]) > :has([data-drag-carousel]) {
    z-index: 3;
}

.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="carousel-active"]) > :where(.feat-stage-swap, [data-feat-stage-swap]) {
    z-index: 0;
    pointer-events: none;
    background: transparent !important;
}

.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="transitioning-to-page"]) > :where(.feat-stage-swap, [data-feat-stage-swap]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="transitioning-from-page"]) > :where(.feat-stage-swap, [data-feat-stage-swap]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active:has(> .feat-stage-swap[data-feat-stage-carousel-state="page-active"]) > :where(.feat-stage-swap, [data-feat-stage-swap]) {
    z-index: 0;
    pointer-events: none;
    background: transparent !important;
}

.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active
    > [data-feat-carousel-layer-state="panel-hidden"],
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active
    > [data-feat-carousel-layer-state="panel-hidden"]:has([data-drag-carousel]),
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active
    > [data-feat-carousel-layer-state="reentry-hidden"],
.feat-stage-carousel-shell.is-feat-stage-carousel-viewport-active
    > [data-feat-carousel-layer-state="reentry-hidden"]:has([data-drag-carousel]) {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

html {
    overflow-y: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

html body {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}

html.lenis:not(.lenis-autoToggle).lenis-stopped {
    overflow-x: clip !important;
    overflow-y: auto !important;
}

.pin-spacer:has(> .feat-scroll-story),
.pin-spacer:has(> .feat-scroll-story__stage),
.pin-spacer:has(> .feat-stage-swap),
.pin-spacer:has(> .feat-stage-swap__stage),
.pin-spacer:has(> .feat-scroll-story__pin-frame) {
    display: block !important;
    width: 100% !important;
    flex-basis: 100% !important;
    align-self: stretch;
    background: var(--feat-scroll-story-bg, var(--ch-bg, #071421));
}

.feat-scroll-story__stage,
.feat-stage-swap__stage {
    --feat-scroll-story-panel-count: 1;
    --feat-story-perspective: 1000px;
    position: relative;
    background: var(--feat-scroll-story-bg);
}

.feat-scroll-story__pin-frame {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
    height: 100vh;
    height: 100svh;
    min-height: 100vh;
    min-height: 100svh;
    flex: 0 0 100%;
    flex-basis: 100%;
    align-self: stretch;
    overflow: visible;
    isolation: isolate;
    background: var(--feat-scroll-story-bg);
    color: var(--feat-scroll-story-ink);
}

.feat-scroll-story__panel,
.feat-stage-swap__panel,
[data-feat-swap-panel] {
    position: relative;
}

.feat-scroll-story__panel :where(img, video),
.feat-stage-swap__panel :where(img, video),
[data-feat-swap-panel] :where(img, video) {
    max-width: 100%;
    object-fit: cover;
}

.feat-scroll-story.is-feat-scroll-story-active,
.feat-stage-swap.is-feat-scroll-story-active {
    display: block !important;
    background: var(--feat-scroll-story-bg);
    color: var(--feat-scroll-story-ink);
    min-height: 100vh;
    min-height: 100svh;
    overflow: visible;
}

.feat-scroll-story.is-feat-scroll-story-active.is-feat-scroll-story-controlled-pin,
.feat-stage-swap.is-feat-scroll-story-active.is-feat-scroll-story-controlled-pin {
    min-height: calc(100svh + var(--feat-scroll-story-scroll-range));
}

.feat-scroll-story.is-feat-scroll-story-active.is-feat-scroll-story-controlled-pin > .e-con-inner,
.feat-stage-swap.is-feat-scroll-story-active.is-feat-scroll-story-controlled-pin > .e-con-inner {
    min-height: calc(100svh + var(--feat-scroll-story-scroll-range));
}

.feat-scroll-story.is-feat-scroll-story-active .feat-scroll-story__stage.is-feat-scroll-stage-active,
.feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active,
.feat-stage-swap.is-feat-scroll-story-active .feat-scroll-story__stage.is-feat-scroll-stage-active {
    display: block !important;
    position: relative !important;
    width: 100%;
    max-width: none;
    height: 100vh;
    height: 100svh;
    min-height: 100vh;
    min-height: 100svh;
    overflow: hidden !important;
    isolation: isolate;
    background: var(--feat-scroll-story-bg);
    color: var(--feat-scroll-story-ink);
}

.feat-scroll-story.is-feat-scroll-story-active
    .feat-scroll-story__stage.is-feat-scroll-stage-active.is-feat-scroll-advanced,
.feat-stage-swap.is-feat-scroll-story-active
    .feat-stage-swap__stage.is-feat-scroll-stage-active.is-feat-scroll-advanced {
    perspective: var(--feat-story-perspective);
    transform-style: preserve-3d;
}

.feat-scroll-story.is-feat-scroll-story-active
    .feat-scroll-story__stage.is-feat-scroll-stage-active
    > .feat-scroll-story__panel,
.feat-stage-swap.is-feat-scroll-story-active
    .feat-stage-swap__stage.is-feat-scroll-stage-active
    > .feat-stage-swap__panel,
.feat-stage-swap.is-feat-scroll-story-active
    .feat-stage-swap__stage.is-feat-scroll-stage-active
    > [data-feat-swap-panel],
.feat-stage-swap.is-feat-scroll-story-active
    .feat-scroll-story__stage.is-feat-scroll-stage-active
    > [data-feat-swap-panel] {
    display: var(--display, flex) !important;
    position: absolute !important;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    min-height: 100%;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform-origin: center center;
    will-change: transform, opacity;
}

.feat-scroll-story.is-feat-scroll-story-active
    .feat-scroll-story__stage.is-feat-scroll-stage-active
    > .feat-scroll-story__panel:first-child,
.feat-stage-swap.is-feat-scroll-story-active
    .feat-stage-swap__stage.is-feat-scroll-stage-active
    > .feat-stage-swap__panel:first-child,
.feat-stage-swap.is-feat-scroll-story-active
    .feat-stage-swap__stage.is-feat-scroll-stage-active
    > [data-feat-swap-panel]:first-child {
    opacity: 1;
    visibility: visible;
}

.feat-scroll-story.is-feat-scroll-story-active
    .feat-scroll-story__stage.is-feat-scroll-stage-active
    > .feat-scroll-story__panel.is-feat-scroll-panel-active,
.feat-stage-swap.is-feat-scroll-story-active
    .feat-stage-swap__stage.is-feat-scroll-stage-active
    > .feat-stage-swap__panel.is-feat-scroll-panel-active,
.feat-stage-swap.is-feat-scroll-story-active
    .feat-stage-swap__stage.is-feat-scroll-stage-active
    > [data-feat-swap-panel].is-feat-scroll-panel-active {
    z-index: 1;
    pointer-events: auto;
}

.feat-scroll-story.is-feat-scroll-story-active
    .feat-scroll-story__stage.is-feat-scroll-stage-active
    .feat-scroll-story__panel
    > :where(img, video),
.feat-scroll-story.is-feat-scroll-story-active
    .feat-scroll-story__stage.is-feat-scroll-stage-active
    .feat-scroll-story__panel
    .feat-scroll-story__media
    :where(img, video),
.feat-scroll-story.is-feat-scroll-story-active
    .feat-scroll-story__stage.is-feat-scroll-stage-active
    .feat-scroll-story__panel
    .elementor-widget-video
    video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.feat-stage-swap__stage.is-feat-stage-swap-stage {
    --feat-stage-swap-layer-z: 0;
    --feat-stage-swap-overlay-z: 1;
    --feat-stage-swap-content-z: 2;
}

.feat-stage-swap__stage.is-feat-stage-swap-stage
    > :where(.feat-stage-swap__panel--carousel, [data-feat-carousel-stage], .js-carousel-stage) {
    align-items: center;
    justify-content: center;
    overflow: hidden !important;
}

.feat-stage-swap__stage.is-feat-stage-swap-stage
    > :where(.feat-stage-swap__panel--carousel, [data-feat-carousel-stage], .js-carousel-stage)
    :where([data-drag-carousel], .js-carousel) {
    width: 100%;
    min-width: 0;
}

/* Elementor owns child positioning; Stage Swap only hints compositing/animation. */
.feat-stage-swap__stage.is-feat-stage-swap-stage
    :where(.feat-stage-swap__item, [data-feat-swap-item]) {
    z-index: var(--feat-stage-swap-content-z);
    will-change: transform, opacity;
}

.feat-stage-swap__stage.is-feat-stage-swap-stage
    :where([data-feat-handoff-overlay], .js-stage-handoff-overlay, .feat-panel__overlay),
.feat-panel--absolute-media :where(.feat-panel__media, [data-feat-panel-media], .js-stage-swap-media),
.feat-panel--overlay-content :where(.feat-panel__media, [data-feat-panel-media], .js-stage-swap-media),
.feat-panel--overlay-content :where(.feat-panel__overlay, [data-feat-panel-overlay], .js-stage-handoff-overlay),
[data-feat-panel-layout="absolute-media"] :where(.feat-panel__media, [data-feat-panel-media], .js-stage-swap-media),
[data-feat-panel-layout="overlay-content"] :where(.feat-panel__media, [data-feat-panel-media], .js-stage-swap-media),
[data-feat-panel-layout="overlay-content"] :where(.feat-panel__overlay, [data-feat-panel-overlay], .js-stage-handoff-overlay) {
    will-change: transform, opacity;
}

.feat-stage-swap__video-layer,
[data-feat-swap-video-layer] {
    position: absolute;
    inset: 0;
    z-index: var(--feat-stage-swap-layer-z);
    overflow: hidden;
    pointer-events: none;
}

.feat-stage-swap__video-layer :where(img, video),
[data-feat-swap-video-layer] :where(img, video) {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.feat-stage-swap.is-feat-stage-swapping :where(.feat-stage-swap__item, [data-feat-swap-item]) {
    will-change: transform, opacity;
}

.feat-stage-swap.is-feat-stage-carousel-handoff-active
    :where([data-feat-handoff-source], .js-stage-handoff-source) {
    overflow: hidden;
    contain: paint;
    will-change: transform, opacity, border-radius;
}

.feat-stage-swap.is-feat-stage-carousel-handoff-active
    :where([data-feat-handoff-source], .js-stage-handoff-source)
    :where(img, video, canvas, picture, .elementor-wrapper) {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

:where([data-feat-handoff-source], .js-stage-handoff-source),
:where([data-feat-handoff-card], .js-carousel-handoff-card)
    :where([data-feat-handoff-media], .js-carousel-handoff-media, .elementor-widget-video, .elementor-wrapper) {
    border-radius: 20px;
    overflow: hidden;
}

.feat-stage-carousel-handoff-plane {
    position: fixed;
    pointer-events: none;
    overflow: hidden;
    contain: layout paint style;
    will-change: transform, opacity;
}

.feat-stage-carousel-handoff-plane img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    user-select: none;
}

.feat-scroll-story__stage.is-feat-scroll-advanced :where([data-feat-fly], [data-feat-depth], [data-feat-anchor]) {
    transform-style: preserve-3d;
}

.feat-scroll-story__stage.is-feat-scroll-advanced .feat-split__unit {
    display: inline-block;
    transform-origin: center 70%;
}

@media (max-width: 768px), (prefers-reduced-motion: reduce) {
    .feat-scroll-story,
    .feat-stage-swap,
    .feat-scroll-story.is-feat-scroll-story-active,
    .feat-stage-swap.is-feat-scroll-story-active,
    .feat-scroll-story.is-feat-scroll-story-active.is-feat-scroll-story-controlled-pin,
    .feat-stage-swap.is-feat-scroll-story-active.is-feat-scroll-story-controlled-pin,
    .feat-scroll-story__pin-frame,
    .feat-scroll-story .feat-scroll-story__stage,
    .feat-stage-swap .feat-stage-swap__stage,
    .feat-scroll-story.is-feat-scroll-story-active .feat-scroll-story__stage.is-feat-scroll-stage-active,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active {
        height: auto;
        min-height: 0;
    }

    .feat-scroll-story .feat-scroll-story__stage,
    .feat-stage-swap .feat-stage-swap__stage,
    .feat-scroll-story.is-feat-scroll-story-active .feat-scroll-story__stage,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage,
    .feat-scroll-story.is-feat-scroll-story-active .feat-scroll-story__stage.is-feat-scroll-stage-active,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active {
        position: relative;
        top: auto;
        height: auto;
        overflow: visible;
    }

    .feat-scroll-story .feat-scroll-story__panel,
    .feat-stage-swap .feat-stage-swap__panel,
    .feat-stage-swap [data-feat-swap-panel],
    .feat-scroll-story.is-feat-scroll-story-active .feat-scroll-story__panel,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__panel,
    .feat-stage-swap.is-feat-scroll-story-active [data-feat-swap-panel] {
        position: relative !important;
        inset: auto;
        width: auto;
        height: auto;
        min-height: 0;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto;
        transform: none !important;
        will-change: auto;
    }

    .feat-stage-swap__video-layer,
    [data-feat-swap-video-layer] {
        position: relative;
        inset: auto;
        min-height: 40vh;
    }

    .feat-stage-swap__stage.is-feat-stage-swap-stage :where(.feat-stage-swap__item, [data-feat-swap-item]) {
        will-change: auto;
    }

    .feat-scroll-story__stage.is-feat-scroll-advanced,
    .feat-scroll-story__stage.is-feat-scroll-advanced :where([data-feat-fly], [data-feat-depth], [data-feat-anchor]),
    .feat-scroll-story__stage.is-feat-scroll-advanced .feat-split__unit {
        transform: none !important;
        transform-style: flat;
    }
}

@media (max-width: 768px) and (prefers-reduced-motion: no-preference),
    (min-width: 769px) and (max-width: 1180px) and (orientation: portrait) and (pointer: coarse) and (prefers-reduced-motion: no-preference) {
    .feat-stage-swap .feat-stage-swap__stage > .feat-stage-swap__panel,
    .feat-stage-swap .feat-stage-swap__stage > [data-feat-swap-panel],
    .feat-stage-swap .feat-scroll-story__stage > [data-feat-swap-panel] {
        position: relative !important;
        inset: auto !important;
        z-index: auto;
        width: 100%;
        height: auto !important;
        min-height: 64svh !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto;
        overflow: hidden;
        transform: none !important;
        will-change: auto;
        box-sizing: border-box;
    }
}

@media (max-width: 768px) and (prefers-reduced-motion: no-preference) {
    .feat-stage-swap.is-feat-scroll-story-active {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible;
        touch-action: pan-y;
    }

    .feat-stage-swap.is-feat-scroll-story-active.is-feat-scroll-story-controlled-pin {
        min-height: 0 !important;
    }

    .feat-stage-swap.is-feat-scroll-story-active.is-feat-scroll-story-controlled-pin > .e-con-inner {
        min-height: 0 !important;
    }

    .feat-stage-swap.is-feat-scroll-story-active .feat-scroll-story__pin-frame {
        position: relative;
        display: block;
        width: 100%;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible;
        isolation: isolate;
        touch-action: pan-y;
    }

    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active,
    .feat-stage-swap.is-feat-scroll-story-active .feat-scroll-story__stage.is-feat-scroll-stage-active {
        display: block !important;
        position: relative !important;
        width: 100%;
        max-width: none;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        isolation: isolate;
        background: var(--feat-scroll-story-bg);
        color: var(--feat-scroll-story-ink);
        touch-action: pan-y;
    }

    .feat-stage-swap.is-feat-scroll-story-active
        .feat-stage-swap__stage.is-feat-scroll-stage-active
        > .feat-stage-swap__panel,
    .feat-stage-swap.is-feat-scroll-story-active
        .feat-stage-swap__stage.is-feat-scroll-stage-active
        > [data-feat-swap-panel],
    .feat-stage-swap.is-feat-scroll-story-active
        .feat-scroll-story__stage.is-feat-scroll-stage-active
        > [data-feat-swap-panel] {
        position: relative !important;
        inset: auto !important;
        z-index: auto;
        width: 100%;
        height: auto !important;
        min-height: 64svh !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto;
        overflow: hidden;
        transform-origin: center center;
        will-change: auto;
    }

    .feat-stage-swap.is-feat-scroll-story-active
        .feat-stage-swap__stage.is-feat-scroll-stage-active
        > .feat-stage-swap__panel.is-feat-scroll-panel-active,
    .feat-stage-swap.is-feat-scroll-story-active
        .feat-stage-swap__stage.is-feat-scroll-stage-active
        > [data-feat-swap-panel].is-feat-scroll-panel-active {
        z-index: 1;
        pointer-events: auto;
    }

    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__video-layer,
    .feat-stage-swap.is-feat-scroll-story-active [data-feat-swap-video-layer] {
        position: absolute;
        inset: 0;
        min-height: 0;
    }

    .feat-stage-swap__stage.is-feat-stage-swap-stage :where(.feat-stage-swap__item, [data-feat-swap-item]) {
        will-change: auto;
    }
}

@media (max-width: 768px) and (prefers-reduced-motion: no-preference),
    (min-width: 769px) and (max-width: 1180px) and (orientation: portrait) and (pointer: coarse) and (prefers-reduced-motion: no-preference) {
    .feat-stage-swap.is-feat-stage-swap-mobile-flow,
    .feat-stage-swap.is-feat-scroll-story-active.is-feat-stage-swap-mobile-flow {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible;
        touch-action: pan-y;
    }

    .feat-stage-swap.is-feat-stage-swap-mobile-flow > .e-con-inner,
    .feat-stage-swap.is-feat-scroll-story-active.is-feat-stage-swap-mobile-flow > .e-con-inner {
        height: auto !important;
        min-height: 0 !important;
    }

    .feat-stage-swap.is-feat-stage-swap-mobile-flow .feat-scroll-story__pin-frame {
        height: auto !important;
        min-height: 0 !important;
        overflow: visible;
    }

    .feat-stage-swap.is-feat-stage-swap-mobile-flow
        .feat-stage-swap__stage.is-feat-scroll-stage-active,
    .feat-stage-swap.is-feat-stage-swap-mobile-flow
        .feat-scroll-story__stage.is-feat-scroll-stage-active {
        display: block !important;
        position: relative !important;
        width: 100%;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        isolation: isolate;
        touch-action: pan-y;
    }

    .feat-stage-swap.is-feat-stage-swap-mobile-flow
        .feat-stage-swap__stage.is-feat-scroll-stage-active
        > .feat-stage-swap__panel,
    .feat-stage-swap.is-feat-stage-swap-mobile-flow
        .feat-stage-swap__stage.is-feat-scroll-stage-active
        > [data-feat-swap-panel],
    .feat-stage-swap.is-feat-stage-swap-mobile-flow
        .feat-scroll-story__stage.is-feat-scroll-stage-active
        > [data-feat-swap-panel] {
        position: relative !important;
        inset: auto !important;
        z-index: auto;
        width: 100%;
        height: auto !important;
        min-height: 64svh !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto;
        overflow: hidden;
        transform: none !important;
        transform-origin: center center;
        will-change: auto;
        box-sizing: border-box;
    }

    .feat-stage-swap.is-feat-stage-swap-mobile-flow
        .feat-stage-swap__stage.is-feat-scroll-stage-active
        > .feat-stage-swap__panel.is-feat-scroll-panel-active,
    .feat-stage-swap.is-feat-stage-swap-mobile-flow
        .feat-stage-swap__stage.is-feat-scroll-stage-active
        > [data-feat-swap-panel].is-feat-scroll-panel-active {
        z-index: auto;
        pointer-events: auto;
    }

    .feat-stage-swap.is-feat-stage-swap-mobile-flow .feat-stage-swap__video-layer,
    .feat-stage-swap.is-feat-stage-swap-mobile-flow [data-feat-swap-video-layer] {
        position: absolute;
        inset: 0;
        min-height: 0;
    }

    .feat-stage-swap.is-feat-stage-swap-mobile-flow
        .feat-stage-swap__stage.is-feat-stage-swap-stage
        :where(.feat-stage-swap__item, [data-feat-swap-item]) {
        will-change: transform, opacity;
    }
}

@media (max-width: 768px) {
    /* Elementor visibility is authoritative before mobile-flow panel discovery. */
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active > .feat-stage-swap__panel.elementor-hidden-mobile,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active > .feat-stage-swap__panel.elementor-hidden-mobile_extra,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active > .feat-stage-swap__panel.elementor-hidden-phone,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active > [data-feat-swap-panel].elementor-hidden-mobile,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active > [data-feat-swap-panel].elementor-hidden-mobile_extra,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active > [data-feat-swap-panel].elementor-hidden-phone,
    .feat-stage-swap.elementor-hidden-mobile,
    .feat-stage-swap.elementor-hidden-mobile_extra,
    .feat-stage-swap.elementor-hidden-phone,
    .feat-stage-swap .elementor-hidden-mobile,
    .feat-stage-swap .elementor-hidden-mobile_extra,
    .feat-stage-swap .elementor-hidden-phone {
        display: none !important;
    }
}

@media (min-width: 769px) and (max-width: 1180px) and (orientation: portrait) and (pointer: coarse) {
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active > .feat-stage-swap__panel.elementor-hidden-tablet,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active > .feat-stage-swap__panel.elementor-hidden-tablet_extra,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active > [data-feat-swap-panel].elementor-hidden-tablet,
    .feat-stage-swap.is-feat-scroll-story-active .feat-stage-swap__stage.is-feat-scroll-stage-active > [data-feat-swap-panel].elementor-hidden-tablet_extra,
    .feat-stage-swap.elementor-hidden-tablet,
    .feat-stage-swap.elementor-hidden-tablet_extra,
    .feat-stage-swap .elementor-hidden-tablet,
    .feat-stage-swap .elementor-hidden-tablet_extra {
        display: none !important;
    }
}
