:root{--ink:#1c3325;--green:#246a35;--green-dark:#174d2a;--forest:#122d20;--lime:#c9e9a8;--cream:#f5f6f0;--muted:#59675d;--line:#dbe1d8;--max:1240px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:124px}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,pre:focus-visible{outline:3px solid #5f9a29;outline-offset:4px}
img{max-width:100%;display:block}
button{color:inherit}
h1,h2,h3,p{margin-top:0}
p{margin-bottom:20px}
h1,h2,h3{font-weight:700}
h2{font-size:clamp(36px,4vw,54px);line-height:1.08;letter-spacing:-.045em;margin-bottom:26px}
h3{line-height:1.2;letter-spacing:-.025em}
em{font-style:normal}
[hidden]{display:none!important}
.container{width:min(var(--max),calc(100% - 96px));margin-inline:auto}
.section{padding-block:100px}
.eyebrow{font-size:11px;line-height:1.5;font-weight:700;letter-spacing:.15em;color:var(--green);margin-bottom:22px}
.skip{position:fixed;left:16px;top:-100px;z-index:100;background:#fff;padding:14px 22px;border:2px solid var(--green)}
.skip:focus{top:12px}
#main:focus{outline:0}
.topbar{background:var(--forest);color:#e0e9df;font-size:12px}
.topbar-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:40px;padding-block:9px}
.topbar a strong{color:#fff;margin-left:4px}
.topbar a>span{margin-left:8px}
.header{position:sticky;top:0;background:#fff;z-index:20;border-bottom:1px solid var(--line)}
.header-inner{min-height:108px;display:flex;align-items:center;justify-content:space-between;gap:25px;padding-block:10px}
.brand{flex:0 0 260px}
.business-logo{width:260px;height:auto}
nav{display:flex;align-items:center;gap:22px;font-size:13px;font-weight:600;white-space:nowrap}
nav>a:not(.button){padding-block:17px;position:relative}
nav>a:not(.button)::after{content:"";position:absolute;bottom:10px;left:0;right:0;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .2s}
nav>a:hover::after{transform:scaleX(1)}
.header-contact{display:flex;flex-direction:column;align-items:stretch;gap:7px}
.header-phone{display:flex;align-items:center;justify-content:space-between;gap:10px;line-height:1.3}
.header-phone>span{font-size:8px;letter-spacing:.06em;color:var(--muted)}
.header-phone strong{font-size:15px;letter-spacing:-.02em}
.header-text{font-size:11px;font-weight:700;color:var(--green-dark);text-decoration:underline;text-underline-offset:3px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:54px;padding:15px 23px;border:1px solid transparent;border-radius:3px;font-size:14px;line-height:1.45;font-weight:700;cursor:pointer;transition:background .2s,color .2s,transform .2s;text-align:left}
.button>span{font-size:19px;line-height:1;flex-shrink:0}
.button:hover{transform:translateY(-2px)}
.green{background:var(--green);color:#fff}
.green:hover{background:var(--green-dark)}
.light{background:#fff;color:var(--green-dark)}
.light:hover{background:var(--lime)}
.outline-light{border-color:#b3c3b7;background:#142e20a8;color:#fff}
.outline-light:hover{background:#fff;color:var(--ink)}
.header-estimate{font-size:12px;min-height:43px;padding:11px 15px}
.menu-toggle,.nav-mobile-estimate{display:none}
.hero{position:relative;isolation:isolate;background:var(--forest);color:#fff;min-height:620px;overflow:hidden}
.hero-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 65%;z-index:-3}
.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#0c2319f5 0%,#10281ee8 28%,#0e2318b0 51%,#0b1e1433 78%,#08180e18 100%)}
.hero-content{padding-block:70px 56px}
.hero .eyebrow{color:#e3efda;display:flex;align-items:center;gap:10px;font-size:11px;margin-bottom:25px}
.season-dot{height:6px;width:6px;display:inline-block;background:var(--lime);border-radius:50%;flex-shrink:0}
h1{font-size:clamp(46px,4.7vw,66px);line-height:1.05;letter-spacing:-.045em;margin-bottom:27px;max-width:800px}
h1 em{color:var(--lime)}
.hero-content>p:not(.eyebrow){color:#e2e9e0;font-size:17px;line-height:1.75;max-width:510px;margin-bottom:30px}
.actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}
.hero-explore{display:inline-flex;align-items:center;gap:30px;color:#e2e9e0;font-size:12px;margin-top:31px;min-height:32px}
.hero-explore>span{font-size:18px}
.hero-explore:hover{color:#fff;text-decoration:underline}
.hero-photo-credit{position:absolute;right:max(48px,calc((100% - 1240px)/2));bottom:24px;color:#fff;font-size:9px;letter-spacing:.15em;text-shadow:0 1px 5px #000}
.trust-band{background:var(--cream);border-bottom:1px solid var(--line)}
.trust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.trust-grid>div{display:flex;align-items:center;justify-content:center;gap:12px;min-height:86px;font-size:14px;font-weight:600;padding:20px}
.trust-grid>div+div{border-left:1px solid var(--line)}
.trust-mark{display:grid;place-items:center;width:25px;height:25px;border:1px solid #aec3aa;border-radius:50%;color:var(--green);font-size:14px;flex-shrink:0}
.about-estimate{background:#fff}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:start}
.about-grid>*{min-width:0}
.about-copy{padding-top:24px}
.about-copy>p:not(.eyebrow){color:var(--muted);font-size:16px}
.about-copy>.lead{color:var(--ink)!important;font-size:21px!important;line-height:1.5;margin-bottom:26px;max-width:440px}
.about-facts{border-block:1px solid var(--line);margin-block:33px 27px;padding-block:25px;display:grid;grid-template-columns:.85fr 1.15fr;gap:22px}
.about-facts>div{display:flex;flex-direction:column;gap:5px;justify-content:center}
.about-facts strong{font-size:46px;letter-spacing:-.05em;line-height:1.15;color:var(--green-dark)}
.about-facts>div+div{border-left:1px solid var(--line);padding-left:22px}
.about-facts>div+div strong{font-size:20px;line-height:1.25;letter-spacing:-.02em}
.about-facts span{font-size:12px;color:var(--muted);line-height:1.5}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;color:var(--green-dark);border:0;border-bottom:1px solid #a7bfa3;padding:7px 0;background:none;font-size:14px;line-height:1.5;font-weight:700;cursor:pointer;text-align:left}
.text-link:hover{color:var(--green);border-color:var(--green)}
.text-link>span{font-size:19px;flex-shrink:0}
.estimate-panel{border-top:5px solid var(--green)}
form{padding:32px;background:var(--cream);border:1px solid var(--line);border-top:0}
form .eyebrow{font-size:10px;margin-bottom:13px}
form h3{font-size:31px;margin-bottom:15px}
fieldset{border:0;min-width:0;padding:0;margin:0}
.form-intro{color:var(--muted);font-size:14px;line-height:1.65;margin-bottom:25px}
.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
label{display:block;font-size:12px;line-height:1.5;font-weight:700;margin-bottom:15px}
.required{font-size:10px;font-weight:400;color:var(--muted);white-space:nowrap}
input,select,textarea{display:block;width:100%;min-width:0;max-width:100%;margin-top:7px;border:1px solid #c7d1c4;border-radius:2px;padding:11px 12px;background:#fff;color:var(--ink);font-size:16px;min-height:46px;line-height:1.5}
input::placeholder,textarea::placeholder{color:#68746c;opacity:1}
select{padding-right:24px;text-overflow:ellipsis}
textarea{resize:vertical;min-height:98px}
form .button{width:100%}
.form-note{font-size:12px;line-height:1.65;color:var(--muted);margin:19px 0 20px;padding-left:14px;border-left:2px solid #a2b79a}
.form-note strong{display:block;color:var(--ink);margin-bottom:3px}
.form-status{font-size:13px;line-height:1.6;color:var(--ink);margin:0}
.form-status:not(:empty){margin-top:17px;padding:13px;background:#fff;border:1px solid var(--line)}
.email-fallback{margin-top:14px;font-size:13px}
.email-fallback summary{font-size:12px;font-weight:700;line-height:1.6;padding-block:12px;display:flex;justify-content:space-between;gap:12px;color:var(--green-dark)}
.email-fallback p{margin-block:12px}
.email-fallback a,.noscript-note a{color:var(--green-dark);text-decoration:underline;overflow-wrap:anywhere}
#email-draft{white-space:pre-wrap;overflow-wrap:anywhere;max-height:300px;overflow:auto;padding:13px;background:#fff;border:1px solid var(--line);font:12px/1.7 Arial,Helvetica,sans-serif;user-select:text}
#copy-status{font-size:12px;color:var(--muted)}
.noscript-note{font-size:13px;line-height:1.7}
.services{background:var(--cream)}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:45px;margin-bottom:43px}
.section-heading h2{margin:0}
.section-heading>p{font-size:16px;color:var(--muted);max-width:380px;margin-bottom:5px}
.repair-feature{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line)}
.repair-feature-image{min-height:470px;position:relative}
.repair-feature-image img{width:100%;height:100%;object-fit:cover;object-position:50% 65%;position:absolute;inset:0}
.repair-feature-copy{padding:48px}
.repair-feature-copy .eyebrow{margin-bottom:17px;font-size:10px}
.repair-feature h3{font-size:35px;margin-bottom:20px}
.repair-feature-copy>p:not(.eyebrow){color:var(--muted);font-size:15px}
.check-list{list-style:none;padding:0;margin:23px 0 27px;font-size:14px}
.check-list li{position:relative;padding-left:25px;margin-block:8px}
.check-list li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px;margin-top:34px}
.service-card{position:relative;border-bottom:1px solid #ccd6c6;padding:28px 0 29px 47px}
.service-number{position:absolute;left:0;top:30px;color:var(--green);font-size:12px;font-weight:700}
.service-card h3{font-size:25px;margin-bottom:14px}
.service-card p{font-size:15px;color:var(--muted);max-width:450px;margin-bottom:14px}
.service-card .text-link{font-size:13px}
.roof-types{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:44px}
.roof-types>span{font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--muted)}
.roof-types ul{display:flex;align-items:center;flex-wrap:wrap;gap:28px;list-style:none;padding:0;margin:0}
.roof-types li{font-size:16px;font-weight:700}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.project-grid figure{margin:0}
.photo-open{position:relative;display:block;width:100%;border:0;background:var(--cream);padding:0;cursor:zoom-in;text-align:left;overflow:hidden}
.photo-open img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;transition:transform .3s}
.photo-open:hover img{transform:scale(1.035)}
.photo-view{position:absolute;inset:auto 17px 17px;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;background:#122d20ed;color:#fff;font-size:12px}
.photo-view>span+span{font-size:20px;line-height:1}
.project-grid figcaption{padding-top:22px}
.project-grid figcaption>span{font-size:10px;font-weight:700;color:var(--green);letter-spacing:.1em}
.project-grid h3{font-size:22px;margin:9px 0 0}
.why{background:var(--forest);color:#fff}
.why .eyebrow{color:var(--lime)}
.why-heading{display:flex;justify-content:space-between;gap:30px;align-items:flex-start}
.why-heading>.eyebrow{padding-top:9px}
.why-heading h2{width:58%;margin-bottom:0}
.why-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin-top:53px}
.why-number{display:block;border-top:1px solid #51664d;color:var(--lime);font-size:12px;padding-top:24px;margin-bottom:22px}
.why h3{font-size:21px;margin-bottom:16px;line-height:1.25}
.why article p{font-size:14px;color:#d4dfd1;margin-bottom:0}
.area-wrap{background:var(--cream)}
.areas{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}
.areas>div>p:not(.eyebrow){color:var(--muted);font-size:16px;max-width:440px}
.area-panel{padding:35px 38px;background:#fff;border:1px solid #ced9c8;border-top:4px solid var(--green)}
.area-kicker{font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--green)}
.area-panel ul{list-style:none;margin:15px 0 23px;padding:0}
.area-panel li{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-block:20px}
.area-panel li>span:first-child{font-size:30px;line-height:1.2;letter-spacing:-.03em;font-weight:700}
.area-panel li>span+span{font-size:11px;color:var(--green)}
.area-panel>p{font-size:14px!important;margin-bottom:11px}
.area-panel .text-link{font-size:13px}
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:10%}
.faq-grid>div>p:not(.eyebrow){font-size:15px;color:var(--muted)}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:23px 0;font-size:16px;font-weight:700;line-height:1.5}
summary>span{font-weight:400;color:var(--green);font-size:24px;line-height:1;transition:transform .2s;flex-shrink:0}
details[open]>summary>span{transform:rotate(45deg)}
.faq details p{font-size:15px;color:var(--muted);padding-right:28px;margin-bottom:24px}
.faq details a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.final-contact{background:var(--green-dark);padding-block:74px;color:#fff}
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:12%;align-items:center}
.final-contact .eyebrow{color:var(--lime)}
.final-contact h2{font-size:52px;margin-bottom:23px}
.final-contact p:not(.eyebrow){font-size:16px;color:#e1eadc;max-width:400px;margin-bottom:0}
.contact-actions{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.contact-phone{display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:35px;line-height:1.3;letter-spacing:-.03em;font-weight:700;margin-bottom:13px}
.contact-phone>span{font-size:28px;color:var(--lime)}
.contact-email{font-size:15px;color:#e1eadc;margin-bottom:27px;overflow-wrap:anywhere;max-width:100%}
.contact-email:hover{text-decoration:underline}
footer{padding-block:60px 25px;background:#fff}
.footer-grid{display:grid;grid-template-columns:1.25fr 1fr .65fr 1.2fr;gap:40px 30px}
.footer-grid>div{min-width:0}
.footer-brand{display:block;margin-top:-8px}
.footer-brand .business-logo{width:260px}
.footer-about p{font-size:13px;color:var(--muted);margin:19px 0 0}
.footer-license{font-size:12px!important;line-height:1.9}
.footer-license strong{color:var(--ink)}
.footer-grid h3{font-size:15px;margin:4px 0 20px}
.footer-grid>div>a:not(.footer-brand){display:block;font-size:13px;color:var(--muted);margin-bottom:13px;line-height:1.6}
.footer-grid>div>a:hover{color:var(--green);text-decoration:underline}
.footer-contact>a:first-of-type{font-size:22px!important;font-weight:700;color:var(--green-dark)!important;letter-spacing:-.02em}
.footer-contact>a{overflow-wrap:anywhere}
.footer-contact>p{font-size:13px;color:var(--muted);margin-top:19px}
.footer-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding-top:23px;display:flex;justify-content:space-between;align-items:center;gap:25px}
.footer-bottom p{font-size:11px;color:var(--muted);margin:0}
.footer-bottom>a{font-size:12px!important;margin:0!important}
.footer-bottom>a>span{margin-left:12px}
.mobile-actions{display:none}
dialog{width:min(1050px,94vw);max-height:94dvh;border:0;border-radius:3px;padding:18px 24px;background:var(--cream);color:var(--ink)}
dialog::backdrop{background:#07160ff2}
dialog button{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-width:44px;min-height:44px;background:#fff;border:1px solid #c5d1bf;border-radius:2px;padding:8px 15px;font-size:13px;cursor:pointer}
dialog button:hover{background:#e0ebd6}
.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}
.lightbox-toolbar>span{font-size:10px;letter-spacing:.12em}
#photo-close>span{font-size:23px;line-height:1}
#photo-full{max-width:100%;width:auto;height:auto;max-height:calc(94dvh - 155px);object-fit:contain;margin-inline:auto}
.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:14px}
.lightbox-bottom p{font-size:13px;line-height:1.5;text-align:center;margin:0}
.lightbox-bottom button{font-size:20px}
.modal-open{overflow:hidden}
@media(max-width:1200px){
  .container{width:calc(100% - 72px)}
  .header-inner{gap:20px}.brand{flex-basis:235px}.business-logo{width:235px}nav{gap:16px;font-size:12px}.header-contact{min-width:192px}.header-phone>span{font-size:7px}.header-estimate{padding-inline:12px;font-size:11px}
  .hero-photo-credit{right:36px}
  .about-grid{gap:6%}form{padding:27px}.about-copy>p:not(.eyebrow){font-size:15px}
  .repair-feature-copy{padding:35px}.repair-feature-image{min-height:460px}.service-grid{gap:0 35px}
  .why-grid{gap:25px}.why h3{font-size:20px}.areas{gap:8%}.faq-grid{gap:7%}.contact-grid{gap:8%}
  .footer-grid{gap:35px 24px}.footer-brand .business-logo{width:230px}
}
@media(max-width:1050px){
  html{scroll-padding-top:108px}.header-inner{position:relative;min-height:94px;flex-wrap:wrap;gap:14px 20px}.brand{flex-basis:245px}.business-logo{width:245px}.header-contact{margin-left:auto;order:1}.menu-toggle{order:2;display:inline-flex;align-items:center;gap:12px;min-height:44px;background:#fff;border:1px solid #c7d3c2;border-radius:3px;padding:11px 14px;cursor:pointer;font-size:12px;font-weight:700}
  .menu-lines{display:block;width:16px;height:12px;border-top:2px solid var(--green);border-bottom:2px solid var(--green);position:relative}.menu-lines::after{content:"";position:absolute;left:0;right:0;top:3px;height:2px;background:var(--green)}
  nav{display:none;order:3;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;padding-block:5px 12px;max-height:calc(100dvh - 180px);overflow-y:auto}nav.open{display:flex}nav>a:not(.button){padding:13px 0;border-bottom:1px solid var(--line);font-size:14px}nav>a::after{display:none}.nav-mobile-estimate{display:flex;margin-top:16px}
  .hero{min-height:610px}.hero-content{padding-block:65px 55px}h1{font-size:60px}.hero-shade{background:linear-gradient(90deg,#0c2319f5,#10281ee6 35%,#0e23189c 70%,#0b1e1433)}
  .trust-grid>div{font-size:12px;padding:20px 9px;gap:9px}
  .section{padding-block:80px}.about-grid{gap:5%}.about-copy h2{font-size:43px}.about-facts{grid-template-columns:1fr;gap:16px}.about-facts>div+div{border-left:0;padding-left:0}.form-row{grid-template-columns:1fr;gap:0}
  .section-heading>p{max-width:330px;font-size:15px}.repair-feature-copy{padding:30px}.repair-feature h3{font-size:30px}.repair-feature-copy .button{font-size:12px;padding-inline:17px}.service-card h3{font-size:22px}
  .roof-types{align-items:flex-start;flex-direction:column;gap:16px}.roof-types ul{gap:30px}
  .project-grid{gap:19px}.project-grid h3{font-size:20px}.project-grid figcaption>span{font-size:9px}
  .why-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 45px}.why-heading h2{width:55%}.why h3{font-size:22px}
  .areas{gap:6%}.area-panel{padding:30px}.faq-grid{grid-template-columns:.75fr 1.25fr;gap:6%}.faq summary{font-size:15px}
  .contact-grid{gap:6%}.final-contact h2{font-size:43px}.contact-phone{font-size:30px;gap:16px}.contact-email{font-size:13px}
  .footer-grid{grid-template-columns:1.2fr 1fr;gap:38px 10%}.footer-brand .business-logo{width:270px}
}
@media(max-width:760px){
  .container{width:calc(100% - 40px)}html{scroll-padding-top:100px;scroll-padding-bottom:90px}.section{padding-block:58px}
  .topbar-inner{justify-content:center;min-height:35px;padding-block:7px;font-size:11px}.topbar-inner>span{display:none}.topbar a strong{margin-left:3px}
  .header-inner{min-height:85px;gap:0 15px;padding-block:8px}.brand{flex:0 1 240px}.business-logo{width:240px}.header-contact{display:none}.menu-toggle{margin-left:auto;font-size:11px;padding:10px 12px;gap:9px}nav{padding-top:12px;max-height:calc(100dvh - 170px)}
  .hero{min-height:0}.hero-content{padding-block:51px 53px}.hero .eyebrow{font-size:9px;letter-spacing:.1em;margin-bottom:24px}.hero-background{object-position:61% 66%}.hero-shade{background:linear-gradient(90deg,#0b2219f2 0%,#10271ee5 42%,#0b2019a8 100%)}
  h1{font-size:clamp(42px,7.5vw,60px);line-height:1.04;max-width:650px;margin-bottom:25px}.hero-content>p:not(.eyebrow){font-size:16px;line-height:1.65;max-width:470px;margin-bottom:25px}.hero .actions{gap:12px}.hero .button{font-size:13px;padding-inline:20px}.hero-explore{font-size:12px;margin-top:23px}.hero-photo-credit{display:none}
  .trust-grid{grid-template-columns:1fr}.trust-grid>div{justify-content:flex-start;padding:15px 0;min-height:57px;font-size:13px;gap:13px}.trust-grid>div+div{border-left:0;border-top:1px solid var(--line)}.trust-mark{width:22px;height:22px;font-size:12px}
  h2{font-size:39px;margin-bottom:22px}.eyebrow{font-size:10px;margin-bottom:19px}
  .about-grid,.areas,.faq-grid,.contact-grid{grid-template-columns:1fr;gap:38px}.about-copy{padding:0}.about-copy h2{font-size:41px}.about-copy>.lead{font-size:20px!important;max-width:520px}.about-copy>p:not(.eyebrow){font-size:16px}.about-facts{grid-template-columns:.75fr 1.25fr;margin-block:27px 20px;padding-block:22px;gap:18px}.about-facts>div+div{border-left:1px solid var(--line);padding-left:20px}.about-facts strong{font-size:43px}.about-facts>div+div strong{font-size:20px}.text-link{font-size:14px}
  form{padding:27px 24px}form h3{font-size:29px}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.required{font-size:9px}.form-note{font-size:12px}input,select,textarea{font-size:16px}
  .section-heading{display:block;margin-bottom:30px}.section-heading h2{margin-bottom:21px}.section-heading>p{max-width:560px;font-size:16px;margin:0}.repair-feature{grid-template-columns:1fr}.repair-feature-image{min-height:0;height:280px}.repair-feature-image img{object-position:50% 66%}.repair-feature-copy{padding:28px}.repair-feature h3{font-size:30px}.repair-feature-copy>p:not(.eyebrow){font-size:16px}.repair-feature-copy .button{font-size:14px}.service-grid{grid-template-columns:1fr;margin-top:15px;gap:0}.service-card{padding-block:27px;padding-left:38px}.service-card h3{font-size:24px}.service-card p{max-width:none;font-size:16px}.service-number{top:30px}.service-card .text-link{font-size:13px}.roof-types{margin-top:31px;gap:15px}.roof-types ul{gap:11px 25px}.roof-types li{font-size:16px}
  .project-grid{grid-template-columns:1fr;gap:34px}.photo-open img{aspect-ratio:5/4;object-position:50% 60%}.project-grid figure:first-child img{object-position:50% 67%}.project-grid figure:last-child img{object-position:50% 50%}.project-grid figcaption{padding-top:17px}.project-grid figcaption>span{font-size:10px}.project-grid h3{font-size:24px;margin-top:7px}.photo-view{inset:auto 15px 15px;padding:14px 16px}
  .why-heading{display:block}.why-heading>.eyebrow{padding:0}.why-heading h2{width:auto}.why-grid{margin-top:35px;gap:28px 27px}.why-number{padding-top:19px;margin-bottom:18px}.why h3{font-size:21px}.why article p{font-size:14px}
  .areas>div>p:not(.eyebrow){max-width:550px}.area-panel{padding:29px}.area-panel li>span:first-child{font-size:30px}.area-panel li{padding-block:20px}
  .faq-grid{gap:28px}.faq-grid h2{margin-bottom:20px}.faq-grid>div>p:not(.eyebrow){margin-bottom:7px}.faq summary{font-size:16px;padding-block:22px;gap:18px}.faq details p{padding-right:10px;font-size:15px}
  .final-contact{padding-block:54px}.contact-grid{gap:30px}.final-contact h2{font-size:43px}.final-contact p:not(.eyebrow){max-width:500px}.contact-phone{font-size:35px}.contact-email{font-size:15px;margin-bottom:24px}
  footer{padding-block:43px 110px}.footer-grid{gap:34px 28px;grid-template-columns:1fr 1fr}.footer-about,.footer-contact{grid-column:1/-1}.footer-brand .business-logo{width:280px}.footer-about p{font-size:13px}.footer-grid>div>a:not(.footer-brand){font-size:13px;min-height:27px}.footer-grid h3{font-size:15px;margin-bottom:16px}.footer-bottom{display:block;padding-top:20px}.footer-bottom p{margin-bottom:12px;line-height:1.7}.footer-bottom>a{display:inline-block!important}
  .mobile-actions{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:15;border-top:1px solid var(--line);box-shadow:0 -3px 18px #1127171c;background:#fff;padding-bottom:env(safe-area-inset-bottom)}
  .mobile-contact{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7px 10px;color:var(--green-dark)}.mobile-contact>span{font-size:12px;line-height:1.5}.mobile-contact-links{display:flex;align-items:center;gap:15px}.mobile-contact-links>a{display:inline-flex;align-items:center;min-height:30px;padding-block:4px;font-size:14px;line-height:1.4;font-weight:700;text-decoration:underline;text-underline-offset:4px}.mobile-contact-links>a:hover{color:var(--green)}
  .mobile-estimate{display:flex;justify-content:center;align-items:center;gap:12px;min-height:63px;font-size:13px;line-height:1.4;font-weight:700;color:#fff;background:var(--green);padding:11px 8px}.mobile-estimate>span{font-size:19px}.mobile-estimate:hover{background:var(--green-dark)}
  dialog{padding:14px;width:94vw;max-height:92dvh}.lightbox-toolbar>span{font-size:9px;letter-spacing:.06em}.lightbox-toolbar{gap:12px}#photo-full{max-height:calc(92dvh - 155px)}.lightbox-bottom{gap:10px}.lightbox-bottom p{font-size:12px}
}
@media(max-width:420px){
  .brand{flex-basis:210px}.business-logo{width:210px}.header-inner{min-height:80px}.menu-toggle{padding:10px;gap:8px;font-size:10px}.hero .eyebrow{font-size:8px;letter-spacing:.08em}.hero-content{padding-block:44px}.hero h1{font-size:clamp(40px,10.3vw,45px)}.hero .actions{flex-direction:column;align-items:stretch;max-width:360px}.hero .button{padding-block:14px;font-size:14px}.hero-content>p:not(.eyebrow){font-size:15px}
  .form-row{grid-template-columns:1fr;gap:0}form{padding:25px 20px}form h3{font-size:27px}.about-copy h2{font-size:38px}.about-facts>div+div strong{font-size:18px}.about-facts span{font-size:11px}.text-link{font-size:13px}.repair-feature-copy{padding:25px}.repair-feature-copy .button{font-size:12px;padding-inline:17px}.repair-feature-image{height:245px}.service-card h3{font-size:22px}.service-card .text-link{font-size:12px}.why-grid{grid-template-columns:1fr;gap:27px}.why h3{font-size:23px}.why article p{font-size:15px}.area-panel{padding:25px}.area-panel .text-link{font-size:12px}.contact-phone{font-size:32px}.contact-email{font-size:14px}.footer-grid{gap:30px 20px}.footer-grid>div>a:not(.footer-brand){font-size:12px}
}
@media(max-width:350px){.container{width:calc(100% - 32px)}.brand{flex-basis:180px}.business-logo{width:180px}.menu-toggle{gap:6px;font-size:10px;padding-inline:8px}.header-inner{gap:8px;min-height:75px}.hero .eyebrow{font-size:7px}.contact-phone{font-size:29px}.about-facts{gap:13px}.about-facts>div+div{padding-left:14px}}
.topbar-contact{display:flex;align-items:center;gap:19px}
.topbar-contact>a{padding-block:4px;text-decoration:underline;text-underline-offset:3px}
.hero .service-actions .button{min-width:235px}
.hero-contact{display:flex;align-items:center;flex-wrap:wrap;gap:10px 22px;margin-top:25px;font-size:13px;color:#e2e9e0}
.hero-contact>span{font-weight:700;font-size:15px}
.primary-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.primary-services .repair-feature{display:flex;flex-direction:column;min-width:0}
.primary-services .repair-feature-image{min-height:0;height:270px;flex-shrink:0}
.primary-services .repair-feature-copy{padding:35px;display:flex;flex-direction:column;flex:1}
.primary-services .repair-feature-copy>.button{margin-top:auto}
.primary-services .repair-feature h3{font-size:30px}
.service-grid.supporting-services{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
.supporting-services .service-card{padding-left:32px}
.supporting-services h3{font-size:23px}
.contact-estimates{display:flex;flex-direction:column;align-items:flex-start;gap:13px;margin-top:26px}
.contact-estimates>a{font-size:14px;text-decoration:underline;text-underline-offset:5px}
.contact-estimates>a:hover{color:var(--lime)}
.contact-links{display:flex;align-items:center;flex-wrap:wrap;gap:24px}
.contact-links>a{display:inline-flex;align-items:center;min-height:44px;padding-block:7px;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.contact-links>a:hover{color:var(--lime)}
@media(max-width:1050px){
  .primary-services{gap:22px}.primary-services .repair-feature-copy{padding:27px}.primary-services .repair-feature h3{font-size:27px}.primary-services .repair-feature-image{height:230px}
  .service-grid.supporting-services{grid-template-columns:1fr}.supporting-services .service-card p{max-width:none}
}
@media(max-width:760px){
  .hero .eyebrow{max-width:400px;line-height:1.7}.hero .service-actions .button{min-width:0}.hero-contact{gap:6px 20px;font-size:13px}.hero-contact>span{flex-basis:100%;font-size:15px}
  .primary-services{grid-template-columns:1fr;gap:28px}.primary-services .repair-feature-image{height:260px}.primary-services .repair-feature-copy{padding:28px}.primary-services .repair-feature h3{font-size:30px}.primary-services .button{font-size:14px}
}
@media(max-width:420px){.primary-services .repair-feature-copy{padding:25px}.primary-services .repair-feature h3{font-size:27px}.primary-services .button{font-size:12px}.primary-services .repair-feature-image{height:230px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
