.product-gallery{min-width:0}.product-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.product-gallery-photo{display:block;background:#fff;border:1px solid #d6dce3;border-radius:12px;overflow:hidden;cursor:zoom-in}.product-gallery-photo:first-child{grid-column:1/-1}.product-detail .product-gallery-photo img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;margin:0}.product-gallery-photo:focus-visible{outline:3px solid #b68d42;outline-offset:3px}.photo-viewer{position:fixed;inset:0;width:min(96vw,1500px);max-width:96vw;height:94dvh;max-height:94dvh;padding:16px;border:0;border-radius:12px;background:#fff;color:#14283e}.photo-viewer::backdrop{background:rgb(4 17 32 / 88%)}.photo-viewer-bar{display:flex;align-items:center;justify-content:space-between;height:48px;gap:16px}.photo-viewer button{min-width:48px;min-height:48px;border:1px solid #a7afba;border-radius:8px;background:#fff;color:#14283e;font-size:1rem;cursor:pointer}.photo-viewer-body{display:flex;align-items:center;justify-content:center;gap:12px;height:calc(100% - 48px)}.photo-viewer-body img{width:calc(100% - 120px);height:100%;object-fit:contain;min-width:0}.photo-viewer-body button{font-size:2rem}.photo-viewer-open{overflow:hidden}.photo-viewer button[hidden]{display:none}@media(max-width:600px){.photo-viewer{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;padding:10px}.photo-viewer-body{gap:4px}.photo-viewer-body img{width:calc(100% - 104px)}.product-gallery-grid{gap:8px}}

/* Preserve the native photo dimensions in the enlarged viewer. */
.photo-viewer-body img{width:auto;height:auto;max-width:calc(100% - 120px);max-height:100%;object-fit:contain}
@media(max-width:600px){.photo-viewer-body img{width:auto;max-width:calc(100% - 104px)}}

/* The complete browser viewport is dedicated to the photograph. */
.photo-viewer{inset:0;margin:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding:0;border:0;border-radius:0;background:#0b1420;color:#fff;overflow:hidden}
.photo-viewer:fullscreen{width:100vw;height:100dvh}
.photo-viewer-bar{position:absolute;inset:0 0 auto;z-index:3;min-height:64px;height:auto;padding:12px 20px;background:linear-gradient(#0b1420ef,#0b1420c9);font-size:14px}
.photo-viewer-bar>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.photo-viewer-bar>div{display:flex;gap:10px;flex-shrink:0}
.photo-viewer button{background:#183249e8;border-color:#93a5b6;color:#fff}
.photo-viewer-body{position:absolute;inset:70px 12px 46px;display:flex;align-items:center;justify-content:center;height:auto;gap:0}
.photo-viewer-body img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.photo-viewer-body button{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:48px;height:60px;font-size:36px;background:#0b1420c9}
.photo-viewer-body [data-photo-prev]{left:8px}.photo-viewer-body [data-photo-next]{right:8px}
.photo-viewer-status{position:absolute;bottom:10px;left:12px;right:12px;margin:0;text-align:center;font-size:12px;color:#e6edf3}
.photo-viewer button:focus-visible{outline:3px solid #e6bf67;outline-offset:3px}
@media(max-width:600px){.photo-viewer-bar{padding:10px 12px;font-size:12px;min-height:60px;gap:10px}.photo-viewer-bar>div{gap:6px}.photo-viewer-bar button{font-size:12px;padding:8px}.photo-viewer-body{inset:70px 0 45px}.photo-viewer-body img{max-width:100%}.photo-viewer-body button{width:44px;min-width:44px;height:52px}.photo-viewer-body [data-photo-prev]{left:4px}.photo-viewer-body [data-photo-next]{right:4px}}

.gallery-photo-label{display:flex;align-items:center;justify-content:center;min-height:52px;font-size:13px;color:#18394b;padding:12px}.photo-viewer-body img{background:#fff}.photo-viewer-body img[hidden]{display:none}

/* Stable viewport viewer on mobile, including Safari's dynamic browser bars. */
.photo-viewer{height:100vh;height:100dvh;overscroll-behavior:contain}
.photo-viewer-bar{padding-top:max(12px,env(safe-area-inset-top));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.photo-viewer-bar [data-photo-close]{flex:0 0 auto;padding:10px 14px;touch-action:manipulation}
.photo-viewer-body{top:calc(70px + env(safe-area-inset-top));bottom:calc(46px + env(safe-area-inset-bottom))}
.photo-viewer-body img{touch-action:pan-y pinch-zoom}
.photo-viewer-status{bottom:calc(10px + env(safe-area-inset-bottom))}
