[data-product-zoom] .gallery-main{position:relative;overflow:hidden;border-radius:var(--radius,12px)}
[data-product-zoom] .gallery-main>img{display:block;transition:transform .2s ease}
.product-zoom-open{position:absolute;right:14px;bottom:14px;z-index:2;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line,#ddd);border-radius:50%;background:var(--color-background,#fff);color:var(--color-text,#233b32);box-shadow:0 3px 14px #0001;cursor:zoom-in}
.product-zoom-open:hover{box-shadow:0 4px 18px #0002}.product-zoom-open:focus-visible,.product-zoom-dialog button:focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(hover:hover) and (pointer:fine){[data-product-zoom="hover"] .gallery-main{cursor:zoom-in}[data-product-zoom="hover"] .gallery-main.is-zooming>img{transform:scale(var(--product-zoom-scale,2))}}
.product-zoom-dialog{box-sizing:border-box;width:min(1100px,94vw);max-width:94vw;max-height:94dvh;padding:56px 24px 16px;border:1px solid var(--line,#ddd);border-radius:18px;background:var(--color-background,#fff);color:var(--color-text,#233b32);box-shadow:0 24px 100px #0004}
.product-zoom-dialog::backdrop{background:#13231dd9;backdrop-filter:blur(5px)}
.product-zoom-dialog>img{display:block;width:100%;height:auto;max-height:min(780px,calc(90dvh - 160px));object-fit:contain}
.product-zoom-dialog button{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid var(--line,#ddd);border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.product-zoom-dialog button[hidden]{display:none}.product-zoom-dialog>[data-close]{position:absolute;right:12px;top:10px}.product-zoom-dialog footer{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:12px}.product-zoom-dialog p{margin:0;max-width:700px;font:400 13px/1.5 system-ui;text-align:center}.product-zoom-modal-open{overflow:hidden}
@media(max-width:600px){.product-zoom-dialog{padding:60px 12px 16px}.product-zoom-dialog p{font-size:12px}.product-zoom-dialog footer{gap:8px}}
@media(prefers-reduced-motion:reduce){[data-product-zoom] .gallery-main>img{transition:none}}
