:root{--paper:#f7f3ea;--card:#fbf9f4;--ink:#0f2a22;--muted:#5a645c;--line:#e2dccd;--gold:#b8892f;--goldl:#c9a24e}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font:400 16.5px/1.7 "IBM Plex Sans",system-ui,sans-serif;color:var(--ink);background:var(--paper);overflow-x:hidden}
img{display:block;max-width:100%}a{color:inherit}
h1,h2{font-family:Newsreader,Georgia,serif;font-weight:400;letter-spacing:-.015em;line-height:1.06}
h1{font-size:clamp(40px,4.8vw,66px)}h1 i{color:var(--gold)}
h2{font-size:clamp(30px,3.2vw,44px)}h3{font:500 22px/1.2 Newsreader,Georgia,serif}
.eyebrow{font:400 12px "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:28px;padding:14px clamp(20px,4vw,56px);background:rgba(247,243,234,.88);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s}
.top.scrolled{border-color:var(--line)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:500 20px Newsreader,Georgia,serif}
.brand svg{width:44px;height:26px}.brand em{font-style:italic;color:var(--muted)}
.top nav{margin-left:auto;display:flex;gap:28px;font-size:14.5px}.top nav a{text-decoration:none;color:var(--muted)}.top nav a:hover{color:var(--ink)}
.call{display:flex;align-items:center;gap:8px;background:var(--ink);color:var(--paper);text-decoration:none;padding:10px 18px;border-radius:4px;font-weight:600;font-size:14.5px}
.call svg{width:15px;height:15px;fill:var(--goldl)}
.hero{max-width:1240px;margin:0 auto;padding:clamp(50px,7vw,100px) clamp(20px,4vw,56px) clamp(50px,6vw,80px);display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,6vw,90px);align-items:center}
.lede{font-size:18px;color:var(--muted);margin:24px 0 32px;max-width:32em}
.ctas{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--ink);color:var(--paper);text-decoration:none;padding:15px 26px;border-radius:4px;font:inherit;font-weight:600;border:0;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:inset 0 -3px 0 var(--gold)}
.btn:hover{transform:translateY(-1px)}.link{color:var(--muted)}
.plate{background:var(--card);border:1px solid var(--line);padding:22px 26px 0;position:relative;box-shadow:0 30px 60px -40px rgba(15,42,34,.35)}
.plate:before{content:"";position:absolute;inset:8px;border:1px solid var(--line);pointer-events:none}
.plate-head,.plate figcaption{display:flex;justify-content:space-between;font:400 11.5px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.plate-head span+span{font-style:italic;text-transform:none;font:italic 400 16px Newsreader,serif;color:var(--ink);letter-spacing:0}
.ant{width:100%;height:auto;color:var(--ink);margin:6px 0}
.ant .d{stroke-dasharray:420;stroke-dashoffset:420;transition:stroke-dashoffset 2.4s cubic-bezier(.4,0,.2,1)}
.ant .g{stroke:var(--gold)}
.ready .ant .d{stroke-dashoffset:0}
.plate figcaption{border-top:1px solid var(--line);padding:12px 0 6px;gap:12px}
.plate figcaption span:last-child{text-transform:none;letter-spacing:0;font:italic 400 15px Newsreader,serif;color:var(--ink);text-align:right}
.hills{display:block;width:calc(100% + 52px);margin:0 -26px;height:40px}
.facts{max-width:1240px;margin:0 auto;padding:0 clamp(20px,4vw,56px);display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts div{padding:26px 20px 26px 0}.facts div+div{padding-left:20px;border-left:1px solid var(--line)}
.facts b{display:block;font:400 28px Newsreader,Georgia,serif}.facts span{font-size:14px;color:var(--muted)}
.services,.area,.contact{max-width:1240px;margin:0 auto;padding:clamp(90px,10vw,140px) clamp(20px,4vw,56px) 0}
.head{max-width:680px;margin-bottom:44px}.sub{color:var(--muted);margin-top:16px}
.index{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.index article{padding:24px 22px 30px 0;border-bottom:1px solid var(--line)}
.index article:not(:nth-child(4n+1)){padding-left:22px;border-left:1px solid var(--line)}
.lat{display:block;font:italic 400 14px Newsreader,serif;color:var(--gold);margin-bottom:10px}
.index p{font-size:15px;color:var(--muted);margin-top:8px}
.method{margin-top:clamp(90px,10vw,140px);background:var(--ink);color:var(--paper)}
.method-in{max-width:1240px;margin:0 auto;padding:clamp(70px,8vw,110px) clamp(20px,4vw,56px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px)}
.method .sub{color:#b9c2bb}.method .eyebrow{color:var(--goldl)}
.steps{list-style:none}.steps li{display:grid;grid-template-columns:44px 1fr;column-gap:10px;padding:22px 0;border-top:1px solid rgba(247,243,234,.15)}
.steps span{font:italic 400 20px Newsreader,serif;color:var(--goldl);grid-row:span 2}
.steps p{color:#b9c2bb;font-size:15.5px;margin-top:4px}
.towns{font:400 clamp(22px,2.4vw,30px)/1.6 Newsreader,Georgia,serif;max-width:1000px}
.towns i{color:var(--gold);font-style:normal;margin:0 .2em}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding-bottom:clamp(90px,10vw,130px)}
.card{border:1px solid var(--ink);padding:clamp(28px,4vw,46px);background:var(--card)}
.card h2{margin-bottom:24px}
.card dl div{padding:13px 0;border-top:1px solid var(--line)}
.card dt{font:400 11.5px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.card dd{font-size:17px;overflow-wrap:anywhere}.card a{text-decoration:none}
.form-wrap{background:var(--card);border:1px solid var(--line);padding:clamp(28px,4vw,44px)}
.form-wrap h3{margin-bottom:18px}
.quote label{display:block;font-size:13px;font-weight:500;color:var(--muted);margin-bottom:14px}
.quote input,.quote select,.quote textarea{display:block;width:100%;margin-top:6px;font:inherit;font-size:16px;color:var(--ink);padding:12px 14px;border:1px solid var(--line);border-radius:3px;background:#fff}
.quote :focus{outline:2px solid var(--gold);outline-offset:1px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quote .btn{width:100%}
.status{font-size:14px;color:var(--gold);margin-top:12px;min-height:1em}.hp{position:absolute;left:-9999px}
footer{border-top:1px solid var(--line);padding:28px clamp(20px,4vw,56px);font-size:14px;color:var(--muted);text-align:center}footer a{text-decoration:none}
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s ease}.js .reveal.in{opacity:1;transform:none}
@media (max-width:960px){.top nav{display:none}.call{margin-left:auto}.hero,.method-in,.contact{grid-template-columns:1fr}.index{grid-template-columns:1fr 1fr}.index article:not(:nth-child(4n+1)){padding-left:0;border-left:0}.index article:nth-child(even){padding-left:18px;border-left:1px solid var(--line)}.facts{grid-template-columns:1fr 1fr}.facts div:nth-child(3){border-left:0;padding-left:0}.facts div:nth-child(n+3){border-top:1px solid var(--line)}.plate{max-width:440px}}
@media (max-width:520px){.brand em{display:none}.call span{display:none}.call{padding:11px}.row2,.index{grid-template-columns:1fr}.index article:nth-child(even){padding-left:0;border-left:0}h1{font-size:38px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
