/* RFU PDP Gallery file-owner styles. Split from rfu-pdp-gallery.php. */
body.rfu-fast-gallery-product.single-product .rtwpvg-thumbnail-wrapper,
body.rfu-fast-gallery-product.single-product .rtwpvg-thumbnail-slider,
body.rfu-fast-gallery-product.single-product .rtwpvg-thumbnail-image,
body.rfu-fast-gallery-product.single-product .rtwpvg-thumbnails,
body.rfu-fast-gallery-product.single-product .flex-control-nav,
body.rfu-fast-gallery-product.single-product .flex-control-thumbs,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__trigger,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .zoomImg,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery img.zoomImg,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .flex-direction-nav,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .flex-prev,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .flex-next,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .slick-prev,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .slick-next,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .swiper-button-prev,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .swiper-button-next,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .rtwpvg-slider-prev,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .rtwpvg-slider-next {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__wrapper > *:not(:first-child),
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image:not(:first-child),
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:not(:first-child),
body.rfu-fast-gallery-product.single-product .flex-viewport .woocommerce-product-gallery__image:not(:first-child) {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .flex-viewport,
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__wrapper {
    overflow: visible !important;
    height: auto !important;
}
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__image:first-child {
    position: relative !important;
    background: #fbfcfd !important;
    border: 1px solid rgba(12,45,78,.065) !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    box-shadow: 0 10px 30px rgba(12,45,78,.045) !important;
}
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__image:first-child > a {
    cursor: zoom-in !important;
}
body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__image:first-child img:not(.zoomImg) {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
}
body.rfu-fast-gallery-product.single-product .rfu-gallery-touch-layer {
    position: absolute !important;
    inset: 0 !important;
    z-index: 12 !important;
    display: block !important;
    background: transparent !important;
    cursor: zoom-in !important;
    touch-action: pan-y !important;
    -webkit-tap-highlight-color: transparent !important;
}
body.rfu-fast-gallery-product.single-product .rfu-gallery-btn {
    position: absolute !important;
    z-index: 30 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 42px !important;
    border: 1px solid rgba(12,45,78,.10) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.97) !important;
    color: #0C2D4E !important;
    box-shadow: 0 10px 24px rgba(12,45,78,.11) !important;
    cursor: pointer !important;
    font-size: 23px !important;
    line-height: 1 !important;
    padding: 0 !important;
    transition: background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease !important;
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    outline: none !important;
}
body.rfu-fast-gallery-product.single-product .rfu-gallery-btn:focus { outline: none !important; }
body.rfu-fast-gallery-product.single-product .rfu-gallery-btn:hover {
    background: #0C2D4E !important;
    color: #fff !important;
    border-color: #0C2D4E !important;
    box-shadow: 0 12px 28px rgba(12,45,78,.18) !important;
}
body.rfu-fast-gallery-product.single-product .rfu-gallery-prev { left: 16px !important; top: 50% !important; transform: translateY(-50%) !important; }
body.rfu-fast-gallery-product.single-product .rfu-gallery-prev:hover { transform: translateY(-50%) translateX(-1px) !important; }
body.rfu-fast-gallery-product.single-product .rfu-gallery-next { right: 16px !important; top: 50% !important; transform: translateY(-50%) !important; }
body.rfu-fast-gallery-product.single-product .rfu-gallery-next:hover { transform: translateY(-50%) translateX(1px) !important; }
body.rfu-fast-gallery-product.single-product .rfu-gallery-zoom { right: 16px !important; top: 16px !important; width: 40px !important; height: 40px !important; font-size: 15px !important; }
@media (hover: none) and (pointer: coarse) {
    body.rfu-fast-gallery-product.single-product .rfu-gallery-btn:hover {
        background: rgba(255,255,255,.97) !important;
        color: #0C2D4E !important;
        border-color: rgba(12,45,78,.10) !important;
        box-shadow: 0 10px 24px rgba(12,45,78,.11) !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-gallery-prev:hover { transform: translateY(-50%) !important; }
    body.rfu-fast-gallery-product.single-product .rfu-gallery-next:hover { transform: translateY(-50%) !important; }
}
body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumb {
    border: 1px solid rgba(12,45,78,.09);
    background: #fff;
    border-radius: 12px;
    padding: 0;
    overflow: hidden;
    cursor: pointer;
    opacity: .74;
    transition: opacity .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumb:hover,
body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumb.is-active {
    opacity: 1;
    border-color: #E78C07;
    box-shadow: 0 7px 18px rgba(12,45,78,.12);
    transform: translateY(-1px);
}
body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumb img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center top;
    background: #f7f8fa;
}
@media (min-width: 992px) {
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery {
        display: grid !important;
        grid-template-columns: 112px minmax(0, 1fr) !important;
        column-gap: 24px !important;
        align-items: center !important;
    }
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
        grid-column: 2 !important;
        grid-row: 1 !important;
        min-width: 0 !important;
        width: 100% !important;
        transform: none !important;
        left: 0 !important;
        margin-left: 0 !important;
    }
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__image:first-child {
        height: 555px !important;
        min-height: 555px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 18px !important;
        box-sizing: border-box !important;
    }
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__image:first-child > a {
        width: 100% !important;
        height: 100% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-vertical-thumbs-wrap,
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumbs-wrap {
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 112px !important;
        height: 476px !important;
        margin-top: 0 !important;
        padding: 8px !important;
        box-sizing: border-box !important;
        background: #ffffff !important;
        border: 1px solid rgba(12,45,78,.08) !important;
        border-radius: 20px !important;
        box-shadow: 0 12px 32px rgba(12,45,78,.07) !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        overflow: hidden !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-vertical-thumbs-wrap .rfu-color-gallery-thumbs,
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumbs {
        width: 100% !important;
        flex: 1 1 auto !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        margin: 0 !important;
        height: auto !important;
        max-height: none !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding: 8px 0 !important;
        scrollbar-width: none !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-vertical-thumbs-wrap .rfu-color-gallery-thumbs::-webkit-scrollbar,
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumbs::-webkit-scrollbar { display: none !important; }
    body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumb,
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumb {
        width: 100% !important;
        height: 104px !important;
        min-width: 0 !important;
        flex: 0 0 auto !important;
        border-radius: 13px !important;
        border: 1px solid rgba(12,45,78,.08) !important;
        background: #f8f9fa !important;
        opacity: .72 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        overflow: hidden !important;
        cursor: pointer !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumb:hover,
    body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumb.is-active,
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumb.is-active {
        opacity: 1 !important;
        border-color: #E78C07 !important;
        box-shadow: 0 8px 20px rgba(12,45,78,.14) !important;
        transform: translateY(-1px) !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumb img,
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumb img {
        width: 100% !important;
        height: 104px !important;
        object-fit: cover !important;
        object-position: center top !important;
        aspect-ratio: auto !important;
        background: #f7f8fa !important;
        display: block !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-thumbs-scroll {
        position: static !important;
        width: 100% !important;
        height: 34px !important;
        min-height: 34px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        border: 1px solid rgba(12,45,78,.10) !important;
        border-radius: 13px !important;
        background: #f7f9fb !important;
        color: #0C2D4E !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 4px 12px rgba(12,45,78,.045) !important;
        cursor: pointer !important;
        font-size: 14px !important;
        font-weight: 800 !important;
        line-height: 1 !important;
        padding: 0 !important;
        transition: background .16s ease, color .16s ease, border-color .16s ease, box-shadow .16s ease !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-thumbs-scroll:hover {
        background: #0C2D4E !important;
        color: #fff !important;
        border-color: #0C2D4E !important;
        box-shadow: 0 8px 18px rgba(12,45,78,.16) !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-thumbs-scroll-up { margin-bottom: 8px !important; }
    body.rfu-fast-gallery-product.single-product .rfu-thumbs-scroll-down { margin-top: 8px !important; }
}
@media (max-width: 991px) {
    html, body { max-width: 100% !important; overflow-x: hidden !important; }
    body.rfu-fast-gallery-product.single-product .product-details-wrapper {
        max-width: 100% !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
    }
    body.rfu-fast-gallery-product.single-product div.product .woocommerce-product-gallery,
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery,
    body.rfu-fast-gallery-product.single-product .images {
        display: block !important;
        float: none !important;
        clear: both !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
        position: relative !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;
        overflow: hidden !important;
    }
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery,
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__wrapper,
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__image:first-child,
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__image:first-child > a {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;
        translate: none !important;
        box-sizing: border-box !important;
    }
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__wrapper {
        display: block !important;
        overflow: hidden !important;
    }
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__image:first-child {
        height: auto !important;
        min-height: 0 !important;
        padding: 0 !important;
        touch-action: pan-y !important;
        border-radius: 14px !important;
        overflow: hidden !important;
        position: relative !important;
    }
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__image:first-child > a {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: hidden !important;
        position: relative !important;
    }
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery__image:first-child img:not(.zoomImg) {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        margin-left: auto !important;
        margin-right: auto !important;
        position: relative !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        transform: none !important;
        translate: none !important;
        object-fit: contain !important;
        object-position: center center !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-vertical-thumbs-wrap,
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumbs-wrap {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        margin: 10px 0 0 0 !important;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        overflow: visible !important;
        clear: both !important;
        box-sizing: border-box !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-thumbs-scroll { display: none !important; }
    body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumbs,
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumbs {
        display: flex !important;
        flex-direction: row !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        gap: 8px !important;
        margin-top: 10px !important;
        padding-bottom: 6px !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior-x: contain !important;
        touch-action: auto !important;
        scrollbar-width: none !important;
        box-sizing: border-box !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumbs::-webkit-scrollbar,
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumbs::-webkit-scrollbar { display: none !important; }
    body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumb,
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumb {
        flex: 0 0 72px !important;
        width: 72px !important;
        height: 90px !important;
        min-width: 72px !important;
        border-radius: 10px !important;
        border: 1px solid rgba(12,45,78,.12) !important;
        opacity: .72 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        overflow: hidden !important;
        background: #fff !important;
        cursor: pointer !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumb.is-active,
    body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumb.is-active {
        opacity: 1 !important;
        border-color: #E78C07 !important;
        box-shadow: 0 6px 16px rgba(12,45,78,.13) !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-dom-thumb img,
    body.rfu-fast-gallery-product.single-product .rfu-color-gallery-thumb img {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center top !important;
    }
    body.rfu-fast-gallery-product.single-product .rfu-gallery-btn { width: 36px !important; height: 36px !important; font-size: 19px !important; }
    body.rfu-fast-gallery-product.single-product .rfu-gallery-prev { left: 8px !important; }
    body.rfu-fast-gallery-product.single-product .rfu-gallery-next { right: 8px !important; }
    body.rfu-fast-gallery-product.single-product .rfu-gallery-zoom { top: 8px !important; right: 8px !important; width: 36px !important; height: 36px !important; }
}
.rfu-gallery-lightbox {
    position: fixed !important;
    inset: 0 !important;
    z-index: 999999 !important;
    display: none;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(2,10,18,.94) !important;
    padding: 24px !important;
    box-sizing: border-box !important;
    touch-action: none !important;
    overscroll-behavior: contain !important;
}
.rfu-gallery-lightbox.is-open { display: flex !important; }
.rfu-gallery-lightbox, .rfu-gallery-lightbox * { -webkit-tap-highlight-color: transparent !important; }
.rfu-gallery-lightbox-inner {
    position: relative !important;
    width: min(92vw, 920px) !important;
    height: min(86vh, 820px) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.rfu-gallery-lightbox-image {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    background: #fff !important;
}
.rfu-gallery-lightbox-close,
.rfu-gallery-lightbox-prev,
.rfu-gallery-lightbox-next {
    position: absolute !important;
    z-index: 5 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.12) !important;
    color: #fff !important;
    cursor: pointer !important;
    padding: 0 !important;
    transition: all .16s ease !important;
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    outline: none !important;
}
.rfu-gallery-lightbox-close:hover,
.rfu-gallery-lightbox-prev:hover,
.rfu-gallery-lightbox-next:hover { background: #E78C07 !important; border-color: #E78C07 !important; }
.rfu-gallery-lightbox-close { top: 18px !important; right: 18px !important; width: 42px !important; height: 42px !important; font-size: 28px !important; }
.rfu-gallery-lightbox-prev,
.rfu-gallery-lightbox-next { top: 50% !important; width: 46px !important; height: 46px !important; font-size: 28px !important; transform: translateY(-50%) !important; }
.rfu-gallery-lightbox-prev { left: 20px !important; }
.rfu-gallery-lightbox-next { right: 20px !important; }
.rfu-gallery-lightbox-caption {
    position: absolute !important;
    left: 50% !important;
    bottom: 18px !important;
    transform: translateX(-50%) !important;
    color: rgba(255,255,255,.85) !important;
    background: rgba(255,255,255,.12) !important;
    border-radius: 999px !important;
    padding: 7px 13px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}
@media (max-width: 767px) {
    .rfu-gallery-lightbox { padding: 14px !important; }
    .rfu-gallery-lightbox-inner { width: 94vw !important; height: 82vh !important; }
}
@media (min-width: 992px) {
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery:not(.rfu-gallery-width-stable) .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child,
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery:not(.rfu-gallery-width-stable) .woocommerce-product-gallery__image.flex-active-slide:first-child,
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery:not(.rfu-gallery-width-stable) .woocommerce-product-gallery__image:first-child {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        display: flex !important;
    }
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery:not(.rfu-gallery-width-stable) .woocommerce-product-gallery__image:first-child > a {
        width: 100% !important;
        max-width: 100% !important;
    }
    body.rfu-fast-gallery-product.single-product .woocommerce-product-gallery:not(.rfu-gallery-width-stable) .woocommerce-product-gallery__image:first-child .rfu-gallery-touch-layer {
        width: 100% !important;
        max-width: 100% !important;
        left: 0 !important;
        right: 0 !important;
    }
}