:root{--bg:#ffffff;--alt:#f3f6f8;--ink:#16211c;--muted:#56625c;--line:#dfe5e9;--brand:#1d4d3a;--brand-2:#2c6a50;--brand-deep:#123326;--accent:#e0701f;--accent-dk:#b95815;--tint:#e8f1ec}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Source Sans 3",Arial,Helvetica,sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.12;margin:0;text-wrap:balance}
.wrap{width:min(1160px,100% - 40px);margin-inline:auto}
.skip{position:absolute;top:-100px}.skip:focus{top:0;background:#fff;padding:12px;z-index:9}
.preview{background:#111;color:#fff;text-align:center;font-size:12px;font-weight:700;letter-spacing:.05em;padding:8px 16px}
.topbar{background:var(--brand-deep);color:#dfeee6;font-size:14px}.topbar .wrap{display:flex;justify-content:space-between;gap:12px;padding-block:8px;flex-wrap:wrap}
header.site{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:12px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;letter-spacing:.03em}.logo img{width:36px;height:36px}.logo span{font-size:18px}
nav.main{display:flex;gap:24px;font-weight:600;font-size:15px}nav.main a{text-decoration:none;color:var(--muted)}nav.main a:hover{color:var(--brand)}
.ico{width:26px;height:26px;flex:none}
.call{display:inline-flex;align-items:center;gap:12px;background:#237846;color:#fff;border:0;border-radius:10px;padding:12px 22px 12px 18px;text-decoration:none;font:inherit;cursor:pointer;box-shadow:0 6px 18px -6px rgba(35,120,70,.7);transition:transform .15s,background .15s}
.call:hover{background:#195a34;transform:translateY(-1px)}.call span{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15}.call small{font-size:13px;font-weight:600;opacity:.95}.call strong{font-size:22px}
.call:disabled{cursor:not-allowed}
.ph{display:block;width:100%;height:100%;object-fit:cover;border-radius:14px}
.slot{background:linear-gradient(135deg,#dfe7ec,#c9d6de);display:grid;place-items:center;text-align:center;padding:18px;color:#4d5d66;font-size:14px;font-weight:600;min-height:180px}
.hero{position:relative;color:#fff;min-height:560px;display:flex;align-items:center;overflow:hidden}
.hero .bg{position:absolute;inset:0;border-radius:0;min-height:0}.hero .bg.slot{background:linear-gradient(120deg,#2a3b44,#51656f);color:#c6d2d8;align-items:end;justify-items:end}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,20,15,.82) 0%,rgba(10,20,15,.55) 45%,rgba(10,20,15,.05) 100%)}
.hero .wrap{position:relative;z-index:1;padding-block:70px}.hero-box{max-width:600px}
.eyebrow{display:inline-block;font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 14px;color:var(--accent)}
.hero .eyebrow{background:rgba(255,255,255,.12);color:#fff;padding:6px 12px;border-radius:999px}
.hero h1{font-size:clamp(38px,5vw,62px);margin-bottom:18px}.hero p.lead{font-size:20px;margin:0 0 28px;color:#e8efeb;max-width:44ch}
.hero-points{display:flex;flex-wrap:wrap;gap:10px 22px;margin:26px 0 0;padding:0;list-style:none;font-weight:600;color:#e8efeb}.hero-points li{display:flex;align-items:center;gap:8px}.hero-points .ico{width:20px;height:20px;color:#8fd3a9}
section{padding-block:72px}section.alt{background:var(--alt)}
.sec-head{max-width:720px;margin-bottom:34px}.sec-head.center{margin-inline:auto;text-align:center}.sec-head h2{font-size:clamp(30px,3.4vw,44px);margin-bottom:12px}.sec-head p{color:var(--muted);margin:0;font-size:18px}
.services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.svc{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.svc:hover{transform:translateY(-4px);box-shadow:0 18px 40px -18px rgba(18,51,38,.35)}
.svc .ph{border-radius:0;aspect-ratio:4/3;height:auto;min-height:0}.svc .body{padding:18px 20px 22px;position:relative}
.svc .badge-ico{position:absolute;top:-26px;left:18px;width:52px;height:52px;border-radius:14px;background:var(--brand);color:#fff;display:grid;place-items:center;box-shadow:0 8px 18px -8px rgba(18,51,38,.6)}
.svc h3{font-family:inherit;font-size:18px;font-weight:800;margin:18px 0 6px}.svc p{margin:0;font-size:15px;color:var(--muted);line-height:1.5}
.services-note{margin-top:22px;color:var(--muted);font-size:15px;text-align:center}
.why{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}.why .ph{aspect-ratio:4/5;height:auto}
.why-list{display:grid;gap:16px}.why-item{display:flex;gap:16px;background:#fff;border-radius:14px;padding:20px 22px;box-shadow:0 10px 30px -18px rgba(18,51,38,.4);border-left:5px solid var(--accent)}
.why-item .ico{width:30px;height:30px;color:var(--brand)}.why-item h3{font-family:inherit;font-size:18px;font-weight:800;margin-bottom:4px}.why-item p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.5}
.story{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}.story .ph{aspect-ratio:5/4;height:auto}.story p{color:var(--muted);font-size:18px}
.steps-band{background:linear-gradient(135deg,var(--brand-deep),var(--brand));color:#fff}.steps-band .sec-head p{color:#cfe3d8}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;padding:0;margin:0;list-style:none;position:relative}
.steps::before{content:"";position:absolute;top:34px;left:12%;right:12%;height:2px;background:rgba(255,255,255,.25)}
.steps li{position:relative;text-align:center;padding:0 8px}.steps .num{width:68px;height:68px;margin:0 auto 16px;border-radius:50%;background:var(--accent);display:grid;place-items:center;font-size:26px;font-weight:800;box-shadow:0 0 0 8px rgba(255,255,255,.1);position:relative}
.steps h3{font-family:inherit;font-size:19px;font-weight:800;margin-bottom:6px}.steps p{margin:0;color:#d6e7de;font-size:15.5px}
.factors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.factor{background:#fff;border-radius:16px;padding:26px 22px;border-top:5px solid var(--brand);box-shadow:0 12px 30px -20px rgba(18,51,38,.45)}
.factor .ico{width:40px;height:40px;color:var(--accent);margin-bottom:12px}.factor h3{font-family:inherit;font-size:19px;font-weight:800;margin-bottom:6px}.factor p{margin:0;color:var(--muted);font-size:15.5px}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:220px 220px;gap:14px}.gallery .ph{height:100%;min-height:0}.gallery .ph:first-child{grid-row:span 2}
.tips{display:grid;grid-template-columns:1fr 1fr;gap:24px}.tip-card{border-radius:16px;padding:28px}.tip-card.do{background:var(--tint)}.tip-card.careful{background:#eaf0f5}
.tip-card h3{font-family:inherit;font-size:20px;font-weight:800;margin-bottom:14px;display:flex;align-items:center;gap:10px}.tip-card ul{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.tip-card li{padding-left:28px;position:relative;color:var(--muted)}.tip-card li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:14px;border-radius:50%;background:var(--brand)}.tip-card.careful li::before{background:var(--accent)}.tip-card strong{color:var(--ink)}
.local{display:grid;grid-template-columns:1.2fr 1fr;gap:44px;align-items:start}.local-facts{display:grid;gap:14px}.fact{background:#fff;border-radius:14px;padding:18px 20px;border:1px solid var(--line)}.fact h3{font-family:inherit;font-size:17px;font-weight:800;margin-bottom:4px;display:flex;align-items:center;gap:8px;color:var(--brand)}.fact .ico{width:22px;height:22px}.fact p{margin:0;color:var(--muted)}
.local-side{display:grid;gap:16px}.local-side .ph{aspect-ratio:4/3;height:auto}
.towns{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:8px 0 0;list-style:none}.towns li{background:var(--tint);color:var(--brand);font-weight:600;border-radius:999px;padding:5px 12px;font-size:14px}
.areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.areas a{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;text-decoration:none;font-weight:800;transition:all .15s}
.areas a .ico{color:var(--accent);width:24px;height:24px}.areas a:hover,.areas a[aria-current]{border-color:var(--brand);box-shadow:0 10px 26px -16px rgba(18,51,38,.5);transform:translateY(-2px)}.areas a[aria-current]{background:var(--brand);color:#fff}.areas a[aria-current] .ico{color:#fff}
.faq{max-width:840px;margin-inline:auto}details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin-bottom:12px}summary{font-weight:800;cursor:pointer;font-size:17px}details p{color:var(--muted);margin:10px 0 0}
.cta-band{position:relative;color:#fff;text-align:center;overflow:hidden;background:var(--brand-deep)}.cta-band h2{font-size:clamp(30px,3.4vw,44px);margin-bottom:10px}.cta-band p{color:#cfe3d8;margin:0 auto 26px;max-width:56ch;font-size:18px}
footer{background:#0f1a15;color:#b9c5bf;font-size:14px}footer .wrap{padding-block:36px}footer .links{display:flex;gap:18px;margin-bottom:14px;flex-wrap:wrap}footer a{color:#fff}footer p{margin:0 0 10px;line-height:1.55}
.mobile-call{display:none}
.about{display:grid;grid-template-columns:1.15fr 1fr;gap:44px;align-items:center}.about .sec-head{margin-bottom:0}.about .ph{aspect-ratio:4/3;height:auto}.about .sec-head p+p{margin-top:14px}
body:has(.mobile-call) .hsl-consent{z-index:40}
.svc{box-shadow:0 8px 24px -18px rgba(18,51,38,.3)}.svc .body{padding-bottom:25px}
.story .ph,.why .ph{box-shadow:0 18px 46px -24px rgba(18,51,38,.45)}
.sec-head .eyebrow{letter-spacing:.12em}.areas a{min-height:76px}
.call:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #2162aa;outline-offset:4px}
@media(max-width:980px){.about{grid-template-columns:1fr}}
@media(max-width:560px){body:has(.mobile-call) .hsl-consent{bottom:96px}.logo span{font-size:16px}.hero .wrap{padding-block:34px}.hero .hero-box{padding-block:0}.hero h1{font-size:clamp(29px,8.1vw,35px);line-height:1.08;margin-bottom:14px;text-wrap:pretty;text-shadow:0 2px 10px #0008}.hero p.lead{font-size:17px;line-height:1.45;margin-bottom:20px;text-shadow:0 1px 7px #000}.hero .eyebrow{font-size:11px;margin-bottom:12px}.hero-points{margin-top:20px;font-size:13px;gap:8px 16px}.hero::after{background:linear-gradient(90deg,rgba(10,20,15,.64),rgba(10,20,15,.38))}.hero .bg{object-position:58% center}.gallery{gap:10px}}
@media (max-width:980px){.services,.factors{grid-template-columns:1fr 1fr}.why,.story,.local,.tips{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr;row-gap:34px}.steps::before{display:none}nav.main{display:none}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:200px 160px 160px}.gallery .ph:first-child{grid-column:span 2;grid-row:auto}}
@media (max-width:560px){.services,.factors,.steps{grid-template-columns:1fr}.hero{min-height:0}header.site .call{display:none}section{padding-block:54px}
.mobile-call{display:block;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 12px;background:rgba(255,255,255,.96);border-top:1px solid var(--line)}.mobile-call .call{width:100%;justify-content:center}body{padding-bottom:86px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media(max-width:360px){.hero .wrap{padding-block:24px}.hero h1{font-size:27px;margin-bottom:12px}.hero p.lead{font-size:16px;line-height:1.4;margin-bottom:16px}.hero .eyebrow{margin-bottom:10px}.topbar .wrap{padding-block:6px;gap:6px}.hero-points{margin-top:16px}}

.local-page section{padding-block:46px}.local-page .local-hero{display:grid;grid-template-columns:1fr 1.05fr;background:var(--brand-deep);color:white;padding:0;min-height:430px}.local-hero-copy{padding:48px max(24px,calc((100vw - 1160px)/2));padding-right:32px}.local-hero h1{font-size:clamp(34px,3.7vw,52px);margin:12px 0 18px}.local-hero .lead{font-size:19px;color:#dfeee6;max-width:42ch}.local-hero .ph{border-radius:0;min-height:430px}.local-hero .eyebrow{color:#f2a366}.local-breadcrumb{font-size:14px;color:#cfe3d8}.roof-styles{display:grid;grid-template-columns:1fr 1fr;gap:28px}.roof-style .ph{height:auto;aspect-ratio:16/10}.roof-style h3{font-size:26px;margin:20px 0 10px}.roof-style p{margin:0;color:var(--muted)}.local-weather{background:var(--tint)}.weather-grid,.local-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.weather-grid h3{font-family:inherit;font-size:19px;margin-bottom:8px}.weather-grid p{margin:0;color:var(--muted)}.local-service .ph{aspect-ratio:16/9;height:auto}.local-service h3{font-size:23px;margin:16px 0 8px}.local-service p{color:var(--muted);margin:0}.coverage-row{display:grid;grid-template-columns:1fr 1.5fr;gap:30px;align-items:start}.coverage-row h2{font-size:32px}.local-page .towns{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}.local-page .towns li{background:white;border:1px solid var(--line);border-radius:6px;padding:6px 12px}.local-steps{display:flex;gap:28px;justify-content:space-between;padding:0;list-style:none;margin:0}.local-steps li{flex:1;display:flex;gap:12px}.local-steps b{color:var(--accent);font-size:26px}.local-steps strong{display:block}.local-steps span{color:var(--muted);font-size:15px}.other-areas{font-size:14px;padding-block:20px!important}.other-areas .wrap{display:flex;gap:10px 20px;flex-wrap:wrap}.local-page .cta-band{padding-block:40px}.local-page .sec-head{margin-bottom:26px}
@media(max-width:800px){.local-page .local-hero{grid-template-columns:1fr}.local-hero-copy{padding:30px 24px}.local-hero .ph{height:240px;min-height:0}.roof-styles{gap:22px}.weather-grid,.local-service-grid{gap:18px}.local-hero h1{font-size:34px;max-width:22ch}}
@media(max-width:560px){.local-page section{padding-block:34px}.local-hero-copy{padding:26px 20px}.local-hero h1{font-size:29px;line-height:1.08}.local-hero .lead{font-size:17px;line-height:1.45;margin:0 0 20px}.local-hero .ph{height:200px}.roof-styles,.weather-grid,.local-service-grid,.coverage-row{grid-template-columns:1fr}.roof-style h3{font-size:24px;margin-top:14px}.local-service{display:grid;grid-template-columns:90px 1fr;gap:8px 16px}.local-service .ph{grid-row:span 2;height:100px;aspect-ratio:auto}.local-service h3{font-size:21px;margin:0}.local-service p{font-size:15px;line-height:1.45}.local-steps{flex-direction:column;gap:16px}.local-page .sec-head h2{font-size:29px}.local-page .faq details{padding:14px 16px}.local-page .cta-band h2{font-size:28px}.local-page .eyebrow{font-size:11px}}
