:root{color-scheme:light;--paper:#faf7f2;--white:#fffdf9;--ink:#1f2328;--cedar:#2f5d50;--deep:#23493e;--wood:#b8743c;--fog:#e8efea;--line:#d9d2c5;--muted:#4a5852;--serif:Georgia,"Times New Roman",serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.6 system-ui,sans-serif}
[hidden]{display:none!important}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.032em;line-height:1.12}
h1{font-size:clamp(2rem,4.55vw,3.65rem);text-wrap:balance;max-width:22ch}
h2{font-size:clamp(1.6rem,3vw,2.5rem);margin-bottom:.55em;text-wrap:balance}
h3{font-size:1.25rem}
a{color:var(--deep);text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--cedar);outline-offset:3px}
.skip{position:absolute;top:0;left:1rem;z-index:10;transform:translateY(-160%);background:var(--white);padding:.6rem}
.skip:focus{transform:none}
.wrap{max-width:1230px;padding-inline:clamp(16px,4vw,54px);margin-inline:auto}
.eyebrow{font-size:.69rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.preview-banner,.booking-notice{background:var(--fog);color:var(--deep);text-align:center;font-size:.71rem;font-weight:700;padding:3px 12px}
.site-header>.wrap{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.site-header nav{display:flex;align-items:center;gap:clamp(10px,2vw,27px);margin-left:auto}
.site-header nav a{display:inline-flex;align-items:center;min-height:44px;font-size:.89rem;text-decoration:none;font-weight:650}
.wordmark{display:inline-flex;align-items:center;gap:10px;color:var(--deep);text-decoration:none;line-height:1}
.wordmark svg{width:32px;height:36px;flex:none}
.wordmark strong{font:600 1.65rem/.94 var(--serif);letter-spacing:-.035em;display:block}
.wordmark small{display:block;margin-top:5px;font-size:.55rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;border:1px solid var(--wood);background:var(--wood);color:#121212;border-radius:5px;text-decoration:none;font-weight:760;text-align:center}
.cta:hover{box-shadow:inset 0 0 0 1px #121212;text-decoration:none}
.hero{background:#edf1ea;border-block:1px solid #d8e1d7}
.hero-home{position:relative;isolation:isolate;background:var(--deep);color:var(--paper);border:0}
.hero-home::before{content:"";z-index:-1;position:absolute;inset:0;pointer-events:none;background:repeating-radial-gradient(ellipse at -12% 100%,transparent 0 35px,#faf7f211 36px,transparent 37px 49px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);align-items:start;gap:18px clamp(24px,5vw,72px);padding-block:clamp(24px,4vw,56px)}
.hero-grid.no-quote{display:block}
.hero-heading{align-self:center}
.hero .eyebrow,.updated{margin-bottom:10px}
.hero-home .hero-heading .eyebrow{color:#d8e8dc}
.hero-area{margin-top:.75rem;font-size:clamp(.9rem,2vw,1.15rem);color:#e2eee5}
.hero-facts{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.85rem;color:#e2eee5;align-items:center;grid-row:2}
.service-facts{color:var(--deep);max-width:43ch;display:block}.service-facts a{font-weight:760}
.crumbs{font-size:.81rem;font-weight:650;margin-bottom:12px}
.crumbs ol{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0;gap:4px 8px}
.crumbs li:not(:last-child)::after{content:"/";padding-left:8px;color:var(--muted)}
.updated{font-size:.8rem;font-weight:620;color:var(--muted);margin-top:11px;margin-bottom:0}
.quote{grid-column:2;grid-row:1 / span 2;background:var(--white);color:var(--ink);padding:clamp(15px,3vw,30px);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px #182e2417;scroll-margin-top:12px}
.quote .quote-kicker{color:var(--deep);margin-bottom:3px}
.quote fieldset{padding:0;margin:0 0 12px;border:0;min-inline-size:0}
.quote legend{margin-bottom:10px;font:600 1.55rem/1.15 var(--serif);letter-spacing:-.03em}
.quote label{display:block;font-size:.84rem;font-weight:700;margin-bottom:4px}
.quote :is(input:not([type=radio],[type=hidden]),select,textarea){border:1px solid #8c958e;border-radius:4px;background:white;width:100%;min-height:44px;padding:7px 9px;margin:0 0 9px}
.quote label span:not(.chips span){font-weight:450}
.steps{margin-bottom:8px;display:flex;align-items:center;gap:12px}
.steps p{font-size:.73rem;font-weight:650;white-space:nowrap}
progress{width:100%;height:7px;accent-color:var(--cedar)}
.chips{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.chips label{position:relative;margin:0;cursor:pointer}
.chips input{position:absolute;opacity:0}
.chips span{min-height:44px;display:grid;place-items:center;text-align:center;padding:4px 5px;border:1px solid #a4aaa3;border-radius:4px;font-size:.76rem;font-weight:700}
.chips input:checked+span{background:var(--fog);color:var(--deep);border-color:var(--cedar)}
.chips input:focus-visible+span{outline:3px solid var(--cedar);outline-offset:2px}
.form-actions{display:flex;gap:8px}
.form-actions .cta{flex:1}
.back{padding:8px 14px;border:1px solid #8c958e;border-radius:4px;background:transparent;min-height:44px}
.form-note,.form-preview,.location-note{font-size:.75rem;color:var(--muted)}
.form-preview{margin-bottom:5px}
.form-note,.form-result{margin-top:9px}
.page-flow{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,5vw,64px);padding-block:clamp(24px,5vw,54px)}
.team-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,240px);align-items:center;gap:clamp(18px,5vw,64px);padding:clamp(18px,4vw,38px);background:var(--white);border:1px solid var(--line);border-radius:8px;max-width:960px}
.team-copy .eyebrow{color:var(--deep);margin-bottom:.55em}
.team-copy p:not(.eyebrow){max-width:58ch;margin-bottom:8px}
.team-copy a{display:inline-flex;min-height:44px;align-items:center;font-weight:700}
.team-card picture{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:var(--fog)}
.team-card img{display:block;width:100%;height:100%;object-fit:cover}
.process{max-width:960px}
.process ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;list-style:none;padding:0;margin:0}
.process li{border-top:1px solid var(--cedar);padding-top:12px}
.process h3{margin:4px 0 6px}
.process p{color:var(--muted);max-width:52ch;font-size:.9rem}
.process .estimate-text-link{margin-top:8px}.estimate-text-link a{display:inline-flex;align-items:center;min-height:44px;font-weight:700}
.prose{max-width:75ch}
.prose p{margin-block:0 .85em}
.prose :is(h2,h3){margin:1.45em 0 .6em}
.prose :is(ul,ol){padding-left:1.4em}
.prose img{max-width:100%;height:auto;display:block}
.prose figure{margin:1.4rem 0}
.repair-collage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.repair-collage-tile{min-width:0;overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:6px}
.repair-collage-tile:nth-child(-n+2){grid-column:span 2}
.repair-collage-tile img{width:100%;aspect-ratio:4/3}
.repair-collage-tile span{display:block;padding:7px 9px;color:var(--ink);font-size:.8rem;font-weight:650;line-height:1.25}
@media(max-width:540px){
  .repair-collage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .repair-collage-tile:nth-child(-n+2){grid-column:span 1}
}
figcaption{color:var(--muted);font-size:.82rem;margin-top:.35rem}
.draft-marker{background:#f4dfaa;color:#37280e;border-radius:3px;padding:1px 2px}
.link-grid,.home-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:8px;list-style:none;margin:0;padding:0}
.link-grid a,.home-groups div{display:flex;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:4px;padding:8px 12px;min-height:46px;font-size:.88rem;font-weight:650}
.service-group h3{margin:16px 0 8px}
.content-section{min-width:0}
.content-section>p{margin:8px 0}
.table-scroll,.prose{min-width:0}
.table-scroll,.markdown-table{max-width:100%;overflow-x:auto}
table{border-collapse:collapse;width:100%;margin:.8rem 0;font-size:.875rem}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line)}
thead{background:var(--fog)}
.zone-map{max-width:760px;margin:0 0 1.25rem}
.zone-map>svg{display:block;width:100%;height:auto;background:#f2f2e9;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.zone-water{fill:#9dc8d1;stroke:#8cbcc7;stroke-width:.7}
.zone-coverage{fill:#8bb8a5;fill-opacity:.51}
.zone-outline{fill:none;stroke:var(--cedar);stroke-width:3}
.zone-roads{fill:none;stroke-linejoin:round;stroke-linecap:round}
.zone-roads-secondary{stroke:#fffdfa;stroke-width:2.5}
.zone-roads-major{stroke:#87959a;stroke-width:3.8}
.zone-route rect{fill:#fffdf9;stroke:#8c9998}
.zone-route text,.zone-north{text-anchor:middle;font:700 11px system-ui,sans-serif;fill:var(--deep)}
.zone-town{fill:#537266}
.zone-label{font:700 18px system-ui,sans-serif;fill:#213b32;stroke:#faf7f2;stroke-width:3.5;stroke-linejoin:round;paint-order:stroke;text-anchor:middle}
.zone-label-secondary{font-size:15px}
.zone-base-label{font-weight:850}
.zone-star circle{fill:#fffaf0;stroke:#2b4b40;stroke-width:1.5}
.zone-star path,.zone-key-star path{fill:#d19236;stroke:#654526;stroke-width:.9}
.zone-legend{display:flex;gap:4px 20px;flex-wrap:wrap;list-style:none;padding:0;margin:8px 0 4px;font-weight:700}
.zone-legend li{display:inline-flex;align-items:center;gap:7px}
.zone-key{width:16px;height:12px;background:#bdd5c8;border:2px solid var(--cedar);border-radius:3px}
.zone-key-star{width:18px;height:18px}
.zone-credit{display:inline-block;margin-top:5px;font-size:.75rem}
@media(max-width:550px){
 .zone-label{font-size:24px;stroke-width:4.5}
 .zone-label-secondary,.zone-route{display:none}
}
footer{background:var(--fog);border-top:1px solid #d8e1d7;padding:30px 0}
.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.footer-grid p{margin-top:8px;font-size:.88rem;max-width:43ch}
.footer-grid nav{display:flex;gap:2px 16px;flex-wrap:wrap;align-content:start}
.footer-grid nav a{display:inline-flex;align-items:center;min-height:44px;font-size:.85rem}
.mobile-actions{display:none}
@media(max-width:690px){
 body{padding-bottom:calc(55px + env(safe-area-inset-bottom))}
 .site-header>.wrap{min-height:57px;gap:6px}
 .site-header nav{display:none}
 .wordmark svg{width:24px;height:30px}.wordmark strong{font-size:1.32rem}.wordmark small{font-size:.44rem}
 .header-cta{font-size:.75rem;padding-inline:9px}
 .hero-grid{grid-template-columns:minmax(0,1fr);padding-block:15px;gap:10px}
 h1{font-size:clamp(1.55rem,6.8vw,2.2rem);max-width:23ch;text-wrap:pretty}
 .hero-heading .eyebrow,.crumbs{margin-bottom:4px}
 .hero-area{font-size:.84rem;margin-top:.35rem}
 .quote{grid-column:auto;grid-row:auto;padding:12px}
 .quote legend{font-size:1.25rem;margin-bottom:5px}
 .quote fieldset{margin-bottom:8px}
 .quote .quote-kicker{margin-bottom:0}
 .form-preview{font-size:.7rem}
 .chips{gap:4px}.chips span{font-size:.68rem}
 .steps{margin-bottom:5px}
 .hero-facts{grid-row:auto;font-size:.75rem;gap:0 10px}
 .team-card{grid-template-columns:1fr}.team-card picture{max-width:192px}
 .process ul,.footer-grid{grid-template-columns:1fr}
 .mobile-actions{display:flex;align-items:center;justify-content:center;gap:5px;position:fixed;z-index:2;inset:auto 0 0;background:var(--paper);padding:4px 6px calc(5px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
 .mobile-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-size:.73rem;font-weight:760;padding:5px 9px}
}
.hero-guide,.hero-library{background:var(--fog)}
.hero-guide .hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center}
.hero-guide h1,.hero-library h1{font-size:clamp(2.15rem,4.1vw,3.6rem);max-width:24ch;text-wrap:balance}
.hero-guide .guide-topic{margin:14px 0 8px;color:var(--deep)}
.guide-meta,.guide-intro{margin-top:12px;color:var(--muted)}
.guide-meta{font-size:.86rem;font-weight:650}
.guide-cover img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:6px}
.guide-library{display:grid;gap:36px;padding-block:clamp(24px,5vw,54px)}
.guide-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:12px;list-style:none;margin:0;padding:0}
.guide-cards article{position:relative;height:100%;padding:20px 38px 20px 18px;border:1px solid var(--line);border-top:2px solid var(--cedar);background:var(--white);border-radius:5px}
.guide-cards a{display:inline-flex;align-items:center;min-height:44px}
.guide-cards p{margin-top:6px;font-size:.89rem;color:var(--muted)}
.guide-card-arrow{position:absolute;top:20px;right:16px;color:var(--cedar)}
.guide-reading{display:grid;grid-template-columns:minmax(0,1fr) minmax(176px,230px);gap:clamp(20px,5vw,56px);align-items:start}
.guide-reading .article{grid-column:1;grid-row:1}
.guide-toc{grid-column:2;grid-row:1;position:sticky;top:18px;padding:12px 16px;background:var(--fog);border:1px solid var(--line);border-radius:6px}
.guide-toc summary{min-height:36px;cursor:pointer;font-weight:750}
.guide-toc ol{margin:0;padding-left:18px;max-height:65vh;overflow:auto;font-size:.85rem}
.guide-toc li{margin-block:8px}
@media(max-width:690px){
 .hero-guide .hero-grid{grid-template-columns:minmax(0,1fr)}
 .hero-guide h1,.hero-library h1{font-size:clamp(1.7rem,7vw,2.4rem)}
 .guide-cover img{aspect-ratio:16/10;max-height:250px}
 .guide-reading{display:flex;flex-direction:column;gap:16px}
 .guide-toc{position:static;width:100%}
 .guide-cards article{padding-block:12px}
}

.guide-cover img[src$='.svg']{aspect-ratio:auto;object-fit:contain}
