.gallery-images > .product-closeup { display:block; min-width:0; cursor:zoom-in; }
.gallery-images > .product-closeup:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.gallery-images > .product-closeup img { display:block; width:100%; height:auto; aspect-ratio:var(--product-photo-ratio,4/5); object-fit:cover; }
.product-image-dialog { box-sizing:border-box; width:min(1000px,calc(100vw - 24px)); max-width:none; max-height:calc(100dvh - 24px); padding:16px; border:1px solid var(--ink); background:var(--paper,#efede7); color:var(--ink,#222); overflow:auto; }
.product-image-dialog::backdrop { background:rgb(0 0 0 / 75%); }
.product-image-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:12px; font-size:14px; }
.product-image-toolbar a { color:inherit; }
.product-image-toolbar button { min-height:44px; padding:8px 16px; border:1px solid currentColor; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.product-image-dialog > img { display:block; width:auto; max-width:100%; height:auto; max-height:calc(100dvh - 170px); object-fit:contain; margin:0 auto; }
.product-image-dialog > img[hidden] { display:none; }
.product-image-status, .product-image-caption { font-size:14px; line-height:1.5; }
.product-image-status:empty { display:none; }
.product-image-caption { margin:12px 0 0; }
.photo-gallery { min-width:0; }
.photo-gallery .gallery-images { display:flex; gap:0; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:thin; }
.photo-gallery .gallery-images > * { flex:0 0 100%; min-width:0; width:100%; aspect-ratio:var(--product-photo-ratio,4/5); scroll-snap-align:start; scroll-snap-stop:always; }
.photo-gallery .gallery-images > img { height:auto; object-fit:cover; }
.photo-gallery .gallery-images > .product-closeup img { width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
.photo-gallery .gallery-images:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.product-gallery-controls { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:12px; font-size:14px; }
.product-gallery-controls button { min-height:44px; padding:8px 16px; border:1px solid var(--ink); background:transparent; color:inherit; font:inherit; cursor:pointer; }
.product-gallery-controls button:disabled { opacity:.35; cursor:default; }
.product-gallery-controls button:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
