/* One Stop Bidets v16 — product photography, legibility, and responsive gallery */
.config-shell{grid-template-columns:minmax(0,1fr) minmax(390px,465px);min-height:min(780px,calc(100svh - 79px));}
.stage-pane{height:calc(100svh - 79px);min-height:650px;max-height:940px;background:linear-gradient(155deg,#f2fbff 0%,#e1f4fc 61%,#eaf8fc 100%);}
.stage-upper{z-index:12;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;}
.stage-upper h1{font-size:clamp(42px,5.5vw,82px);margin:3px 0 8px;}
.stage-upper small{display:block;max-width:430px;font-size:13px;color:#426584;line-height:1.35;}
.stage-tabs{flex-shrink:0;display:flex;gap:3px;max-width:100%;}
.stage-tabs button{font-size:12px;white-space:nowrap;}
.stage-photo{top:157px;bottom:146px;left:4%;right:4%;overflow:visible;touch-action:pan-y;}
.stage-photo img{width:100%;height:100%;display:block;object-fit:contain;object-position:center;user-select:none;cursor:grab;transition:opacity .2s ease;}
.stage-photo img:active{cursor:grabbing;}
.stage-pane.view-studio .stage-photo img{mix-blend-mode:multiply;}
.stage-photo img.changing{opacity:.82;transform:none;}
.stage-photo-caption{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);font-weight:700;color:#24557d;padding:7px 13px;background:rgba(255,255,255,.91);border:1px solid #cee9f5;box-shadow:0 4px 18px rgba(32,90,140,.06);z-index:3;}
.photo-viewer-hint{position:absolute;left:10px;right:10px;bottom:127px;text-align:center;z-index:4;font-size:12px;line-height:1.3;color:#2b698c;margin:0;}
.stage-gallery-thumbs{bottom:72px;z-index:6;left:4%;right:4%;justify-content:center;gap:9px;padding:3px 0;}
.stage-gallery-thumbs button{width:60px;height:57px;border-radius:12px;box-shadow:0 4px 10px rgba(11,47,72,.04);}
.stage-gallery-thumbs img{object-fit:contain;background:white;}
.stage-controls{bottom:16px;z-index:7;}
.stage-controls button{min-width:36px;}
.config-pane{max-height:calc(100svh - 79px);min-height:650px;}
.step-content{overscroll-behavior:contain;}
.model-option img{object-fit:contain;background:#f1f9fc;}
.finish-option img{object-fit:contain;background:#f5fbff;}
.summary-photo{object-fit:contain;}
.product-editorial{padding-top:72px;padding-bottom:84px;}
.editorial-image{min-height:360px;}
.action-feature-image{position:relative;display:block;width:100%;height:100%;min-height:330px;background:#ecf8ff;border:0;overflow:hidden;cursor:zoom-in;text-align:left;padding:0;}
.action-feature-image img{display:block;width:100%;height:100%;min-height:330px;max-height:520px;object-fit:contain;background:linear-gradient(155deg,#ecf9fe,#f4fbff);transition:transform .4s ease;}
.action-feature-image:hover img{transform:scale(1.025);}
.action-feature-image span{position:absolute;bottom:18px;right:18px;display:flex;align-items:center;gap:7px;background:#fff;padding:9px 15px;border-radius:999px;font-weight:750;font-size:12px;color:#153aa0;box-shadow:0 9px 30px rgba(7,47,103,.11);}
.product-action-gallery{margin-top:clamp(40px,5vw,65px);}
.action-gallery-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:21px;}
.action-gallery-head h3{font-size:clamp(26px,3vw,36px);color:#0b3072;margin:0;}
.action-gallery-head p{max-width:440px;font-size:14px;line-height:1.5;margin:0;}
.action-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.action-tile{position:relative;display:block;min-width:0;border:1px solid #d7e8f4;border-radius:18px;overflow:hidden;background:#f0f9fe;padding:0;text-align:left;box-shadow:0 12px 28px rgba(11,55,97,.05);transition:transform .3s,box-shadow .3s;}
.action-tile:hover{transform:translateY(-3px);box-shadow:0 18px 35px rgba(11,55,97,.13);}
.action-tile img{width:100%;aspect-ratio:4/3;object-fit:contain;display:block;background:#edf8ff;}
.action-tile span{display:block;padding:9px 12px;font-size:12px;font-weight:750;color:#26486c;background:#fff;}
.stage-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(4,18,39,.9);padding:74px 18px 24px;cursor:zoom-out;}
.stage-modal img{width:100%;height:100%;max-width:1440px;object-fit:contain;}
.stage-modal-close{position:absolute;right:clamp(15px,3vw,40px);top:17px;z-index:2;border:1px solid rgba(255,255,255,.5);color:#092e51;background:#fff;padding:9px 17px;border-radius:999px;font-size:14px;font-weight:750;}
.stage-modal-close:focus-visible{outline:3px solid #75cef0;}
@media(max-width:1250px){.stage-upper{inset:24px 22px auto;flex-wrap:wrap}.stage-upper h1{font-size:52px}.stage-photo{top:175px;bottom:140px}.stage-tabs{margin-top:5px}.action-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1060px){.config-shell{grid-template-columns:1fr}.stage-pane{height:630px;min-height:630px;max-height:none}.config-pane{max-height:none;min-height:0}.stage-photo{top:173px;bottom:140px}.photo-viewer-hint{bottom:127px}.stage-gallery-thumbs{bottom:75px}.action-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.stage-pane{height:590px;min-height:590px}.stage-upper{inset:18px 15px auto;align-items:flex-start;gap:10px}.stage-upper h1{font-size:clamp(35px,7vw,51px)}.stage-upper small{font-size:11px}.stage-tabs{margin-top:8px;gap:4px;max-width:100%;overflow-x:auto}.stage-tabs svg{display:none}.stage-tabs button{font-size:11px;padding:7px 11px}.stage-photo{top:171px;bottom:138px;left:1%;right:1%}.stage-photo-caption{bottom:-7px;font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.photo-viewer-hint{bottom:125px;font-size:10px}.stage-gallery-thumbs{bottom:73px}.stage-gallery-thumbs button{width:50px;height:48px}.stage-controls{bottom:16px}.action-gallery-head{display:block}.action-gallery-head p{max-width:unset;margin-top:9px}.action-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.action-feature-image img{max-height:390px}.editorial-image{min-height:unset}}
@media(max-width:440px){.stage-pane{height:570px;min-height:570px}.stage-upper{inset:16px 14px auto;display:block}.stage-upper h1{font-size:38px}.stage-upper small{font-size:11px}.stage-tabs{position:static;margin-top:14px;left:auto;right:auto;max-width:calc(100vw - 28px)}.stage-tabs button{font-size:10px;padding:7px 9px}.stage-photo{top:171px;bottom:135px}.stage-gallery-thumbs{left:8px;right:8px}.stage-gallery-thumbs button{width:47px;height:45px}.stage-controls{max-width:calc(100vw - 20px);gap:1px;padding:3px 5px}.stage-controls button{font-size:11px;padding:0 5px;min-width:31px}.action-gallery-grid{gap:8px}.action-tile span{font-size:10px;padding:7px}.product-editorial{padding-top:45px}}
@media(prefers-reduced-motion:reduce){.stage-photo img,.action-tile,.action-feature-image img{transition:none!important}}
/* Critical sizing fix: the old grid track expanded to the intrinsic 1800px photo height.
   Absolutely positioning the photograph inside a constrained viewport prevents clipping. */
.stage-photo{display:block;overflow:hidden;}
.stage-photo img{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:100%;max-width:100%;object-fit:contain;object-position:center;}
.stage-photo-caption{z-index:5;}
/* Use the supplied studio photos at a useful product-viewing scale; keep the complete photo available in the zoom viewer. */
.stage-pane.view-studio .stage-photo img{object-fit:cover;object-position:center 58%;}
.photo-viewer-hint{display:none;}
.stage-photo-caption{bottom:12px;}
/* Narrow phones: keep brand, global currency and bag/navigation fully in the viewport. */
@media(max-width:360px){
 .header-in{padding-inline:9px;gap:3px;}
 .brand img{width:100px;}
 .header-end{gap:0;flex-shrink:0;}
 .currency-switch{padding:2px;}
 .currency-switch button{padding:6px 5px;font-size:10px;}
 .bag-link{padding:5px 2px;gap:2px;}
 .bag-count{min-width:19px;line-height:19px;font-size:10px;}
 .mobile-menu-toggle{padding:5px;}
}
