.vz3d-slide{position:relative!important;isolation:isolate;background:#f8f9fb}.vz3d-panel{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.vz3d-poster{position:absolute;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;opacity:.3;filter:blur(1px);pointer-events:none}.vz3d-slide .vz3d-load,.vz3d-caption,.vz3d-message{position:relative;z-index:1}.vz3d-load{padding:14px 24px;font:500 15px Arial,sans-serif;background:#100d4c;color:#fff;border:0;border-radius:9px;min-height:48px;cursor:pointer;box-shadow:0 4px 18px #100d4c22}.vz3d-load:focus-visible{outline:3px solid #8e76ff;outline-offset:3px}.vz3d-load:disabled{opacity:.65;cursor:wait}.vz3d-caption{color:#100d4c;font:12px Arial,sans-serif;margin:12px 14px;text-align:center}.vz3d-message{max-width:80%;font:13px Arial,sans-serif;text-align:center;color:#100d4c}.vz3d-panel iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:2;background:#f8f9fb}.vz3d-close{position:absolute;bottom:28px;left:14px;z-index:3;padding:9px 12px;min-height:38px;background:#fff;border:1px solid #dddeea;color:#100d4c;border-radius:7px;cursor:pointer}.vz3d-close[hidden],.vz3d-load[hidden],.vz3d-caption[hidden],.vz3d-message[hidden]{display:none!important}.vz3d-thumbnail,.vz3d-rail-item{position:relative!important}.vz3d-thumbnail::after,.vz3d-rail-item::after{content:'3D';position:absolute;inset:auto 3px 3px auto;font:bold 10px/1 Arial,sans-serif;color:#fff;background:#100d4c;border-radius:4px;padding:4px;pointer-events:none}.vz3d-rail-item img{opacity:.6}.vz3d-slide[aria-hidden="true"] iframe{pointer-events:none}
.vz3d-slide .zoomImg,.vz3d-slide .rtwpvg-trigger{display:none!important;pointer-events:none!important}
.rtwpvg-wrapper.vz3d-is-active .rtwpvg-trigger{display:none!important}

.vz3d-live-host{position:absolute;inset:0;z-index:5;isolation:isolate}.vz3d-live-host[hidden]{display:none!important}.vz3d-live-host .vz3d-panel{inset:0}.rtwpvg-wrapper.vz3d-is-active.loading-rtwpvg::after{display:none}

.vz3d-proxy-image{display:none!important}

/* While 3D is visible, the native rails scroll above the two control rows.
   Native photo/video mode keeps its original rail sizing. */
body.vz-mobile-custom-active .vz3d-viewing .vzmcp-gallery-rail,
body.vz-mobile-custom-active .vz3d-viewing .vzmcp-side-actions,
body.vz-single-screen-active .vz3d-viewing .vzmcp-gallery-rail,
body.vz-single-screen-active .vz3d-viewing .vzmcp-side-actions{max-height:var(--vz3d-rail-height,180px)!important;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:none}

/* Keep price checks visible without covering the Custom gallery in any mode. */
.vz3d-price-feedback form.variations_form > .blockUI{display:none!important}
.vz3d-price-status{display:inline-block;width:12px;height:12px;margin-inline-start:7px;vertical-align:middle;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:vz3d-price-spin .8s linear infinite}
.vz3d-price-status[hidden]{display:none!important}
@keyframes vz3d-price-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.vz3d-price-status{animation:none;border-style:dotted}}
.vz3d-poster-nav{position:absolute;left:12px;right:12px;bottom:14px;display:flex;justify-content:space-between;pointer-events:none;z-index:3}
.vz3d-browse,.vz3d-lightbox-close{display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:10px;border:1px solid #dddeea;border-radius:9px;background:#ffffffed;color:#100d4c;cursor:pointer;pointer-events:auto;touch-action:manipulation}
.vz3d-browse svg,.vz3d-lightbox-close svg{width:22px;height:22px}
.vz3d-started .vz3d-poster-nav,.vz3d-lightbox-close[hidden]{display:none!important}
.vz3d-lightbox-close{position:absolute;right:12px;top:calc(12px + env(safe-area-inset-top,0px));z-index:4}
.vz3d-lightbox-slot{width:100%;height:100%;background:#f8f9fb}
body.vz-mobile-custom-active .vz3d-product .vzmcp-side-actions,
body.vz-single-screen-active .vz3d-product .vzmcp-side-actions{padding:8px;margin:-8px;box-sizing:content-box}
body.vz-mobile-custom-active .vz3d-product .vzmcp-side-action,
body.vz-single-screen-active .vz3d-product .vzmcp-side-action{box-shadow:0 3px 8px rgba(18,13,76,.10)}

.vz3d-product.vz3d-viewing .gallery-prev,.vz3d-product.vz3d-viewing .gallery-next,.vz3d-product.vz3d-viewing .rtwpvg-slider-prev-arrow,.vz3d-product.vz3d-viewing .rtwpvg-slider-next-arrow{display:none!important}

/* Elementor's later mobile media rule sets every iframe to 400px. Keep
   this viewer tied to its gallery panel, including fullscreen popovers. */
.vz3d-product .vz3d-panel iframe{display:block;width:100%!important;height:100%!important;max-height:none!important;min-height:0;margin:0}

/* Stable hidden identity for native rails; the visible preview is a watch. */
.vz3d-thumbnail-source{display:none!important}
.vz3d-thumbnail>img,.vz3d-rail-item>img{visibility:hidden!important;opacity:0!important}
.vz3d-thumb-picture{position:absolute;inset:0;display:block;background:#fff;pointer-events:none;border-radius:inherit;overflow:hidden}
.vz3d-thumb-picture img{display:block;width:100%!important;height:100%!important;object-fit:contain!important;opacity:1!important;visibility:visible!important}
/* Main Swiper owns selection; the thumbnail Swiper's active slide is its
   scroll position and can remain on the first item while photos change. */
/* Preserve native initial selection until the main-gallery sync is ready. */
.vz3d-product .vzmcp-gallery-rail__item.is-active{border-color:var(--vzmcp-accent,#6842ff)!important}
.vz3d-product .vzmcp-gallery-rail__list:has(.vz3d-current) .vzmcp-gallery-rail__item{border-color:var(--vzmcp-line,#e2e2ef)!important}
.vz3d-product .vzmcp-gallery-rail__list .vzmcp-gallery-rail__item.vz3d-current{border-color:var(--vzmcp-accent,#6842ff)!important}
