/* 原图保持完整，放大细节只显示在独立视窗内。 */
.product-image-zoom{position:relative;overflow:hidden;cursor:zoom-in;text-decoration:none;color:#2e6198;isolation:isolate}
.product-image-zoom:focus-visible{outline:2px solid #2e6198;outline-offset:-2px}
.product-zoom-affordance{position:absolute;z-index:2;right:0;top:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:rgba(255,255,255,.92);color:#54728e;pointer-events:none}
.product-zoom-affordance svg{width:21px;height:21px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.product-image-zoom:hover .product-zoom-affordance,.product-image-zoom:focus-visible .product-zoom-affordance{color:#2467a7}
.product-zoom-lens{position:absolute;z-index:1;border:1px solid #6793bd;background:rgba(62,136,201,.08);pointer-events:none}
.product-image-zoom.is-zoomed{cursor:crosshair;touch-action:none}
.product-image-zoom.is-zoomed .product-zoom-plus{display:none}
.product-image-zoom[aria-busy="true"]{cursor:progress}
.product-zoom-preview{position:fixed;z-index:80;width:380px;max-width:calc(100vw - 32px);margin:0;border:1px solid #cddbe8;border-radius:2px;background:#fff;box-shadow:0 4px 14px rgba(27,54,80,.1);color:#355674;text-align:left}
.product-zoom-preview[hidden],.product-zoom-lens[hidden]{display:none}
/* 保留两张图之间的视觉留白，让指针能直接移入视窗操作。 */
.product-zoom-preview:not(.is-inline)::before{content:"";position:absolute;top:var(--zoom-bridge-top,0px);width:var(--zoom-bridge-width,0px);height:var(--zoom-bridge-height,0px)}
.product-zoom-preview[data-zoom-side="right"]::before{right:100%}
.product-zoom-preview[data-zoom-side="left"]::before{left:100%}
.product-zoom-preview-label{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:0 8px 0 12px;border-bottom:1px solid #e5ebf1;font-size:13px;line-height:1.5;font-weight:500;letter-spacing:0}
.product-zoom-preview button{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;margin:0;padding:0;border:1px solid #d7e0e8;border-radius:2px;background:#fff;color:#355674;font:inherit;font-size:21px;line-height:1;cursor:pointer}
.product-zoom-preview button:hover{border-color:#6793bd;background:#f4f8fc}
.product-zoom-preview button:disabled{color:#a7b3be;border-color:#e7ecf1;background:#fafbfd;cursor:default}
.product-zoom-preview .product-zoom-close{border-color:transparent;font-size:24px}
.product-zoom-preview button:focus-visible,.product-zoom-range:focus-visible{outline:2px solid #2e6198;outline-offset:2px}
.product-zoom-controls{display:grid;grid-template-columns:36px minmax(0,1fr) 42px 36px;align-items:center;gap:6px;padding:9px 10px;border-top:1px solid #e5ebf1}
.product-zoom-range{width:100%;min-width:0;height:36px;margin:0;padding:0;accent-color:#386da0;cursor:pointer}
.product-zoom-value{color:#355674;font-size:14px;line-height:1.4;text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}
.product-zoom-viewport{position:relative;overflow:hidden;width:100%;aspect-ratio:4/3;background:#fff}
.product-zoom-preview:not(.is-inline) .product-zoom-viewport{max-height:calc(100vh - 170px)}
.product-zoom-preview .product-zoom-detail{display:block;position:absolute;left:0;top:0;max-width:none;max-height:none;object-fit:contain;transform-origin:0 0;pointer-events:none;user-select:none}
.product-zoom-hint{display:block;margin:0;padding:8px 12px;border-top:1px solid #e5ebf1;color:#64778a;font-size:12px;line-height:1.5;letter-spacing:0;text-align:left}
.product-zoom-preview.is-inline{position:relative;z-index:auto;width:auto;max-width:none;margin:14px 24px 0;box-shadow:none}
.product-grid--imaging .product-zoom-preview.is-inline{grid-column:1/-1;margin:0 24px 24px}
.product-zoom-preview--detail.is-inline{grid-column:1/-1;width:min(380px,calc(100% - 32px));margin:16px auto 24px}
[data-zoom-detail] .product-zoom-affordance{right:12px;top:12px}
/* 侧边视窗与选区同步淡入淡出，位置和倍率继续即时跟随指针。 */
@media(prefers-reduced-motion:no-preference){
    .product-zoom-preview:not(.is-inline),.is-side-zoom .product-zoom-lens{opacity:0;transition:opacity .06s ease-out}
    .product-zoom-preview.is-shown,.product-zoom-lens.is-shown{opacity:1}
    .product-zoom-preview.is-leaving,.product-zoom-lens.is-leaving{opacity:0}
}
@media(pointer:coarse){.product-image-zoom.is-zoomed{cursor:move}}
