@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');

:root{color-scheme:light;--forest:#153c34;--forest-dark:#102d28;--moss:#55736a;--copper:#b76343;--paper:#f8f6ef;--white:#fffefa;--ink:#1e2c28;--muted:#5c6861;--line:#d7ded7;--sage:#e6ece5;--serif:Georgia,'Times New Roman',serif;--sans:'DM Sans',Arial,sans-serif;--display:'Manrope',Arial,sans-serif;--shell:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);text-rendering:optimizeLegibility}a{color:inherit}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}:focus-visible{outline:3px solid var(--copper);outline-offset:4px}.shell{width:min(var(--shell),calc(100% - 64px));margin-inline:auto}.skip{position:fixed;z-index:99;top:12px;left:12px;transform:translateY(-180%);padding:12px 18px;background:white;color:var(--forest);font-weight:700}.skip:focus{transform:none}
.notice{background:var(--copper);color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.035em}.notice .shell{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:16px}.notice a{text-decoration-thickness:1px;text-underline-offset:3px}
header{background:var(--forest-dark);color:white}.nav{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:max-content}.brand-icon{width:40px;height:34px;position:relative;display:block;border-bottom:5px solid #d38b68}.brand-icon:before,.brand-icon:after{content:"";position:absolute;bottom:6px;width:25px;height:5px;background:#f6f2e9}.brand-icon:before{left:0;transform:rotate(-34deg);transform-origin:right}.brand-icon:after{right:0;transform:rotate(34deg);transform-origin:left}.brand strong{display:block;font:800 1rem/1.05 var(--display);letter-spacing:-.035em}.brand small{display:block;margin-top:5px;color:#b7c5bd;text-transform:uppercase;font-size:.61rem;letter-spacing:.15em}.nav-links{display:flex;align-items:center;gap:clamp(16px,2.2vw,32px)}.nav-links>a:not(.button){color:#edf0eb;text-decoration:none;font-size:.88rem;font-weight:600;text-underline-offset:6px}.nav-links>a[aria-current=page]:not(.button),.nav-links>a:not(.button):hover{text-decoration:underline;text-decoration-color:#d38b68;text-decoration-thickness:2px}.button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 19px;background:var(--copper);color:#fff;border:1px solid var(--copper);border-radius:2px;text-decoration:none;font-weight:700;font-size:.9rem;transition:background .18s,color .18s,transform .18s;cursor:pointer}.button:hover{background:#994d35;border-color:#994d35;transform:translateY(-1px)}.button-light{background:var(--white);border-color:var(--white);color:var(--forest-dark)}.button-light:hover{background:#e8eee8;border-color:#e8eee8}.button-quiet{background:transparent;color:var(--forest-dark);border-color:#97a89c}.button-quiet:hover{background:var(--forest-dark);color:white;border-color:var(--forest-dark)}
.hero{position:relative;isolation:isolate;min-height:660px;display:grid;align-items:center;overflow:hidden;background:var(--forest-dark);color:white}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(16,45,40,.97) 0%,rgba(16,45,40,.91) 34%,rgba(16,45,40,.42) 68%,rgba(16,45,40,.12)),linear-gradient(0deg,rgba(16,45,40,.48),transparent 55%),url('assets/roof-crew.jpg') 58% 45%/cover no-repeat}.hero-inner{padding-block:100px 94px}.kicker{margin:0 0 18px;color:#d99472;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:800}.hero h1{max-width:820px;margin:0;font:700 clamp(3.3rem,7.9vw,7rem)/.98 var(--serif);letter-spacing:-.055em}.hero h1 em{font-weight:400;color:#e3ad91}.hero-lede{max-width:575px;margin:24px 0 0;color:#e4e9e4;font-size:clamp(1.02rem,1.5vw,1.2rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.hero-note{margin:22px 0 0;color:#d4ddd5;font-size:.82rem}.hero-note b{color:white}.hero-mark{position:absolute;right:max(32px,calc((100vw - var(--shell))/2));bottom:34px;color:#fff;font:italic 15px var(--serif);opacity:.9}.hero-mark:before{content:"";display:inline-block;width:34px;height:1px;background:#dc9876;vertical-align:middle;margin-right:10px}
.subhero{padding-block:82px 74px;background:var(--sage);border-bottom:1px solid var(--line)}.subhero-grid{display:grid;grid-template-columns:1fr .65fr;align-items:end;gap:60px}.subhero h1{max-width:830px;margin:0;font:700 clamp(3rem,6vw,5.7rem)/1 var(--serif);letter-spacing:-.055em;color:var(--forest-dark)}.subhero p{max-width:460px;margin:0;color:var(--muted);font-size:1.08rem}.subhero .kicker{color:var(--copper)}
.ribbon{background:var(--white);border-bottom:1px solid var(--line)}.ribbon-grid{display:grid;grid-template-columns:repeat(3,1fr)}.ribbon-item{min-height:82px;display:flex;align-items:center;gap:12px;padding:18px 24px;border-left:1px solid var(--line);font-size:.88rem;font-weight:700}.ribbon-item:last-child{border-right:1px solid var(--line)}.ribbon-index{color:var(--copper);font:700 1rem var(--display)}
section{padding-block:clamp(72px,9vw,126px)}.section-heading{display:grid;grid-template-columns:.65fr 1.35fr;gap:60px;align-items:end;margin-bottom:54px}.section-heading .kicker{color:var(--copper)}.section-heading h2{max-width:750px;margin:0;color:var(--forest-dark);font:700 clamp(2.45rem,5vw,4.7rem)/1.02 var(--serif);letter-spacing:-.05em}.section-heading>p{max-width:520px;margin:0;color:var(--muted);font-size:1.04rem}.intro-copy{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,9vw,130px);align-items:start}.intro-copy h2{margin:0;color:var(--forest-dark);font:700 clamp(2.6rem,5vw,4.5rem)/1.02 var(--serif);letter-spacing:-.05em}.intro-copy p{margin:0 0 18px;color:var(--muted)}.small-label{color:var(--copper);font-weight:800;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase}
.service-band{background:var(--forest);color:white}.service-band .section-heading h2{color:white}.service-band .section-heading>p{color:#c5d0c8}.service-band .kicker{color:#dfa184}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #648077}.service-card{display:grid;grid-template-columns:54px 1fr;gap:18px;padding:28px 24px 28px 0;border-bottom:1px solid #648077}.service-card:nth-child(odd){border-right:1px solid #648077;padding-right:32px}.service-card:nth-child(even){padding-left:32px}.service-card .num{color:#dfa184;font:700 .9rem var(--display)}.service-card h3{margin:0 0 7px;font:700 1.25rem var(--display);letter-spacing:-.03em}.service-card p{margin:0;color:#c5d0c8;font-size:.93rem}.service-card a{display:inline-block;margin-top:12px;color:white;text-decoration-color:#dfa184;text-underline-offset:4px;font-size:.88rem;font-weight:700}
.process{background:#e9eee8}.process-list{list-style:none;margin:0;padding:0;border-top:1px solid #aebcb1}.process-list li{display:grid;grid-template-columns:100px .7fr 1fr;gap:28px;align-items:start;padding:24px 0;border-bottom:1px solid #aebcb1}.process-list .num{color:var(--copper);font:700 1.05rem var(--display)}.process-list h3{margin:0;font:700 1.15rem var(--display);color:var(--forest-dark)}.process-list p{max-width:550px;margin:0;color:var(--muted);font-size:.94rem}
.feature{display:grid;grid-template-columns:1.05fr .95fr;min-height:500px;background:var(--white)}.feature-image{min-height:420px;position:relative;background:linear-gradient(0deg,rgba(16,45,40,.27),transparent 55%),url('assets/roof-crew.jpg') center/cover no-repeat}.feature-copy{padding:clamp(36px,6vw,82px);align-self:center}.feature-copy h2{max-width:500px;margin:12px 0 18px;font:700 clamp(2.5rem,4.5vw,4.3rem)/1.02 var(--serif);letter-spacing:-.05em;color:var(--forest-dark)}.feature-copy p{color:var(--muted)}.feature-copy .small-label{color:var(--copper)}
.cta-band{background:var(--copper);color:white;padding-block:65px}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:36px}.cta-inner h2{max-width:720px;margin:0;font:700 clamp(2.2rem,4.5vw,4rem)/1.03 var(--serif);letter-spacing:-.045em}.cta-inner p{max-width:510px;margin:12px 0 0;color:#fff0e8}.cta-inner .button{flex:none;background:white;color:var(--forest-dark);border-color:white}.cta-inner .button:hover{background:#f2e6de}
.areas-layout{display:grid;grid-template-columns:1fr .8fr;gap:90px;align-items:start}.area-list{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--forest);border-left:1px solid var(--line)}.area-list a{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none;font-weight:700;color:var(--forest)}.area-list a:after{content:'↗';color:var(--copper)}.area-list a:hover{text-decoration:underline;text-underline-offset:4px}.area-note{padding:26px;background:var(--sage);border-top:3px solid var(--copper)}.area-note h2{margin:0 0 10px;font:700 1.4rem var(--display);color:var(--forest)}.area-note p{margin:0;color:var(--muted)}.map-art{min-height:330px;position:relative;overflow:hidden;background:#e6ece5;border:1px solid var(--line);background-image:linear-gradient(32deg,transparent 48%,#cad5cc 49%,#cad5cc 50%,transparent 51%),linear-gradient(145deg,transparent 48%,#cad5cc 49%,#cad5cc 50%,transparent 51%),linear-gradient(82deg,transparent 48%,#d4ddd5 49%,#d4ddd5 50%,transparent 51%);background-size:140px 125px,170px 150px,190px 180px}.map-art:before{content:"SERVICE AREA · CONCEPT";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:12px 15px;background:var(--forest);color:white;font-size:.69rem;font-weight:800;letter-spacing:.12em;white-space:nowrap}.map-art:after{content:"";position:absolute;left:50%;top:calc(50% - 33px);width:13px;height:13px;border:4px solid white;border-radius:50% 50% 50% 0;background:var(--copper);transform:translateX(-50%) rotate(-45deg)}
.contact-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(42px,8vw,110px);align-items:start}.contact-aside h2{margin:0 0 18px;font:700 clamp(2.5rem,4.5vw,4rem)/1.02 var(--serif);letter-spacing:-.05em;color:var(--forest-dark)}.contact-aside>p{color:var(--muted)}.contact-aside .note{margin-top:30px;padding:18px;background:var(--sage);border-left:3px solid var(--copper);font-size:.88rem}.form-card{padding:clamp(24px,4vw,48px);background:var(--white);border-top:5px solid var(--forest)}.form-card h2{margin:0 0 7px;color:var(--forest-dark);font:700 1.6rem var(--display)}.form-card>p{margin:0 0 26px;color:var(--muted);font-size:.9rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:.85rem;font-weight:700;color:var(--forest-dark)}.field input,.field select,.field textarea{width:100%;min-height:50px;padding:12px 13px;border:1px solid #b7c3ba;border-radius:2px;background:white;color:var(--ink)}.field textarea{min-height:125px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--moss);outline-offset:1px;border-color:var(--moss)}.form-disclaimer{margin:16px 0 18px;padding:12px 14px;background:#f0eee7;color:#505d55;font-size:.8rem}.form-status{display:none;margin-top:16px;padding:14px;border:1px solid #55736a;background:var(--sage);color:var(--forest-dark);font-weight:700}.form-status[data-visible=true]{display:block}.form-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.form-actions small{color:var(--muted);font-size:.77rem}
footer{padding-block:42px;background:var(--forest-dark);color:white}.footer-grid{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:end}.footer-grid p{max-width:600px;margin:14px 0 0;color:#bdcbc2;font-size:.82rem}.footer-links{display:flex;flex-wrap:wrap;gap:18px}.footer-links a{color:#e8eee9;font-size:.85rem;text-underline-offset:4px}.footer-meta{grid-column:1/-1;padding-top:18px;border-top:1px solid #496159;color:#bdcbc2;font-size:.75rem}.mobile-cta{display:none}
@media(max-width:900px){.shell{width:min(var(--shell),calc(100% - 44px))}.nav{min-height:78px}.nav-links{gap:17px}.nav-links>a:not(.button){font-size:.8rem}.nav-links .button{padding-inline:14px;font-size:.82rem}.hero{min-height:620px}.hero:before{background:linear-gradient(90deg,rgba(16,45,40,.95),rgba(16,45,40,.77) 50%,rgba(16,45,40,.25)),url('assets/roof-crew.jpg') 62% center/cover no-repeat}.subhero-grid{grid-template-columns:1fr;gap:22px}.section-heading{grid-template-columns:.5fr 1.5fr;gap:30px}.areas-layout{gap:40px}.contact-layout{gap:40px}.process-list li{grid-template-columns:72px .8fr 1.2fr;gap:18px}}
@media(max-width:650px){body{padding-bottom:72px}.shell{width:calc(100% - 36px)}.intro-copy>*{min-width:0}.intro-copy h2{font-size:clamp(2.45rem,12vw,3rem);overflow-wrap:break-word}.notice .shell{min-height:40px;justify-content:center;text-align:center;font-size:.69rem}.notice a{display:none}.nav{min-height:70px}.brand small{display:none}.nav-links{display:none}.hero{min-height:630px;align-items:end}.hero:before{background:linear-gradient(0deg,rgba(16,45,40,.98) 0%,rgba(16,45,40,.88) 43%,rgba(16,45,40,.22) 100%),url('assets/roof-crew.jpg') 61% 31%/cover no-repeat}.hero-inner{padding-block:220px 48px}.hero h1{font-size:clamp(3.2rem,15vw,5rem)}.hero-actions{flex-direction:column;align-items:stretch}.hero-mark{right:18px;bottom:15px;font-size:.73rem}.subhero{padding-block:54px 48px}.subhero h1{font-size:clamp(2.9rem,13vw,4.5rem)}.subhero p{font-size:1rem}.ribbon-grid{grid-template-columns:1fr}.ribbon-item{min-height:62px;padding:12px 15px;border-left:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.ribbon-item:last-child{border-right:1px solid var(--line)}section{padding-block:70px}.section-heading{grid-template-columns:1fr;gap:14px;margin-bottom:34px}.section-heading h2{font-size:clamp(2.5rem,11vw,3.6rem)}.section-heading>p{font-size:.98rem}.intro-copy{grid-template-columns:1fr;gap:22px}.intro-copy h2{font-size:3rem}.service-grid{grid-template-columns:1fr}.service-card,.service-card:nth-child(odd),.service-card:nth-child(even){padding:23px 0;border-right:0}.process-list li{grid-template-columns:42px 1fr;gap:8px 15px;padding:21px 0}.process-list p{grid-column:2}.feature{grid-template-columns:1fr}.feature-image{min-height:285px}.feature-copy{padding:38px 22px 45px}.feature-copy h2{font-size:2.75rem}.cta-band{padding-block:48px}.cta-inner{align-items:flex-start;flex-direction:column;gap:23px}.cta-inner h2{font-size:2.65rem}.areas-layout{grid-template-columns:1fr;gap:24px}.area-list a{min-height:64px;padding:12px;font-size:.88rem}.map-art{min-height:250px}.contact-layout{grid-template-columns:1fr;gap:28px}.contact-aside h2{font-size:2.8rem}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.form-actions{align-items:stretch;flex-direction:column}.form-actions .button{width:100%}.footer-grid{grid-template-columns:1fr}.footer-meta{grid-column:auto}.mobile-cta{position:fixed;z-index:60;inset:auto 0 0;display:block;padding:10px 18px;background:var(--forest-dark);border-top:1px solid #496159;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(100%);transition:opacity .18s,transform .18s}.mobile-cta.is-visible{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-cta .button{width:100%;min-height:50px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}
