html{color-scheme:light only}
:root{
  color-scheme:light only;
  --ink:#161B17;
  --ink-soft:#4A544C;
  --forest:#1B3A29;
  --forest-lift:#2E5C40;
  --sand:#D9A441;
  --sand-deep:#A97B23;
  --paper:#FAF7F0;
  --paper-warm:#F2EDE1;
  --line:#DCD5C4;
  --white:#fff;
  --radius:14px;
  --radius-sm:9px;
  --wrap:1120px;
  --font:"Bricolage Grotesque",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --body:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font);font-weight:700;line-height:1.12;letter-spacing:-.02em;margin:0 0 .5em}
h1{font-size:clamp(2.1rem,7.2vw,4rem)}
h2{font-size:clamp(1.65rem,5vw,2.6rem)}
h3{font-size:clamp(1.15rem,3vw,1.4rem);letter-spacing:-.01em}
p{margin:0 0 1.1em;max-width:66ch}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:20px}
section{padding-block:clamp(52px,9vw,104px)}
.lede{font-size:clamp(1.05rem,2.6vw,1.24rem);color:var(--ink-soft);line-height:1.6}

/* focus */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid var(--sand);outline-offset:3px;border-radius:4px;
}
.skip{position:absolute;left:-999px;top:0;background:var(--forest);color:#fff;padding:12px 18px;z-index:100}
.skip:focus{left:8px;top:8px}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:50;background:rgba(250,247,240,.94);backdrop-filter:blur(9px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:66px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--font);font-weight:700;font-size:1.08rem;letter-spacing:-.02em;color:var(--forest)}
.brand svg{width:30px;height:30px;flex:none}
.brand span small{display:block;font-family:var(--body);font-weight:400;font-size:.66rem;letter-spacing:.01em;color:var(--ink-soft);line-height:1.2}
.nav{display:none;gap:26px;align-items:center}
.nav a{text-decoration:none;font-size:.94rem;color:var(--ink-soft);padding:6px 0;border-bottom:2px solid transparent}
.nav a:hover{color:var(--forest);border-bottom-color:var(--sand)}
@media(min-width:900px){.nav{display:flex}}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font);font-weight:700;font-size:1rem;letter-spacing:-.01em;
  padding:15px 26px;min-height:52px;border-radius:var(--radius-sm);
  text-decoration:none;border:2px solid transparent;cursor:pointer;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.btn-main{background:var(--forest);color:#fff}
.btn-main:hover{background:var(--forest-lift)}
.btn-sand{background:var(--sand);color:#2A1F06}
.btn-sand:hover{background:#EBB861}
.btn-line{background:transparent;color:var(--forest);border-color:var(--forest)}
.btn-line:hover{background:var(--forest);color:#fff}
.btn-sm{padding:11px 19px;min-height:44px;font-size:.93rem}
.btn-wide{width:100%}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--forest);color:#F0EFE7;padding-block:clamp(46px,8vw,86px) 0;overflow:hidden}
.hero h1{color:#fff;max-width:15ch}
.hero .lede{color:#C9D6CB;max-width:52ch;font-size:clamp(1.06rem,2.7vw,1.28rem)}
.hero-price{display:inline-flex;align-items:baseline;gap:9px;background:rgba(217,164,65,.14);border:1px solid rgba(217,164,65,.4);color:#F0D9A5;padding:8px 15px;border-radius:100px;font-size:.92rem;margin-bottom:22px}
.hero-price b{font-family:var(--font);font-size:1.05rem;color:var(--sand)}
.hero-cta{display:flex;flex-direction:column;gap:11px;margin-top:28px}
@media(min-width:560px){.hero-cta{flex-direction:row;flex-wrap:wrap}}
.hero-trust{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:11px}
@media(min-width:700px){.hero-trust{grid-template-columns:1fr 1fr}}
.hero-trust li{display:flex;gap:10px;align-items:flex-start;font-size:.97rem;color:#CBDACD}
.hero-trust svg{flex:none;width:19px;height:19px;margin-top:3px;color:var(--sand)}
.ridge{display:block;width:100%;height:clamp(78px,13vw,112px);margin-top:clamp(34px,6vw,58px)}
.ridge path{vector-effect:non-scaling-stroke}
.ridge-flip{transform:scaleY(-1);margin:0 0 clamp(34px,6vw,58px)}

/* ---------- generic blocks ---------- */
.head-block{max-width:62ch;margin-bottom:clamp(30px,4.5vw,50px)}
.grid{display:grid;gap:18px}
@media(min-width:720px){.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.g3{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.tint{background:var(--paper-warm)}
.dark{background:var(--forest);color:#E9EFE9}
.dark h2,.dark h3{color:#fff}
.dark p{color:#C4D3C6}

/* why us */
.why{display:grid;gap:26px}
@media(min-width:720px){.why{grid-template-columns:1fr 1fr;gap:30px 40px}}
.why-item h3{margin-bottom:.35em;display:flex;align-items:center;gap:10px}
.why-item h3 svg{width:22px;height:22px;flex:none;color:var(--sand-deep)}
.why-item p{margin:0;font-size:.99rem;color:var(--ink-soft)}

/* steps */
.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:16px}
@media(min-width:800px){.steps{grid-template-columns:repeat(2,1fr)}}
.steps li{counter-increment:s;position:relative;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--sand);border-radius:var(--radius-sm);padding:20px 22px 20px 62px}
.steps li::before{
  content:counter(s);position:absolute;left:20px;top:20px;
  font-family:var(--font);font-weight:700;font-size:1.15rem;color:var(--sand-deep);
}
.steps h3{font-size:1.08rem;margin-bottom:.3em}
.steps p{margin:0;font-size:.96rem;color:var(--ink-soft)}

/* pricing */
.plans{display:grid;gap:18px;align-items:start}
@media(min-width:900px){.plans{grid-template-columns:repeat(3,1fr)}}
.plan{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;display:flex;flex-direction:column;height:100%}
.plan.pick{border:2px solid var(--forest);box-shadow:0 10px 30px rgba(27,58,41,.1);position:relative}
.tag{position:absolute;top:-13px;left:24px;background:var(--sand);color:#2A1F06;font-family:var(--font);font-weight:700;font-size:.79rem;padding:5px 13px;border-radius:100px}
.plan h3{margin-bottom:.15em}
.plan-sub{font-size:.92rem;color:var(--ink-soft);margin:0 0 18px}
.cost{display:flex;align-items:baseline;gap:5px;margin-bottom:6px;font-family:var(--font)}
.cost b{font-size:2.5rem;font-weight:700;letter-spacing:-.03em;color:var(--forest)}
.cost span{font-size:.95rem;color:var(--ink-soft);font-family:var(--body)}
.no-fee{font-size:.85rem;color:var(--sand-deep);font-weight:600;margin:0 0 20px}
.feats{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:11px;flex:1}
.feats li{display:flex;gap:10px;font-size:.95rem;line-height:1.5;color:var(--ink-soft)}
.feats svg{flex:none;width:17px;height:17px;margin-top:4px;color:var(--forest-lift)}
.feats li.top{color:var(--ink);font-weight:600}

/* addons */
.addon{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}
.addon-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}
.addon h3{margin:0;font-size:1.13rem}
.addon-cost{font-family:var(--font);font-weight:700;color:var(--sand-deep);font-size:1.05rem;white-space:nowrap}
.addon ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.addon li{position:relative;padding-left:17px;font-size:.94rem;color:var(--ink-soft)}
.addon li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--sand)}

/* bundles */
.bundle{background:rgba(255,255,255,.07);border:1px solid rgba(217,164,65,.32);border-radius:var(--radius);padding:26px;display:flex;flex-direction:column;height:100%}
.bundle .cost b{color:var(--sand)}
.bundle .cost span{color:#B9C9BB}
.was{font-size:.9rem;color:#9FB2A2;margin:0 0 16px}
.was s{color:#8A9C8C}
.bundle ul{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:9px;flex:1}
.bundle li{position:relative;padding-left:17px;font-size:.95rem;color:#CBD9CD}
.bundle li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--sand)}

/* compact add-on list used on the homepage, under the plans */
.addon-mini{list-style:none;margin:36px 0 0;padding:0;display:grid;gap:10px}
@media(min-width:720px){.addon-mini{grid-template-columns:repeat(2,1fr)}}
.addon-mini a{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:15px 18px;text-decoration:none;min-height:56px;
}
.addon-mini a:hover{border-color:var(--forest)}
.addon-mini .an{color:var(--ink);font-weight:600;font-size:.96rem}
.addon-mini .ap{color:var(--sand-deep);font-weight:700;font-family:var(--font);font-size:.9rem;white-space:nowrap}

/* small teaser blocks that link out to a full page (FAQ / blog / areas) */
.teaser{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(26px,4vw,40px);display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between}
.teaser-copy{flex:1;min-width:240px}
.teaser-copy h2{margin-bottom:.3em}
.teaser-copy p{margin:0;color:var(--ink-soft)}

/* case studies */
.case{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.case-top{padding:22px 24px 0}
.case-kind{font-size:.84rem;color:var(--sand-deep);font-weight:600;margin:0 0 6px}
.case h3{font-size:1.16rem;margin-bottom:.4em}
.case p{font-size:.95rem;color:var(--ink-soft);margin-bottom:1em}
.stats{display:flex;gap:22px;flex-wrap:wrap;border-top:1px solid var(--line);background:var(--paper-warm);padding:16px 24px;margin-top:auto}
.stat b{display:block;font-family:var(--font);font-size:1.45rem;font-weight:700;color:var(--forest);line-height:1.1}
.stat span{font-size:.82rem;color:var(--ink-soft)}
.quote{border-left:3px solid var(--sand);padding-left:15px;margin:0 24px 22px;font-size:.94rem;color:var(--ink-soft);font-style:italic}
.quote cite{display:block;font-style:normal;font-size:.86rem;margin-top:7px;color:var(--forest);font-weight:600}

/* blog */
.post{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;text-decoration:none;display:block;transition:border-color .15s ease}
.post:hover{border-color:var(--forest)}
.post-meta{font-size:.83rem;color:var(--sand-deep);margin:0 0 8px;font-weight:600}
.post h3{font-size:1.09rem;margin-bottom:.35em}
.post p{margin:0;font-size:.93rem;color:var(--ink-soft)}

/* faq */
.faq{max-width:800px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer;list-style:none;padding:19px 44px 19px 0;position:relative;
  font-family:var(--font);font-weight:700;font-size:1.03rem;line-height:1.35;min-height:56px;display:flex;align-items:center;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:10px;top:50%;width:11px;height:11px;
  border-right:2.5px solid var(--sand-deep);border-bottom:2.5px solid var(--sand-deep);
  transform:translateY(-70%) rotate(45deg);transition:transform .18s ease;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq div.a{padding:0 0 20px;color:var(--ink-soft);font-size:.98rem}
.faq div.a p:last-child{margin-bottom:0}

/* form */
.form-grid{display:grid;gap:26px}
@media(min-width:900px){.form-grid{grid-template-columns:1fr 1.15fr;gap:44px}}
label{display:block;font-weight:600;font-size:.93rem;margin-bottom:6px}
input,select,textarea{
  width:100%;font:inherit;font-size:16px;padding:13px 14px;min-height:52px;
  border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--white);color:var(--ink);
}
textarea{min-height:120px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--forest)}
.field{margin-bottom:16px}
.hint{font-size:.86rem;color:var(--ink-soft);margin:7px 0 0}
.form-side p{font-size:.97rem}
.form-side ul{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:11px}
.form-side li{display:flex;gap:10px;font-size:.96rem;color:var(--ink-soft)}
.form-side svg{flex:none;width:18px;height:18px;margin-top:3px;color:var(--sand-deep)}
.wa{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:600;color:var(--forest);font-size:.97rem;padding:13px 0;min-height:50px;border-bottom:1px solid var(--line)}
.wa:last-of-type{border-bottom:0}
.wa svg{flex:none}

/* footer */
footer{background:var(--forest);color:#B6C7B9;padding-block:46px 110px;font-size:.93rem}
@media(min-width:880px){footer{padding-bottom:46px}}
footer a{color:#DCE6DD}
.f-grid{display:grid;gap:28px;margin-bottom:30px}
@media(min-width:700px){.f-grid{grid-template-columns:1.4fr 1fr 1fr}}
.f-grid h4{font-family:var(--font);color:#fff;font-size:.98rem;margin:0 0 12px}
.f-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.f-grid a{text-decoration:none}
.f-grid a:hover{text-decoration:underline}
.f-base{border-top:1px solid rgba(255,255,255,.14);padding-top:22px;font-size:.86rem;color:#93A695}

/* sticky mobile bar */
.bar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:rgba(250,247,240,.97);backdrop-filter:blur(9px);
  border-top:1px solid var(--line);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  display:flex;gap:10px;align-items:center;
}
.bar p{margin:0;font-size:.84rem;line-height:1.3;color:var(--ink-soft);flex:1}
.bar p b{display:block;font-family:var(--font);color:var(--forest);font-size:.98rem}
@media(min-width:880px){.bar{display:none}}

/* Some mobile browsers force a dark theme on light sites. Hold the palette. */
@media (prefers-color-scheme:dark){
  :root{
    --ink:#161B17;--ink-soft:#4A544C;--paper:#FAF7F0;--paper-warm:#F2EDE1;
    --line:#DCD5C4;--white:#fff;
  }
  body{background:var(--paper);color:var(--ink)}
  .card,.plan,.addon,.case,.post,.steps li{background:var(--white)}
  input,select,textarea{background:var(--white);color:var(--ink)}
  .hdr{background:rgba(250,247,240,.94)}
  .bar{background:rgba(250,247,240,.97)}
  .tint{background:var(--paper-warm)}
  .stats{background:var(--paper-warm)}
}

/* ---------- long-form pages (legal, area) ---------- */
.prose{max-width:74ch}
.prose h2{margin-top:2.2em;font-size:clamp(1.35rem,3.6vw,1.85rem)}
.prose h2:first-of-type{margin-top:0}
.prose h3{margin-top:1.7em;font-size:1.08rem}
.prose ul,.prose ol{padding-left:20px;margin:0 0 1.1em;max-width:70ch}
.prose li{margin-bottom:.5em}
.prose table{width:100%;border-collapse:collapse;margin:0 0 1.4em;font-size:.94rem}
.prose th,.prose td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{font-weight:700;background:var(--paper-warm)}
.updated{font-size:.9rem;color:var(--ink-soft);border-left:3px solid var(--sand);padding-left:14px;margin-bottom:2.2em}
.page-head{background:var(--forest);color:#fff;padding-block:clamp(40px,7vw,66px) clamp(30px,5vw,48px)}
.page-head h1{font-size:clamp(1.85rem,5.6vw,3rem);max-width:18ch}
.page-head p{color:#C4D3C6;max-width:56ch;margin-bottom:0}
.crumb{font-size:.9rem;color:#9FB2A2;margin-bottom:14px}
.crumb a{color:#C9D6CB}
.towns{display:flex;flex-wrap:wrap;gap:9px;margin-top:8px;padding:0;list-style:none}
.towns a{display:inline-block;background:var(--white);border:1px solid var(--line);border-radius:100px;padding:9px 16px;text-decoration:none;font-size:.93rem;color:var(--forest);min-height:42px;line-height:24px}
.towns a:hover{border-color:var(--forest);background:var(--paper-warm)}
.callout{background:var(--paper-warm);border:1px solid var(--line);border-left:4px solid var(--sand);border-radius:var(--radius-sm);padding:20px 22px;margin:0 0 1.6em}
.callout p:last-child{margin-bottom:0}

/* ---------- blog listing + posts ---------- */
.blog-grid{display:grid;gap:18px}
@media(min-width:720px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.blog-grid{grid-template-columns:repeat(3,1fr)}}
.blog-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px;text-decoration:none;display:flex;flex-direction:column;height:100%}
.blog-card:hover{border-color:var(--forest)}
.blog-card .cat{font-size:.83rem;color:var(--sand-deep);font-weight:700;margin:0 0 8px}
.blog-card h3{font-size:1.12rem;margin-bottom:.4em}
.blog-card p{margin:0 0 14px;font-size:.95rem;color:var(--ink-soft);flex:1}
.blog-card .rm{font-size:.88rem;font-weight:700;color:var(--forest)}
.post-body{max-width:70ch}
.post-body h2{margin-top:1.8em}
.post-hero{background:var(--forest);color:#fff;padding-block:clamp(38px,6vw,60px) clamp(26px,4vw,40px)}
.post-hero .cat{color:var(--sand);font-weight:700;font-size:.88rem;margin-bottom:10px}
.post-hero h1{max-width:22ch}
.post-meta-row{color:#B9C9BB;font-size:.92rem;margin-top:14px}

/* coverage list on the trimmed homepage areas teaser */
.cov-list{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 0;padding:0;list-style:none}
.cov-list span{background:var(--paper-warm);border:1px solid var(--line);border-radius:100px;padding:6px 13px;font-size:.85rem;color:var(--ink-soft)}

/* ---------- Google Ads landing page ---------- */
.lp-hdr{background:var(--forest);padding-block:14px}
.lp-hdr .wrap{display:flex;align-items:center;justify-content:space-between}
.lp-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(217,164,65,.16);border:1px solid rgba(217,164,65,.4);color:#F0D9A5;padding:6px 14px;border-radius:100px;font-size:.84rem;font-weight:600}
.lp-hero{background:var(--forest);color:#F0EFE7;padding-block:clamp(30px,6vw,54px) clamp(40px,7vw,64px)}
.lp-hero h1{color:#fff}
.lp-form-card{background:var(--white);border-radius:var(--radius);padding:26px 24px;box-shadow:0 20px 50px rgba(0,0,0,.22)}
.lp-form-card h2{font-size:1.3rem;margin-bottom:.2em;color:var(--forest)}
.lp-form-card .sub{color:var(--ink-soft);font-size:.94rem;margin-bottom:18px}
.lp-grid{display:grid;gap:28px;align-items:start}
@media(min-width:960px){.lp-grid{grid-template-columns:1.15fr 1fr;gap:44px}}
.lp-points{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:13px}
.lp-points li{display:flex;gap:10px;font-size:1rem;color:#D3DFD4}
.lp-points svg{flex:none;width:20px;height:20px;margin-top:2px;color:var(--sand)}
.lp-strip{background:var(--paper-warm);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:14px}
.lp-strip .wrap{display:flex;flex-wrap:wrap;gap:10px 26px;justify-content:center;font-size:.88rem;color:var(--ink-soft)}
.lp-strip b{color:var(--forest)}
.lp-mini-plans{display:grid;gap:14px;margin-top:10px}
@media(min-width:640px){.lp-mini-plans{grid-template-columns:repeat(3,1fr)}}
.lp-plan{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);padding:18px}
.lp-plan b{display:block;font-family:var(--font);font-size:1.4rem;color:var(--forest)}
.lp-plan span{font-size:.85rem;color:var(--ink-soft)}

/* template marker banner, visible only when the template file is opened directly */
.tpl-note{background:#3a2a06;color:#F0D9A5;border:1px dashed #D9A441;border-radius:var(--radius-sm);padding:16px 18px;margin-bottom:26px;font-size:.92rem}
.tpl-note code{background:rgba(0,0,0,.25);padding:2px 6px;border-radius:4px}
