:root{--forest:#173e2d;--forest-deep:#0d281d;--cream:#fbf8f0;--paper:#f2eee2;--ink:#19251e;--muted:#59665e;--line:#d7d0c0;--amber:#e1a73d;--amber-deep:#b87913;--moss:#dce5d4;--white:#fffdf8;--shell:1180px;--serif:'Fraunces',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;object-fit:cover}
h1,h2,h3,p,figure,ol,ul{margin:0}
h1,h2,h3{font-family:var(--serif);line-height:1.05;letter-spacing:-.035em}
.shell{width:min(calc(100% - 48px),var(--shell));margin:auto}
.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:10px 16px;background:var(--white);transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--amber-deep)}
.button{display:inline-flex;min-height:52px;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border:1px solid var(--amber);background:var(--amber);color:var(--ink);font-weight:700;line-height:1.2;transition:background .15s,color .15s,transform .15s}
.button:hover{background:#edbd62;transform:translateY(-1px)}
.button svg,.text-link svg,.header-call svg,.big-phone svg,.emergency-note svg{width:19px;height:19px;flex:none}
.button--cream{background:var(--cream);border-color:var(--cream);color:var(--forest)}
.button--outline{background:transparent;border-color:var(--forest);color:var(--forest)}
.button--outline:hover{background:var(--forest);color:#fff}
.text-link{display:inline-flex;gap:10px;align-items:center;font-size:14px;font-weight:700;text-decoration:underline;text-decoration-color:var(--amber);text-decoration-thickness:2px;text-underline-offset:7px}
.text-link--on-dark,.text-link--light{color:#fff}
.text-link--light{text-decoration-color:var(--amber)}
.site-header{position:sticky;top:0;z-index:40;background:rgba(251,248,240,.95);border-bottom:1px solid rgba(25,37,30,.1);backdrop-filter:blur(10px)}
.header-row{min-height:76px;display:flex;align-items:center;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--forest);font-family:var(--sans);font-weight:700;line-height:.9;letter-spacing:.1em}
.brand img{width:43px;height:43px;border-radius:50%}
.brand small{display:block;margin-top:5px;font-size:8px;letter-spacing:.09em;text-transform:uppercase}
.site-nav{display:flex;align-items:center;gap:25px;margin-left:auto;font-size:14px;font-weight:600}
.site-nav a{padding:10px 0}
.site-nav a:hover,.site-nav [aria-current=page]{color:var(--amber-deep)}
.header-call{display:inline-flex;align-items:center;gap:8px;padding:10px 0;color:var(--forest);font-weight:700;font-size:14px}
.menu-toggle{display:none;background:transparent;border:0;color:var(--forest)}
.menu-toggle span{display:block;width:22px;height:2px;margin:4px;background:currentColor}
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.88fr);min-height:630px;background:var(--forest)}
.hero-copy{align-self:center;max-width:710px;padding:86px max(48px,calc((100vw - var(--shell))/2)) 82px;color:#fff}
.hero .eyebrow{color:#f4c665}
.hero h1{margin-top:18px;font-size:clamp(54px,6vw,84px);color:#fff}
.hero h1 em{font-weight:600;color:#f4c665}
.hero-lede{max-width:510px;margin-top:28px;color:#e9eee5;font-size:18px;line-height:1.7}
.hero-actions{display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin-top:34px}
.hero-facts{display:flex;gap:24px;flex-wrap:wrap;margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2);font-size:13px;font-weight:600}
.hero-facts span{display:inline-flex;gap:9px;align-items:center}
.hero-facts svg{width:18px;color:#f4c665}
.photo{margin:0;overflow:hidden;background:var(--moss)}
.photo img{width:100%;height:100%;object-fit:cover}
.photo figcaption{display:flex;gap:8px;align-items:flex-start;padding:9px 12px;background:rgba(13,40,29,.93);color:#e8eee5;font-size:11px;line-height:1.4}
.photo figcaption svg{width:15px;flex:none}
.hero-photo{position:relative;min-height:630px}
.hero-photo img{position:absolute;inset:0}
.hero-photo figcaption{position:absolute;right:0;bottom:0;max-width:300px}
.intro-section{padding:105px 0 95px}
.intro-grid{display:grid;grid-template-columns:.48fr 1.1fr .7fr;gap:46px;align-items:start}
.intro-grid h2{font-size:clamp(38px,4vw,59px)}
.intro-grid>p:last-child{padding-top:12px;color:var(--muted);font-size:16px}
.services-preview{padding:0 0 112px}
.split-heading{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;margin-bottom:34px}
.split-heading h2{max-width:600px;margin-top:12px;font-size:clamp(36px,4vw,55px)}
.service-preview-list{border-top:1px solid var(--line)}
.service-preview-list a{display:grid;grid-template-columns:90px 1.1fr .9fr 30px;gap:20px;align-items:center;padding:25px 0;border-bottom:1px solid var(--line);transition:padding .15s,color .15s}
.service-preview-list a:hover{padding-inline:10px;color:var(--amber-deep)}
.service-preview-list span{font-size:12px;font-weight:700;color:var(--amber-deep)}
.service-preview-list strong{font:600 clamp(26px,3vw,38px)/1 var(--serif);letter-spacing:-.03em}
.service-preview-list em{font-style:normal;color:var(--muted);font-size:14px}
.service-preview-list svg{width:21px}
.process{padding:92px 0;background:var(--paper)}
.process-heading{display:flex;justify-content:space-between;gap:30px;align-items:end}
.process-heading h2{max-width:590px;margin-top:10px;font-size:clamp(36px,4vw,54px)}
.process ol{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;list-style:none;margin-top:46px;padding:0}
.process li{display:grid;grid-template-columns:55px 1fr;gap:17px;border-top:2px solid var(--forest);padding-top:17px}
.process li>span{font-family:var(--serif);font-size:28px;color:var(--amber-deep)}
.process h3{font-size:25px}
.process p{margin-top:9px;color:var(--muted);font-size:14px}
.property-section{display:grid;grid-template-columns:1fr 1fr;min-height:555px;border-bottom:1px solid var(--line)}
.property-copy{align-self:center;max-width:590px;padding:80px max(48px,calc((100vw - var(--shell))/2)) 80px 10%;}
.property-copy h2{margin-top:15px;font-size:clamp(42px,4.5vw,64px)}
.property-copy>p:not(.eyebrow){margin-top:22px;color:var(--muted)}
.property-copy .button{margin-top:28px}
.property-photo{min-height:555px;position:relative}
.property-photo figcaption{position:absolute;bottom:0;right:0;max-width:290px}
.emergency-band{padding:54px 0;background:#254a38;color:#fff}
.emergency-row{display:grid;grid-template-columns:68px 1fr auto;gap:22px;align-items:center}
.emergency-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--amber);color:var(--ink)}
.emergency-icon svg{width:28px}
.emergency-band .eyebrow{color:#f6c86a}
.emergency-band h2{margin-top:5px;font-size:36px;color:#fff}
.emergency-band p:not(.eyebrow){margin-top:4px;color:#dce8df;font-size:14px}
.closing{padding:73px 0;background:var(--forest);color:#fff}
.closing-row{display:flex;align-items:center;justify-content:space-between;gap:42px}
.closing .eyebrow{color:#f4c665}
.closing h2{margin-top:7px;font-size:clamp(40px,4vw,58px);color:#fff}
.closing p:not(.eyebrow){margin-top:10px;color:#dce8df}
.closing-actions{display:flex;flex-direction:column;align-items:center;gap:14px;flex:none}
.page-intro{padding:92px 0 58px}
.page-intro h1,.about-hero h1,.contact-intro h1,.empty-page h1,.credits h1{max-width:900px;margin-top:14px;font-size:clamp(48px,5vw,74px)}
.page-intro>p:last-child{max-width:610px;margin-top:22px;color:var(--muted);font-size:17px}
.service-stack{padding-bottom:100px}
.service-row{display:grid;grid-template-columns:82px 1fr minmax(300px,.82fr);gap:34px;padding:52px 0;border-top:1px solid var(--line);align-items:start}
.service-row:last-child{border-bottom:1px solid var(--line)}
.service-number{font:600 32px/1 var(--serif);color:var(--amber-deep)}
.service-copy h2{font-size:clamp(37px,3.7vw,53px)}
.service-copy>p{margin-top:15px;color:var(--muted)}
.service-copy ul{display:grid;gap:9px;list-style:none;margin:22px 0;padding:0;font-size:14px}
.service-copy li{display:flex;align-items:center;gap:9px}
.service-copy li svg{width:16px;color:var(--amber-deep)}
.service-photo{height:320px}
.other-work{padding:78px 0;background:var(--moss);text-align:center}
.other-work>div{max-width:700px}
.other-work h2{margin-top:12px;font-size:clamp(38px,4vw,54px)}
.other-work p{margin:15px auto 26px;color:var(--muted)}
.about-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;padding:90px 0}
.about-hero h1{font-size:clamp(46px,4.9vw,70px)}
.about-hero p:not(.eyebrow){max-width:600px;margin-top:22px;color:var(--muted);font-size:17px}
.about-hero .button{margin-top:27px}
.about-photo{height:510px}
.values{padding:70px 0 105px}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:28px}
.values-grid article{padding-top:21px;border-top:2px solid var(--forest)}
.values-grid svg{width:27px;color:var(--amber-deep)}
.values-grid h2{margin-top:16px;font-size:30px}
.values-grid p{margin-top:9px;color:var(--muted);font-size:14px}
.area-section{padding:95px 0;background:var(--paper)}
.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.area-grid h2{margin-top:13px;font-size:clamp(40px,4vw,58px)}
.area-grid p:not(.eyebrow){max-width:530px;margin:20px 0;color:var(--muted)}
.area-grid ul{display:grid;grid-template-columns:1fr 1fr;list-style:none;padding:0}
.area-grid li{display:flex;align-items:center;gap:10px;min-height:62px;border-bottom:1px solid var(--line);font-size:14px;font-weight:600}
.area-grid svg{width:19px;color:var(--amber-deep)}
.contact-intro{display:grid;grid-template-columns:.9fr 1fr;gap:80px;align-items:start;padding:92px 0}
.contact-intro h1{font-size:clamp(49px,5vw,71px)}
.contact-intro>div>p:not(.eyebrow){max-width:550px;margin-top:20px;color:var(--muted);font-size:17px}
.big-phone{display:inline-flex;align-items:center;gap:13px;margin-top:29px;border-bottom:2px solid var(--amber);color:var(--forest);font:600 clamp(32px,4vw,49px)/1 var(--serif);letter-spacing:-.04em}
.big-phone svg{width:29px}
.emergency-note{display:flex;gap:9px;align-items:flex-start;margin-top:27px!important;padding-top:22px;border-top:1px solid var(--line);font-size:14px!important}
.emergency-note svg{width:20px;color:var(--amber-deep)}
.area-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}
.area-tags span{padding:6px 10px;border:1px solid var(--line);font-size:12px;font-weight:700}
.estimate-panel{padding:37px;background:var(--paper);border:1px solid var(--line)}
.estimate-panel h2{margin-top:7px;font-size:42px}
.estimate-panel>p:not(.eyebrow){margin:12px 0 25px;color:var(--muted);font-size:14px}
form{display:grid;gap:16px}
form label{display:grid;gap:6px;font-size:13px;font-weight:700}
form small{font-weight:500;color:var(--muted)}
input,textarea{width:100%;border:1px solid #bcb7aa;background:var(--white);padding:12px 13px;color:var(--ink);font:15px var(--sans)}
input:focus,textarea:focus{outline:2px solid var(--amber-deep);outline-offset:2px}
.form-note,.copy-status{margin-top:15px;color:var(--muted);font-size:12px}
.message-result{margin-top:24px;padding:20px;background:var(--white);border:1px solid var(--line)}
.message-result h3{font-size:26px}
.message-result p{white-space:pre-wrap;margin:10px 0 16px;font-size:13px}
.copy-button{margin-top:13px;border:0;background:transparent;padding:0;color:var(--forest);font:700 13px var(--sans);text-decoration:underline;cursor:pointer}
.empty-page,.credits{padding:110px 0;max-width:850px}
.empty-page h1,.credits h1{font-size:clamp(48px,5vw,72px)}
.empty-page p:not(.eyebrow),.credits>p{margin:20px 0 28px;color:var(--muted);font-size:17px}
.credits h2{margin-top:40px;font-size:35px}
.credits ol{display:grid;gap:12px;margin:18px 0 0;padding-left:22px}
.site-footer{padding:57px 0 28px;background:var(--forest-deep);color:#d9e3d9}
.footer-grid{display:flex;justify-content:space-between;gap:60px}
.brand--footer{color:#fff}
.footer-grid p{max-width:340px;margin-top:16px;font-size:14px;color:#b9c8b9}
.footer-phone{display:inline-block;margin-top:16px;color:#fff;font-size:21px;font-weight:700}
.footer-links{display:flex;gap:75px}
.footer-links div{display:flex;flex-direction:column;gap:8px;font-size:14px}
.footer-links strong{margin-bottom:5px;color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.09em}
.footer-bottom{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:42px;padding-top:17px;border-top:1px solid rgba(255,255,255,.16);color:#93a693;font-size:11px}
.footer-bottom a{color:#fff;text-decoration:underline}
.mobile-actions{display:none}
@media(max-width:600px){.mobile-actions{transition:opacity .18s ease,transform .18s ease}.mobile-actions.is-suppressed{opacity:0;pointer-events:none;transform:translateY(16px)}}
@media(max-width:860px){.header-row{min-height:68px}
.menu-toggle{display:block;margin-left:auto;padding:8px}
.site-nav{display:none;order:4;flex-basis:100%;margin:0;padding:9px 0 14px;border-top:1px solid var(--line);justify-content:space-between}
.site-nav.is-open{display:flex}
.header-call{margin-left:0}
.hero{grid-template-columns:1fr}
.hero-copy{padding:65px 24px 62px}
.hero-photo{min-height:350px}
.hero-photo img{position:absolute}
.intro-grid{grid-template-columns:1fr;gap:20px}
.intro-grid>p:last-child{padding-top:0}
.process ol{grid-template-columns:1fr}
.property-section{grid-template-columns:1fr}
.property-copy{padding:62px 24px}
.property-photo{min-height:380px}
.emergency-row{grid-template-columns:58px 1fr}
.emergency-row .button{grid-column:1/-1;justify-self:start;margin-left:80px}
.service-row{grid-template-columns:54px 1fr}
.service-photo{grid-column:2;height:290px}
.about-hero,.area-grid,.contact-intro{grid-template-columns:1fr;gap:38px}
.about-hero{padding:70px 0}
.about-photo{height:430px}
.values-grid{grid-template-columns:1fr}
.area-grid{gap:42px}
.contact-intro{padding:70px 0}
.footer-grid{flex-direction:column;gap:35px}
.footer-links{gap:52px}
}
@media(max-width:600px){body{padding-bottom:63px}
.shell{width:min(calc(100% - 40px),var(--shell))}
.header-call span{display:none}
.header-call{padding:10px}
.hero h1{font-size:clamp(49px,14vw,66px)}
.hero-lede{font-size:16px}
.hero-actions{gap:19px}
.hero-facts{gap:14px}
.split-heading{display:block}
.split-heading .text-link{margin-top:18px}
.service-preview-list a{grid-template-columns:42px 1fr 22px;gap:12px;padding:19px 0}
.service-preview-list em{display:none}
.service-preview-list strong{font-size:27px}
.process{padding:65px 0}
.process-heading{display:block}
.process ol{margin-top:33px}
.process li{grid-template-columns:43px 1fr;gap:10px}
.property-copy h2,.closing h2{font-size:46px}
.emergency-band{padding:43px 0}
.emergency-row{grid-template-columns:1fr;gap:15px}
.emergency-row .button{grid-column:auto;margin:0;justify-self:start}
.service-stack{padding-bottom:65px}
.service-row{grid-template-columns:1fr;gap:19px;padding:39px 0}
.service-number{font-size:25px}
.service-photo{grid-column:auto;height:235px}
.page-intro{padding:64px 0 38px}
.page-intro h1,.about-hero h1,.contact-intro h1,.empty-page h1,.credits h1{font-size:49px}
.values{padding:58px 0 70px}
.area-section{padding:64px 0}
.area-grid ul{grid-template-columns:1fr}
.estimate-panel{padding:25px 19px}
.closing{padding:54px 0}
.closing-row{align-items:flex-start;flex-direction:column}
.closing-actions{align-items:flex-start}
.site-footer{padding-top:46px}
.footer-links{width:100%;justify-content:space-between;gap:20px}
.footer-bottom span:last-child{display:none}
.mobile-actions{position:fixed;z-index:50;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;background:var(--forest);box-shadow:0 -3px 16px rgba(13,40,29,.18)}
.mobile-actions a{display:flex;min-height:63px;align-items:center;justify-content:center;gap:8px;color:#fff;font-size:14px;font-weight:700}
.mobile-actions a+ a{border-left:1px solid rgba(255,255,255,.2)}
.mobile-actions svg{width:18px;color:#f4c665}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}
}
