/* Shared product-gallery variant; inherit the current storefront's type/tokens. */
.pv-gallery, .pv-fullscreen {
  --pv-paper: var(--paper, #f8f5ef); --pv-ink: var(--ink, #211e19);
  --pv-line: var(--line, #ded5c7); --pv-focus: #173a5e; --pv-stage: #e9e5df;
  color: var(--pv-ink); font: inherit; min-width: 0;
}
.pv-gallery *, .pv-fullscreen * { box-sizing: border-box; }
.pv-gallery [hidden], .pv-fullscreen [hidden] { display: none; }
.pv-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--line, #ded5c7); border-radius: 8px; background: var(--paper, #f8f5ef); color: var(--ink, #211e19); font: inherit; font-size: 14px; line-height: 1.5; cursor: pointer; text-decoration: none; }
.pv-button:hover { border-color: currentColor; }
.pv-button:active { background: var(--soft, #e9e5df); }
.pv-button:focus-visible, .pv-details:focus-visible { outline: 3px solid #173a5e; outline-offset: 3px; }
.pv-button:disabled { opacity: .4; cursor: default; }
.pv-gallery { display: grid; gap: 10px; width: 100%; }
.pv-rail { display: flex; width: 100%; min-width: 0; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; touch-action: pan-x pan-y pinch-zoom; aspect-ratio: 1; background: var(--pv-stage); border-radius: 12px; scrollbar-width: thin; scrollbar-color: #806a42 var(--pv-stage); }
.pv-rail.pv-dragging { scroll-snap-type: none; cursor: grabbing; }
.pv-slide { flex: 0 0 100%; width: 100%; min-width: 0; position: relative; scroll-snap-align: start; scroll-snap-stop: always; }
.pv-slide img { display: block; width: 100%; height: 100%; max-height: none; object-fit: contain; object-position: center; padding: 10px; user-select: none; -webkit-user-drag: none; }
.pv-button.pv-photo { display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; cursor: zoom-in; }
.pv-button.pv-photo:focus-visible { outline-offset: -4px; }
.pv-image-state { position: absolute; inset: 0; display: grid; place-content: center; gap: 12px; text-align: center; padding: 20px; direction: rtl; background: var(--pv-stage); font-size: 14px; pointer-events: none; }
.pv-image-state button { pointer-events: auto; }
.pv-actions { display: flex; gap: 10px; align-items: center; justify-content: center; }
.pv-count { font-size: 13px; text-align: center; min-width: 80px; font-variant-numeric: tabular-nums; }
.pv-thumbs { display: flex; gap: 8px; overflow-x: auto; padding: 4px; min-width: 0; scrollbar-width: thin; scrollbar-color: #806a42 var(--pv-paper); }
.pv-thumbs:empty { display: none; }
.pv-thumb { width: 52px; height: 52px; flex: 0 0 52px; padding: 3px; }
.pv-thumb[aria-pressed="true"] { outline: 2px solid var(--pv-ink); outline-offset: -2px; }
.pv-thumb img { width: 100%; height: 100%; object-fit: contain; }
.pv-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pv-product-bar { padding: 8px 58px 8px 12px; grid-column: 1 / -1; }
.pv-page-bar { margin-block: 0 16px; }
.modal-media.pv-ready { overflow: visible; height: auto; min-height: 0; padding: 12px; }
.modal-media.pv-ready > #modalImage, .modal-media.pv-ready > #bsWalkGalleryV259, .modal-media.pv-ready > .bs-blue-lens-launch, .modal-media.pv-ready > .product-image-state, .pp-photo.pv-ready > img { display: none; }
.modal-media.pv-ready::before, .modal-media.pv-ready::after { display: none; }
/* The published v300 image uses !important; retire only that legacy visual. */
.v300 .modal-media.pv-ready > #modalImage { display: none !important; }
#modalDescription, .pp-details { scroll-margin-block-start: 24px; }
.pv-fullscreen { position: fixed; inset: 0; margin: 0; padding: max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); width: 100%; max-width: none; height: 100%; height: 100dvh; max-height: none; border: 0; background: var(--pv-paper); overflow: auto; }
.pv-fullscreen[open] { display: flex; flex-direction: column; gap: 8px; }
.pv-fullscreen::backdrop { background: var(--pv-paper); }
.pv-header { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.pv-header h2 { flex: 1; font-size: 14px; line-height: 1.6; margin: 0; min-width: 0; overflow-wrap: anywhere; }
.pv-close { font-size: 26px; padding: 4px; }
.pv-return { font-size: 12px; padding-inline: 10px; }
.pv-fullscreen .pv-gallery { flex: 1; min-height: 0; grid-template-rows: minmax(120px, 1fr) auto auto auto; }
.pv-fullscreen .pv-rail { aspect-ratio: auto; height: 100%; }
.pv-fullscreen .pv-tools { grid-template-columns: 1fr; }
.pv-rail::-webkit-scrollbar, .pv-thumbs::-webkit-scrollbar { height: 6px; }
.pv-rail::-webkit-scrollbar-thumb, .pv-thumbs::-webkit-scrollbar-thumb { background: #806a42; border-radius: 4px; }
@media (min-width: 768px) { .modal-media.pv-ready .pv-rail { max-height: 480px; } .pv-fullscreen .pv-gallery { max-width: 1100px; margin-inline: auto; } }
@media (prefers-reduced-motion: reduce) { .pv-rail { scroll-behavior: auto; } }
@media (forced-colors: active) { .pv-gallery, .pv-fullscreen { --pv-paper: Canvas; --pv-ink: CanvasText; --pv-stage: Canvas; } .pv-rail, .pv-thumbs { scrollbar-color: auto; } }
