/* Shared product boundaries follow the actual desktop menu, including translated labels. */
@media(min-width:1280px){
html body:is(:has(#mediaFrame),:has(#partImage)) main.container.container{width:var(--sd-product-menu-width,auto)!important;max-width:var(--sd-product-menu-width,var(--sd-max-shop))!important;margin-left:var(--sd-product-menu-left,auto)!important;margin-right:auto!important}
}
/* Keep the complete machine tall within the available viewport. */
@media(min-width:981px){
html body #mediaFrame#mediaFrame#mediaFrame#mediaFrame#mediaFrame#mediaFrame#mediaFrame{height:max(240px,calc(100svh - var(--nav-h) - 56px))!important}
}
/* Module and part galleries use one bounded stage rather than viewport-wide squares. */
@media(max-width:1799px){
html body:has(#partImage) main.container.container{max-width:clamp(760px,72vw,1350px)}
html body:has(#partImage) .media-zoom-frame.media-zoom-frame:has(#partImage){height:clamp(240px,calc(100svh - var(--nav-h) - 120px),600px)!important;aspect-ratio:auto!important;min-height:0!important;position:relative!important}
html body:has(#partImage) .media-zoom-frame.media-zoom-frame #partImage#partImage{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important}
html body:has(#partImage) #partGallery.part-gallery.visible{grid-template-columns:none!important;grid-auto-flow:column!important;grid-auto-columns:72px!important;gap:8px!important;justify-content:start!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x proximity;max-width:100%!important;padding:0 0 6px!important}
html body:has(#partImage) #partGallery.part-gallery.visible>button{width:72px!important;height:72px!important;min-width:72px!important;aspect-ratio:1!important;scroll-snap-align:center}
}
@media(min-width:769px) and (max-width:980px){html body:has(#partImage) main.container.container{max-width:760px!important}}
@media(max-width:980px){
html body:has(#partImage) .media-zoom-frame.media-zoom-frame:has(#partImage){height:clamp(240px,calc(100svh - var(--nav-h) - 72px),480px)!important}
}
@media(max-width:600px){html body:has(#partImage) .media-zoom-frame.media-zoom-frame:has(#partImage){max-height:calc(100vw - 66px)!important}}

/* Short windows must allow the entire gallery to scroll into view. */
@media(min-width:981px) and (max-height:450px){html body .media-card:is(:has(#mediaFrame),:has(#partImage)){position:static!important}}
/* An image-error placeholder occupies the same bounded stage as its photograph. */
@media(max-width:1799px){html body:has(#partImage) #partFallback#partFallback{height:clamp(240px,calc(100svh - var(--nav-h) - 120px),600px)!important;min-height:0!important;box-sizing:border-box!important}}
@media(max-width:980px){html body:has(#partImage) #partFallback#partFallback{height:clamp(240px,calc(100svh - var(--nav-h) - 72px),480px)!important}}
@media(max-width:600px){html body:has(#partImage) #partFallback#partFallback{max-height:calc(100vw - 66px)!important}}

/* Narrow phones retain readable price and tax text on separate rows. */
@media(max-width:389px){
html body:has(#mediaFrame#mediaFrame) .product-info-column.product-info-column .config-total-box.config-total-box.config-total-box{display:grid!important;grid-template-columns:minmax(0,1fr)!important}
html body:has(#mediaFrame#mediaFrame) .product-info-column.product-info-column .config-total-box.config-total-box.config-total-box>.config-total-kicker{grid-column:1!important;grid-row:1!important}
html body:has(#mediaFrame#mediaFrame) .product-info-column.product-info-column .config-total-box.config-total-box.config-total-box>.config-total-priceline{display:contents!important}
html body:has(#mediaFrame#mediaFrame) .product-info-column.product-info-column .config-total-box.config-total-box.config-total-box .config-total-price{grid-column:1!important;grid-row:2!important;white-space:nowrap!important}
html body:has(#mediaFrame#mediaFrame) .product-info-column.product-info-column .config-total-box.config-total-box.config-total-box>.config-total-gross{grid-column:1!important;grid-row:3!important;min-width:0!important;white-space:nowrap!important;overflow-wrap:normal!important;word-break:normal!important;margin:6px 0 0!important}
html body:has(#mediaFrame#mediaFrame) .product-info-column.product-info-column .config-total-box.config-total-box.config-total-box>.config-total-shipping{grid-column:1!important;grid-row:4!important}
html body:has(#mediaFrame#mediaFrame) .product-info-column.product-info-column .config-total-box.config-total-box.config-total-box>.config-total-priceline>:is(.energy-cluster,.energy-cluster-row){grid-column:1!important;grid-row:5!important;width:100%!important;min-width:0!important;margin-top:12px!important}
html body:has(#mediaFrame#mediaFrame) .product-info-column.product-info-column .config-total-box.config-total-box.config-total-box .energy-cluster-row{grid-template-columns:minmax(0,1fr)!important}
html body:has(#mediaFrame#mediaFrame) .product-info-column.product-info-column .config-total-box.config-total-box.config-total-box .energy-cluster{grid-template-columns:minmax(0,1fr)!important;justify-items:start!important;min-width:0!important}
html body:has(#mediaFrame#mediaFrame) .product-info-column.product-info-column .config-total-box.config-total-box.config-total-box .energy-links{grid-column:1!important;grid-row:2!important;width:100%!important;min-width:0!important;overflow-wrap:anywhere}
html body:has(#mediaFrame#mediaFrame) .product-info-column.product-info-column .config-total-box.config-total-box.config-total-box>.sd-lease-rate{grid-column:1!important;grid-row:6!important}
}

/* Tall screens use the gallery width to bound unused vertical space. */
@media(min-width:981px){
html body .media-card:has(#mediaFrame){container-type:inline-size}
html body #mediaFrame#mediaFrame#mediaFrame#mediaFrame#mediaFrame#mediaFrame#mediaFrame{max-height:152cqw!important}
}

/* Long module-detail links wrap inside narrow configuration columns. */
@media(max-width:400px){html body .config-selected-description .config-module-link{white-space:normal!important}}

/* Extremely short windows keep fields clear of bottom controls. */
@media(max-height:300px){html body #mobileStickyBuy#mobileStickyBuy#mobileStickyBuy{display:none!important}}
@media(max-width:768px) and (max-height:300px){html body .m-sticky-cta.m-sticky-cta.m-sticky-cta{position:static!important}html body:not(.modal-open) .m-sticky-cta.m-sticky-cta.m-sticky-cta{display:flex!important}}

/* Give machine galleries the available desktop space without overly long text lines. */
@media(min-width:1280px){html body:has(#mediaFrame) .hero-stage{grid-template-columns:minmax(0,1fr) minmax(0,var(--sd-product-text-width,600px))!important}}

/* Keep sticky galleries on a stable compositing layer during asynchronous scrolling. */
@media(min-width:981px) and (min-height:451px){html body .media-card:is(:has(#mediaFrame),:has(#partImage)){will-change:transform}}

.sd-media-sticky-boundary{min-width:0;align-self:stretch;position:relative}
@media(min-width:981px) and (min-height:451px){
html body .media-card[data-sd-sticky-media]{position:sticky!important;top:var(--sd-media-sticky-top)!important;align-self:start;transition:none!important;z-index:2}
html body .media-card[data-sd-sticky-media="flow"]{position:static!important}
}
