:root{--forest:#143e2e;--deep:#09281e;--leaf:#476b46;--cream:#f5f2e9;--tint:#edf1e9;--paper:#fffdf8;--ink:#1c3228;--muted:#526258;--line:#d9dfd5;--gold:#aa925f;--max:1180px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.55}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit}
button,a,summary{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.shell{width:min(calc(100% - 48px),var(--max));margin-inline:auto}
h1,h2,h3,p,figure{margin-top:0}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.12;letter-spacing:-.025em}
h1{font-size:clamp(2.35rem,3.45vw,3.6rem)}
h2{font-size:clamp(1.85rem,2.65vw,2.8rem)}
h3{font-size:1.32rem}
p{margin-bottom:1.1em}
.lead{font-size:clamp(1.03rem,1.3vw,1.18rem);line-height:1.55}
.eyebrow{font-size:.77rem;line-height:1.4;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--leaf);margin-bottom:.85rem}
.eyebrow::before{content:'';display:inline-block;width:24px;height:1px;background:currentColor;vertical-align:middle;margin-right:12px}
.site-header{position:relative;z-index:30;background:var(--cream);border-bottom:1px solid var(--line)}
.header-inner{min-height:76px;display:flex;align-items:center;gap:26px}
.brand{display:block;flex:0 0 auto;width:196px}
.brand img{width:100%;height:auto;mix-blend-mode:multiply}
.desktop-nav{display:flex;align-items:center;gap:23px;margin-left:auto}
.desktop-nav a,.mobile-nav a{font-size:.93rem;font-weight:700;text-decoration:none}
.desktop-nav a:hover,.desktop-nav a[aria-current=page]{color:var(--leaf)}
.header-cta{display:inline-flex;align-items:center;justify-content:center;padding:12px 17px;background:var(--forest);color:white;text-decoration:none;font-size:.9rem;font-weight:700;white-space:nowrap}
.header-cta:hover,.button-dark:hover{background:#245a42}
.mobile-nav{display:none;margin-left:auto;position:relative}
.mobile-nav summary{list-style:none;cursor:pointer;font-weight:700;padding:12px 0 12px 18px}
.mobile-nav summary::-webkit-details-marker{display:none}
.mobile-nav summary::after{content:'☰';margin-left:10px;font-size:1.15rem;font-weight:400}
.mobile-nav[open] summary::after{content:'×';font-size:1.5rem;line-height:.6}
.mobile-nav nav{position:absolute;right:0;top:100%;width:min(310px,calc(100vw - 48px));background:var(--cream);border:1px solid var(--line);box-shadow:0 20px 40px rgba(0,0,0,.12);padding:12px;display:grid;gap:2px}
.mobile-nav nav a{padding:10px 12px}
.mobile-nav nav a:hover,.mobile-nav nav a[aria-current=page]{background:var(--tint)}
.hero{background:var(--deep);color:#fff}
.hero-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,4vw,56px);align-items:center;padding-block:48px}
.hero .eyebrow,.contact-band .eyebrow{color:#bad0ad}
.hero h1{max-width:17ch;margin-bottom:16px}
.hero .lead{max-width:49ch;color:#e4eee5}
.hero-photo{margin:0;align-self:stretch;display:flex;flex-direction:column}
.hero-photo img{width:100%;height:100%;max-height:425px;min-height:335px;object-fit:cover;object-position:center}
.hero-photo figcaption{font-size:.8rem;color:#d8e6d8;padding-top:8px}
.actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:23px}
.button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:11px 18px;text-decoration:none;font-weight:700;font-size:.93rem;border:0;cursor:pointer;line-height:1.2}
.button span,.text-link span,.section-link span{font-size:1.15em}
.button-light{background:var(--cream);color:var(--deep)}
.button-light:hover{background:#e8e2d4}
.button-dark{background:var(--forest);color:#fff}
.text-link,.section-link{display:inline-flex;gap:12px;align-items:center;font-weight:700;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:4px}
.light-link{color:#fff}
.text-link:hover,.section-link:hover{color:var(--leaf)}
.hero .light-link:hover,.contact-band .section-link:hover{color:#cad9bd}
.promise-bar{background:var(--cream);border-bottom:1px solid var(--line)}
.promise-items{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:14px;font-size:.88rem;font-weight:700}
.promise-items span::before{content:'✓';color:var(--leaf);margin-right:10px}
.section{padding-block:54px}
.section-tint{background:var(--cream)}
.section-heading{max-width:750px;margin-bottom:26px}
.section-heading h2{margin-bottom:12px}
.section-heading p:last-child{color:var(--muted);font-size:1rem;max-width:61ch}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.service-card{background:var(--cream);border:1px solid var(--line);padding:23px;display:flex;flex-direction:column}
.service-card h3{margin:13px 0 9px}
.service-card p{color:var(--muted)}
.service-card a,.detail-card a{margin-top:auto;align-self:flex-start;font-weight:700;text-decoration:none;border-bottom:1px solid var(--forest)}
.service-card a:hover,.detail-card a:hover{color:var(--leaf)}
.service-number{font-weight:700;letter-spacing:.1em;color:var(--leaf);font-size:.8rem}
.section>.shell>.section-link{margin-top:21px}
.about-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,60px);align-items:center}
.about-image{width:100%;max-width:370px;background:transparent;padding:0}
.about-image img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;clip-path:circle(49% at 50% 50%)}
.about-split p:not(.eyebrow){max-width:64ch;color:var(--muted);font-size:1rem}
.about-split .section-link{margin-top:5px}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.project-card{border:1px solid var(--line);background:var(--paper)}
.project-card a{display:block;text-decoration:none;height:100%}
.project-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.project-card>a>div{padding:18px}
.project-kicker{color:var(--leaf);font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:10px}
.project-card h3{margin-bottom:12px}
.project-card span{font-size:.92rem;font-weight:700;border-bottom:1px solid currentColor}
.project-card:hover img{filter:saturate(1.1)}
.area-band{background:var(--tint)}
.area-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,65px);align-items:start}
.area-grid p:not(.eyebrow){font-size:1.03rem;color:var(--muted);max-width:62ch}
.steps-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,65px)}
.steps-grid ol{list-style:none;padding:0;margin:0;counter-reset:step}
.steps-grid li{counter-increment:step;display:grid;grid-template-columns:48px 1fr;gap:0 16px;border-top:1px solid var(--line);padding:15px 0}
.steps-grid li::before{content:'0' counter(step);grid-row:span 2;color:var(--leaf);font-weight:700;letter-spacing:.12em}
.steps-grid li strong{font-size:1.05rem}
.steps-grid li span{color:var(--muted)}
.contact-band{background:var(--forest);color:white;padding-block:39px}
.contact-band-inner{display:flex;align-items:center;justify-content:space-between;gap:38px}
.contact-band h2{font-size:clamp(1.85rem,2.65vw,2.75rem);margin-bottom:8px}
.contact-band p:last-child{margin-bottom:0;color:#d9e6d9}
.contact-band .button{flex:0 0 auto}
.page-hero{background:var(--cream);padding-block:52px 46px;border-bottom:1px solid var(--line)}
.page-hero h1{max-width:20ch;margin-bottom:15px}
.page-hero .lead{max-width:57ch;color:var(--muted)}
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.detail-card{background:var(--cream);border:1px solid var(--line);padding:24px;scroll-margin-top:25px;display:flex;flex-direction:column}
.detail-card h2{font-size:1.9rem;margin:12px 0 9px}
.detail-card h3{font:700 1rem/1.4 Arial,Helvetica,sans-serif;letter-spacing:0;margin-bottom:10px;color:var(--leaf)}
.detail-card p{color:var(--muted)}
.narrow{max-width:780px}
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line);padding:18px 0}
.faq summary{cursor:pointer;font-weight:700;list-style:none;padding-right:25px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:0;top:0;font-size:1.3rem;font-weight:400}
.faq details[open] summary::after{content:'−'}
.faq p{margin:12px 0 0;color:var(--muted)}
.project-detail{scroll-margin-top:20px}
.project-intro{display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:end;margin-bottom:22px}
.project-intro h2{max-width:16ch;margin-bottom:0}
.project-intro>p{color:var(--muted);font-size:1rem;margin-bottom:0}
.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.photo-pair figure{margin:0}
.photo-pair img{width:100%;aspect-ratio:4/3;object-fit:cover}
.photo-pair figcaption{font-size:.85rem;color:var(--muted);padding-top:9px}
.photo-open{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.photo-open img{transition:filter .2s ease}
.photo-open:hover img{filter:brightness(.92)}
.photo-dialog{border:0;padding:26px;background:var(--paper);color:var(--ink);max-width:min(94vw,1100px);max-height:92vh;box-shadow:0 20px 70px rgba(0,0,0,.35)}
.photo-dialog::backdrop{background:rgba(5,24,16,.82)}
.photo-dialog img{max-height:78vh;width:auto;max-width:100%;object-fit:contain;margin:auto}
.photo-dialog p{margin:10px 0 0;font-size:.9rem}
.dialog-close{position:absolute;right:8px;top:2px;border:0;background:var(--paper);color:var(--ink);font-size:2rem;cursor:pointer;width:42px;height:42px}
.area-case{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,65px);align-items:center}
.area-case img{width:100%;aspect-ratio:4/3;object-fit:cover}
.area-case p:not(.eyebrow){color:var(--muted);font-size:1rem}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,65px);align-items:start}
.contact-grid>div>p{color:var(--muted);font-size:1rem}
.contact-grid dl{margin-top:24px}
.contact-grid dl div{border-top:1px solid var(--line);padding:13px 0}
.contact-grid dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--leaf);font-weight:700}
.contact-grid dd{margin:5px 0 0;font-size:1.1rem}
.contact-grid dd a{text-decoration:none;border-bottom:1px solid currentColor}
.contact-form{background:var(--cream);border:1px solid var(--line);padding:clamp(20px,3vw,34px);display:grid;gap:14px}
.contact-form h2{font-size:1.9rem;margin-bottom:0}
.contact-form>p{color:var(--muted);margin-bottom:0}
.contact-form label{display:block;font-size:.9rem;font-weight:700}
.contact-form label span{color:var(--leaf)}
.contact-form input,.contact-form textarea,.contact-form select{width:100%;border:1px solid #bbc9ba;background:#fff;color:var(--ink);padding:11px 13px;min-height:46px;border-radius:0}
.contact-form label input,.contact-form label textarea,.contact-form label select{display:block;margin-top:6px}
.contact-form textarea{resize:vertical;min-height:140px}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:var(--forest)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-form .button{justify-self:start;margin-top:5px}
.contact-form .form-note{font-size:.85rem;line-height:1.5}
.form-success{background:#dce9d9;color:var(--deep);border-left:4px solid var(--forest);padding:14px 18px;font-weight:700}
.site-footer{background:var(--deep);color:#d5e0d4;padding-top:35px}
.footer-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:35px;padding-bottom:28px}
.footer-brand{display:inline-flex;align-items:center;gap:9px;color:var(--cream);font:700 1.7rem/1 Georgia,'Times New Roman',serif;letter-spacing:-.035em}
.footer-brand svg{display:block;width:34px;height:34px;flex:0 0 34px}
.footer-grid .footer-brand:hover{text-decoration:none;color:#fff}
.footer-grid p{max-width:27ch;margin-top:14px;font-size:.92rem}
.footer-grid nav{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:9px 14px}
.footer-grid a{text-decoration:none}
.footer-grid a:hover{text-decoration:underline}
.footer-contact{display:grid;align-content:start;gap:10px}
.footer-bottom{border-top:1px solid #456052;display:flex;justify-content:space-between;gap:20px;padding-block:15px;font-size:.82rem;color:#aebfae}
@media(max-width:1100px){.desktop-nav,.header-cta{display:none}.mobile-nav{display:block}}
@media(max-width:900px){.hero-grid,.about-split,.area-grid,.steps-grid,.area-case,.contact-grid{grid-template-columns:1fr}.hero-grid{padding-block:42px}.hero h1{max-width:18ch}.hero-photo img{max-height:420px;min-height:0}.about-image{max-width:350px}.service-grid,.project-grid{grid-template-columns:repeat(2,1fr)}.project-card:last-child{grid-column:1/-1;width:100%;max-width:calc(50% - 9px);margin-inline:auto}.project-intro{grid-template-columns:1fr;gap:10px}}
@media(max-width:620px){.shell{width:min(calc(100% - 32px),var(--max))}.header-inner{min-height:66px}.brand{width:158px}.section{padding-block:42px}.page-hero{padding-block:39px}.hero-grid{padding-block:34px;gap:23px}.hero h1{font-size:clamp(2.05rem,8vw,2.55rem)}.hero .lead{font-size:1.02rem}.hero-photo img{aspect-ratio:4/3;height:auto}.actions{gap:16px;margin-top:20px}.promise-items{display:grid;gap:5px;padding-block:13px}.service-grid,.project-grid,.detail-grid,.photo-pair,.form-row{grid-template-columns:1fr}.project-card:last-child{grid-column:auto;max-width:none}.contact-band-inner{display:block}.contact-band .button{margin-top:20px}.footer-grid{grid-template-columns:1fr;gap:22px}.footer-grid nav{max-width:420px}.footer-bottom{display:block}.project-intro h2{max-width:none}.about-image{max-width:280px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
