.tpl-image-viewer{position:fixed;inset:var(--tpl-sticky-height,112px) 0 var(--tpl-purchase-height,145px);z-index:180;width:100%;height:auto;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--tpl-gallery-background,#f8f7f6);color:#111;font:400 11px/1.4 Barlow,Arial,sans-serif;box-sizing:border-box;overflow:hidden}
.tpl-image-viewer:not([open]){display:none}.tpl-image-viewer[open]{display:grid;grid-template-rows:44px minmax(0,1fr) 48px;animation:tpl-viewer-in .18s ease-out}
.tpl-image-viewer button{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;cursor:pointer;touch-action:manipulation}
.tpl-image-viewer button:disabled{opacity:.25;cursor:default}.tpl-image-viewer button:focus-visible{outline:1px solid currentColor;outline-offset:-4px}
.tpl-image-viewer__top,.tpl-image-viewer__controls{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(12px,3vw,48px);background:var(--tpl-gallery-background,#f8f7f6)}
.tpl-image-viewer__top{border-bottom:1px solid #dededb}.tpl-image-viewer__top button{gap:12px;text-transform:uppercase;font-size:10px;letter-spacing:.05em}
.tpl-image-viewer__controls{border-top:1px solid #dededb}.tpl-image-viewer__controls>div{display:flex;align-items:center;gap:4px}.tpl-image-viewer [data-tpl-image-reset]{min-width:64px;font-variant-numeric:tabular-nums}
.tpl-image-viewer__stage{min-height:0;min-width:0;position:relative;overflow:hidden;touch-action:none;cursor:zoom-in;user-select:none;overscroll-behavior:contain}
.tpl-image-viewer__stage.is-zoomed{cursor:grab}.tpl-image-viewer__stage.is-dragging{cursor:grabbing}.tpl-image-viewer__stage img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;transform-origin:center;user-select:none;pointer-events:none;transition:opacity .16s ease-out}
.tpl-image-viewer__stage.is-loading img{opacity:.25}
@keyframes tpl-viewer-in{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.tpl-image-viewer[open]{animation:none}.tpl-image-viewer__stage img{transition:none}}
