/* Desktop chapters: fit the available viewport, never clip or scale body text.
   Small/short windows retain the original flowing layout. */
@media (min-width:1101px) and (min-height:700px) {
  html{--chapter-header:64px;scroll-padding-top:var(--chapter-header);scroll-snap-type:y proximity}
  .header,.header.scrolled{height:var(--chapter-header)!important}
  main>section,.site-footer{scroll-snap-align:start}
  main>section[id],.site-footer{scroll-margin-top:0}
  main>section.section{
    min-height:calc(100svh - var(--chapter-header));
    padding-block:clamp(24px,3vh,48px)!important;
    display:flex;flex-direction:column;justify-content:center;
  }
  main>section.section>.section-label{margin-bottom:clamp(18px,2.5vh,30px)}
  main>section .section-title{margin-bottom:clamp(22px,3vh,36px)}
  main>section .section-title h2{font-size:clamp(38px,5.5vh,60px)!important}
  main>section .section-title p{margin:0}
  .hero{
    min-height:100svh;row-gap:20px;
    padding-top:calc(var(--chapter-header) + 24px)!important;padding-bottom:24px!important;
  }
  .hero h1{font-size:clamp(48px,7.2vh,76px)!important;margin-bottom:22px!important}
  .hero .eyebrow{margin-bottom:22px}
  .hero-text{font-size:17px!important;line-height:1.6}
  .hero-service-tags{margin-top:18px}
  .hero-actions{margin-top:24px!important;gap:12px!important}
  .hero-facts{padding-top:18px;align-self:end}
  .hero-facts dd{font-size:14px;line-height:1.5}
  .climate-blueprint{height:clamp(320px,calc(100svh - 320px),680px);width:100%}
  .climate-showcase figcaption{padding-top:0}
  .intro-lead{font-size:clamp(36px,5.6vh,58px)!important}
  .advantages{margin-top:clamp(24px,3.5vh,42px);grid-template-columns:repeat(4,minmax(0,1fr))}
  .advantages article{min-height:0!important;padding:24px!important;grid-template-rows:18px auto 1fr;row-gap:18px}
  .advantages article>h2,.advantages .advantage-link{font-size:22px!important}
  .advantages article>p{font-size:16px!important;line-height:1.5}
  .service-list{gap:10px}
  .service>button{min-height:64px!important;padding:12px 24px!important}
  .service>button strong{font-size:28px}
  .service.active .service-detail{padding-bottom:18px!important}
  .service-detail p,.service-detail li{line-height:1.5}
  .service-detail li{padding:6px 10px!important}
  .section-cta{min-height:0;margin-top:20px;padding:18px 22px!important}
  .section-cta strong{font-size:22px}
  main>.process{
    display:grid!important;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
    column-gap:7%;align-content:center;justify-content:normal;
  }
  .process>.section-label{grid-column:1/-1}
  .process>.section-title{align-self:start;margin-bottom:0}
  .process .timeline{margin:0}
  .timeline li{grid-template-columns:40px minmax(0,1fr);padding:22px 0}
  .timeline h3{font-size:23px}.timeline p{line-height:1.6}
  .case-visual{height:clamp(128px,18vh,200px);padding:20px}
  .solution-diagram{height:100px;top:18%}
  .case-visual>b{font-size:23px;bottom:16px;right:20px}
  .case-copy{padding:22px!important;min-height:240px!important}
  .case-copy h3{font-size:23px;margin:16px 0 12px}
  .case-copy p{min-height:0;font-size:16px;line-height:1.5;margin:0 0 18px}
  .case-note{margin:18px 0 0}
  .lead-copy{padding:30px!important}
  .lead-copy h2{font-size:clamp(38px,5.7vh,58px);margin:24px 0}
  .lead-copy>p:not(.eyebrow){line-height:1.6;margin:0}
  .lead-copy ul{margin-top:26px;padding-top:22px}
  .quick-form{padding:24px 28px!important;gap:12px 22px}
  .quick-form .form-group-title{margin:0;padding-bottom:10px;gap:12px}
  .quick-form .form-group-title b{font-size:18px!important}
  .quick-form .form-group-title small{font-size:14px!important}
  .quick-form .field{margin:0}
  .quick-form .field input{padding-block:9px;min-height:42px}
  .quick-form .custom-select-trigger{min-height:42px!important;padding-block:6px!important}
  .quick-form .consent{padding:12px 14px!important;min-height:0}
  .quick-form .quick-submit{min-height:52px!important}
  .quick-form .form-status:empty{display:none}
  .contact h2{font-size:clamp(44px,8.8vh,88px)!important}
  /* Expanded selects and validation retain natural document scrolling. */
  html:has(.custom-select.open),html:has(dialog[open]){scroll-snap-type:none}
}
@media (min-width:1101px) and (min-height:700px) and (max-height:780px) {
  .hero{row-gap:12px}
  main>section.section{padding-block:16px!important}
  main>section.section>.section-label{margin-bottom:14px}
  main>section .section-title{margin-bottom:18px}
  .service>button{min-height:60px!important;padding-block:9px!important}
  .service{margin-bottom:6px}
  .service-detail li{padding-block:5px!important}
  .case-visual{height:120px}
  .case-copy{padding:18px!important}
}
/* Independent translate leaves existing button/card hover transforms intact. */
/* JS controls only the last few pixels after a user's scroll has stopped.
   Native snap remains the no-JS fallback. */
html.soft-chapters{scroll-snap-type:none!important}
.motion-ready .motion-reveal{
  opacity:0;translate:0 14px;
  transition:opacity 700ms cubic-bezier(.22,1,.36,1),translate 850ms cubic-bezier(.22,1,.36,1),transform 250ms ease,border-color 250ms ease,box-shadow 250ms ease!important;
  transition-delay:var(--entrance-delay,0ms),var(--entrance-delay,0ms),0ms,0ms,0ms!important;
}
.motion-ready .motion-reveal.is-shown{opacity:1;translate:0 0}
.motion-ready .climate-showcase.motion-reveal{translate:none}
.motion-ready .motion-reveal.motion-focused{opacity:1;translate:none;transition:none!important}
@media(max-width:900px){
  .motion-ready .motion-reveal{translate:0 9px;transition-duration:550ms,650ms,250ms,250ms,250ms!important}
}
@media (prefers-reduced-motion:reduce) {
  html{scroll-snap-type:none!important;scroll-behavior:auto!important}
  .motion-ready .motion-reveal{opacity:1!important;translate:none!important;transition:none!important}
}
@media print{
  .motion-ready .motion-reveal{opacity:1!important;translate:none!important;transition:none!important}
}

/* Client review: compact navigation and a lighter form hierarchy. */
:root{--site-header-height:64px}
html{scroll-padding-top:var(--site-header-height)}
.header,.header.scrolled{height:var(--site-header-height)!important}
.header .logo{flex-basis:128px;width:128px!important;height:48px!important}
.hero-price-note{display:block;color:#e4cf79;font-weight:500;margin-top:8px}
.lead-shell .lead-copy h2{font-size:clamp(32px,3.1vw,46px);line-height:1.15;margin:24px 0;letter-spacing:-.035em}
.lead-shell .lead-copy>p:not(.eyebrow),.lead-shell .lead-copy li{font-size:15px;line-height:1.7}
.lead-shell .lead-copy .eyebrow{font-size:11px;line-height:1.5;letter-spacing:.06em}
.lead-shell .lead-copy ul{margin-top:24px;padding-top:22px}
.lead-shell .quick-form{gap:16px 24px;align-content:center}
.lead-shell .quick-form .form-group-title{gap:12px;padding-bottom:12px;margin:0}
.lead-shell .quick-form .form-group-title b{font-size:17px!important;font-weight:600}
.lead-shell .quick-form .form-group-title small{font-size:13px!important;line-height:1.5;margin-top:4px}
.lead-shell .quick-form .form-group-title>span{width:30px;height:30px;flex-basis:30px}
.lead-shell .quick-form .field{margin:0}
.lead-shell .quick-form .field>span{font-size:12px!important;letter-spacing:.04em;margin-bottom:6px!important}
.lead-shell .quick-form .field input,
.lead-shell .quick-form .custom-select-trigger,
.lead-shell .quick-form .custom-select-trigger>span{font-size:16px!important;line-height:1.4}
.lead-shell .quick-form .field input{min-height:44px;padding-block:10px}
.lead-shell .quick-form .custom-select-trigger{min-height:44px!important;padding-block:10px!important}
.lead-shell .quick-form .consent{padding:12px 14px!important}
.lead-shell .quick-form .consent>span{font-size:13px!important;line-height:1.5}
.lead-shell .quick-form .quick-submit{min-height:50px!important;font-size:15px!important}
.lead-shell .quick-form .form-status:empty{display:none}

/* A viewport-sized drawer with optional details disclosed on demand. */
.modal{height:100dvh;max-height:100dvh}
.modal[open]{grid-template-columns:minmax(0,1fr) minmax(560px,min(640px,50vw))}
.modal-main{padding:28px 32px 24px!important;scrollbar-width:thin;scrollbar-color:#6a776d #111713;scroll-padding-block:24px}
.modal-main .drawer-heading{padding-right:46px}
.modal-main .drawer-heading>p{font-size:10px;margin:0 0 16px;letter-spacing:.1em}
.modal-main .drawer-heading h2{font-size:36px!important;line-height:1.15;margin:0 0 12px!important;letter-spacing:-.035em}
.modal-main .drawer-heading h2 br{display:none}
.modal-main .drawer-heading>span{font-size:14px;line-height:1.55;margin-bottom:24px}
.modal-main .modal-fields{gap:16px 22px}
.modal-main .field{margin:0}
.modal-main .field>span{font-size:12px!important;line-height:1.35;letter-spacing:.04em;margin-bottom:6px!important}
.modal-main .field input,.modal-main .custom-select-trigger,.modal-main .custom-select-trigger>span{font-size:16px!important;line-height:1.4}
.modal-main .field input{min-height:44px;padding-block:10px}
.modal-main .custom-select-trigger{min-height:44px!important;padding-block:10px!important}
.modal-main .consent{margin:18px 0 0!important;gap:12px}
.modal-main .consent>span{font-size:13px!important;line-height:1.5}
.modal-main .modal-submit{min-height:50px!important;margin-top:18px!important;font-size:16px!important}
.modal-main .modal-submit .cta-arrow{width:24px!important;height:24px!important;flex:0 0 24px}
.modal-main .form-status:empty{display:none}
.modal-main .modal-close{background:#18221b!important}
.drawer-extra{min-width:0;border-block:1px solid #ffffff20;margin-top:2px}
.drawer-extra>summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;color:#c2cbc3;font-size:14px;list-style:none;padding:10px 0}
.drawer-extra>summary::-webkit-details-marker{display:none}
.drawer-extra>summary:after{content:"+";font-size:22px;line-height:1;flex:none;width:24px;text-align:center;color:#d9c575}
.drawer-extra[open]>summary:after{content:"−"}
.drawer-extra>summary:hover{color:#f4f3ee}
.drawer-extra>summary:focus-visible{outline:2px solid #ffd633;outline-offset:3px;border-radius:3px}
.drawer-extra-fields{display:grid;gap:14px;padding:8px 0 18px}
.modal-main .upload{padding:14px;margin:0;min-height:70px}
.modal-main .upload b{font-size:13px;text-transform:none;letter-spacing:0}
.modal-main .upload small{font-size:12px;margin-top:4px}
.modal-main .upload-files[hidden]{display:none}

@media(min-width:1101px) and (min-height:700px){
  .lead-shell .quick-form{padding:26px 30px!important;gap:14px 24px}
}
@media(max-width:900px){
  :root{--site-header-height:60px}
  .header .logo{flex-basis:112px;width:112px!important;height:42px!important}
  .nav{top:var(--site-header-height)}
  .hero{padding-top:98px!important}
  .modal[open]{grid-template-columns:1fr}
  .modal-main{width:min(100%,620px)}
}
@media(max-width:560px){
  .modal-main{padding:22px 22px max(20px,env(safe-area-inset-bottom))!important}
  .modal-main .drawer-heading{padding-right:34px}
  .modal-main .drawer-heading>p{font-size:9px;margin-bottom:14px}
  .modal-main .drawer-heading h2{font-size:29px!important}
  .modal-main .drawer-heading>span{font-size:13px;margin-bottom:18px}
  .modal-main .modal-fields{gap:12px}
  .modal-main .consent{margin-top:14px!important}
  .modal-main .modal-submit{margin-top:14px!important}
  .lead-shell .lead-copy h2{font-size:34px}
}
@media(max-height:720px){
  .modal-main{padding-top:22px!important;padding-bottom:18px!important}
  .modal-main .drawer-heading>p{margin-bottom:12px}
  .modal-main .drawer-heading h2{font-size:30px!important;margin-bottom:10px!important}
  .modal-main .drawer-heading>span{margin-bottom:18px;line-height:1.45}
  .modal-main .modal-fields{gap:10px 20px}
  .modal-main .consent{margin-top:14px!important}
  .modal-main .modal-submit{margin-top:14px!important}
}
