.gallery-section { min-width: 0; }
.product-gallery-stage { position: relative; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; }
.product-gallery-track { display: flex; width: 100%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.product-gallery-track::-webkit-scrollbar { display: none; }
.product-gallery-slide, .product-photo-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.product-gallery-slide { display: block; aspect-ratio: 1 / 1.25; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.product-gallery-image { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }
.product-gallery-counter { position: absolute; bottom: 12px; right: 12px; border-radius: 20px; background: rgba(15,23,42,.75); padding: 5px 12px; color: #fff; font-size: .8rem; pointer-events: none; }
.product-gallery-hint { margin-top: 10px; color: #64748b; font-size: .8rem; text-align: center; }
.product-gallery-thumbs { position: relative; display: flex; gap: 10px; overflow-x: auto; padding: 4px 2px 8px; margin-top: 10px; }
.product-gallery-thumb { flex: 0 0 68px; height: 82px; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: #f8fafc; cursor: pointer; }
.product-gallery-thumb.active { border-color: #0f172a; }
.product-gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #e2e8f0; border-radius: 50%; background: rgba(255,255,255,.95); color: #0f172a; font-size: 30px; line-height: 1; cursor: pointer; box-shadow: 0 2px 8px #0002; }
.product-gallery-arrow.prev { left: 10px; }
.product-gallery-arrow.next { right: 10px; }
.product-gallery-slide:focus-visible, .product-gallery-thumb:focus-visible, .product-gallery-arrow:focus-visible, .product-photo-close:focus-visible { outline: 3px solid #2563eb; outline-offset: -3px; }
.product-photo-dialog { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: #0b1020; color: #fff; overflow: hidden; }
.product-photo-dialog::backdrop { background: rgba(0,0,0,.9); }
.product-photo-viewer { position: relative; display: flex; flex-direction: column; width: 100%; height: 100%; padding: env(safe-area-inset-top) 0 env(safe-area-inset-bottom); }
.product-photo-bar { display: flex; flex: 0 0 auto; align-items: center; gap: 16px; padding: 10px max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left)); min-height: 64px; }
.product-photo-title { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .9rem; }
.product-photo-counter { white-space: nowrap; font-variant-numeric: tabular-nums; font-size: .9rem; }
.product-photo-close { flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid #ffffff50; border-radius: 50%; background: #ffffff15; color: white; font-size: 30px; cursor: pointer; }
.product-photo-track { flex: 1 1 0; min-height: 0; }
.product-photo-slide { height: 100%; display: flex; align-items: center; justify-content: center; }
.product-photo-slide img { width: 100%; height: 100%; object-fit: contain; }
.product-photo-arrow { top: calc(50% + 32px); background: #0f172abf; color: #fff; border-color: #ffffff50; }
@media (max-width: 600px) {
  .product-photo-bar { gap: 10px; }
  .product-photo-arrow { width: 44px; height: 44px; }
  .product-photo-arrow.prev { left: 6px; }
  .product-photo-arrow.next { right: 6px; }
}
