/* Scoped to the accepted gallery; originals load only when opened. */
.gallery-open{width:100%;cursor:zoom-in}.gallery-open-hint{position:absolute;bottom:12px;right:12px;background:#f3f5f7e8;border:1px solid #dce0e5;padding:6px 10px;font-size:11px;color:#566171;line-height:1.5}
dialog.photo-viewer{border:0;padding:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;background:transparent;overflow:hidden;color:var(--ink);line-height:normal}
dialog.photo-viewer:focus-visible{outline:none}.photo-viewer [hidden]{display:none!important}
.photo-viewer button{font:inherit;cursor:pointer}.photo-viewer button:disabled{cursor:default}.photo-viewer svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7}
.photo-viewer .pv-frame,.photo-viewer .pv-body,.photo-viewer .pv-image-section{display:flex;flex-direction:column;min-width:0;min-height:0}
.photo-viewer .pv-body,.photo-viewer .pv-image-section{flex:1}
.photo-viewer .pv-image-area{position:relative;flex:1;min-height:0;overflow:hidden}
.photo-viewer .pv-stage{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;touch-action:none;scrollbar-width:thin}
.photo-viewer .pv-plane{position:relative;min-width:100%;min-height:100%}
.photo-viewer .pv-plane>img{position:absolute;max-width:none;user-select:none;-webkit-user-drag:none;display:block}
.photo-viewer .pv-photo-arrow{position:absolute;z-index:2}
.photo-viewer .pv-thumbnails{display:flex;overflow:auto}
.photo-viewer .pv-thumbnails img{width:100%;height:100%;object-fit:contain}
.photo-viewer .pv-loading{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;pointer-events:none}
.photo-viewer .pv-error{position:absolute;inset:0;display:flex;flex-direction:column;gap:14px;justify-content:center;align-items:center;padding:30px 70px;text-align:center;font-size:13px}
.photo-viewer .pv-error p{font-size:12px;line-height:1.7}.photo-viewer .pv-error>div{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
.photo-viewer .pv-error button{background:#ffd200;color:#101722;padding:10px 18px;border:0;border-radius:3px}.photo-viewer .pv-error a{text-decoration:underline;font-size:12px}
/* The user's IEK reference: white modal, in-window arrows, external yellow close. */
dialog#product-photo-viewer.photo-viewer{inset:0}
.photo-viewer::backdrop{background:rgba(40,40,40,.39);backdrop-filter:blur(4px)}
.photo-viewer .pv-surround{height:100%;padding:38px 0;display:flex;align-items:center;justify-content:center}
.photo-viewer .pv-frame{position:relative;overflow:visible;width:75vw;max-width:1440px;height:88%;max-height:920px;padding:38px 38px 44px;background:#fff;color:#101722;border-radius:0;box-shadow:0 5px 20px #1017221b}
.photo-viewer .pv-body{height:100%;flex-direction:column;min-height:0}
.photo-viewer .pv-image-section{min-height:50px}
.photo-viewer .pv-image-area{margin:0}
.photo-viewer .pv-stage{background:#fff;scrollbar-color:#a3adb680 transparent;cursor:zoom-in}
.photo-viewer .pv-stage.is-zoomed{cursor:grab}
.photo-viewer .pv-stage.is-dragging{cursor:grabbing}
.photo-viewer .pv-loading,.photo-viewer .pv-error{background:#fff;color:#566171}
.photo-viewer .pv-photo-arrow{top:calc(50% - 22px);width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;color:#12171b;backdrop-filter:none;border-radius:0;padding:0}
.photo-viewer .pv-photo-arrow svg{width:24px;height:24px;stroke-width:1.5}
.photo-viewer .pv-photo-arrow.pv-previous{left:20px}
.photo-viewer .pv-photo-arrow.pv-next{right:20px}
.photo-viewer .pv-photo-arrow:hover{background:#f2f3f5}
.photo-viewer .pv-close{position:absolute;left:calc(100% + 24px);top:0;display:grid;place-items:center;width:44px;height:44px;background:#ffed00;color:#111;border:0;border-radius:0;padding:0}
.photo-viewer .pv-close:hover{background:#ffda00}
.photo-viewer .pv-close svg{width:22px;height:22px;stroke-width:1.7}
.pv-gallery{flex:0 0 auto;padding-top:24px}
.pv-carousel{max-width:630px;display:flex;align-items:center;gap:8px;margin:auto;min-width:0}
.pv-strip-window{flex:1;min-width:0}
.photo-viewer .pv-thumbnails{min-width:0;width:100%;justify-content:flex-start;padding:3px;gap:8px;margin:0;scrollbar-width:none}
.photo-viewer .pv-thumbnails::-webkit-scrollbar{display:none}
.pv-carousel:not(.has-overflow) .pv-thumbnails{justify-content:center}
.photo-viewer .pv-thumbnails>button{flex:0 0 60px;width:60px;height:60px;position:relative;border:2px solid transparent;background:#f4f5f6;opacity:1;border-radius:3px;padding:4px}
.photo-viewer .pv-thumbnails>button:hover{border-color:#bdc5d0}
.photo-viewer .pv-thumbnails>button[aria-pressed=true]{border:2px solid #5c6170;background:#f4f5f6}
.pv-thumbnail-number{display:none}
.pv-strip-arrow{display:grid;place-items:center;flex:0 0 32px;width:32px;height:44px;padding:0;color:#45515f;background:transparent;border:0;border-radius:0}
.pv-strip-arrow svg{width:20px;height:20px}
.pv-strip-arrow:disabled{opacity:.24;cursor:default}
.pv-strip-arrow:hover:not(:disabled){background:#f2f3f5}
.pv-zoom-overlay{position:absolute;z-index:3;bottom:10px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:5px;background:#fffffff5;border:1px solid #d6dce3;border-radius:4px;box-shadow:0 3px 16px #10172215}
.pv-zoom-overlay button{height:36px;min-width:36px;padding:0 10px;background:#f2f4f6;border:0;font-size:11px;color:#101722;white-space:nowrap}
.pv-zoom-overlay #pv-zoom-in,.pv-zoom-overlay #pv-zoom-out{font-size:22px;padding:0}
.pv-zoom-overlay output{min-width:43px;text-align:center;font-size:11px;font-variant-numeric:tabular-nums}
.pv-zoom-overlay button:hover{background:#e5eaf0}
.pv-zoom-overlay button[aria-pressed=true]{background:#fff4ae}
.pv-zoom-overlay a{font-size:10px;white-space:nowrap;padding:6px}
.pv-mobile-caption{display:none}
@media(max-width:760px){
 .photo-viewer .pv-surround{padding:60px 10px 28px}
 .photo-viewer .pv-frame{width:100%;height:100%;max-height:none;padding:20px 8px 20px}
 .photo-viewer .pv-close{left:auto;right:0;top:-48px;width:44px;height:44px}
 .photo-viewer .pv-photo-arrow{width:44px;height:44px;background:#ffffffc9}
 .photo-viewer .pv-photo-arrow.pv-previous{left:0}
 .photo-viewer .pv-photo-arrow.pv-next{right:0}
 .photo-viewer .pv-photo-arrow svg{width:22px;height:22px}
 .pv-gallery{padding-top:16px}
 .pv-carousel{gap:4px;max-width:100%}
 .photo-viewer .pv-thumbnails{gap:6px}
 .photo-viewer .pv-thumbnails>button{width:48px;height:51px;flex-basis:48px;padding:3px}
 .pv-strip-arrow{flex-basis:25px;width:25px}
 .pv-mobile-caption{display:block;text-align:center;font-size:10px;line-height:1.4;color:#566171;margin:8px 0 0;font-variant-numeric:tabular-nums}
 .pv-zoom-overlay{gap:1px;padding:4px;bottom:8px;max-width:100%}
 .pv-zoom-overlay button{height:44px;min-width:40px;padding-inline:7px}
 .pv-zoom-overlay a{display:none}
 .pv-zoom-overlay output{min-width:39px}
}
@media(max-height:650px) and (min-width:761px){.photo-viewer .pv-surround{padding-block:25px}.photo-viewer .pv-frame{height:94%;padding:20px 30px}.pv-gallery{padding-top:10px}.photo-viewer .pv-thumbnails>button{width:48px;height:48px;flex-basis:48px}}
@media(max-height:500px) and (max-width:760px){.photo-viewer .pv-surround{padding:16px 66px 24px 16px}.photo-viewer .pv-frame{padding:10px 20px}.photo-viewer .pv-close{left:calc(100% + 8px);right:auto;top:0}.pv-gallery{padding-top:8px}.photo-viewer .pv-thumbnails>button{width:44px;height:44px;flex-basis:44px}.pv-mobile-caption{display:none}}
