*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#26333b;background:#fff;font:17px/1.7 Arial,Helvetica,sans-serif;--ink:#26333b;--muted:#52606a}a{color:var(--action);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}img,svg{max-width:100%}[hidden]{display:none!important}:focus-visible{outline:3px solid #172c3f;outline-offset:4px;box-shadow:0 0 0 2px white}h1,h2,h3{line-height:1.18;letter-spacing:-.025em;color:var(--primary)}h1{font-size:clamp(34px,4.3vw,62px);margin:16px auto 24px;text-wrap:balance;max-width:920px}h2{font-size:clamp(26px,2.4vw,37px);text-align:center;margin:0 0 24px;text-wrap:balance}h3{font-size:23px}p{margin:0 0 22px}.skip{position:absolute;left:12px;top:-80px;z-index:99;background:#fff;padding:12px}.skip:focus{top:12px}.utility{background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:9px max(24px,calc((100% - 1300px)/2));font-size:13px}.utility a{color:#fff;font-size:15px;font-weight:700;white-space:nowrap}header{background:white;border-bottom:1px solid #d4d9dc;position:relative;z-index:20}.header-inner{max-width:1400px;margin:auto;padding:22px 26px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--primary);flex-shrink:0}.brand svg{width:52px;height:52px}.brand strong{display:block;font-size:25px;line-height:1.1}.brand small{display:block;font-size:13px;font-weight:bold;letter-spacing:.015em;margin-top:5px}.nav{display:flex;align-items:center;gap:20px;font-size:14px;font-weight:700}.nav>a:not(.button){color:#29343c;text-decoration:none;white-space:nowrap}.nav details{position:relative}.nav summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:6px;white-space:nowrap}.nav summary:after{content:'⌄'}.nav details>div{position:absolute;top:42px;left:0;width:265px;background:#fff;border:1px solid #bac4ca;box-shadow:0 12px 30px #182c3220;padding:12px;z-index:25}.nav details a{display:block;color:var(--primary);padding:10px;text-decoration:none;font-size:14px}.nav details a:hover{background:var(--surface)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 25px;background:var(--action);color:#fff;border:2px solid transparent;text-decoration:none;font-weight:700;line-height:1.3;border-radius:3px;text-align:center;cursor:pointer}.button:hover{background:var(--primary);color:#fff}.button.secondary{background:#fff;color:var(--primary);border-color:var(--primary)}.button:disabled{opacity:.7;cursor:wait}.nav .button{padding:12px 16px;font-size:13px;min-height:44px}.menu-button{display:none}.hero{position:relative;min-height:570px;display:flex;align-items:center;isolation:isolate;background:var(--primary);color:#fff;overflow:hidden}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.hero:after{content:'';position:absolute;inset:0;background:#112330a8;z-index:-1}.hero-copy{max-width:1050px;margin:auto;padding:68px 36px;text-align:center;position:relative}.hero h1{color:inherit}.eyebrow{font-size:13px;text-transform:uppercase;font-weight:700;letter-spacing:.14em;margin-bottom:16px}.summary{max-width:720px;margin:0 auto 30px;font-size:19px;line-height:1.6}.hero-actions{text-align:center}.hero .button{box-shadow:0 0 0 1px #fff3}.crumbs{max-width:1200px;margin:20px auto;padding:0 25px;font-size:13px;line-height:1.5}.page-intro{max-width:840px;margin:40px auto;padding:0 25px;font-size:20px;color:#34454e;line-height:1.7}.content{max-width:860px;margin:auto;padding:14px 30px 45px}.copy-section{position:relative;padding:38px 0;border-bottom:1px solid #dbe0e2}.copy-section:last-child{border:0}.copy-section p:last-child{margin-bottom:0}.section-index{display:none}.wrap{max-width:1180px;margin:auto;padding:0 28px}.service-band{padding:65px 0;background:var(--surface)}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:35px}.service-card{display:grid;grid-template-columns:40px 1fr 26px;gap:14px;align-items:center;padding:28px;background:white;border:1px solid #a0adb3;text-decoration:none;min-height:120px}.service-card h3{margin:0}.card-number{color:var(--action);font-weight:700;font-size:14px}.card-arrow{font-size:25px}.service-card:hover{border-color:var(--action);box-shadow:0 5px 18px #12233310}.coverage-strip{background:var(--surface);padding:60px 28px;text-align:center}.coverage-strip p{max-width:860px;margin:0 auto 22px}.coverage-strip a{font-weight:700}.end-cta{background:var(--primary);color:#fff;text-align:center;padding:65px 28px}.end-cta h2{color:white}.end-cta p{max-width:730px;margin-left:auto;margin-right:auto}.end-cta .button{border:1px solid #fff}.end-cta .button:hover{background:#fff;color:var(--primary)}footer{background:#f4f6f7;padding:52px 28px 22px;border-top:5px solid var(--action)}.footer-top{max-width:1240px;margin:auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:45px;font-size:14px}.domain{font-size:16px;color:var(--primary);overflow-wrap:anywhere}.footer-links{display:flex;flex-direction:column;gap:10px}.footer-links a{color:#314753}.phone-link{font-weight:700;white-space:nowrap}.copyright{text-align:center;font-size:12px;border-top:1px solid #bac5cb;max-width:1240px;margin:30px auto 0;padding-top:18px;overflow-wrap:anywhere}.mobile-action{display:none}.contact-call{text-align:center;padding:35px 25px;background:var(--surface);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:25px}.contact-call p{width:100%;margin:0}.contact-call .phone-link{font-size:26px}.next-step{text-align:center;max-width:850px;padding:25px 30px 65px;margin:auto}.process-content .section-index{display:block;width:50px;height:50px;line-height:50px;text-align:center;font-size:18px;background:var(--primary);color:white;margin:0 auto 20px}.utility-page .hero{min-height:260px}.utility-page .hero-copy{padding:38px 30px}.utility-page .hero h1{font-size:clamp(30px,3.4vw,44px)}
/* Each identity uses a separate composition, in addition to palette and logo. */
.layout-terrace .hero{max-width:1360px;margin:25px auto 0;min-height:550px;display:grid;grid-template-columns:48% 52%;background:var(--surface);color:var(--primary)}.layout-terrace .hero>img{left:48%;width:52%;z-index:0}.layout-terrace .hero:after{display:none}.layout-terrace .hero-copy{padding:55px 42px}.layout-terrace .hero h1{font-size:clamp(34px,3.8vw,54px)}.layout-terrace .service-card{border:0;border-bottom:5px solid var(--action)}
.layout-panorama .hero{min-height:630px;align-items:flex-end}.layout-panorama .hero:after{background:linear-gradient(0deg,#10253de6,transparent 90%)}.layout-panorama .hero-copy{padding-bottom:58px}.layout-panorama .service-card{background:var(--primary);color:#fff;border:0}.layout-panorama .service-card h3,.layout-panorama .card-number{color:#fff}.layout-panorama .copy-section{border-bottom:3px solid var(--surface)}
.layout-workshop .hero-copy{background:#283237ed;border-top:7px solid var(--action);max-width:900px;padding:45px;margin:60px auto}.layout-workshop .hero:after{background:#14212930}.layout-workshop .service-grid{gap:0;border:1px solid #929da3}.layout-workshop .service-card{border:0;border-bottom:1px solid #929da3}.layout-workshop .card-number{font-size:24px}
.layout-horizon .hero{padding-bottom:210px;background:var(--primary);min-height:640px}.layout-horizon .hero>img{top:auto;height:250px;object-position:50% 56%;z-index:0}.layout-horizon .hero:after{display:none}.layout-horizon .hero-copy{padding:45px 36px 60px}.layout-horizon .hero-copy:after{content:'';display:block;width:65px;height:5px;background:#fff;margin:30px auto 0}.layout-horizon .service-card{border-left:6px solid var(--action);border-top:0;border-bottom:0;border-right:0}
.layout-blueprint .hero{min-height:600px;border-bottom:12px solid var(--action)}.layout-blueprint .hero-copy{background:#1d2943dc;margin:50px auto;border:1px solid #ffffff70;padding:45px}.layout-blueprint .service-grid{grid-template-columns:1fr}.layout-blueprint .service-card{grid-template-columns:80px 1fr 40px;min-height:90px}.layout-blueprint .card-number{font-size:32px;font-weight:400}.layout-blueprint .service-card h3{text-align:center}
.layout-precision .hero{display:grid;grid-template-columns:52% 48%;background:var(--surface);color:var(--primary)}.layout-precision .hero>img{width:52%;z-index:0}.layout-precision .hero:after{display:none}.layout-precision .hero-copy{grid-column:2;padding:58px 40px}.layout-precision .hero h1{font-size:clamp(33px,3.7vw,52px)}.layout-precision .service-card{border:2px solid var(--primary);border-radius:0}.layout-precision .copy-section h2:after{content:'';display:block;width:55px;height:3px;background:var(--action);margin:20px auto 0}
.layout-field .hero{max-width:1260px;margin:30px auto;border:12px solid var(--surface)}.layout-field .hero:after{background:#15291fbb}.layout-field .service-card{background:var(--primary);color:#fff;border:0;border-radius:6px}.layout-field .service-card h3,.layout-field .card-number{color:#fff}.layout-field .content{max-width:900px}.layout-field .copy-section{padding:40px 20px}
.layout-structure .hero-copy{max-width:1100px;margin:230px auto 0;background:var(--primary);padding:35px 50px;width:90%}.layout-structure .hero:after{background:#2125291a}.layout-structure .hero{min-height:620px;align-items:flex-end;padding-bottom:30px}.layout-structure .service-card{border:0;background:transparent;border-left:3px solid var(--action)}.layout-structure .service-grid{gap:35px}.layout-structure .card-number{font-size:25px}
.layout-inspection .hero{border-top:8px solid var(--action)}.layout-inspection .hero-copy{max-width:920px;padding:65px 40px}.layout-inspection .hero:after{background:#202c42bc}.layout-inspection .service-card{border:0;border-top:5px solid var(--action);box-shadow:0 8px 22px #2833420e}.layout-inspection .copy-section{margin:20px 0;background:var(--surface);padding:32px;border:0}
.utility-page .hero{display:flex;min-height:260px;padding:0;margin:0;max-width:none;border:0;color:#fff}.utility-page .hero>img{inset:0;width:100%;height:100%;z-index:-2;object-fit:cover}.utility-page .hero:after{display:block;background:#152432dd}.utility-page .hero-copy{padding:34px 25px;margin:auto;border:0;background:transparent;width:auto;max-width:1000px}.utility-page .hero-copy:after{display:none}.utility-page .hero h1{font-size:clamp(30px,3.5vw,44px)}
@media(max-width:1190px){.nav{gap:13px}.header-inner{gap:15px;padding-left:20px;padding-right:20px}.brand strong{font-size:22px}.brand svg{width:45px}.brand small{font-size:12px}.nav{font-size:13px}.nav .button{padding:10px}.layout-terrace .hero h1,.layout-precision .hero h1{font-size:42px}}
@media(max-width:1000px){.header-inner{flex-wrap:wrap}.menu-button{display:block;background:white;border:1px solid #7d8b96;padding:10px 18px;min-height:44px;border-radius:3px;color:var(--primary)}.nav{display:none;width:100%;align-items:stretch;gap:0;padding-top:10px;flex-direction:column;font-size:16px}.nav.is-open{display:flex}.nav>a{padding:12px}.nav summary{padding:10px}.nav details>div{position:static;width:100%;box-shadow:none;border:0;background:var(--surface);margin-bottom:10px}.nav .button{margin-top:10px}.layout-terrace .hero,.layout-precision .hero{display:flex;padding-top:240px;min-height:0;flex-direction:column;background:var(--primary);color:white}.layout-terrace .hero>img,.layout-precision .hero>img{top:0;left:0;width:100%;height:260px}.layout-terrace .hero-copy,.layout-precision .hero-copy{padding:35px}.layout-terrace .hero h1,.layout-precision .hero h1{font-size:42px}.utility-page .hero{padding:0}.utility-page .hero>img{height:100%}}
@media(max-width:600px){body{font-size:16px}.utility{padding:8px 16px;font-size:11px;gap:12px}.utility .phone-link{font-size:13px}.header-inner{padding:15px 18px}.brand strong{font-size:22px}.brand small{font-size:12px}.hero{min-height:500px}.hero-copy{padding:48px 24px}.hero h1,.layout-terrace .hero h1,.layout-precision .hero h1{font-size:35px}.eyebrow{font-size:11px;letter-spacing:.09em}.summary{font-size:17px}.service-grid{grid-template-columns:1fr}.service-band{padding:45px 0}.wrap{padding:0 20px}.service-card{padding:24px 20px;min-height:102px}.service-card h3{font-size:22px}.content{padding:0 24px 35px}.copy-section{padding:30px 0}.page-intro{margin:30px auto;font-size:18px}.end-cta,.coverage-strip{padding:45px 24px}.footer-top{grid-template-columns:1fr;gap:25px}.footer-links{gap:14px}footer{padding:36px 24px 92px}.mobile-action{position:fixed;bottom:0;left:0;right:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:block;background:white;border-top:1px solid #b0bac0;z-index:40}.mobile-action .button{display:flex;width:100%;min-height:48px}.layout-workshop .hero-copy{margin:28px 18px;padding:30px 20px}.layout-horizon .hero{padding-bottom:170px;min-height:610px}.layout-horizon .hero>img{height:180px}.layout-horizon .hero-copy{padding:35px 22px}.layout-blueprint .hero-copy{margin:24px 16px;padding:30px 20px}.layout-blueprint .service-card{grid-template-columns:35px 1fr 22px}.layout-blueprint .card-number{font-size:21px}.layout-blueprint .service-card h3{text-align:left}.layout-field .hero{margin:16px;border-width:6px}.layout-field .hero-copy{padding:32px 18px}.layout-structure .hero-copy{margin-top:190px;padding:30px 22px;width:92%}.layout-structure .hero{min-height:640px}.layout-inspection .hero-copy{padding:45px 24px}.layout-inspection .copy-section{padding:25px 20px}.utility-page .hero{padding:0;margin:0;min-height:235px;border:0}.utility-page .hero-copy{margin:auto;padding:28px 22px;width:100%}.utility-page .hero h1{font-size:31px}.utility-page .hero>img{height:100%}.estimate-shell{padding:25px 16px!important}.form-card{padding:24px 18px!important}.progress-label{font-size:11px!important}.costs{grid-template-columns:1fr!important}.report{margin:25px 16px!important;padding:24px 20px!important}.contact-call{gap:20px}.contact-call .button{width:100%}.amount{font-size:25px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.estimate-shell{padding:40px 24px 20px;max-width:760px;margin:auto}.form-card{background:white;border:1px solid #81909b;border-top:5px solid var(--action);padding:35px;border-radius:var(--radius,4px);box-shadow:0 10px 35px #0a20300b}.form-card h2{text-align:center;font-size:27px;line-height:1.25;margin:18px 0 28px}.progress-label{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}progress{display:block;width:100%;height:7px;accent-color:var(--action);margin:9px 0 26px}label,.field legend{display:block;font-weight:700;margin-bottom:8px}.field{margin:0 0 20px}.field input:not([type=radio]):not([type=checkbox]):not([type=range]),.field select,.field textarea{width:100%;min-height:52px;border:1px solid #65747e;background:#fff;padding:12px 13px;border-radius:3px;color:var(--ink)}.field textarea{min-height:125px;resize:vertical}.field small,.fineprint{font-size:13px;line-height:1.6;color:var(--muted);display:block;margin:9px 0}.field input[type=range]{width:100%;accent-color:var(--action);margin:22px 0}.range-labels{display:flex;justify-content:space-between;font-size:12px}.choices{display:grid;gap:12px}.choices label{padding:14px;border:1px solid #82909a;font-weight:500;display:flex;align-items:center;gap:12px;cursor:pointer}.choices input{width:20px;height:20px;accent-color:var(--action)}fieldset{border:0;padding:0}.form-actions{display:flex;gap:12px;margin-top:28px}.form-actions .button:last-child{flex:1}.error{border-left:4px solid #a52828;background:#fff0ed;padding:12px;color:#802020;font-size:15px}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.report{padding:28px;background:#fff;border:1px solid #82909a;max-width:800px;margin:35px auto}.report h2{text-align:center}.costs{display:grid;grid-template-columns:1fr 1fr;gap:20px}.costs article{background:var(--surface);padding:24px;border-top:4px solid var(--action)}.costs h3{font-size:20px;line-height:1.3}.amount{font-weight:800;font-size:27px;line-height:1.2;color:var(--primary)}.roof-facts{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;font-size:14px}.form-status:empty{display:none}.utility-page .hero{min-height:280px}.utility-page .hero h1{font-size:clamp(30px,3.4vw,45px)}

.layout-field .hero>img,.layout-inspection .hero>img{object-position:50% 18%}
