#catalogProductImage { cursor: zoom-in; touch-action: pan-y pinch-zoom; }
.catalog-gallery-controls { display: flex; align-items: center; justify-content: center; gap: 20px; margin: 8px 0; }
.catalog-gallery-controls button { width: 44px; height: 44px; border: 1px solid var(--line); background: transparent; color: inherit; cursor: pointer; font-size: 22px; }
.catalog-gallery-controls span { font-size: 13px; min-width: 40px; text-align: center; }
.catalog-gallery-hint { text-align: center; font-size: 12px; color: var(--muted); margin: 8px 0; }
.product-image-viewer { position: fixed; inset: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; padding: 60px 16px 84px; margin: 0; border: 0; background: #111; color: white; overflow: hidden; }
.product-image-viewer[open] { display: flex; align-items: center; justify-content: center; }
.product-image-viewer::backdrop { background: #111; }
.viewer-image { max-width: 100%; width: auto; height: 100%; object-fit: contain; touch-action: pan-y pinch-zoom; user-select: none; }
.product-image-viewer button { width: 48px; height: 48px; color: white; background: #242424; border: 1px solid #777; font-size: 26px; cursor: pointer; }
.product-image-viewer button:focus-visible { outline: 2px solid white; outline-offset: 4px; }
.viewer-close { position: absolute; top: max(8px, env(safe-area-inset-top)); right: 12px; }
.viewer-controls { position: absolute; bottom: max(16px, env(safe-area-inset-bottom)); left: 0; right: 0; display: flex; gap: 24px; align-items: center; justify-content: center; }
.viewer-controls span { min-width: 48px; text-align: center; }
.viewer-controls button:disabled, .catalog-gallery-controls button:disabled { opacity: .3; cursor: default; }
