/* Final layout layer: shared control metrics and stable Safari viewport tracks. */
:root{--header-height:94px}
.pump-experience{height:640vh;height:640svh}
.experience-sticky{height:100vh;height:100svh}
.site-header{height:var(--header-height)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}
body{overflow-x:clip;min-width:0}
button,input,select,textarea{-webkit-appearance:none;appearance:none;font:inherit}
button{border-radius:0;touch-action:manipulation}
a{touch-action:manipulation}
button,.button,.text-link{min-height:44px}
.button,.text-link{max-width:100%;white-space:normal;word-break:normal;text-align:left}
.button{gap:16px;flex-shrink:0}
.button .action-label,.text-link .action-label{font:inherit;min-width:0;line-height:inherit}
.button>span[aria-hidden],.text-link>span[aria-hidden]{flex:0 0 auto}
.text-link{line-height:1.5}
.hero-actions,.product-links,.detail-actions,.contact-social-actions{min-width:0}
.product-panel>*,.detail-hero-grid>*,.contact-page>*,.footer-links>*,.field-pair>*{min-width:0}
.product-visual.photo{width:100%;max-width:100%;aspect-ratio:auto}
.image-frame img{display:block;object-fit:contain;opacity:1;filter:none;mix-blend-mode:normal}
.site-header .brand img{opacity:1;visibility:visible;filter:none;flex-shrink:0;transition:none;animation:none}
.experience-copy{transition:transform .4s}
.experience-copy[hidden]{display:none!important}
.product-tabs{overscroll-behavior-x:contain}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{font-size:16px}
.enquiry-form select{padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23555' stroke-width='1.5'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat}
.contact-email,.footer-links a{overflow-wrap:anywhere}
.mobile-menu{max-height:calc(100dvh - var(--header-height));overflow-y:auto;overscroll-behavior:contain}
.menu-toggle,.model-controls button,.motion-toggle{min-width:44px;min-height:44px}
.model-controls{z-index:4}
.model-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.pump-stage canvas{position:relative;z-index:1;filter:none;transition:none}
.model-loading{z-index:2;justify-content:center;pointer-events:none}
.model-loading p{padding:6px 12px}
.model-loading .loading-ring{width:22px;height:22px}
.model-error{z-index:3;background:linear-gradient(transparent 25%,#fffffff0 70%);justify-content:flex-end;padding-bottom:18px}
.model-error p{max-width:26ch}
.part-tag{z-index:3}
.motion-toggle{bottom:max(12px,env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right))}
.footer-bottom{flex-wrap:wrap}
.page-intro h1,.detail-copy h1{overflow-wrap:break-word}
.product-panel.changing .product-visual{animation:none;opacity:1}
.product-visual{transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.client-logo-card img{filter:none;mix-blend-mode:normal}
.mobile-product-sequence{display:none}
.email-fallback-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.email-fallback-actions .text-link{margin:0}
.site-header{-webkit-backdrop-filter:blur(16px)}
/* Restore the requested 1.5–2 second branded first-entry screen. */
.entry-loader{touch-action:none;animation:entryAutoDismiss .32s ease 1.625s forwards}
.entry-loader-logo{animation:none;opacity:1;visibility:visible}
.entry-loader-track span{animation:entryBar 1.55s cubic-bezier(.2,.8,.3,1) both}
@keyframes entryBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes entryAutoDismiss{to{opacity:0;visibility:hidden;pointer-events:none}}
@media(prefers-reduced-motion:reduce){.entry-loader{animation-duration:.18s}.entry-loader-track span{animation:none}}
@media(max-width:1023px){
  :root{--header-height:78px}
  .site-header{height:var(--header-height);gap:12px}
  .desktop-nav,.header-contact,.header-socials{display:none}
  .menu-toggle{display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #ddd;background:#fff;border-radius:4px;margin-left:auto}
  .menu-toggle span{width:20px;height:1px;background:#555}
  .mobile-menu{top:var(--header-height)}
  .mobile-socials{display:flex;gap:12px}
}
@media(max-width:760px){
  :root{--pad:clamp(18px,5vw,28px);--hero-copy:260px}
  html{scroll-padding-top:calc(var(--header-height) + 16px)}
  .site-header{padding-left:max(var(--pad),env(safe-area-inset-left));padding-right:max(var(--pad),env(safe-area-inset-right));background:#fffffff5;backdrop-filter:none;-webkit-backdrop-filter:none}
  .brand img,.footer-top .brand img{width:43px;height:43px;flex:0 0 43px}
  .brand-name{font-size:27px}
  .pump-experience{height:480vh;height:480svh}
  .experience-sticky{height:100vh;height:100svh;min-height:0;display:grid;grid-template-rows:var(--hero-copy) minmax(0,1fr) 62px;gap:0;padding:calc(var(--header-height) + 12px) var(--pad) max(8px,env(safe-area-inset-bottom));overflow:hidden}
  .experience-copies{position:relative;grid-row:1;left:auto;right:auto;top:auto;bottom:auto;width:100%;height:100%;min-width:0}
  .experience-copy{top:0;left:0;right:0;transform:translateY(8px)}
  .experience-copy.is-active{transform:none}
  .experience-copy .eyebrow{font-size:9px;line-height:1.5;margin-bottom:10px;letter-spacing:.1em}
  .experience-copy h1,.experience-copy h2{font-size:clamp(32px,9.5vw,44px);line-height:1.08}
  .experience-description{font-size:14px;line-height:1.5;margin-top:12px;max-width:none}
  .hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
  .hero-actions .button,.hero-actions .text-link{width:100%;min-height:44px;font-size:12px;line-height:1.35;gap:8px;padding:10px 12px;justify-content:space-between}
  .hero-actions .text-link{padding-left:4px;padding-right:0}
  .experience-copy[data-copy="3"] .button{margin-top:14px;padding:10px 16px;font-size:13px}
  .chapter-detail{font-size:12px;line-height:1.6;margin-top:10px}
  .water-key{font-size:11px;margin-top:12px}
  .pump-stage{position:relative;grid-row:2;inset:auto;width:calc(100% + var(--pad)*2);height:100%;min-height:0;margin-left:calc(-1*var(--pad));overflow:visible}
  .model-controls{bottom:7px;gap:8px}
  .model-controls button{width:44px;height:44px;min-height:44px;background:#fffffff0;backdrop-filter:none;-webkit-backdrop-filter:none}
  .model-controls button:last-child{width:auto;min-width:52px;font-size:12px;padding:10px}
  .model-controls>span,.model-disclaimer{display:none}
  .experience-bottom{position:relative;grid-row:3;inset:auto;padding-top:9px;width:100%;height:62px;display:block}
  .chapter-nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}
  .chapter-nav button{min-height:46px;font-size:11px;line-height:1.2;gap:4px;padding:6px 0;flex-direction:column;white-space:normal;justify-content:center}
  .chapter-nav small{font-size:9px}
  .experience-progress{top:0}
  .scroll-instruction{display:none}
  .part-tag{font-size:10px;padding:5px 8px}
  /* Four consecutive products advance with native page scrolling on phones. */
  .solutions-story,.solutions-sticky{height:auto;min-height:0}
  .solutions-sticky{position:relative;top:auto;overflow:visible;padding-top:62px;padding-bottom:50px}
  .product-tabs{position:sticky;top:var(--header-height);z-index:12;max-width:calc(100% + var(--pad));margin-right:calc(-1*var(--pad));padding-right:var(--pad);gap:22px;background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;scrollbar-width:thin;scroll-snap-type:none}
  .product-tabs button[aria-current="true"]{color:#2c2c2c;border-bottom-color:#8c7b3a}
  .solutions-sticky .section-top>p,.reduced-motion .solutions-sticky .section-top>p{font-size:14px;line-height:1.65}
  .solutions-sticky .section-top>p::after,.reduced-motion .solutions-sticky .section-top>p::after{content:none}
  #product-panel{display:none}
  .mobile-product-sequence{display:grid;gap:38px}
  .mobile-product-panel{scroll-margin-top:calc(var(--header-height) + 80px)}
  .mobile-product-panel+.mobile-product-panel{border-top:1px solid var(--line);padding-top:30px}
  .product-panel{position:relative;top:auto;grid-template-columns:minmax(0,1fr);min-height:0;gap:24px;padding:24px 0 16px;z-index:auto}
  .product-visual,.product-visual.photo{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:1.45/1;max-width:none;transform:none!important}
  .product-info h3{font-size:clamp(27px,7.5vw,34px)}
  .product-info>p:not(.eyebrow){font-size:15px;line-height:1.65}
  .product-info ul{font-size:14px;margin:18px 0 22px}
  .product-info li{padding-top:4px;padding-bottom:4px}
  .product-links,.detail-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;width:100%}
  .product-links .button,.detail-actions .button,.catalog-banner .button{width:100%;min-height:48px;padding:14px 18px;font-size:14px}
  .product-links .text-link,.detail-actions .text-link{min-height:44px;width:100%;font-size:14px;justify-content:space-between;padding:10px 2px}
  .detail-copy h1,.page-intro h1,.about-story h1{font-size:clamp(34px,10vw,46px)}
  .detail-image,.detail-image.photo{width:100%;aspect-ratio:1.25/1}
  .detail-image figcaption{max-width:calc(100% - 24px);font-size:9px}
  .contact-info h1{font-size:clamp(38px,11vw,52px)}
  .contact-phone{font-size:clamp(24px,7.2vw,30px)}
  .contact-links>.text-link{max-width:100%;width:auto}
  .footer-top{flex-wrap:wrap;gap:16px}
  .footer-bottom>div{flex-wrap:wrap;gap:12px 22px}
  .footer-links{gap:24px}
  .motion-toggle{padding:8px;min-width:44px;min-height:44px}
  .clients-glass{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
  [data-float].revealed,.motion-card.revealed{transform:none}
  .reduced-motion .pump-experience,.model-unavailable .pump-experience{height:100vh;height:100svh;min-height:0}
}
@media(max-width:760px) and (max-height:700px){
  :root{--hero-copy:230px}
  .experience-copy h1,.experience-copy h2{font-size:32px}
  .experience-description{font-size:13px;line-height:1.5;margin-top:10px}
  .chapter-detail,.water-key{display:none}
  .part-tag{display:none!important}
}
@media(orientation:landscape) and (max-height:520px){
  :root{--header-height:62px}
  .pump-experience{height:440vh;height:440svh}
  .experience-sticky{height:100vh;height:100svh;min-height:0;display:grid;grid-template-columns:45% 55%;grid-template-rows:minmax(0,1fr) 53px;padding:74px var(--pad) 8px}
  .experience-copies{position:relative;inset:auto;width:100%;height:auto;grid-column:1;grid-row:1}
  .experience-copy,.experience-copy.is-active{top:0;transform:none}
  .experience-copy .eyebrow{font-size:8px;margin-bottom:6px}
  .experience-copy h1,.experience-copy h2{font-size:clamp(24px,4vw,32px)}
  .experience-description{font-size:12px;line-height:1.4;margin-top:8px}
  .hero-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
  .hero-actions .button,.hero-actions .text-link{width:auto;font-size:11px;padding:8px;gap:8px}
  .chapter-detail,.water-key,.experience-footnote{display:none}
  .pump-stage{position:relative;inset:auto;width:100%;height:100%;margin:0;grid-column:2;grid-row:1}
  .experience-bottom{position:relative;inset:auto;grid-column:1/-1;grid-row:2;height:53px;padding-top:4px}
  .chapter-nav{width:100%;gap:10px}
  .chapter-nav button{min-height:44px;padding:5px;font-size:11px;flex-direction:row}
  .scroll-instruction,.model-controls>span,.model-disclaimer,.part-tag{display:none!important}
  .model-controls{bottom:0}
}
@media(min-width:761px) and (max-height:820px){
  .solutions-story{height:auto}
  .solutions-sticky{position:relative;height:auto;min-height:0;overflow:visible}
}
@media(pointer:coarse) and (max-height:520px){
  .solutions-story,.solutions-sticky{height:auto;min-height:0}
  .solutions-sticky{position:relative;top:auto;overflow:visible;padding-top:44px;padding-bottom:44px}
  .product-tabs{position:sticky;top:var(--header-height);z-index:12;background:#fff;scroll-snap-type:none}
  .product-tabs button[aria-current="true"]{color:#2c2c2c;border-bottom-color:#8c7b3a}
  #product-panel{display:none}
  .mobile-product-sequence{display:grid;gap:30px}
  .mobile-product-panel{position:relative;top:auto;scroll-margin-top:calc(var(--header-height) + 80px)}
  .mobile-product-panel+.mobile-product-panel{border-top:1px solid var(--line);padding-top:30px}
}
@media(prefers-reduced-motion:reduce){
  .solutions-story,.solutions-sticky{height:auto;min-height:0}
  .solutions-sticky{position:relative}
}
