/* Homepage-only visual refresh. Shared navigation and interior pages are unchanged. */
.hero{background:var(--ink);min-height:0;padding:0;color:var(--white)}
.hero::after{display:none}
/* Copy and footage share a single stage. Keep the upper mobile frame open. */
.hero>.wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:0;align-items:stretch;padding-top:0;padding-bottom:0}
.hero-stage{position:relative;isolation:isolate;min-width:0;min-height:580px;display:flex;align-items:flex-end}
.hero .hero-copy{position:relative;z-index:1;min-width:0;width:100%;padding:160px 0 80px;pointer-events:none}
.hero .hero-copy a{pointer-events:auto}
.hero h1{font-size:clamp(44px,5vw,68px);max-width:17ch;color:var(--white)}
.hero .lede{font-size:17px;line-height:1.55;margin:18px 0 24px;max-width:52ch;color:var(--white)}
.hero .hero-where{color:var(--sand);font-size:14px;margin-bottom:16px}
.hero .hero-facts{display:none}
.hero .hero-ctas{display:flex;gap:12px;flex-direction:row}.hero .hero-ctas .btn{padding:14px 18px;font-size:15px}
.hero .hero-media{position:absolute;inset:0 calc((1200px - 100vw)/2);min-width:0;overflow:hidden;background:var(--ink-2);border-radius:0}
@media(max-width:1240px){.hero .hero-media{left:-20px;right:-20px}}
.hero .hero-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(28,26,23,.86) 0%,rgba(28,26,23,.64) 48%,rgba(28,26,23,.08) 100%)}
.hero .hero-media picture{display:block;position:absolute;inset:0}
.hero .hero-media .poster,.hero .hero-media video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;opacity:1}
.hero .hero-media video{visibility:hidden}.hero .hero-media.is-playing video,.hero .hero-media.has-played video{visibility:visible}
.hero .hero-media.is-playing picture,.hero .hero-media.has-played picture{visibility:hidden}
.hero .hero-video-toggle{position:absolute;z-index:3;right:max(20px,calc((100vw - 1200px)/2));top:24px;left:auto;bottom:auto;display:inline-flex;align-items:center;gap:10px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);font:700 14px var(--font);text-decoration:none;padding:12px 16px;min-height:48px;margin:0;cursor:pointer}
.film-icon{color:var(--red);font-size:17px}.film-status:empty{display:none}.film-status{position:absolute;top:80px;right:20px;max-width:280px;background:var(--paper);color:var(--ink);padding:12px;z-index:3;font-size:14px}
.hero .hero-quick-form{grid-column:1/-1;display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px;align-items:center;padding:24px;border:0;background:var(--paper);min-width:0}
.hero-form-intro h2{font-size:27px}.hero-form-intro p{font-size:14px;line-height:1.5;color:var(--muted);margin-top:8px}
.hero .hero-quick-form form{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:0 18px;align-items:end;min-width:0}
.hero .hero-field-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}.hero .hero-quick-form input,.hero .hero-quick-form select{background:var(--white)}
.hero .hero-form-contact{grid-column:1/-1;font-size:13px;margin-top:10px;text-align:right}
.hero .hero-quick-form form>.hidden{display:none}
.home-disclosure{border-top:2px solid var(--ink);border-bottom:1px solid var(--line);margin-top:32px}
.home-disclosure>summary{display:flex;justify-content:space-between;gap:16px;align-items:center;list-style:none;cursor:pointer;font-weight:700;padding:18px 0;min-height:56px}
.home-disclosure>summary::-webkit-details-marker{display:none}.home-disclosure>summary>span{font-size:24px;color:var(--red)}
.home-disclosure[open]>summary>span{transform:rotate(45deg)}
.service-disclosure .svc-index{margin:0;padding:12px 0 24px;border-top:1px solid var(--line)}
.home-work{background:var(--sand)}.home-work .sec-head a{color:var(--ink);font-weight:700;text-underline-offset:4px;display:inline-block;margin-top:8px}
.work-mosaic{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:repeat(2,240px);gap:18px}
.work-photo{display:block;min-width:0;text-decoration:none;position:relative;overflow:hidden;border-radius:var(--r)}.work-photo-1{grid-row:1/3}
.work-photo figure{height:100%;margin:0;display:flex;flex-direction:column}.work-photo img{width:100%;height:100%;object-fit:cover;min-height:0;flex:1}.work-photo figcaption{padding:14px 18px;background:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.work-photo figcaption strong{font-size:16px}.work-photo figcaption span{color:var(--muted)}
.work-photo:hover figcaption strong{text-decoration:underline;text-underline-offset:3px}
.owners-photo img{object-position:50% 45%}.owners .contacts{margin-top:24px}.owners .contact{padding:14px}
.extra-reviews{grid-column:2/-1;margin-top:0}.extra-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:20px}
.reviews .review-video video{aspect-ratio:9/12;max-height:480px;object-fit:cover}.reviews .review-video{grid-row:span 2}
.area-disclosure{margin-top:24px;margin-bottom:24px}.area-disclosure .area-list{margin:0 0 20px}
section, #quick-estimate{scroll-margin-top:100px}

@media(max-width:1100px) and (min-width:721px){.hero>.wrap{gap:28px}.hero .hero-quick-form{grid-template-columns:190px minmax(0,1fr);gap:20px}.hero .hero-quick-form form{grid-template-columns:1fr}.hero .hero-field-grid{grid-template-columns:1fr 1fr;margin-bottom:14px}.hero .hero-form-contact{text-align:left}.hero h1{font-size:52px}.hero .hero-ctas .btn-line{display:none}}
@media(max-width:980px){.work-mosaic{grid-template-rows:repeat(2,210px)}.owners-grid{gap:32px}.owners-photo{max-width:640px}.owners-photo img{aspect-ratio:5/4}.review-grid{grid-template-columns:1fr 1fr}.reviews .review-video{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.7fr) 1fr;grid-row:auto}.reviews .review-video video{aspect-ratio:9/12;max-height:380px;height:100%}.reviews .review-video>div{align-self:center}.extra-reviews{grid-column:1/-1}}
@media(max-width:720px){
 section{padding:52px 0}.sec-head{gap:16px;margin-bottom:28px}.sec-head h2{font-size:36px}.sec-head p{font-size:16px;line-height:1.55}
 .hero>.wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding-top:0;padding-bottom:0}
 .hero-stage{min-height:570px;align-items:flex-end}
 .hero .hero-media{inset:0 -20px;aspect-ratio:auto;width:auto;min-height:0;border-radius:0}
 .hero .hero-media::after{background:linear-gradient(180deg,rgba(28,26,23,.08) 0%,rgba(28,26,23,.12) 22%,rgba(28,26,23,.86) 48%,rgba(28,26,23,.96) 100%)}
 .hero .hero-media .poster,.hero .hero-media video{object-fit:cover;object-position:60% center}
 .hero .hero-video-toggle{top:18px;left:20px;right:auto;bottom:auto;padding:11px 14px;min-height:46px;font-size:14px}
 .hero .hero-copy{width:100%;padding:190px 0 68px}.hero .hero-where{font-size:13px;margin-bottom:12px}
 .hero h1{font-size:clamp(34px,9.8vw,42px);max-width:17ch;line-height:1.03}
 .hero .lede{font-size:15px;line-height:1.5;margin:14px 0 20px;max-width:44ch}
 .hero .hero-ctas{display:flex}.hero .hero-ctas .btn-line,.hero .hero-facts{display:none}
 .hero .hero-quick-form{display:block;width:calc(100% + 40px);margin-left:-20px;padding:26px 20px 28px;border-radius:0;border-top:1px solid var(--line)}
 .hero .hero-quick-form h2{font-size:28px}.hero-form-intro p{margin:8px 0 18px}.hero .hero-quick-form form{display:block}
 .hero .hero-field-grid{grid-template-columns:1fr 1fr;gap:14px 12px;margin-bottom:16px}.hero .hero-form-contact{text-align:center;margin-top:12px}
 .jobs{grid-template-columns:1fr 1fr;gap:14px}.job{min-width:0}.job img{aspect-ratio:1/1;width:100%;height:auto;object-fit:cover}.job div{padding:14px 12px 16px}.job h3{font-size:21px;line-height:1.08}.job p{font-size:14px;line-height:1.5;margin:10px 0 14px}.job .more{font-size:13px}
 .svc-index{grid-template-columns:1fr 1fr;gap:24px 18px}.svc-index h3{font-size:18px}.svc-index a{font-size:14px;line-height:1.5;min-height:44px;align-items:center}
 .work-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:14px}.work-photo-1{grid-column:1/-1;grid-row:auto}.work-photo-1 img{aspect-ratio:5/4}.work-photo img{aspect-ratio:1;flex:none;height:auto}.work-photo figcaption{display:block;padding:12px;line-height:1.4}.work-photo figcaption strong{font-size:15px}.work-photo figcaption>span{display:block;font-size:12px;margin-top:4px}
 .owners-grid{gap:26px}.owners-photo{margin:0}.owners-photo img{aspect-ratio:5/4;object-position:50% 42%}.owners h2{font-size:36px;max-width:18ch}.owners p{font-size:16px;line-height:1.6}.contacts{grid-template-columns:1fr 1fr;gap:10px}.contact b{font-size:17px}.contact small{font-size:12px}.owners .contact{padding:12px}.owners .giveback{font-size:14px}
 .steps{grid-template-columns:1fr}.step{padding:20px 0 20px 54px;position:relative}.step+.step{padding:20px 0 20px 54px}.step b{position:absolute;left:0;top:20px;font-size:32px}.step h3{font-size:22px}.step p{font-size:15px;line-height:1.5}
 .review-grid{grid-template-columns:1fr;gap:14px}.reviews .review-video{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);grid-column:auto}.reviews .review-video video{max-height:none;aspect-ratio:9/14;height:100%;object-fit:cover}.review-video div{padding:18px 14px}.review-video p{font-size:14px}.review{padding:20px}.review q{font-size:16px;line-height:1.55}.review cite{font-size:14px}.extra-reviews{grid-column:auto}.extra-review-grid{grid-template-columns:1fr;gap:14px}.reviews-foot .btn{font-size:14px;padding:12px 14px;min-height:48px}
 .quote-grid{gap:32px}.area-list a{min-height:44px;display:flex;align-items:center}.map{height:240px}.form-card{padding:24px 20px}.form-card .row{grid-template-columns:1fr 1fr}.form-card .row>*{min-width:0}.form-card input{min-width:0}
 footer{padding-top:44px}.foot-grid{gap:28px}.foot-bottom{margin-top:28px}section,#quick-estimate{scroll-margin-top:82px}
}
@media(max-width:360px){.hero h1{font-size:34px}.job h3{font-size:19px}.job div{padding:12px 10px}.contact b{font-size:15px}.contacts{gap:8px}.hero .hero-field-grid{gap:12px 10px}.work-photo figcaption{padding:10px}}
@media(max-width:360px){.kws-navigation .header>.wrap{gap:10px;padding-left:14px;padding-right:14px}.kws-navigation .header .brand{gap:8px}.kws-navigation .header .brand span{font-size:16px}.kws-navigation .header .brand small{font-size:10px}.kws-navigation .header .menu-btn{font-size:14px;padding:9px 10px;gap:6px;flex-shrink:0}}
@media(max-width:360px){.kws-navigation .header>.wrap>.brand{flex:1;min-width:0;gap:8px}.kws-navigation .header>.wrap>.brand span{font-size:16px;min-width:0}.kws-navigation .header>.wrap>.brand img{width:44px;height:44px;flex-shrink:0}.kws-navigation .header>.wrap>.brand small{font-size:10px}}
