@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--green:#153e30;--deep:#0b2920;--cream:#f4f0e7;--sand:#e8d8b8;--ink:#1e3028;--muted:#59685f;--line:#d5d9ce}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fcfcf8;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.65}h1,h2,h3,.brand{font-family:Manrope,Arial,sans-serif;line-height:1.13;letter-spacing:-.045em}h1,h2,h3,p{margin-top:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #bb923e;outline-offset:5px}.skip{position:fixed;left:16px;top:-100px;z-index:99;background:white;padding:12px}.skip:focus{top:12px}.topline{background:var(--deep);color:#fff;padding:8px 5%;display:flex;justify-content:space-between;font-size:14px}.topline strong{margin-left:8px}header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 5%;background:#fcfcf8}.brand{font-size:32px;font-weight:800;display:block;white-space:nowrap}.brand span{display:block;font-family:'DM Sans',Arial,sans-serif;font-size:12px;letter-spacing:.21em;font-weight:600;margin-top:7px}nav{display:flex;gap:30px;align-items:center;font-size:14px;font-weight:600}nav>a:not(.button):hover{text-decoration:underline}.menu{display:none}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--green);color:white;border:0;padding:16px 24px;min-height:52px;font-weight:700;font-size:15px;border-radius:3px;cursor:pointer;line-height:1.4;transition:background .2s,transform .2s}.button:hover{background:#285b45;transform:translateY(-2px)}.button.small{padding:13px 20px;min-height:46px}.button.light{background:var(--sand);color:var(--deep)}.button.light:hover{background:#f1e2c4}.hero{display:grid;grid-template-columns:1fr 1fr;background:var(--green);color:white;min-height:660px}.hero-copy{padding:90px 9% 54px 10%;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:12px;letter-spacing:.15em;font-weight:700;margin-bottom:25px;line-height:1.6}.hero .eyebrow{color:#d6dfcc}h1{font-size:clamp(44px,4.4vw,70px);font-weight:600;margin-bottom:25px}h1 em{font-style:normal;color:var(--sand)}.intro{max-width:450px;color:#dce4da;font-size:18px;line-height:1.75}.actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin:14px 0 45px}.text-link{border-bottom:1px solid currentColor;padding-bottom:4px;font-size:14px;font-weight:600}.hero-foot{margin-top:auto;font-size:14px;color:#dce4da}.hero-photo{position:relative;min-width:0}.hero-photo>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:50% 65%}.hero-photo:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.5))}.photo-caption{position:absolute;bottom:40px;left:40px;z-index:1;font-size:21px}.photo-caption small{display:block;font-size:12px;letter-spacing:.12em;margin-top:6px;text-transform:uppercase}.service-ribbon{display:flex;justify-content:space-around;background:var(--sand);padding:24px 5%;font-size:15px;font-weight:600;gap:20px}.section{padding:100px 7%;max-width:1600px;margin:auto}h2{font-size:clamp(34px,3.6vw,52px);font-weight:600;margin-bottom:25px}h3{font-size:28px;font-weight:600}.section-head{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:end;margin-bottom:45px}.section-head>p{max-width:420px;color:var(--muted);margin-bottom:25px}.section-head h2{margin-bottom:0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service-card{border:1px solid var(--line);padding:35px 30px;display:flex;flex-direction:column;align-items:flex-start}.number{font-size:12px;letter-spacing:.14em;color:var(--muted);margin-bottom:32px}.service-card h3{font-size:30px}.service-card p{color:var(--muted)}.service-card ul{list-style:none;padding:0;margin:8px 0 36px;width:100%;font-size:14px}.service-card li{padding:9px 0;border-top:1px solid var(--line)}.service-link{margin-top:auto;font-weight:700;font-size:14px;border-bottom:1px solid var(--ink);padding-bottom:4px}.winter{background:var(--cream)}.work{background:var(--cream);max-width:none}.project-layout{display:grid;grid-template-columns:1.03fr 1fr;gap:28px}.project-image{border:0;background:transparent;padding:0;text-align:left;cursor:zoom-in;position:relative;display:block;width:100%;height:330px;overflow:hidden}.project-image.tall{height:650px}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.project-image:hover img{transform:scale(1.025)}.project-image:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.6))}.project-image span{position:absolute;z-index:1;bottom:20px;left:24px;right:24px;display:flex;gap:12px;justify-content:space-between;color:white;font-size:16px}.project-image b{font-weight:400;font-size:12px;align-self:center}.project-note{padding:40px 34px 0;max-width:520px}.project-note h3{font-size:33px;margin:18px 0}.project-note p{color:var(--muted)}.about{display:grid;grid-template-columns:1fr 1fr;gap:10%}.large-copy{font-size:23px;line-height:1.6}.about p:not(.eyebrow){color:var(--muted)}.values{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:14px;border-top:1px solid var(--line);padding-top:25px;margin-top:30px}.values span:before{content:'✓';margin-right:10px}.process{background:#eff2eb;max-width:none}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:45px}.steps span{display:block;border-top:1px solid #bdc7b8;padding:20px 0;color:var(--muted);font-size:14px}.steps h3{font-size:23px}.steps p{color:var(--muted);font-size:15px}.area{padding:70px 7%;display:grid;grid-template-columns:1fr 1fr;gap:10%;background:var(--green);color:white}.area h2{font-size:42px}.area .eyebrow{color:#d6dfcc}.towns{display:flex;flex-direction:column;justify-content:center}.towns span{border-bottom:1px solid #52715e;padding:12px 0;font-size:24px;font-family:Manrope,Arial,sans-serif;letter-spacing:-.03em}.towns p{font-size:14px;color:#dce4da;margin-top:20px}.faq{display:grid;grid-template-columns:1fr 1.25fr;gap:10%}details{border-bottom:1px solid var(--line);padding:23px 0}details:first-child{border-top:1px solid var(--line)}summary{cursor:pointer;font-weight:600;font-size:16px;padding-right:25px;position:relative;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:0;top:-2px;font-size:23px;font-weight:400}details[open] summary:after{content:'−'}details p{margin:18px 0 0;color:var(--muted);font-size:15px}.quote{display:grid;grid-template-columns:1fr 1fr;gap:8%;background:var(--cream);max-width:none}.phone{display:block;font-family:Manrope,Arial,sans-serif;letter-spacing:-.035em;font-size:clamp(27px,3.1vw,43px);font-weight:700;margin-top:35px;line-height:1.4}.contact-label{font-size:14px;color:var(--muted);margin-top:5px}.email{display:inline-block;font-size:21px;border-bottom:1px solid var(--ink)}.quote-tip{max-width:340px;margin-top:35px;font-size:14px;color:var(--muted)}form{background:white;padding:35px;box-shadow:0 8px 25px #1e302808}label{display:block;font-size:14px;font-weight:600;margin-bottom:20px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}input,select,textarea{display:block;width:100%;border:1px solid #c7cfc6;background:#fcfcf8;border-radius:3px;min-height:48px;padding:12px;color:var(--ink);margin-top:7px;font-size:16px;font-weight:400}input:focus,select:focus,textarea:focus{outline:2px solid #456c47;outline-offset:2px}textarea{resize:vertical}.form-note{font-size:12px;color:var(--muted);line-height:1.7}form .button{width:100%}.form-status{font-size:14px;margin:16px 0 0}.form-status:empty{display:none}footer{padding:50px 7% 28px;background:var(--deep);color:white;display:grid;grid-template-columns:1fr 1fr;gap:20px}footer>p{color:#dce4da;font-size:14px;text-align:right}footer>div{display:flex;gap:25px;font-size:16px;flex-wrap:wrap}footer small{font-size:12px;color:#bccbbb;text-align:right}.mobile-contact{display:none}dialog{padding:20px;background:var(--cream);border:0;max-width:90vw;max-height:95vh;border-radius:4px}dialog::backdrop{background:#0b2920d9}dialog img{display:block;max-width:80vw;max-height:75vh;object-fit:contain}dialog p{margin:14px 0 0;font-size:14px}.close{display:block;margin:0 0 15px auto;background:var(--green);color:white;border:0;padding:10px 15px;cursor:pointer;font-size:14px}
@media(min-width:1650px){.hero-copy{padding-left:15%}.hero{min-height:750px}}
@media(max-width:1000px){nav{gap:18px}.hero{min-height:590px}.hero-copy{padding:60px 8%}.section{padding:75px 5%}.service-card{padding:28px 22px}.service-card h3{font-size:27px}.project-image.tall{height:650px}.area{padding:65px 5%}.quote{gap:5%}form{padding:25px}.section-head{gap:7%}.about{gap:7%}}
@media(max-width:760px){html{scroll-padding-top:20px}.topline{justify-content:center;font-size:12px}.topline>a{display:none}header{padding:20px 5%;flex-wrap:wrap}.brand{font-size:28px}.menu{display:block;border:1px solid var(--line);padding:9px 14px;background:transparent;border-radius:3px;font-size:14px;cursor:pointer}nav{display:none;flex-direction:column;align-items:stretch;width:100%;gap:0;padding-top:15px}nav.open{display:flex}nav a{padding:12px 0}nav .button{margin-top:10px}.hero{display:flex;flex-direction:column}.hero-copy{padding:55px 6% 35px}.hero .eyebrow{font-size:11px;margin-bottom:20px}h1{font-size:clamp(39px,8vw,57px)}.intro{font-size:17px;max-width:520px}.actions{margin-bottom:30px;gap:22px}.hero-foot{margin-bottom:0}.hero-photo{height:410px;min-height:0}.hero-photo>img{object-position:50% 58%}.photo-caption{left:24px;bottom:24px}.service-ribbon{padding:20px 5%;gap:14px;font-size:12px;text-align:center;align-items:center}.section{padding:60px 6%}.section-head{grid-template-columns:1fr;gap:20px;margin-bottom:30px}.section-head>p{max-width:100%;margin-bottom:0}.eyebrow{margin-bottom:18px}h2{font-size:36px}.service-grid{grid-template-columns:1fr}.service-card{padding:28px}.service-card h3 br{display:none}.number{margin-bottom:22px}.service-card ul{margin-bottom:25px}.project-layout{grid-template-columns:1fr;gap:22px}.project-image.tall{height:460px}.project-image{height:280px}.project-note{padding:30px 5px 0}.project-note h3{font-size:30px}.about,.faq,.quote{grid-template-columns:1fr;gap:25px}.large-copy{font-size:21px}.steps{grid-template-columns:1fr;gap:20px;margin-top:25px}.steps span{padding:14px 0}.steps h3{margin-bottom:12px}.steps p{margin-bottom:0}.area{padding:60px 6%;grid-template-columns:1fr;gap:10px}.area h2{font-size:36px}.towns span{font-size:23px}.faq{gap:10px}.phone{font-size:38px;margin-top:22px}.quote-tip{margin-top:25px}form{padding:25px 20px}.two-fields{grid-template-columns:1fr;gap:0}footer{grid-template-columns:1fr;padding:40px 6% 95px;gap:20px}footer p,footer small{text-align:left}footer p{margin-bottom:0}footer>div{flex-direction:column;gap:8px}.mobile-contact{display:flex;position:fixed;z-index:20;bottom:0;left:0;right:0;background:var(--deep);color:white;box-shadow:0 -3px 15px #0002;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom));gap:8px}.mobile-contact a{width:33.33%;text-align:center;padding:9px 4px;font-size:14px;font-weight:600;border:1px solid #587161;border-radius:3px}.mobile-contact a:last-child{background:var(--sand);color:var(--deep);border-color:var(--sand)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.official-logo{display:block;width:190px;height:190px;object-fit:contain;margin-bottom:25px}

.quote-copy .contact-label{margin:32px 0 5px;font-size:16px;font-weight:600;color:var(--green)}.quote-copy .phone{margin-top:0;margin-bottom:20px}
.seasonal-gallery{padding-bottom:30px}.extra-project{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center;margin-bottom:65px}.extra-project .project-image{height:380px}.extra-project>div{max-width:410px}.extra-project p:not(.eyebrow){color:var(--muted)}.inspiration-header{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:20px}.inspiration-header h3{font-size:28px;margin-bottom:0}.inspiration-header p{font-size:14px;color:var(--muted);margin-bottom:0}.seasonal-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.seasonal-photo-grid .project-image{height:400px}
@media(max-width:760px){.extra-project{grid-template-columns:1fr;gap:25px;margin-bottom:45px}.extra-project .project-image{height:300px}.seasonal-photo-grid{grid-template-columns:1fr;gap:18px}.seasonal-photo-grid .project-image{height:340px}.inspiration-header{display:block}.inspiration-header p{margin-top:10px}.seasonal-gallery{padding-bottom:10px}}

.hero-photo{display:grid;grid-template-rows:minmax(0,1.65fr) minmax(0,1fr);gap:4px;background:var(--sand)}.hero-photo:after{display:none}.hero-main-photo{position:relative;min-height:0;overflow:hidden}.hero-main-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 59%}.hero-main-photo:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.55))}.hero-main-photo .photo-caption{bottom:24px;left:28px}.hero-season-photos{display:grid;grid-template-columns:1fr 1fr;gap:4px;position:relative;min-height:0;padding-bottom:28px;background:var(--deep)}.hero-season-photo{position:relative;display:block;min-width:0;min-height:0;overflow:hidden}.hero-season-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-season-photo:last-of-type>img{object-position:70% 50%}.hero-season-photo:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.7))}.hero-season-photo>span{position:absolute;z-index:1;bottom:16px;left:18px;right:12px;color:white;font-size:14px;font-weight:600;line-height:1.5}.hero-image-note{position:absolute;bottom:5px;left:18px;right:12px;color:#dce4da;font-size:12px;line-height:1.5}.hero-season-photo:focus-visible{outline-offset:-5px;z-index:2}
@media(max-width:760px){.hero-photo{height:560px;grid-template-rows:minmax(0,1.5fr) minmax(0,1fr)}.hero-main-photo .photo-caption{left:24px;bottom:24px}.hero-season-photo>span{font-size:14px;left:14px;bottom:12px}.hero-image-note{left:14px}}

.hero-main-photo:after{display:none}

header{padding-top:10px;padding-bottom:10px}.header-logo{line-height:0;flex-shrink:0}.header-logo img{display:block;width:120px;height:120px;object-fit:contain}.hero-season-photos{padding-bottom:0}
@media(max-width:760px){header{padding-top:10px;padding-bottom:10px}.header-logo img{width:105px;height:105px}}

@media(max-width:760px){
 html{scroll-padding-top:18px}header{gap:14px}.header-logo img{width:92px;height:92px}.menu{min-height:44px;min-width:66px}
 .hero-copy{padding:36px 6% 28px}.hero .eyebrow{letter-spacing:.12em}.hero h1{font-size:clamp(36px,8.7vw,52px);line-height:1.16;margin-bottom:20px}.hero .intro{font-size:16px;line-height:1.7;margin-bottom:10px}.hero .actions{gap:18px;margin:12px 0 24px}.hero .text-link{display:inline-flex;align-items:center;min-height:44px}.hero-foot{font-size:13px}
 .hero-photo{height:390px;grid-template-rows:minmax(0,1.55fr) minmax(0,1fr)}.hero-main-photo>img{object-position:50% 57%}.hero-season-photo>span{font-size:13px;left:12px;right:10px;bottom:10px}
 .service-ribbon{font-size:12px;padding:18px 5%;gap:12px}.service-ribbon span{flex:1;line-height:1.5}
 .section{padding-top:48px;padding-bottom:48px}.section-head{gap:16px}.section h2{font-size:clamp(30px,8.5vw,36px);line-height:1.18}.section-head>p{font-size:16px}.service-card{padding:26px}.service-link{display:inline-flex;align-items:center;min-height:44px;padding-bottom:0}.service-card ul{font-size:15px}
 .project-image.tall{height:390px}.project-image span{left:16px;right:16px;font-size:14px}.project-image b{font-size:12px;white-space:nowrap}.seasonal-photo-grid .project-image{height:300px}.project-note{padding-left:0;padding-right:0}.project-note .text-link{display:inline-flex;align-items:center;min-height:44px}.extra-project .text-link{display:inline-flex;align-items:center;min-height:44px}
 .faq-list summary{min-height:44px;display:flex;align-items:center;padding-right:30px}.faq-list summary:after{top:6px}.faq-list details{padding:13px 0}.quote-copy .phone{font-size:clamp(29px,9vw,38px);line-height:1.5;overflow-wrap:anywhere}.quote-copy .email{font-size:clamp(18px,5.5vw,21px);min-height:44px;overflow-wrap:anywhere}.quote form{padding:24px 18px}.form-note{font-size:14px}.quote-copy .quote-tip{font-size:15px}.mobile-contact a{min-height:44px;display:flex;align-items:center;justify-content:center}.mobile-contact{gap:8px}.quote{padding-bottom:60px}footer{padding-bottom:110px}footer a:not(.brand){min-height:44px;display:inline-flex;align-items:center}dialog{padding:16px;max-width:94vw}.close{min-height:44px}dialog img{max-width:85vw;max-height:70vh}
}
@media(max-width:360px){.hero-copy{padding-left:5%;padding-right:5%}.hero .actions{gap:10px}.hero .button{padding-left:18px;padding-right:18px}.hero .text-link{font-size:13px}.hero-photo{height:350px}.hero-season-photo>span{font-size:12px}.project-image span{flex-wrap:wrap;gap:4px}.project-image b{margin-left:auto}.service-card h3{font-size:25px}.section{padding-left:5%;padding-right:5%}}

.form-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-status{padding:15px;background:#eaf2e8;border-left:3px solid #456c47;line-height:1.6}.form-status.error{background:#fff0ec;border-color:#a14030}form .button:disabled{opacity:.7;cursor:wait;transform:none}
