/* Range-based responsiveness: the layout adapts continuously between named
   device classes instead of targeting a finite catalogue of products. */
html,body{max-width:100%;overflow-x:clip}
main,section,article,figure,.site-header>*{min-width:0}
.hero-media img{image-rendering:auto}

/* Keep editorial measures intentional on ultra-wide and 4K displays. */
@media(min-width:1920px){
  :root{--pad:max(92px,calc((100vw - 1736px)/2))}
}

/* Compact notebooks and landscape tablets use the proven mobile navigation. */
@media(max-width:1120px){
  .site-header{height:82px;grid-template-columns:1fr auto auto;gap:22px}
  .site-header.scrolled,.site-header.menu-open{height:72px}
  .site-header nav{position:absolute;inset:100% 0 auto;display:none;flex-direction:column;align-items:stretch;gap:0;background:#071321;padding:15px var(--pad) 27px;border-bottom:1px solid #34506c}
  .site-header nav.open{display:flex}
  .site-header nav a{font-size:17px;padding:17px 0;border-bottom:1px solid #ffffff1f}
  .site-header nav a:after{display:none}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:44px;height:44px;border:1px solid #ffffff3b;background:transparent;padding:11px}
  .menu-toggle>span{width:20px;height:1px;background:white;transition:transform .25s}
  .menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(3.5px) rotate(45deg)}
  .menu-toggle[aria-expanded=true]>span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
}

@media(max-width:760px){
  .site-header.scrolled,.site-header.menu-open,.mobile-quote-bar{backdrop-filter:none}
  .site-header.scrolled,.site-header.menu-open{background:#040d18}
  .button,.text-link,.hero-discover,.contact-footer a{min-height:44px}
  .menu-toggle,.modal-close,.scroll-cue{min-width:44px;min-height:44px}
  .hero-media img{object-position:67% center}
  .history-copy>.text-link{margin-top:18px}
  .process-photo-meta{min-width:0}
  .process-photo-meta figcaption{overflow-wrap:anywhere}
  .quote-modal{overscroll-behavior:contain}
}

/* Phones, foldables and browser zoom at a narrow CSS viewport. */
@media(max-width:480px){
  :root{--pad:clamp(20px,6vw,24px)}
  .hero{min-height:max(700px,100svh);padding-top:128px;padding-bottom:140px}
  .hero h1{font-size:clamp(30px,9.6vw,46px);letter-spacing:-.055em}
  .hero-title-line{white-space:nowrap}
  .hero-sub{max-width:320px}
  .hero-actions .button{width:100%;max-width:310px;justify-content:space-between}
  .quote-actions .button{min-width:0}
  .hero-bottom{bottom:32px}
  .manifesto h2{font-size:clamp(42px,13vw,55px)}
  .history-number{font-size:clamp(82px,26vw,116px)}
  .proof-statement br{display:none}
  .planning-side .button{width:100%;justify-content:space-between}
  .contact-footer{grid-template-columns:1fr;gap:11px}
  .contact-footer address,.contact-footer .contact-phones,.contact-footer .waze-link,.contact-footer>a:last-child{grid-column:1;grid-row:auto}
  .contact-footer .waze-link{order:-1}
  .contact-footer a{width:max-content;max-width:100%;overflow-wrap:anywhere}
}

@media(max-width:340px){
  :root{--pad:16px}
  .site-header{padding-inline:16px}
  .brand small{display:none}
  .hero{padding-top:116px;min-height:680px}
  .hero h1{font-size:clamp(26px,9.4vw,32px)}
  .hero-sub{font-size:13px}
  .hero-bottom>p{max-width:105px}
  .hero-tools{gap:7px}
  .motion-toggle{font-size:8px}
  .manifesto h2{font-size:clamp(38px,14vw,46px)}
  .solutions-heading h2{font-size:39px}
  .history-number{font-size:clamp(72px,27vw,90px)}
  .production h2,.process h2,.planning h2,.questions h2{font-size:34px}
  .choice-grid{grid-template-columns:1fr}
  .choice-grid button{min-height:62px}
  .quote-modal{width:calc(100% - 12px);padding-inline:16px}
  .quote-step h2{font-size:30px}
}

/* Short landscape screens must remain readable without a trapped sticky scene. */
@media(max-height:600px) and (orientation:landscape){
  .hero{height:auto;min-height:560px;max-height:none;padding:112px var(--pad) 90px;align-items:flex-start}
  .hero-content{max-width:780px}
  .hero h1{font-size:clamp(48px,7vw,76px);margin:18px 0 20px}
  .hero-sub{font-size:14px;line-height:1.55;max-width:490px}
  .hero-actions{margin-top:22px;flex-direction:row;align-items:center}
  .hero-bottom{bottom:22px}
  .quote-modal{max-height:calc(100dvh - 12px);padding-top:58px;padding-bottom:18px}
  .choice-grid button,.project-options label>span{min-height:58px}
}

@media(hover:none){
  .button:hover,.button:hover>span,.text-link:hover span{transform:none}
}

@media(pointer:coarse){
  .site-header nav a,.quote-unsure,.quote-back,.contact-footer a{min-height:48px}
}

@media(forced-colors:active){
  .page-progress span,.step-number,.button-primary{forced-color-adjust:auto}
  .hero:after,.planning-backdrop{opacity:.72}
}

@supports not (overflow:clip){html,body{overflow-x:hidden}}
