.product-gallery { min-width: 0; }
.product-gallery-stage { position: relative; border: 1px solid var(--line, #e4e7ec); border-radius: 1.25rem; overflow: hidden; background: #f8fafc; }
.product-gallery-viewport { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.product-gallery-viewport::-webkit-scrollbar { display: none; }
.product-gallery-slide { flex: 0 0 100%; min-width: 0; aspect-ratio: 4 / 3; scroll-snap-align: start; scroll-snap-stop: always; }
.product-gallery-slide img { display: block; width: 100%; height: 100%; object-fit: contain; }
.product-gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #d8dce7; border-radius: 50%; color: #1d2939; background: rgba(255,255,255,.95); box-shadow: 0 2px 8px rgba(16,24,40,.12); }
.product-gallery-previous { left: .75rem; }
.product-gallery-next { right: .75rem; }
.product-gallery-thumbnails { display: flex; gap: .75rem; overflow-x: auto; padding: .25rem .25rem .65rem; margin-top: .75rem; scrollbar-width: thin; }
.product-gallery-thumbnail { flex: 0 0 88px; width: 88px; height: 68px; padding: 3px; border: 2px solid #d8dce7; border-radius: .65rem; background: #fff; overflow: hidden; }
.product-gallery-thumbnail img { width: 100%; height: 100%; object-fit: contain; }
.product-gallery-thumbnail[aria-pressed="true"] { border-color: var(--brand, #5b4cf0); background: var(--soft, #f3f1ff); }
.product-gallery button:focus-visible, .product-gallery-viewport:focus-visible { outline: 3px solid var(--brand, #5b4cf0); outline-offset: -3px; }
.product-gallery-status { margin: 0; color: #667085; font-size: .875rem; }
@media (max-width: 575px) {
    .product-gallery-thumbnail { flex-basis: 72px; width: 72px; height: 58px; }
    .product-gallery-previous { left: .5rem; }
    .product-gallery-next { right: .5rem; }
}
