*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#faf8f4;color:#282b28;font:16px/1.65 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.045em;line-height:1.07}h1{font-size:clamp(36px,4vw,56px)}h2{font-size:clamp(28px,3vw,42px)}h3{font-size:21px;line-height:1.3;font-weight:500;letter-spacing:-.02em}p{color:#62665e}header{min-height:106px;padding:20px 5.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dcded5;background:white;gap:30px}.brand{display:block;flex-shrink:0}.logo{display:block;position:relative;overflow:hidden;width:148px;height:79px}.logo img{position:absolute;width:221px;max-width:none;height:auto;left:-38px;top:-33px}nav{display:flex;gap:30px;font-size:14px}nav a{padding:9px 0;border-bottom:1px solid transparent}nav a[aria-current],nav a:hover{border-color:#4c5846}.header-cta{font-size:13px;border:1px solid #bdc2b7;padding:11px 19px}.menu-toggle{display:none}.eyebrow{font-size:11px;letter-spacing:.2em;font-weight:600;color:#68715f;margin-bottom:23px}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:620px}.hero-copy{padding:84px 9% 66px 11%;display:flex;flex-direction:column;justify-content:center}.lead{font-size:18px;line-height:1.7;max-width:500px;margin-top:27px}.actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:36px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:27px;background:#354334;color:#fff;font-size:13px;padding:17px 24px;transition:background .2s}.button:hover{background:#202f22}.text-link{font-size:14px;display:inline-block;border-bottom:1px solid #b8beae;padding-bottom:5px}.hero-note{font-size:11px;letter-spacing:.07em;margin-top:48px}.hero-image{position:relative;min-height:500px}.hero-image>img{width:100%;height:100%;object-fit:cover}.image-caption{position:absolute;bottom:25px;left:25px;background:#faf8f4e6;padding:9px 15px;font-size:11px;letter-spacing:.04em}.section{padding:88px 5.5%;max-width:1600px;margin:auto}.section-head{display:flex;justify-content:space-between;align-items:end;gap:70px;margin-bottom:45px}.section-head>p{max-width:430px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:0 42px;margin-bottom:32px}.service{border-top:1px solid #cdd1c5;padding:30px 0 35px}.number{display:block;font-size:11px;color:#78836c;letter-spacing:.12em;margin-bottom:32px}.service p,.process p{margin-top:15px;font-size:15px;max-width:350px}.work-section{background:#eeeee7;max-width:none}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:36px 24px}figure{margin:0}figure img{width:100%;height:300px;object-fit:cover;transition:filter .2s}figure a:hover img{filter:brightness(.88)}figcaption{display:flex;align-items:start;justify-content:space-between;gap:14px;padding-top:18px}figcaption h3{font-size:16px}figcaption span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#737a6a}.cta{padding:75px 5.5%;background:#354334;color:white;display:flex;align-items:center;justify-content:space-between;gap:45px}.cta .eyebrow{color:#c6cfbb}.cta p{color:#d1d8cc;margin-top:23px}.cta .eyebrow{margin-top:0}.light{color:#283628;background:#faf8f4;flex-shrink:0}.light:hover{background:#dfE5d8}.intro{padding:78px 5.5% 35px}.intro .lead{max-width:660px}.compact{padding-top:35px}.process{background:#eeeee7;max-width:none}.process .services{margin-top:40px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.about-grid>img{height:530px;object-fit:cover;width:100%}.about-grid p{margin:24px 0}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}.filter{background:transparent;border:1px solid #c7cdbf;padding:8px 18px;cursor:pointer;font-size:13px}.filter.active{background:#354334;color:white;border-color:#354334}[hidden]{display:none!important}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact-panel{padding:40px;background:#eeeee7}.contact-grid p{margin:22px 0}.contact-grid .eyebrow{margin-top:0}.phone{display:block;font-size:clamp(22px,2.4vw,34px);letter-spacing:-.04em;margin:20px 0}.small{font-size:13px}.checklist{padding:0;list-style:none;margin-top:30px}.checklist li{border-bottom:1px solid #d6d9ce;padding:13px 0}.checklist li:before{content:'↗';margin-right:15px;color:#78836c}footer{background:white;padding:45px 5.5% 25px;display:grid;grid-template-columns:1fr 1.5fr 1fr;align-items:center;gap:35px}footer p{font-size:13px}footer>div>a{display:block;font-size:14px}.footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid #dfe2d8;padding-top:20px;font-size:11px;color:#747a6c}.footer-bottom a{font-size:11px}.skip{position:absolute;top:-80px;left:15px;z-index:20;background:white;padding:15px}.skip:focus{top:10px}:focus-visible{outline:3px solid #9c6c36;outline-offset:5px}@media(max-width:1050px){header{gap:20px}nav{gap:18px}.hero-copy{padding:60px 9%}.hero{min-height:510px}.section-head{gap:35px}figure img{height:240px}.about-grid,.contact-grid{gap:40px}}@media(max-width:760px){header{min-height:94px;position:relative;flex-wrap:wrap;padding:12px 6%;gap:10px}.logo{width:122px;height:65px}.logo img{width:182px;left:-31px;top:-27px}.menu-toggle{display:flex;align-items:center;gap:12px;background:none;border:1px solid #c7cdbf;padding:9px 13px;font-size:13px}.header-cta{display:none}nav{display:none;width:100%;flex-direction:column;gap:0;padding:15px 0}nav.open{display:flex}nav a{padding:12px 0}.hero{grid-template-columns:1fr}.hero-copy{padding:55px 6% 40px}.hero-image{min-height:0;height:360px}.hero-note{margin-top:32px}.section{padding:55px 6%}.section-head{display:block}.section-head>p,.section-head>.text-link{margin-top:25px}.services{grid-template-columns:1fr}.service{padding:24px 0}.number{margin-bottom:18px}.gallery{grid-template-columns:1fr}figure img{height:300px}.cta{padding:50px 6%;flex-direction:column;align-items:start;gap:28px}.intro{padding:55px 6% 20px}.compact{padding-top:25px}.about-grid,.contact-grid{grid-template-columns:1fr;gap:35px}.about-grid>img{height:380px}.contact-panel{padding:28px}.process .services{gap:35px}footer{padding:35px 6%;grid-template-columns:1fr;gap:25px}.footer-bottom{gap:15px;flex-wrap:wrap}.lead{font-size:17px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Brand refresh — shared by the main pages and project galleries. */
:root{--forest:#354334;--ink:#202829;--brass:#b79b6a;--ivory:#f7f5ef}
body{background:var(--ivory);color:var(--ink);-webkit-font-smoothing:antialiased}
header{min-height:104px;padding:12px 5.5%;gap:24px;background:#fffefb}
.logo{width:174px;height:auto;overflow:visible}
.logo img{position:static;width:100%;height:auto;max-width:100%;left:auto;top:auto}
nav{gap:27px;font-weight:600;font-size:13px}
nav a{border-bottom-width:2px}
.header-cta{background:var(--forest);color:white;border:0;padding:14px 21px;border-radius:3px}
.hero{margin:24px 2.5% 0;min-height:550px;grid-template-columns:1fr 1.04fr;background:#eeeee6;border:1px solid #e0e1d6}
.hero-copy{padding:48px 8% 48px 7%;min-width:0}
.hero h1{font-size:clamp(44px,5vw,68px)}
h1 em{font-weight:400;color:var(--forest)}
.hero .eyebrow{font-size:10px;letter-spacing:.18em}
.hero-image{margin:18px 18px 18px 0;overflow:hidden;border-radius:3px}
.hero-image>img{object-position:center}
.image-caption{bottom:20px;left:20px;right:20px;width:fit-content;background:#fffef2ed}
.button{border-radius:3px;font-weight:600;box-shadow:0 3px 0 #0000000d}
.button:hover{transform:translateY(-1px)}
.hero-note{margin-top:30px;display:flex;align-items:center;gap:14px;font-size:12px;letter-spacing:.03em}
.hero-note span{color:var(--brass)}
.specialty-strip{display:flex;justify-content:space-around;gap:20px;padding:26px 5.5%;border-bottom:1px solid #dedfd5;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:#52614d}
.specialty-strip span:before{content:'✦';margin-right:13px;color:#8b734b}
.section{padding-top:64px;padding-bottom:64px}
.section.compact{padding-top:20px}
.intro + .about-grid{padding-top:20px}
.section-head{margin-bottom:32px;gap:40px}
.eyebrow{color:#53644c;letter-spacing:.17em}
.services{gap:18px 28px}
.service{padding:28px 22px 30px;border:1px solid #dcdfd3;background:#fffef9;border-radius:4px}
.service .number{color:#8b734b;margin-bottom:25px}
.service h3{font-weight:600}
.work-section{background:#e9ece3}
.project-card{border:0!important;border-radius:5px;overflow:hidden;box-shadow:0 7px 24px #26372108}
.project-card-body{padding:28px!important}
.project-card-body h2{font-family:Georgia,serif!important;font-size:25px!important;line-height:1.2;font-weight:400}
.project-cover{height:280px}
.enlarge-label{border-radius:2px}
.approach{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:64px}
.approach-steps{list-style:none;padding:0;margin:0}
.approach-steps li{display:flex;gap:25px;padding:25px 0;border-top:1px solid #cfd4c7}
.approach-steps li>span{font-size:12px;color:#8b734b;padding-top:4px}
.approach-steps p{margin-top:10px;font-size:15px}
.cta{padding-top:52px;padding-bottom:52px;background:var(--forest);border-top:4px solid var(--brass)}
footer{background:#202c23;color:#f7f5ef;padding-top:55px}
footer .logo{width:210px}
footer p{color:#c7cec2}
.footer-bottom{color:#c7cec2;border-color:#52614e}
.contact-panel{background:#e9ece3;border-left:3px solid var(--brass);border-radius:3px}
.contact-panel .phone{font-size:clamp(22px,2.4vw,34px)}
.intro{padding:48px 5.5% 28px;max-width:1600px;margin-inline:auto}
.intro h1{max-width:1000px;line-height:1.1}
.intro .eyebrow{margin-bottom:16px}
.intro .lead{margin-top:20px;max-width:680px}
.filter{border-radius:3px}

@media(min-width:1600px){.hero{max-width:1520px;margin-left:auto;margin-right:auto}}
@media(max-width:1050px){header{gap:18px}.logo{width:166px}nav{gap:17px}.hero-copy{padding:45px 8%}.hero{min-height:510px}.actions{gap:20px}.approach{gap:45px}}
@media(max-width:760px){header{min-height:88px;padding:10px 6%}.logo{width:140px;height:auto}.logo img{width:100%;left:auto;top:auto}.hero{margin:14px 4% 0;grid-template-columns:1fr;min-height:0}.hero-copy{padding:32px 7%}.hero h1{font-size:clamp(38px,10vw,48px)}.hero-image{margin:0 12px 12px;height:280px}.hero .lead{font-size:17px}.specialty-strip{display:grid;grid-template-columns:1fr 1fr;gap:15px 12px;padding:24px 6%;font-size:9px;letter-spacing:.05em}.specialty-strip span:before{margin-right:6px}.section{padding-top:40px;padding-bottom:40px}.section.compact{padding-top:12px}.intro + .about-grid{padding-top:12px}.service{padding:25px}.approach{grid-template-columns:1fr;gap:28px}.project-cover{height:300px!important}.cta{padding-top:48px;padding-bottom:48px}.intro{padding:32px 6% 24px}.intro h1{font-size:clamp(32px,8.5vw,40px)}.intro h1 br{display:none}.intro h1 br::after{content:" "}footer .logo{width:200px}}
@media(prefers-reduced-motion:reduce){.button:hover{transform:none}}

/* Keep grid children and long headings inside narrow screens. */
.hero>*,.section-head>*,.about-grid>*,.contact-grid>*,.cta>*{min-width:0}
h1,h2,h3{overflow-wrap:break-word}
.about-grid,.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.about-grid>img{height:420px}
.contact-panel{padding:30px}
.contact-panel .phone{font-size:clamp(23px,2.2vw,30px)}
.contact-grid p{margin:16px 0}
.contact-grid .eyebrow{margin-top:0}
.contact-grid h2{font-size:36px}
.contact-grid .checklist{margin-top:20px}
.process .services{margin-top:28px;margin-bottom:0}
.service p{max-width:none}
@media(min-width:761px) and (max-width:1000px){
 header{gap:14px;padding-inline:4%}nav{gap:14px}.header-cta{padding:12px 14px}
 .services{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cta{gap:25px}.cta .button{max-width:280px}
}
@media(max-width:760px){
 .about-grid,.contact-grid{grid-template-columns:1fr;gap:28px}
 .about-grid>img{height:300px}.about-grid p{margin:16px 0}
 .contact-panel{padding:24px}.contact-grid h2{font-size:30px}
 .section-head{margin-bottom:26px}.section-head>p,.section-head>.text-link{margin-top:18px}
 .eyebrow{margin-bottom:16px}.services{gap:16px;margin-bottom:24px}
 .service{padding:22px}.service .number{margin-bottom:16px}
 .cta{padding-block:36px;gap:24px}.cta h2 br{display:none}
 .cta p{margin-top:16px}.button{padding:16px 20px}
 .hero .actions{margin-top:24px}.hero-note{margin-top:24px}
 .specialty-strip{font-size:9px;line-height:1.6}
 footer{padding-top:32px;gap:22px}footer .logo{width:170px}
 .footer-bottom{line-height:1.6;gap:12px}
 .image-caption{font-size:10px;left:12px;bottom:12px;right:12px}
}

/* Local service coverage */
.service-area{border-top:1px solid #dcded5}
.service-area .section-head{align-items:start}
.service-area .section-head>p{max-width:540px}
.area-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.area-group{border-top:2px solid var(--brass);padding-top:18px}
.area-group h3{font-size:18px;line-height:1.4;min-height:51px;font-weight:600}
.area-group ul{list-style:none;padding:0;margin:16px 0 0}
.area-group li{padding:5px 0;font-size:15px;color:#535d50}
.area-communities{margin-top:30px;padding:22px 24px;background:#e9ece3;border-radius:3px}
.area-communities h3{font-size:18px;margin-bottom:10px}
.area-communities p{font-size:15px;line-height:1.8}
.area-contact{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:28px}
.area-contact .button{flex-shrink:0}
.area-note{font-size:12px;line-height:1.7;max-width:850px;margin-top:20px}
@media(max-width:1050px){.area-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.area-group h3{min-height:0}}
@media(max-width:760px){.area-grid{gap:24px 18px}.area-group h3{font-size:16px}.area-group li{font-size:14px}.area-communities{padding:20px;margin-top:24px}.area-contact{align-items:start;flex-direction:column;gap:18px}.area-note{margin-top:18px}}
@media(max-width:359px){.area-grid{grid-template-columns:1fr}}
