/* A humanist reading face, with a softer editorial accent. */
:root{--header-height:64px;--paper:#f6f5f0}
h1,h2,h3{letter-spacing:-.025em;font-weight:600}
.film-content h1{font-size:clamp(66px,7.5vw,110px);letter-spacing:-.04em;line-height:1.02;font-weight:600}
.film-content h1 em,.home-contact h2 em{font-family:'Lora',Georgia,serif;font-weight:400;letter-spacing:-.055em}
.button,.nav-estimate,.mobile-menu>a.mobile-menu-estimate{font-weight:600;letter-spacing:0;border-radius:12px}
.button,.film-actions .button,.home-contact-actions .button{font-size:18px;padding:14px 23px}
.eyebrow{font-weight:600}
.eyebrow>span{border-radius:50%}
.visual-service-title h3,.location-hero h1,.journal-intro h1,.article-heading h1{letter-spacing:-.025em}

/* The home header overlays the footage; its height never changes on scroll. */
.site-header{height:var(--header-height);padding:4px max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)));gap:28px;transition:background .22s,color .22s,border-color .22s}
.header-brand img{width:83px;height:54px;object-fit:contain}
.site-header .desktop-nav,.spanish .site-header .desktop-nav{font-size:17px;font-weight:500;gap:24px}
.site-header .header-actions{gap:12px}
.nav-estimate{font-size:16px;min-height:42px;padding:9px 17px;border-radius:9px}
.language-option{font-size:13px;font-weight:600;height:40px;min-width:30px}
.site-header .menu-toggle{background:transparent;border-radius:8px}
.site-header .menu-toggle span{display:block;width:24px;height:2px;margin:5px 0}
:is(.home-page,.location-page,.service-page) .site-header{position:fixed;inset:0 0 auto}
:is(.home-page,.location-page,.service-page) .site-header.scroll-ready:not(.is-scrolled){background:transparent;color:white;border-bottom-color:transparent}
:is(.home-page,.location-page,.service-page) .site-header.scroll-ready .language-option[aria-current]{background:#ffffff18;color:white}
:is(.home-page,.location-page,.service-page) .site-header.scroll-ready .nav-estimate{background:#fff;color:var(--navy)}
:is(.home-page,.location-page,.service-page) .site-header .header-brand img{filter:drop-shadow(0 0 1px #fff9)}
:is(.home-page,.location-page,.service-page) .site-header.is-scrolled,:is(.home-page,.location-page,.service-page):has(.mobile-menu:not([hidden])) .site-header{background:#fff;color:var(--navy);border-bottom-color:#e4e7e4}
:is(.home-page,.location-page,.service-page) .site-header.is-scrolled .language-option[aria-current],:is(.home-page,.location-page,.service-page):has(.mobile-menu:not([hidden])) .language-option[aria-current]{background:var(--paper);color:var(--navy)}
:is(.home-page,.location-page,.service-page) .site-header.is-scrolled .nav-estimate{background:var(--navy);color:#fff}
.home-page .hero-film{min-height:720px;height:min(920px,100svh)}
.home-page .film-content{padding-block:145px 125px}
.film-shade{background:linear-gradient(90deg,#041629d9 0%,#04162999 45%,#04162920 100%),linear-gradient(180deg,#041629bb 0%,transparent 30%,transparent 70%,#041629aa 100%)}
.home-page .hero-roof{display:none}
.film-content .eyebrow{letter-spacing:.11em;margin-bottom:26px}
.film-tagline{margin-top:28px;font-size:21px}
.film-actions{margin-top:28px}
.mobile-menu>a{font-weight:500;letter-spacing:-.015em}

/* One full-width story replaces the unrelated offer cards. */
.comfort-story{--comfort:1;--warm:0;background:var(--paper);position:relative;padding-top:72px}
.comfort-stage{position:relative}
.comfort-layout{display:grid;grid-template-columns:.9fr 1.25fr;align-items:center;gap:35px;padding-block:32px 50px}
.comfort-copy{min-width:0}
.comfort-copy>.eyebrow{font-size:13px;letter-spacing:.13em;margin-bottom:22px}
.comfort-copy h2{font-size:clamp(38px,4.4vw,66px);line-height:1.1;letter-spacing:-.035em}
.comfort-copy h2 em{font-family:'Lora',Georgia,serif;font-weight:400;font-style:normal;font-size:.91em;color:#49742e;letter-spacing:-.045em}
.comfort-intro{font-size:19px;line-height:1.65;color:var(--muted);max-width:34ch;margin-top:24px}
.comfort-chapters{margin-top:32px;display:grid;gap:22px}
.comfort-chapter{display:flex;gap:16px;align-items:flex-start}
.comfort-chapter>span{font-size:14px;line-height:32px;border-top:2px solid #ce6b45;min-width:28px;color:#a84427}
.comfort-chapter:last-child>span{border-color:#6b9a3f;color:#49742e}
.comfort-chapter h3{font-size:22px;line-height:1.3;font-weight:600;letter-spacing:-.015em}
.comfort-chapter p{font-size:17px;line-height:1.6;color:var(--muted);max-width:37ch;margin-top:7px}
.comfort-visual{min-width:0;align-self:center}
.comfort-images{position:relative;aspect-ratio:3/2;isolation:isolate;margin-inline:-10px}
.comfort-images img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;mix-blend-mode:darken;mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 90%,transparent);mask-composite:intersect}
.comfort-before{opacity:var(--warm)}
.comfort-after{opacity:var(--comfort)}
.comfort-sweep{position:absolute;bottom:-7%;left:6%;width:88%;height:auto;overflow:visible;opacity:var(--comfort)}
.comfort-sweep path:first-child{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--comfort))}
.comfort-control{display:grid;grid-template-columns:1fr 100px 1fr;align-items:center;gap:15px;margin:45px auto 0;max-width:420px;font-size:15px;line-height:1.4}
.comfort-control label{text-align:right;color:#9d422a}
.comfort-control>span{color:#426e28}
.comfort-control input{width:100%;height:44px;cursor:ew-resize;accent-color:#5b8537;margin:0}
.comfort-caption{font-size:14px;text-align:center;line-height:1.5;color:var(--muted);margin:17px auto 0;max-width:40ch}
.comfort-care{display:flex;justify-content:space-between;align-items:center;gap:36px;padding-block:28px 32px;position:relative}
.comfort-care:before{content:'';position:absolute;left:var(--gutter);right:var(--gutter);top:0;height:1px;background:#d6ded0}
.comfort-start{display:flex;align-items:center;gap:17px;min-height:60px}
.comfort-start-icon{display:grid;place-items:center;width:52px;height:52px;border:1px solid #afc19b;border-radius:50%;color:#527635}
.comfort-start small{display:block;font-size:12px;letter-spacing:.1em;color:#527635;line-height:1.5;margin-bottom:4px}
.comfort-start strong{font-size:24px;font-weight:600;line-height:1.2}
.comfort-start>.icon{margin-left:15px;transition:transform .2s}
.comfort-start:hover>.icon{transform:translateX(5px)}
.comfort-care>p{font-size:16px;line-height:1.6;color:var(--muted)}
.comfort-care>p strong{font-weight:600;color:var(--navy);font-size:19px}
.care-strip{background:var(--paper)}
.care-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-block:27px}
.care-inspection{display:flex;align-items:center;gap:14px;font-size:24px;font-weight:600;min-height:48px}
.care-inspection>.icon:first-child{color:#527635}
.care-inner>div>p{font-size:19px;font-weight:600}
.care-inner>div>p span{margin-inline:8px;color:#527635}
.care-inner small{display:block;font-size:15px;color:var(--muted);line-height:1.6;margin-top:3px}
@media(prefers-reduced-motion:no-preference) and (min-height:720px){
 .comfort-story.is-pinned{padding-top:40px}
 .comfort-story.is-pinned .comfort-stage{height:calc(100svh + 500px)}
 .is-pinned .comfort-layout{position:sticky;top:var(--header-height);min-height:calc(100svh - var(--header-height));padding-block:30px}
}
@media(max-width:1200px){.site-header .desktop-nav{display:none}.site-header .header-actions{margin-left:auto}.site-header .menu-toggle{display:block}.comfort-layout{grid-template-columns:1fr 1.15fr;gap:15px}.comfort-copy h2{font-size:48px}.comfort-chapter h3{font-size:21px}.comfort-chapter p{font-size:16px}}
@media(max-width:960px){.comfort-layout{grid-template-columns:1fr;gap:15px}.comfort-copy{display:grid;grid-template-columns:1fr 1fr;column-gap:35px}.comfort-copy>.eyebrow{grid-column:1/-1}.comfort-copy h2{font-size:46px}.comfort-intro{margin:0;align-self:center;font-size:18px}.comfort-chapters{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:30px;margin-top:28px}.comfort-visual{width:100%;max-width:660px;margin-inline:auto}.comfort-care{gap:22px}.comfort-start strong{font-size:22px}.comfort-start-icon{width:46px;height:46px}.comfort-care>p strong{font-size:18px}}
@media(max-width:680px){
 :root{--header-height:60px}
 .site-header{gap:12px;padding-block:3px}
 .header-brand img{width:79px;height:52px}
 .site-header .header-actions{gap:6px}
 .site-header .menu-toggle{width:44px;height:44px;padding:10px}
 .nav-estimate{display:none}
 .home-page .hero-film{min-height:max(685px,94svh);height:auto}
 .home-page .film-content{padding-block:134px 116px}
 .film-content h1{font-size:clamp(50px,13vw,78px);line-height:1.07;letter-spacing:-.035em}
 .film-content h1 em{margin-top:6px;letter-spacing:-.06em}
 .film-content .eyebrow{font-size:12px;letter-spacing:.07em;margin-bottom:24px}
 .film-tagline{font-size:19px;line-height:1.55;max-width:27ch;margin-top:23px}
 .film-actions{gap:10px;margin-top:25px}
 .film-actions .button{font-size:18px;min-height:52px;padding:13px 20px}
 .film-call{font-size:19px}
 .film-bottom{bottom:22px}
 .comfort-story{padding-top:42px}
 .comfort-layout{padding-block:0 34px;gap:10px}
 .comfort-copy{display:block}
 .comfort-copy>.eyebrow{font-size:12px;margin-bottom:18px}
 .comfort-copy h2{font-size:clamp(37px,9.5vw,50px);line-height:1.12}
 .comfort-intro{font-size:17px;margin-top:18px;max-width:34ch}
 .comfort-chapters{display:none}
 .comfort-images{margin:0 -8px;aspect-ratio:1.25}
 .comfort-images img{object-fit:cover}
 .comfort-control{grid-template-columns:1fr 90px 1fr;gap:10px;margin-top:23px;font-size:14px}
 .comfort-caption{font-size:14px;margin-top:8px;max-width:29ch}
 .comfort-care{display:block;padding-block:24px 30px}
 .comfort-start{gap:13px}
 .comfort-start>.icon{margin-left:auto}
 .comfort-start strong{font-size:23px}
 .comfort-care>p{font-size:15px;margin-top:20px;padding-left:59px}
 .comfort-care>p strong{font-size:17px}
 .care-inner{display:block;padding-block:25px}
 .care-inspection{font-size:23px;gap:12px;margin-bottom:15px}
 .care-inner>div>p{font-size:18px}
 .care-inner small{font-size:15px;max-width:36ch}
}
@media(prefers-reduced-motion:no-preference) and (min-height:720px) and (max-width:680px){
 .is-pinned .comfort-layout{padding-block:28px;min-height:calc(100svh - var(--header-height));align-content:center}
 .comfort-story.is-pinned .comfort-stage{height:calc(100svh + 350px)}
}
@media(prefers-reduced-motion:reduce){.site-header,.comfort-start>.icon{transition:none}}
