/* Oris offline interaction runtime */
html,
body {
    overflow-x: hidden
}

body {
    overflow-y: auto!important
}

/* Re-enable captured Swiper layouts without the original Nuxt/Swiper bundle. */
.swiper[data-offline-slider="1"] {
    position: relative;
    overflow-x: auto!important;
    overflow-y: hidden!important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    cursor: grab;
    touch-action: pan-y pinch-zoom;
}

.swiper[data-offline-slider="1"]::-webkit-scrollbar {
    display: none
}

.swiper[data-offline-slider="1"].offline-dragging {
    cursor: grabbing;
    user-select: none
}

.swiper[data-offline-slider="1"]>.swiper-wrapper {
    display: flex!important;
    flex-wrap: nowrap!important;
    width: max-content!important;
    min-width: 100%!important;
    transform: none!important;
    transition: none!important;
    will-change: auto!important;
}

.swiper[data-offline-slider="1"]>.swiper-wrapper>.swiper-slide {
    flex: none!important;
    height: auto;
}

.swiper[data-offline-slider="1"]:not(.swiper-free-mode)>.swiper-wrapper>.swiper-slide {
    scroll-snap-align: start;
}

.swiper[data-offline-slider="1"]:focus-visible {
    outline: 1px solid currentColor;
    outline-offset: 2px
}

/* Swiper scrollbars captured in the HTML. */
.swiper-scrollbar-element.swiper-scrollbar,
.swiper-scrollbar-wrapper .swiper-scrollbar {
    position: relative!important;
    overflow: hidden!important;
}

.swiper-scrollbar-drag[data-offline-scrollbar="1"] {
    position: absolute!important;
    left: 0!important;
    top: 0!important;
    height: 100%!important;
    transform-origin: left center!important;
    transition: transform .08s linear!important;
    will-change: transform,
    width;
}

/* Video.js snapshots have no JS. Native video becomes the source of truth. */
.video-js.offline-video-ready .vjs-poster {
    opacity: 0!important;
    pointer-events: none!important;
    transition: opacity .35s ease
}

.video-js.offline-video-ready .vjs-loading-spinner {
    display: none!important
}

.video-js video.vjs-tech,
video[data-offline-video="1"] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover
}

video[data-offline-video="1"][controls] {
    object-fit: contain;
    background: #000
}

/* Lightweight image viewer for stage/gallery sliders. */
#offline-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.94);
    padding: 24px
}

#offline-lightbox.is-open {
    display: flex
}

#offline-lightbox img {
    max-width: min(94vw,1600px);
    max-height: 92vh;
    width: auto;
    height: auto;
    object-fit: contain;
    user-select: none
}

#offline-lightbox button {
    position: absolute;
    appearance: none;
    border: 0;
    background: rgba(255,255,255,.12);
    color: #fff;
    width: 44px;
    height: 44px;
    border-radius: 999px;
    cursor: pointer;
    font: 24px/44px Arial,
    sans-serif;
    text-align: center
}

#offline-lightbox .offline-close {
    top: 20px;
    right: 20px;
    font-size: 28px
}

#offline-lightbox .offline-prev {
    left: 20px;
    top: 50%;
    transform: translateY(-50%)
}

#offline-lightbox .offline-next {
    right: 20px;
    top: 50%;
    transform: translateY(-50%)
}

/* Small reveal motion for sections whose original JS transition was stripped. */
@media (prefers-reduced-motion:no-preference) {
    [data-offline-reveal="1"] {
        opacity: 0;
        transform: translate3d(0,22px,0);
        transition: opacity .75s cubic-bezier(.22,1,.36,1),
        transform .75s cubic-bezier(.22,1,.36,1)
    }
    [data-offline-reveal="1"].offline-inview {
        opacity: 1;
        transform: none
    }
}

@media (prefers-reduced-motion:reduce) {
    [data-offline-reveal="1"] {
        opacity: 1!important;
        transform: none!important;
        transition: none!important
    }
}

/* Mobile pagination recreated from the captured empty pagination containers. */
.slider-pagination[data-offline-pagination="1"] {
    display: flex!important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    pointer-events: auto!important
}

.slider-pagination[data-offline-pagination="1"]>button {
    display: block;
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(0,0,0,.28);
    cursor: pointer;
    transition: transform .25s ease,
    background .25s ease
}

.slider-pagination[data-offline-pagination="1"]>button.is-active {
    background: rgba(0,0,0,.9);
    transform: scale(1.35)
}

@media (min-width:768px) {
    .slider-pagination[data-offline-pagination="1"].md\:hidden {
        display: none!important
    }
}

#main-content .swiper {
    scrollbar-width: none;
    -ms-overflow-style: none
}

#main-content .swiper::-webkit-scrollbar {
    display: none
}

#main-content .swiper.is-dragging {
    cursor: grabbing;
    user-select: none
}

#main-content .swiper:not(.is-dragging) {
    cursor: grab
}

/* Product variation rail uses the same native-scroll carousel model as the working site. */
[data-local-variation-rail] > .swiper-wrapper {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

[data-local-variation-rail] > .swiper-wrapper::-webkit-scrollbar {
    display: none;
}

[data-local-variation-rail] > .swiper-wrapper.is-dragging {
    cursor: grabbing!important;
}
