*,*::before,*::after{box-sizing:border-box}
/* ============================================================
   VETTED WEALTH — Design System
   Black-and-gold-on-white · private-bank restraint
   Tokens trace to STYLE-GUIDE.md §8
   ============================================================ */
:root{
  color-scheme: light; /* light-mode design throughout — don't let browsers impose dark UA styling */
  --vw-white:#FFFFFF; --vw-ivory:#F3EEE4; --vw-mist:#FAF7F0;
  --vw-ink:#121016; --vw-ink2:#1A1822; --vw-body:#51555E; --vw-muted:#706A60;
  --vw-gold:#B0893A; --vw-gold-accent:#C39A44; --vw-gold-champagne:#DAB868; --vw-gold-deep:#865F10;
  --vw-gold-hairline:rgba(201,162,75,0.22);
  --vw-hairline:#E6DFCF;
  /* Form-control boundaries need 3:1 (WCAG 1.4.11); --vw-hairline (1.33:1) is fine for
     decorative card borders but not for inputs. 3.39:1 on white, 3.17:1 on mist. */
  --vw-field-border:#928B7B;
  --vw-link:#866622; --vw-success:#2E7D5B; --vw-warning:#9A7B2E; --vw-danger:#9E3B2E;
  --vw-serif:"Fraunces",Georgia,"Times New Roman",serif;
  --vw-sans:"Inter",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --vw-lh-body:1.7; --vw-measure:70ch;
  --vw-section-y:clamp(4rem,7.5vw,6.5rem);
  --vw-gutter:clamp(1.35rem,4.5vw,3rem);
  --vw-maxw:1240px;
  --vw-radius:12px; --vw-radius-sm:9px;
  --vw-shadow-whisper:0 1px 2px rgba(18,16,22,0.05);
  --vw-shadow-card:0 22px 50px -34px rgba(18,16,22,0.3);
  --vw-ease:cubic-bezier(.4,0,.2,1);
}
html,body{font-optical-sizing:auto}
h1,h2,h3,h4{letter-spacing:-.012em}

/* ---------- base ---------- */
html{scroll-behavior:smooth}
html,body{overflow-x:hidden;max-width:100%}
/* prevent grid/flex children from forcing overflow (min-width:auto trap) */
.vw-hero__grid>*,.vw-imghero__grid>*,.vw-intro>*,.vw-problem__grid>*,.vw-promise>*,.vw-finalcta>*,.vw-lochero__grid>*,.vw-locbody>*{min-width:0}
.vw-leadform{max-width:100%}
.vw-matcher,.vw-glancepanel,.vw-glancepanel dl{min-width:0}
body{
  font-family:var(--vw-sans);
  font-size:clamp(1.05rem,1.15vw,1.175rem);
  line-height:var(--vw-lh-body);
  color:var(--vw-body);
  background:var(--vw-white);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:var(--vw-serif);color:var(--vw-ink);font-weight:600;line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.2rem,4vw,3.25rem)}
h2{font-size:clamp(1.7rem,2.6vw,2.4rem)}
h3{font-size:clamp(1.3rem,1.8vw,1.6rem)}
p{margin:0 0 1.15em;max-width:var(--vw-measure)}
a{color:var(--vw-link);text-decoration:none}

/* ---------- text on DARK components ----------
   Two site-wide traps, both invisible to a stylesheet-token audit:

   1. `strong{color:var(--vw-ink)}` below is right on white and catastrophic on ink —
      inside .vw-callout it renders #121016 on #121016, a 1.00:1 ratio. Literally invisible.
   2. --vw-link (#866622) is tuned for light backgrounds (>=4.5:1 on white/ivory/mist).
      On ink it reaches only 3.54:1.

   Every dark-background component must therefore restate both. Champagne is 9.93:1 on ink.
   Buttons and meshcards carry their own colours and must not be overridden. */
.vw-cta a:not(.vw-btn):not(.vw-meshcard),
.vw-midcta a:not(.vw-btn):not(.vw-meshcard),
.vw-callout a:not(.vw-btn):not(.vw-meshcard),
.vw-protect a:not(.vw-btn):not(.vw-meshcard),
.vw-section--ink a:not(.vw-btn):not(.vw-meshcard){color:var(--vw-gold-champagne)}

.vw-callout strong,.vw-callout b,
.vw-cta strong,.vw-cta b,
.vw-protect strong,.vw-protect b,
.vw-leadform__top strong,.vw-leadform__top b,
.vw-section--ink strong,.vw-section--ink b,
.vw-footer strong,.vw-footer b{color:#fff}
/* …but the lead form is a WHITE card nested inside the ink band — restore its own palette.
   NOTE specificity: `.vw-section--ink a:not(.vw-btn):not(.vw-meshcard)` is (0,3,1) because
   each :not() contributes its argument's weight. A plain `.vw-section--ink .vw-leadform__body a`
   is only (0,2,1) and LOSES — which painted the consent link champagne-on-white (1.90:1).
   Matching the :not()s brings this to (0,4,1) so the card wins. */
.vw-section--ink .vw-leadform strong,.vw-section--ink .vw-leadform b{color:var(--vw-ink)}
.vw-section--ink .vw-leadform a:not(.vw-btn):not(.vw-meshcard){color:var(--vw-link)}
a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--vw-gold)}
img{max-width:100%;height:auto;display:block}
strong{color:var(--vw-ink)}
::selection{background:var(--vw-gold-hairline)}

/* ---------- layout ---------- */
.vw-wrap{max-width:var(--vw-maxw);margin:0 auto;padding-inline:var(--vw-gutter)}
.vw-narrow{max-width:760px;margin:0 auto;padding-inline:var(--vw-gutter)}
.vw-section{padding-block:var(--vw-section-y)}
.vw-section--ivory{background:var(--vw-ivory)}
.vw-section--tight{padding-block:clamp(2.5rem,5vw,4rem)}

/* ---------- eyebrow ---------- */
.vw-eyebrow{
  font-family:var(--vw-sans);font-size:.72rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;color:var(--vw-gold-deep);
  margin:0 0 1.1rem;display:inline-flex;align-items:center;gap:.5rem;
  background:rgba(156,124,56,.09);border:1px solid rgba(156,124,56,.24);
  padding:.42rem .9rem;border-radius:100px;
}
.vw-eyebrow::before{display:none}
.vw-sechead--center .vw-eyebrow{margin-inline:auto}

/* ---------- skip link + a11y ---------- */
.vw-skip{position:absolute;left:-9999px;top:0;background:var(--vw-ink);color:#fff;padding:.75rem 1.25rem;z-index:200}
.vw-skip:focus{left:.5rem;top:.5rem}
:focus-visible{outline:2px solid var(--vw-gold-deep);outline-offset:2px}

/* ---------- header / nav ---------- */
.vw-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.1) blur(6px);border-bottom:1px solid var(--vw-hairline)}
.vw-header__bar{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:76px}
.vw-brand{display:inline-block;font-family:var(--vw-serif);font-size:1.55rem;font-weight:600;color:var(--vw-ink);letter-spacing:.005em;white-space:nowrap;line-height:1.25;padding-block:2px;word-spacing:-.15em}
.vw-brand:hover{text-decoration:none}
.vw-brand__mark{color:var(--vw-gold)}
.vw-brand__tld{font-family:var(--vw-sans);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--vw-muted)}
.vw-nav{display:flex;align-items:center;gap:1.75rem}
.vw-nav a{color:var(--vw-body);font-size:.98rem;font-weight:400}
.vw-nav a:hover{color:var(--vw-ink);text-decoration-color:var(--vw-gold)}
.vw-nav__cta{background:var(--vw-gold);color:#1a1410 !important;padding:.58rem 1.15rem;border-radius:9px;font-weight:600 !important}
.vw-nav__cta:hover{filter:brightness(1.07);text-decoration:none !important}
.vw-navtoggle{display:none;background:none;border:0;font-size:1.5rem;color:var(--vw-ink);cursor:pointer}

/* ---------- buttons ---------- */
.vw-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:var(--vw-sans);font-size:1rem;font-weight:600;line-height:1;
  padding:.95rem 1.6rem;border-radius:var(--vw-radius-sm);cursor:pointer;
  transition:transform .15s var(--vw-ease),border-color .15s var(--vw-ease),background .15s var(--vw-ease),filter .15s var(--vw-ease);
  text-decoration:none !important;border:1px solid transparent;
}
.vw-btn--primary{background:var(--vw-gold);color:#1a1410}
.vw-btn--primary:hover{transform:translateY(-1px);filter:brightness(1.07)}
.vw-btn--ghost{background:transparent;color:var(--vw-ink);border-color:var(--vw-gold-hairline)}
.vw-btn--ghost:hover{background:var(--vw-ivory);border-color:var(--vw-gold)}
.vw-btn--lg{padding:1.1rem 2rem;font-size:1.05rem}
.vw-btn--block{display:flex;width:100%;max-width:100%}
.vw-leadform,.vw-leadform__form,.vw-step-panel,.vw-formrow,.vw-form-2col{min-width:0}

/* ---------- hero (homepage) ---------- */
.vw-hero{padding-block:clamp(3.5rem,7vw,6rem) clamp(2.5rem,5vw,4rem);background:linear-gradient(180deg,#fff 0%,var(--vw-ivory) 100%)}
.vw-hero__inner{max-width:880px}
.vw-hero h1{font-size:clamp(2.6rem,5vw,4.25rem);line-height:1.08;margin-bottom:.4em}
.vw-hero__lead{font-size:clamp(1.15rem,1.5vw,1.35rem);color:var(--vw-body);max-width:60ch;margin-bottom:2rem}

/* ---------- matcher ---------- */
.vw-matcher{background:#fff;border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);box-shadow:var(--vw-shadow-whisper);padding:1.4rem;display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:end;max-width:820px}
.vw-field{display:flex;flex-direction:column;gap:.4rem;text-align:left}
.vw-field label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--vw-muted)}
.vw-field select,.vw-field input{
  font-family:var(--vw-sans);font-size:1.02rem;color:var(--vw-ink);
  padding:.85rem .9rem;border:1px solid var(--vw-field-border);border-radius:var(--vw-radius);
  background:var(--vw-white);width:100%;transition:border-color .15s var(--vw-ease)
}
.vw-field select:focus-visible,.vw-field input:focus-visible{border-color:var(--vw-gold);outline:2px solid var(--vw-gold-deep);outline-offset:2px}
.vw-matcher__note{font-size:.85rem;color:var(--vw-muted);margin:.9rem 0 0}

/* ---------- trust strip ---------- */
.vw-trust{background:var(--vw-ivory);border-top:1px solid var(--vw-gold-hairline);border-bottom:1px solid var(--vw-gold-hairline)}
.vw-trust__row{display:flex;flex-wrap:wrap;gap:.5rem 2.25rem;justify-content:center;padding:1.1rem 0;list-style:none;margin:0}
.vw-trust__row li{display:inline-flex;align-items:center;gap:.55rem;font-size:.92rem;color:var(--vw-ink);font-weight:500}
.vw-trust__tick{color:var(--vw-gold);flex:none}

/* ---------- editorial band ---------- */
.vw-heroband{height:clamp(180px,24vw,300px);background-size:cover;background-position:center;background-repeat:no-repeat;border-bottom:1px solid var(--vw-gold-hairline)}

/* ---------- section heading block ---------- */
.vw-sechead{max-width:640px;margin-bottom:2.5rem}
.vw-sechead--center{margin-inline:auto;text-align:center}
.vw-sechead p{color:var(--vw-muted);margin-top:.5rem}
/* .vw-eyebrow is a <p>, so `.vw-sechead p` (0,1,1) was overriding `.vw-eyebrow` (0,1,0)
   and painting it muted — 4.23:1 against its own tinted pill background. Restate it. */
.vw-sechead .vw-eyebrow{color:var(--vw-gold-deep)}

/* ---------- card grids ---------- */
.vw-grid{display:grid;gap:1.25rem}
.vw-grid--3{grid-template-columns:repeat(3,1fr)}
.vw-grid--2{grid-template-columns:repeat(2,1fr)}
.vw-grid--4{grid-template-columns:repeat(4,1fr)}
.vw-card{background:#fff;border:1px solid var(--vw-hairline);border-radius:var(--vw-radius);padding:1.6rem 1.5rem;transition:border-color .2s var(--vw-ease),transform .2s var(--vw-ease);box-shadow:var(--vw-shadow-whisper);display:block}
.vw-card:hover{border-color:var(--vw-gold);transform:translateY(-2px);text-decoration:none}
.vw-card h3{font-size:1.28rem;margin-bottom:.35rem}
.vw-card p{font-size:.96rem;color:var(--vw-muted);margin:0}
.vw-card__ico{color:var(--vw-gold);margin-bottom:1rem;width:40px;height:40px}
.vw-card__more{display:inline-block;margin-top:1rem;font-size:.9rem;font-weight:600;color:var(--vw-gold-deep)}

/* area chips */
.vw-areas{display:flex;flex-wrap:wrap;gap:.6rem}
.vw-chip{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--vw-hairline);border-radius:999px;padding:.5rem 1rem;font-size:.92rem;color:var(--vw-ink);background:#fff;transition:border-color .15s var(--vw-ease)}
.vw-chip:hover{border-color:var(--vw-gold);text-decoration:none}
.vw-chip--soon{color:var(--vw-muted);background:var(--vw-mist);border-style:dashed}
.vw-chip--soon .vw-chip__tag{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--vw-gold-deep)}

/* ---------- how it works ---------- */
.vw-steps{counter-reset:vw;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.vw-step{position:relative;padding-top:1.5rem;border-top:1px solid var(--vw-gold-hairline)}
.vw-step::before{counter-increment:vw;content:"0" counter(vw);font-family:var(--vw-serif);font-size:2rem;color:var(--vw-gold);display:block;margin-bottom:.5rem}
.vw-step h3{font-size:1.25rem}
.vw-step p{color:var(--vw-muted);font-size:.98rem}

/* ---------- vetting promise ---------- */
.vw-promise{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.vw-promise__list{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;gap:1rem}
.vw-promise__list li{display:flex;gap:.85rem;align-items:flex-start;font-size:1rem}
.vw-promise__list .vw-trust__tick{margin-top:.25rem}

/* ---------- FAQ ---------- */
.vw-faq{max-width:820px;margin:0 auto}
.vw-faq details{border-bottom:1px solid var(--vw-hairline);padding:1.15rem 0}
.vw-faq summary{font-family:var(--vw-serif);font-size:1.22rem;color:var(--vw-ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.vw-faq summary::-webkit-details-marker{display:none}
.vw-faq summary::after{content:"+";color:var(--vw-gold);font-family:var(--vw-sans);font-size:1.5rem;transition:transform .2s var(--vw-ease)}
.vw-faq details[open] summary::after{transform:rotate(45deg)}
.vw-faq details p{margin:.9rem 0 0;color:var(--vw-body)}

/* ---------- CTA band ---------- */
.vw-cta{background:var(--vw-ink);color:#fff;text-align:center}
.vw-cta h2{color:#fff}
.vw-cta p{color:rgba(255,255,255,.78);margin-inline:auto}
.vw-cta .vw-eyebrow{color:var(--vw-gold-champagne)}
.vw-cta .vw-eyebrow::before{background:var(--vw-gold-champagne)}

/* ---------- interior page ---------- */
.vw-page-hero{padding-block:clamp(2.5rem,5vw,4rem) clamp(1.5rem,3vw,2.5rem);background:linear-gradient(180deg,#fff,var(--vw-ivory))}
.vw-page-hero h1{max-width:20ch}
.vw-page-hero__lead{font-size:1.3rem;color:var(--vw-body);max-width:62ch;margin-top:.5rem}
.vw-prose{max-width:var(--vw-measure)}
.vw-lead,.vw-prose>.vw-lead{font-size:clamp(1.2rem,1.6vw,1.4rem);line-height:1.6;color:var(--vw-ink);max-width:60ch;font-weight:400}
.vw-prose h2{margin-top:2.2em}
.vw-prose h3{margin-top:1.6em}
.vw-prose ul:not(.vw-checklist),.vw-prose ol{padding-left:1.3em;margin:0 0 1.15em;max-width:var(--vw-measure)}
.vw-prose li{margin-bottom:.5em}
.vw-prose blockquote{border-left:2px solid var(--vw-gold);margin:1.5em 0;padding:.3em 0 .3em 1.4em;font-family:var(--vw-serif);font-size:1.35rem;color:var(--vw-ink)}
.vw-layout{display:grid;grid-template-columns:1fr;gap:0}

/* breadcrumbs */
.vw-crumbs{font-size:.85rem;color:var(--vw-muted);padding-block:1rem}
.vw-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0}
.vw-crumbs li::after{content:"›";margin-left:.5rem;color:var(--vw-gold)}
.vw-crumbs li:last-child::after{content:""}
.vw-crumbs a{color:var(--vw-muted)}
.vw-crumbs a:hover{color:var(--vw-gold-deep)}

/* nearby / related blocks */
.vw-related{background:var(--vw-ivory);border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);padding:1.5rem}
.vw-related h3{font-size:1.15rem;margin-bottom:.75rem}
.vw-linklist{list-style:none;padding:0;margin:0;columns:2;gap:1.5rem}
.vw-linklist li{margin-bottom:.5rem;break-inside:avoid}

/* disclaimer */
.vw-disclaimer{font-size:.82rem;color:var(--vw-muted);border-top:1px solid var(--vw-hairline);margin-top:2rem;padding-top:1.25rem;max-width:var(--vw-measure)}
.vw-riskwarn{background:var(--vw-mist);border-left:2px solid var(--vw-warning);padding:.9rem 1.1rem;font-size:.9rem;color:var(--vw-body);margin:1.5em 0}

.vw-midform{margin:clamp(2.5rem,5vw,4rem) 0}
/* local page blocks */
.vw-localgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0}
.vw-localstat{background:var(--vw-ivory);border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);padding:1.1rem 1.25rem}
.vw-localstat strong{display:block;font-family:var(--vw-serif);font-size:1.5rem;color:var(--vw-ink)}
.vw-localstat span{font-size:.85rem;color:var(--vw-muted)}
.vw-midcta{background:var(--vw-ink);color:#fff;border-radius:var(--vw-radius);padding:1.5rem 1.75rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin:2rem 0}
.vw-midcta p{margin:0;color:rgba(255,255,255,.82);max-width:46ch}
.vw-midcta strong{color:#fff;font-family:var(--vw-serif);font-size:1.25rem;display:block;margin-bottom:.2rem}
@media (max-width:768px){.vw-localgrid{grid-template-columns:1fr}}
/* ---------- lead form (CRM dummy) ---------- */
.vw-leadform{background:#fff;border:1px solid rgba(201,162,75,.3);border-radius:16px;box-shadow:var(--vw-shadow-card);overflow:hidden;max-width:640px;padding:0}
.vw-leadform__top{background:var(--vw-ink);padding:1.3rem 1.6rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.vw-leadform__badge{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--vw-gold-champagne);margin:0}
.vw-leadform__top h2{color:#fff;font-size:1.45rem;margin:.15rem 0 0}
.vw-leadform__free{font-family:var(--vw-serif);color:var(--vw-gold-champagne);font-size:1.7rem;line-height:1;flex:none}
.vw-leadform__body{padding:1.6rem}
/* matcher stacked inside a hero card */
.vw-leadform__body .vw-matcher{grid-template-columns:1fr;background:none;border:0;box-shadow:none;padding:0;max-width:none;gap:.9rem}
.vw-leadform__body .vw-matcher .vw-btn{width:100%}
.vw-leadform__body .vw-matcher .vw-field select,.vw-leadform__body .vw-matcher .vw-field input{background:var(--vw-mist);border-radius:9px}
.vw-microtrust{font-size:.85rem;color:var(--vw-muted);margin:0}
.vw-leadform__sub{color:var(--vw-muted);font-size:.95rem;margin-bottom:1.4rem}
.vw-leadform__steps{display:flex;gap:.4rem;margin-bottom:1.4rem}
.vw-leadform__steps span{flex:1;height:4px;background:var(--vw-hairline);border-radius:4px}
.vw-leadform__steps span.is-active{background:var(--vw-gold)}
.vw-formrow{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.1rem}
.vw-formrow label{font-size:.82rem;font-weight:600;color:var(--vw-ink)}
.vw-formrow input,.vw-formrow select,.vw-formrow textarea{
  font-family:var(--vw-sans);font-size:1rem;padding:.8rem .9rem;border:1px solid var(--vw-field-border);
  border-radius:var(--vw-radius);background:var(--vw-mist);color:var(--vw-ink);width:100%
}
.vw-formrow input:focus-visible,.vw-formrow select:focus-visible,.vw-formrow textarea:focus-visible{border-color:var(--vw-gold);background:#fff;outline:2px solid var(--vw-gold-deep);outline-offset:2px}
.vw-form-2col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.vw-reassure{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--vw-muted);margin-top:1rem}
.vw-step-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:.5rem}
.vw-step-panel{animation:vwfade .3s var(--vw-ease)}
@keyframes vwfade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.vw-step-panel{animation:none}.vw-leadform__bar span{transition:none}}

/* ---------- multi-step lead form (real submissions) ---------- */
.vw-leadform__progress{margin-bottom:1.3rem}
.vw-leadform__bar{height:5px;background:var(--vw-hairline);border-radius:4px;overflow:hidden}
.vw-leadform__bar span{display:block;height:100%;background:var(--vw-gold);border-radius:4px;transition:width .32s var(--vw-ease)}
.vw-leadform__count{margin:.55rem 0 0;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--vw-gold-deep)}

/* each step is a <fieldset>; its <legend> is the step title (no heading level used) */
.vw-step-panel{border:0;padding:0;margin:0;min-width:0}
.vw-step-legend{font-family:var(--vw-serif);font-size:1.22rem;font-weight:600;color:var(--vw-ink);padding:0;margin:0 0 .3rem}
.vw-step-intro{font-size:.9rem;color:var(--vw-muted);margin:0 0 1.2rem}
.vw-formrow--full{grid-column:1/-1}
.vw-formhelp{font-size:.79rem;color:var(--vw-muted);margin:0}
.vw-req{color:var(--vw-danger);margin-left:.15rem}
.vw-svcq{min-width:0}

.vw-checkgroup{border:0;padding:0;margin:0;min-width:0}
.vw-checkgroup legend{font-size:.82rem;font-weight:600;color:var(--vw-ink);padding:0;margin-bottom:.55rem}
.vw-checkgroup__opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.45rem .9rem}
.vw-checkopt{display:flex;align-items:flex-start;gap:.55rem;font-size:.9rem;font-weight:400;color:var(--vw-body);cursor:pointer}
.vw-checkopt input{width:auto;margin-top:.25rem;flex:none}

.vw-consent label{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;font-size:.84rem;color:var(--vw-body);line-height:1.5}
.vw-consent input{width:auto;margin-top:.25rem;flex:none}

.vw-formerrors,.vw-formerror{background:#FCF2F0;border-left:3px solid var(--vw-danger);color:var(--vw-danger);font-size:.87rem;font-weight:600;padding:.72rem .9rem;border-radius:6px;margin-bottom:1rem}
.vw-fielderr{font-size:.79rem;color:var(--vw-danger);margin:0;font-weight:600}
.vw-formrow input[aria-invalid=true],.vw-formrow select[aria-invalid=true],.vw-formrow textarea[aria-invalid=true]{border-color:var(--vw-danger)}

/* honeypot — off-screen for people, reachable by bots */
.vw-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

.vw-leadform__done{padding:.5rem 0 1rem}
.vw-leadform__done:focus{outline:none}
.vw-leadform__donehead{font-family:var(--vw-serif);font-size:1.35rem;color:var(--vw-ink);margin:0 0 .6rem;line-height:1.25}
.vw-leadform__done p{color:var(--vw-body);margin:0}

/* ---------- lead form inside a dark section (the final CTA band) ----------
   The form is a WHITE card, but `.vw-section--ink p{color:rgba(255,255,255,.72)}`
   (specificity 0,2,1) outranks the single-class colours above (0,1,0) and paints the
   card's body copy white-on-white — a 1.0:1 contrast ratio, i.e. invisible.
   Restore the card's own palette wherever it is nested in an ink section.
   The __top strip is genuinely dark, so its heading stays white.               */
.vw-section--ink .vw-leadform__body p{color:var(--vw-body)}
.vw-section--ink .vw-leadform__sub,
.vw-section--ink .vw-step-intro,
.vw-section--ink .vw-formhelp,
.vw-section--ink .vw-reassure{color:var(--vw-muted)}
/* The matcher note may sit on the ink background itself (muted is 3.53:1 there — a fail)
   or inside the white card (where muted is correct). Handle both, card wins on specificity. */
.vw-section--ink .vw-matcher__note{color:rgba(255,255,255,.82);text-align:center;margin-inline:auto}
.vw-section--ink .vw-leadform__body .vw-matcher__note{color:var(--vw-muted)}
.vw-section--ink .vw-leadform__count{color:var(--vw-gold-deep)}
.vw-section--ink .vw-leadform__donehead{color:var(--vw-ink)}
.vw-section--ink .vw-step-legend,
.vw-section--ink .vw-formrow label,
.vw-section--ink .vw-checkgroup legend{color:var(--vw-ink)}
.vw-section--ink .vw-consent label,
.vw-section--ink .vw-consent label span,
.vw-section--ink .vw-checkopt{color:var(--vw-body)}
.vw-section--ink .vw-fielderr,
.vw-section--ink .vw-formerrors,
.vw-section--ink .vw-formerror{color:var(--vw-danger)}
.vw-section--ink .vw-leadform__body a{color:var(--vw-link)}
.vw-section--ink .vw-leadform__top h2{color:#fff}

@media(max-width:560px){.vw-form-2col{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.vw-footer{background:var(--vw-ink);color:rgba(255,255,255,.72);padding-block:clamp(3rem,6vw,4.5rem) 2rem;font-size:.92rem}
.vw-footer a{color:rgba(255,255,255,.72)}
.vw-footer a:hover{color:#fff;text-decoration-color:var(--vw-gold-champagne)}
.vw-footer__top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem;padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.12)}
.vw-footer__brand{font-family:var(--vw-serif);font-size:1.5rem;color:#fff;margin-bottom:.5rem;line-height:1.25;word-spacing:-.15em}
.vw-footer__brand span{color:var(--vw-gold-champagne)}
.vw-footer h2{color:#fff;font-family:var(--vw-sans);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;margin:0 0 1rem}
.vw-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.vw-footer__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:2rem;font-size:.82rem;color:rgba(255,255,255,.55)}
.vw-footer__credit a{color:var(--vw-gold-champagne)}
.vw-footer__disc{max-width:var(--vw-measure);margin-top:1.25rem;font-size:.78rem;color:rgba(255,255,255,.45);line-height:1.6}

/* ---------- motion (reveal) ----------
   Content is VISIBLE BY DEFAULT. Hiding only applies once JS confirms it can
   animate (adds html.vw-anim) AND guarantees a reveal (observer + failsafe).
   This makes it impossible for a JS issue to leave the page blank. */
.vw-reveal{opacity:1;transform:none}
html.vw-anim .vw-reveal{opacity:0;transform:translateY(14px)}
html.vw-anim .vw-reveal.vw-inview{opacity:1;transform:none;transition:opacity .6s var(--vw-ease),transform .6s var(--vw-ease)}
@media (prefers-reduced-motion:reduce){
  html.vw-anim .vw-reveal{opacity:1 !important;transform:none !important}
  html{scroll-behavior:auto}
}

/* ============================================================
   SONIC BOOM — high-conversion layer (brand-safe: restraint kept)
   ============================================================ */

/* asymmetric split hero */
.vw-hero--split{overflow:hidden}
.vw-hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.vw-hero__lead{margin-bottom:1.5rem}
.vw-proofline{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:0 0 1.75rem;padding:0;list-style:none}
.vw-proofline li{display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;color:var(--vw-ink);font-weight:600}
.vw-proofline .vw-trust__tick{color:var(--vw-gold)}
.vw-hero__ctarow{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1.25rem}
.vw-hero__ctarow .vw-microtrust{font-size:.85rem;color:var(--vw-muted);flex-basis:100%;margin:.4rem 0 0}
.vw-hero__figure{position:relative}
.vw-hero__figure img{width:100%;height:100%;object-fit:cover;border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);box-shadow:0 24px 60px -30px rgba(20,20,26,.35);aspect-ratio:4/5}
.vw-hero__figure--wide img,.vw-hero__figure--wide .vw-imgph{aspect-ratio:4/3}
.vw-hero__badge{position:absolute;left:-1.5rem;bottom:1.75rem;background:#fff;border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);box-shadow:0 12px 30px -14px rgba(20,20,26,.3);padding:1rem 1.25rem;max-width:230px}
.vw-hero__badge strong{display:block;font-family:var(--vw-serif);font-size:1.9rem;color:var(--vw-gold-deep);line-height:1}
.vw-hero__badge span{font-size:.85rem;color:var(--vw-muted)}

/* problem section */
.vw-problem__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.vw-pains{display:grid;gap:1px;background:var(--vw-hairline);border:1px solid var(--vw-hairline);border-radius:var(--vw-radius);overflow:hidden}
.vw-pain{background:#fff;padding:1.4rem 1.5rem;display:flex;gap:1rem;align-items:flex-start}
.vw-pain__ico{color:var(--vw-gold);flex:none;margin-top:.15rem}
.vw-pain h3{font-size:1.15rem;margin-bottom:.2rem}
.vw-pain p{font-size:.95rem;color:var(--vw-muted);margin:0}
.vw-contrast{margin-top:1.5rem;font-family:var(--vw-serif);font-size:1.4rem;color:var(--vw-ink)}
.vw-contrast b{color:var(--vw-gold-deep);font-weight:600}

/* dark ink section (proof / drama) */
.vw-section--ink{background:var(--vw-ink);color:rgba(255,255,255,.82);position:relative}
.vw-section--ink::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,var(--vw-gold),transparent);opacity:.55}
.vw-section--ink h2,.vw-section--ink h3{color:#fff}
.vw-section--ink .vw-eyebrow{color:var(--vw-gold-champagne)}
.vw-section--ink .vw-eyebrow::before{background:var(--vw-gold-champagne)}
.vw-section--ink p{color:rgba(255,255,255,.72)}
.vw-statband{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:2.5rem;border-top:1px solid rgba(255,255,255,.14);padding-top:2.5rem}
.vw-stat{text-align:center}
.vw-stat strong{display:block;font-family:var(--vw-serif);font-size:clamp(2.2rem,4vw,3rem);color:var(--vw-gold-champagne);line-height:1}
.vw-stat span{font-size:.9rem;color:rgba(255,255,255,.62)}

/* testimonial / editorial quote */
.vw-quote{max-width:820px}
.vw-quote blockquote{font-family:var(--vw-serif);font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.32;color:#fff;margin:0;border:0;padding:0}
.vw-quote blockquote::before{content:"\201C";color:var(--vw-gold);font-size:2.5em;line-height:0;vertical-align:-.35em;margin-right:.1em}
.vw-quote__by{display:flex;align-items:center;gap:.9rem;margin-top:1.75rem}
.vw-quote__mono{width:46px;height:46px;border:1px solid var(--vw-gold-champagne);border-radius:999px;display:flex;align-items:center;justify-content:center;font-family:var(--vw-serif);color:var(--vw-gold-champagne);font-size:1.1rem;flex:none}
.vw-quote__by cite{font-style:normal;color:#fff;font-weight:600;display:block}
.vw-quote__by small{color:rgba(255,255,255,.55)}

/* credential badges */
.vw-creds{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}
.vw-cred{display:inline-flex;align-items:center;gap:.6rem;border:1px solid rgba(201,162,75,.4);border-radius:var(--vw-radius);padding:.6rem 1rem;font-size:.88rem;color:#fff}
.vw-cred svg{color:var(--vw-gold-champagne);flex:none}

/* named method — D step cards */
.vw-method{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;counter-reset:vwm;margin-top:2.5rem}
.vw-method__step{background:#fff;border:1px solid var(--vw-hairline);border-radius:var(--vw-radius);padding:1.5rem}
.vw-method__step::before{counter-increment:vwm;content:counter(vwm);display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9px;background:var(--vw-ink);color:#fff;font-family:var(--vw-sans);font-weight:700;font-size:1rem;margin-bottom:1rem}
.vw-method__step h3{font-size:1.2rem;margin-bottom:.35rem}
.vw-method__step p{font-size:.94rem;color:var(--vw-muted);margin:0}
/* dark-section variant */
.vw-section--ink .vw-method__step{background:var(--vw-ink2);border-color:var(--vw-gold-hairline)}
.vw-section--ink .vw-method__step::before{background:var(--vw-gold);color:#1a1410}
.vw-section--ink .vw-method__step p{color:var(--vw-muted)}

/* mobile sticky CTA */
.vw-stickycta{position:fixed;left:0;right:0;bottom:0;z-index:90;background:rgba(20,20,26,.97);backdrop-filter:blur(6px);border-top:1px solid var(--vw-gold);padding:.7rem var(--vw-gutter);display:none;align-items:center;justify-content:space-between;gap:1rem}
.vw-stickycta span{color:#fff;font-size:.92rem;font-weight:600}
.vw-stickycta .vw-btn{padding:.7rem 1.2rem;font-size:.95rem}

/* ============================================================
   LOCATION / COMMERCIAL AUTHORITY PAGE (highest-converting)
   ============================================================ */
.vw-lochero{padding-block:clamp(2.5rem,5vw,4rem);background:linear-gradient(180deg,#fff,var(--vw-ivory))}
.vw-lochero__grid{display:grid;grid-template-columns:1fr minmax(360px,430px);gap:clamp(2rem,4vw,3.5rem);align-items:start}
.vw-lochero__copy{align-self:center}
.vw-lochero h1{max-width:15ch;font-size:clamp(2.1rem,3.6vw,3rem)}
.vw-lochero__lead{font-size:1.2rem;color:var(--vw-body);margin:.5rem 0 1.25rem;max-width:50ch}
.vw-herobullets{list-style:none;padding:0;margin:1.25rem 0 0;display:grid;gap:.6rem}
.vw-herobullets li{display:flex;gap:.6rem;align-items:flex-start;font-size:.95rem;color:var(--vw-body)}
.vw-herobullets .vw-trust__tick{color:var(--vw-gold);margin-top:.15rem;flex:none}
.vw-lochero__form .vw-leadform{box-shadow:0 24px 60px -30px rgba(20,20,26,.4)}
/* at-a-glance band (full width, replaces sidebar) */
.vw-glanceband{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--vw-gold-hairline);border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);overflow:hidden}
.vw-glancecell{background:#fff;padding:1.2rem 1.4rem;text-align:center}
.vw-glancecell strong{display:block;font-family:var(--vw-serif);font-size:1.45rem;color:var(--vw-ink);line-height:1.1}
.vw-glancecell span{font-size:.8rem;color:var(--vw-muted)}
/* final cta 2-col */
.vw-finalcta{display:grid;grid-template-columns:1fr minmax(360px,430px);gap:clamp(2rem,4vw,3.5rem);align-items:start}
.vw-finalcta__copy{align-self:center}
.vw-lochero__fig{position:relative}
.vw-lochero__fig img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);box-shadow:0 22px 55px -30px rgba(20,20,26,.35)}
.vw-lochero__badge{position:absolute;left:-1rem;bottom:1.25rem;background:#fff;border:1px solid var(--vw-gold-hairline);box-shadow:0 12px 30px -14px rgba(20,20,26,.3);padding:.85rem 1.1rem;border-radius:var(--vw-radius)}
.vw-lochero__badge strong{display:block;font-family:var(--vw-serif);font-size:1.6rem;color:var(--vw-gold-deep);line-height:1}
.vw-lochero__badge span{font-size:.8rem;color:var(--vw-muted)}

/* two-column body with sticky conversion sidebar */
.vw-locbody{display:grid;grid-template-columns:1fr 380px;gap:clamp(2rem,4vw,3.5rem);align-items:start}
.vw-locmain{min-width:0}
.vw-locmain .vw-prose{max-width:none}
.vw-locside{position:sticky;top:96px;display:grid;gap:1.25rem}
.vw-sidecard{background:#fff;border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);box-shadow:var(--vw-shadow-whisper);padding:1.35rem}
.vw-sidecard h3{font-size:1.15rem;margin-bottom:.75rem}
.vw-sidetrust{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.vw-sidetrust li{display:flex;gap:.55rem;align-items:flex-start;font-size:.9rem;color:var(--vw-body)}
.vw-sidetrust .vw-trust__tick{margin-top:.15rem;flex:none}
.vw-glance{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}
.vw-glance li{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;border-bottom:1px solid var(--vw-hairline);padding-bottom:.6rem}
.vw-glance li:last-child{border-bottom:0;padding-bottom:0}
.vw-glance b{color:var(--vw-ink);font-weight:600;text-align:right}
.vw-glance span{color:var(--vw-muted)}
.vw-sidelinks{list-style:none;margin:.25rem 0 0;padding:0;display:grid;gap:.4rem}
.vw-sidelinks a{font-size:.92rem}

/* ===== long-form Authority article: readable column + full-width breakouts ===== */
/* ONE centred content column: headings, body text, cards and tables all share the same
   left+right edges and the whole column is centred on the page (equidistant margins).
   Body text keeps a readable measure, left-aligned to that same left edge. */
.vw-article{display:grid;grid-template-columns:minmax(0,1fr) min(900px,100%) minmax(0,1fr)}
.vw-article>*{grid-column:2;min-width:0}
.vw-article>.vw-bleed{grid-column:2;width:100%}
/* Inside an article the FAQ is a bleed component like .vw-key, .vw-calc and .vw-tablewrap,
   which all render 900px wide and centred in the bleed area. Clearing the margin alone
   left the base `max-width:820px` in force, so the FAQ came out 80px narrower than every
   sibling and pinned to the left: neither centred on the page nor aligned to the text. */
.vw-article .vw-faq{margin-inline:0;max-width:none}
.vw-article>p{max-width:68ch;font-size:1.075rem}
.vw-article>p:first-of-type{font-size:clamp(1.2rem,1.5vw,1.35rem);line-height:1.6;color:var(--vw-ink)}
.vw-article>h2{font-size:clamp(1.55rem,2.3vw,2.05rem);margin-top:2em;padding-top:1.5em;border-top:1px solid var(--vw-hairline)}
.vw-article>h2:first-child{border-top:0;padding-top:0}
.vw-article>h3{margin-top:1.6em}
.vw-article>ul:not(.vw-checklist),.vw-article>ol{max-width:none;padding-left:1.25em;margin:.9rem 0 1.2em}
/* Prose lists only. `.vw-checklist` is also a <ul> and a direct child of .vw-article, so
   these rules (0,1,1) were overriding its own padding/margin (0,1,0) AND stamping a gold
   tick ::before on every row — on top of its numbered badge, escaping the panel. */
.vw-article>ul:not(.vw-checklist) li,.vw-article>ol li{margin-bottom:.5em}
.vw-article>ul:not(.vw-checklist){list-style:none;padding-left:0}
.vw-article>ul:not(.vw-checklist)>li{position:relative;padding-left:1.7em}
.vw-article>ul:not(.vw-checklist)>li::before{content:"";position:absolute;left:0;top:.5em;width:15px;height:15px;background:var(--vw-gold);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}

/* full-bleed at-a-glance stat strip.
   Columns are generated from the cells that actually exist (grid-auto-flow:column +
   grid-auto-columns:1fr) rather than a fixed repeat(4,1fr). Location pages supply 4 facts
   but every county hub supplies 3, and the fixed 4th track rendered as an empty cell
   showing the container's hairline background — a dead panel on every county hub. */
.vw-glancestrip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:1px;background:var(--vw-gold-hairline);border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);overflow:hidden;margin:0 0 2.5rem}
.vw-gcell{background:var(--vw-ivory);padding:1.4rem 1.5rem;text-align:center}
.vw-gcell b{display:block;font-family:var(--vw-serif);font-size:1.6rem;color:var(--vw-ink);line-height:1.1}
.vw-gcell span{font-size:.82rem;color:var(--vw-muted)}

/* text-flow block: images float and copy wraps around them ("shaped round the content") */
.vw-article .vw-textflow{grid-column:2;min-width:0}
.vw-article .vw-textflow::after{content:"";display:block;clear:both}
/* Blocks inside .vw-textflow are no longer direct grid children, so the `.vw-article>…`
   typography and list bullets above do not reach them. Restate them here. */
.vw-article .vw-textflow p{max-width:68ch;font-size:1.075rem;margin:0 0 1.2em}
.vw-article .vw-textflow h3{margin-top:1.6em}
.vw-article .vw-textflow ul{list-style:none;padding-left:0;max-width:none;margin:0 0 1.2em}
.vw-article .vw-textflow ul>li{position:relative;padding-left:1.7em;margin-bottom:.5em}
.vw-article .vw-textflow ul>li::before{content:"";position:absolute;left:0;top:.5em;width:15px;height:15px;background:var(--vw-gold);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}
.vw-article .vw-textflow ol{padding-left:1.25em;max-width:none;margin:0 0 1.2em}
.vw-article .vw-textflow>p:last-child{margin-bottom:0}
/* A figure with nothing to wrap is a plain figure, not a fake float. */
.vw-textflow--solo .vw-figure--float{float:none;width:100%;margin-inline:0}
.vw-figure--float{margin:.4rem 0 1.25rem;border-radius:var(--vw-radius);overflow:hidden}
.vw-figure--float img,.vw-figure--float .vw-imgph{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.vw-figure--float figcaption{font-size:.8rem;color:var(--vw-muted);margin-top:.5rem}
@media (min-width:721px){
  .vw-figure--float{width:44%}
  .vw-figure--float.right{float:right;margin-left:2rem}
  .vw-figure--float.left{float:left;margin-right:2rem}
}

/* full-bleed figure inside article */
.vw-article .vw-figure.vw-bleed{margin:2.75rem 0}
.vw-article .vw-figure.vw-bleed img{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:var(--vw-radius);border:1px solid var(--vw-gold-hairline)}

/* ===== elevated content components (award-tier, no prose stacks) ===== */
/* refined H2 with gold eyebrow rule */
.vw-article > h2{position:relative;padding-top:.4rem;margin-top:2.6em}
.vw-article > h2::before{content:"";position:absolute;top:-1.1rem;left:0;width:44px;height:2px;background:var(--vw-gold)}
.vw-article > h2:first-child{margin-top:.5em}

/* service index — advice areas as an editorial numbered index (not H3+p stacks) */
.vw-svcindex{margin:2.5rem 0;border-top:1px solid var(--vw-hairline)}
.vw-svcrow{display:grid;grid-template-columns:3rem 1fr 1.4fr;gap:1.5rem;padding:1.6rem 0;border-bottom:1px solid var(--vw-hairline);align-items:start}
.vw-svcrow .no{font-family:var(--vw-serif);font-size:1.5rem;color:var(--vw-gold);line-height:1}
.vw-svcrow h3{font-family:var(--vw-serif);font-size:1.4rem;color:var(--vw-ink);margin:0;line-height:1.2}
.vw-svcrow p{margin:0;font-size:1rem;color:var(--vw-body);max-width:none;line-height:1.6}
@media (max-width:760px){.vw-svcrow{grid-template-columns:2.4rem 1fr;gap:.4rem 1rem}.vw-svcrow p{grid-column:1/-1;padding-left:3.4rem}}

/* life-stage timeline */
.vw-timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:2.5rem 0;position:relative}
.vw-tstage{position:relative;padding:0 1.4rem 0 0}
.vw-tstage::before{content:"";position:absolute;top:14px;left:0;right:0;height:2px;background:var(--vw-gold-hairline)}
.vw-tstage:last-child::before{right:auto;width:14px}
.vw-tstage .dot{position:relative;width:30px;height:30px;border-radius:50%;background:var(--vw-ink);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--vw-serif);font-size:.95rem;margin-bottom:1.1rem;z-index:1}
.vw-tstage h3{font-family:var(--vw-serif);font-size:1.2rem;color:var(--vw-ink);margin:0 0 .3rem}
.vw-tstage p{margin:0;font-size:.95rem;color:var(--vw-muted);max-width:none;line-height:1.55}
@media (max-width:760px){.vw-timeline{grid-template-columns:1fr;gap:1.5rem}.vw-tstage{padding:0 0 0 2.5rem}.vw-tstage::before{top:0;bottom:0;left:14px;right:auto;width:2px;height:auto}.vw-tstage:last-child::before{height:16px}.vw-tstage .dot{position:absolute;left:0;top:0}}

/* protections panel (regulation) */
.vw-protect{background:var(--vw-ink);color:#c9c1b0;border-radius:var(--vw-radius);padding:clamp(1.75rem,3vw,2.5rem);margin:2.5rem 0}
.vw-protect__lead{color:rgba(255,255,255,.82);max-width:60ch;margin:0 0 1.75rem}
.vw-protect__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.vw-protect__col{border-top:2px solid var(--vw-gold);padding-top:1.1rem}
.vw-protect__col .ab{font-family:var(--vw-serif);font-size:1.25rem;color:#fff;display:block;margin-bottom:.35rem}
.vw-protect__col p{margin:0;font-size:.94rem;color:rgba(255,255,255,.68);max-width:none;line-height:1.55}
@media (max-width:760px){.vw-protect__grid{grid-template-columns:1fr;gap:1.25rem}}

/* editorial 2-col prose (for the 'closer look' depth) */
.vw-editorial{margin:2.5rem 0}
.vw-editorial__lead{font-family:var(--vw-serif);font-size:clamp(1.35rem,2vw,1.7rem);line-height:1.4;color:var(--vw-ink);max-width:none;margin:0 0 1.5rem}
.vw-editorial__cols{columns:2;column-gap:2.75rem}
.vw-editorial__cols p{margin:0 0 1.1rem;break-inside:avoid;max-width:none;font-size:1rem;line-height:1.7}
@media (max-width:760px){.vw-editorial__cols{columns:1}}

/* Long-form deep-dive: titled sub-sections at a comfortable reading measure, with a
   gold-hairline rhythm between them. Replaces the cramped 2-column editorial dump. */
.vw-deepdive{margin:1.75rem 0}
.vw-deepdive h3{font-family:var(--vw-serif);font-size:clamp(1.3rem,1.8vw,1.55rem);color:var(--vw-ink);line-height:1.25;
  margin:2.2em 0 .55em;padding-top:1.4em;border-top:1px solid var(--vw-hairline)}
.vw-deepdive>h3:first-child{margin-top:.2em;padding-top:0;border-top:none}
.vw-deepdive h3::before{content:"";display:inline-block;width:1.4rem;height:2px;background:var(--vw-gold);
  vertical-align:middle;margin-right:.7rem;transform:translateY(-.28em)}
.vw-deepdive p{font-size:1.075rem;line-height:1.72;margin:0 0 1.15em;max-width:none}

/* ===== in-content design components (scannable, not walls of text) ===== */
.vw-infogrid{display:grid;gap:1.1rem;margin:2.25rem 0}
.vw-infogrid.c2{grid-template-columns:1fr 1fr}
.vw-infogrid.c3{grid-template-columns:repeat(3,1fr)}
.vw-infocard{background:#fff;border:1px solid var(--vw-hairline);border-radius:var(--vw-radius);padding:1.5rem}
.vw-infocard .ic{width:44px;height:44px;border-radius:11px;background:rgba(156,124,56,.1);color:var(--vw-gold-deep);display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.vw-infocard .ic svg{width:22px;height:22px}
.vw-infocard h3{font-family:var(--vw-serif);font-size:1.2rem;color:var(--vw-ink);margin:0 0 .35rem}
.vw-infocard p{font-size:.95rem;color:var(--vw-body);margin:0;max-width:none;line-height:1.55}

/* ===========================================================================
 * Knowledge library hub (/guides/) — editorial hero, why-us trust cards,
 * grouped topic cards with counts, featured guides.
 * ======================================================================== */
.vw-libhero{position:relative;overflow:hidden;isolation:isolate;background:var(--vw-ink);padding:clamp(3.25rem,6.5vw,5.5rem) 0}
.vw-libhero__bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.3;filter:saturate(.65)}
.vw-libhero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,12,.74),rgba(20,16,12,.9))}
.vw-libhero__inner{position:relative;z-index:1;text-align:center;max-width:800px}
.vw-libhero__inner .vw-eyebrow{justify-content:center;color:var(--vw-gold-champagne)}
.vw-libhero h1{color:#fff;font-size:clamp(2.15rem,4.5vw,3.35rem);line-height:1.08;margin:.55rem 0 0}
.vw-libhero__lead{color:rgba(255,255,255,.82);font-size:1.1rem;line-height:1.6;max-width:640px;margin:1.1rem auto 0}
.vw-libstats{display:flex;flex-wrap:wrap;justify-content:center;gap:1.1rem 2.6rem;margin-top:2.2rem;padding-top:1.8rem;border-top:1px solid rgba(255,255,255,.16)}
.vw-libstat{display:flex;flex-direction:column;align-items:center}
.vw-libstat b{font-family:var(--vw-serif);font-size:2rem;color:var(--vw-gold-champagne);line-height:1}
.vw-libstat span{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.7);margin-top:.4rem}

.vw-whygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem}
.vw-whycard{text-align:center;padding:1.75rem 1.5rem}
.vw-whycard .vw-catcard__ic{margin:0 auto 1rem}
.vw-whycard h3{font-family:var(--vw-serif);font-size:1.2rem;color:var(--vw-ink);margin:0 0 .4rem}
.vw-whycard p{font-size:.95rem;color:var(--vw-body);line-height:1.55;margin:0}

.vw-hubgroup{margin-top:2.75rem}
.vw-hubgroup:first-of-type{margin-top:1.75rem}
.vw-hubgroup__head{display:flex;align-items:baseline;gap:.9rem;flex-wrap:wrap;padding-bottom:.9rem;margin-bottom:1.35rem;border-bottom:1px solid var(--vw-hairline)}
.vw-hubgroup__head h2{font-family:var(--vw-serif);font-size:1.4rem;color:var(--vw-ink);margin:0}
.vw-hubgroup__head p{font-size:.95rem;color:var(--vw-muted);margin:0}
.vw-catgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.vw-catcard{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.35rem;background:#fff;border:1px solid var(--vw-hairline);border-radius:var(--vw-radius);text-decoration:none;transition:transform .2s var(--vw-ease),box-shadow .2s var(--vw-ease),border-color .2s var(--vw-ease)}
.vw-catcard:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(20,16,12,.4);border-color:var(--vw-gold)}
.vw-catcard__ic{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:rgba(156,124,56,.1);color:var(--vw-gold-deep);display:flex;align-items:center;justify-content:center}
.vw-catcard__ic svg{width:23px;height:23px}
.vw-catcard__body{display:flex;flex-direction:column;flex:1;min-width:0}
.vw-catcard__body b{font-family:var(--vw-serif);font-size:1.12rem;color:var(--vw-ink)}
.vw-catcard__body small{font-size:.9rem;color:var(--vw-body);line-height:1.5;margin-top:.2rem}
.vw-catcard__foot{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;align-self:stretch;flex:0 0 auto;gap:.6rem}
.vw-catcard__count{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem;font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--vw-gold-deep);white-space:nowrap;text-align:right}
.vw-catcard__count span{color:var(--vw-muted);font-weight:500}
.vw-catcard__go{font-size:1.2rem;line-height:1;color:var(--vw-gold-deep);transition:transform .2s var(--vw-ease)}
.vw-catcard:hover .vw-catcard__go{transform:translateX(4px)}

.vw-featgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2.5rem}
.vw-featcard{display:flex;flex-direction:column;gap:.65rem;padding:1.6rem;background:#fff;border:1px solid var(--vw-hairline);border-radius:var(--vw-radius);text-decoration:none;transition:transform .2s var(--vw-ease),box-shadow .2s var(--vw-ease)}
.vw-featcard:hover{transform:translateY(-3px);box-shadow:0 20px 44px -26px rgba(20,16,12,.45)}
.vw-featcard__tag{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--vw-gold-deep)}
.vw-featcard__title{font-family:var(--vw-serif);font-size:1.2rem;color:var(--vw-ink);line-height:1.25;flex:1}
.vw-featcard__go{font-size:.9rem;font-weight:600;color:var(--vw-gold-deep);margin-top:.2rem}
.vw-featcard:hover .vw-featcard__go{text-decoration:underline}

@media(max-width:860px){
	.vw-whygrid,.vw-featgrid,.vw-catgrid{grid-template-columns:1fr}
	.vw-libstats{gap:1rem 1.8rem}
}

/* Illustrative case-study cards: ivory ground + gold top-rule to set them apart. */
.vw-scenario{background:var(--vw-ivory);border-color:var(--vw-gold-hairline);border-top:3px solid var(--vw-gold);padding-top:1.35rem}
.vw-scenario h3{font-size:1.12rem;line-height:1.25;margin-bottom:.5rem}
.vw-scenario p{line-height:1.6}
/* checklist card */
.vw-checklist{background:var(--vw-ivory);border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);padding:.5rem 2rem;margin:2.25rem 0;list-style:none}
.vw-checklist li{display:flex;gap:1.15rem;padding:1.25rem 0;border-bottom:1px solid var(--vw-hairline);align-items:flex-start}
.vw-checklist li:last-child{border-bottom:0}
.vw-checklist .num{width:36px;height:36px;flex:none;border-radius:9px;background:var(--vw-ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}
.vw-checklist h3{font-family:var(--vw-serif);font-size:1.2rem;color:var(--vw-ink);margin:0 0 .2rem}
.vw-checklist p{margin:0;font-size:.96rem;color:var(--vw-body);max-width:none;line-height:1.5}
/* callout (dark highlight) */
.vw-callout{background:var(--vw-ink);color:#c9c1b0;border-radius:var(--vw-radius);padding:1.9rem 2.1rem;margin:2.25rem 0;display:flex;gap:1.35rem;align-items:flex-start}
.vw-callout .ic{color:var(--vw-gold-champagne);flex:none;font-family:var(--vw-serif);font-size:2rem;line-height:1}
.vw-callout h3{color:#fff;font-family:var(--vw-serif);font-size:1.4rem;margin:0 0 .35rem}
.vw-callout p{color:#c9c1b0;margin:0;max-width:none;line-height:1.6}
.vw-callout p:last-child{margin:0}
/* compare (directory vs us) */
.vw-compare{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin:2.25rem 0}
.vw-compare > div{border-radius:var(--vw-radius);padding:1.6rem 1.75rem;border:1px solid var(--vw-hairline)}
.vw-compare .neg{background:var(--vw-mist)}
.vw-compare .pos{background:var(--vw-ivory);border-color:var(--vw-gold-hairline)}
.vw-compare h3{font-family:var(--vw-serif);font-size:1.25rem;margin:0 0 .9rem;color:var(--vw-ink)}
.vw-compare ul{list-style:none;margin:0;padding:0}
.vw-compare li{display:flex;gap:.65rem;padding:.5rem 0;font-size:.96rem;line-height:1.45;align-items:flex-start}
.vw-compare li::before{flex:none;font-weight:700;margin-top:.05rem}
.vw-compare .neg li::before{content:"✕";color:#a8573c}
.vw-compare .pos li::before{content:"✓";color:var(--vw-gold-deep)}

/* Neutral two-column comparison — same architecture as .vw-compare, no verdict.
   Used where neither option is "wrong" (drawdown vs annuity, independent vs restricted). */
.vw-versus{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin:2.25rem 0}
.vw-versus > div{border-radius:var(--vw-radius);padding:1.6rem 1.75rem;border:1px solid var(--vw-hairline);background:var(--vw-mist)}
.vw-versus > div.b{background:var(--vw-ivory);border-color:var(--vw-gold-hairline)}
.vw-versus h3{font-family:var(--vw-serif);font-size:1.25rem;margin:0 0 .9rem;color:var(--vw-ink);padding-bottom:.7rem;border-bottom:1px solid var(--vw-gold-hairline)}
.vw-versus ul{list-style:none;margin:0;padding:0}
.vw-versus li{display:flex;gap:.7rem;padding:.5rem 0;font-size:.96rem;line-height:1.45;align-items:flex-start;color:var(--vw-body)}
.vw-versus li::before{content:"";flex:none;width:5px;height:5px;margin-top:.62rem;border-radius:50%;background:var(--vw-gold)}
@media(max-width:720px){.vw-versus{grid-template-columns:1fr}}
@media(max-width:720px){.vw-infogrid.c2,.vw-infogrid.c3,.vw-compare{grid-template-columns:1fr}}

/* full-bleed pull quote */
.vw-pull{margin:2.75rem 0;padding:2.5rem clamp(1.5rem,5vw,3.5rem);background:var(--vw-ivory);border-left:3px solid var(--vw-gold);border-radius:0 var(--vw-radius) var(--vw-radius) 0}
.vw-pull p{font-family:var(--vw-serif);font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:1.35;color:var(--vw-ink);margin:0;max-width:32ch}
.vw-pull cite{display:block;margin-top:1rem;font-style:normal;font-size:.9rem;color:var(--vw-gold-deep);font-family:var(--vw-sans);letter-spacing:.04em}

/* designed data tables (article + prose) — private-bank elegance */
.vw-tablewrap{margin:2.75rem 0}
.vw-tablewrap.vw-bleed{overflow-x:auto;-webkit-overflow-scrolling:touch}
.vw-article table,.vw-prose table{width:100%;min-width:520px;border-collapse:separate;border-spacing:0;font-size:1rem;background:#fff;border:1px solid var(--vw-hairline);border-radius:var(--vw-radius);overflow:hidden;margin:0}
.vw-article thead th,.vw-prose thead th{background:var(--vw-ink);color:#fff;font-family:var(--vw-sans);font-weight:600;text-align:left;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;padding:1.05rem 1.35rem;border:0}
.vw-article thead th:not(:last-child),.vw-prose thead th:not(:last-child){box-shadow:inset -1px 0 0 rgba(255,255,255,.1)}
.vw-article tbody td,.vw-prose tbody td{padding:1.05rem 1.35rem;border-top:1px solid var(--vw-hairline);vertical-align:top;color:var(--vw-body);line-height:1.5}
.vw-article tbody tr:nth-child(even) td,.vw-prose tbody tr:nth-child(even) td{background:var(--vw-ivory)}
.vw-article tbody td:first-child,.vw-prose tbody td:first-child{font-weight:600;color:var(--vw-ink)}
.vw-article table,.vw-prose table{border-top:2px solid var(--vw-gold)}
.vw-article .vw-midform,.vw-article .vw-midcta{margin:2.75rem 0}
/* Mobile stacks the strip 2-up, so the column auto-flow set above must be reset to rows.
   With an odd number of facts (county hubs have 3) the last cell would sit alone in a
   half-width box, so it spans the full row instead. */
@media (max-width:640px){
  /* minmax(0,1fr) not 1fr: a bare 1fr floors at min-content, so a long unbroken value
     ("Weston-super-Mare") widens its own column and the pair stops being equal. */
  .vw-glancestrip{grid-auto-flow:row;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .vw-glancestrip>.vw-gcell:last-child:nth-child(odd){grid-column:1/-1}
}

/* immersive dark image hero (location Authority pages) */
.vw-imghero{position:relative;background:var(--vw-ink);color:#fff;overflow:hidden}
.vw-imghero__bg{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat}
.vw-imghero__scrim{position:absolute;inset:0;background:linear-gradient(102deg,rgba(17,17,21,.93) 0%,rgba(17,17,21,.80) 30%,rgba(17,17,21,.40) 60%,rgba(17,17,21,.12) 100%)}
.vw-imghero .vw-wrap{position:relative;z-index:2}
.vw-imghero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;padding-block:clamp(2rem,4vw,3.5rem)}
.vw-imghero .vw-eyebrow{color:var(--vw-gold-champagne)}
.vw-imghero .vw-eyebrow::before{background:var(--vw-gold-champagne)}
.vw-imghero h1{color:#fff;font-size:clamp(2.3rem,4vw,3.5rem);line-height:1.08;max-width:15ch;margin-bottom:.5rem}
.vw-imghero__lead{color:rgba(255,255,255,.82);font-size:clamp(1.1rem,1.4vw,1.28rem);max-width:46ch;margin:0 0 1.5rem}
.vw-imghero .vw-proofline{margin-bottom:0}
.vw-imghero .vw-proofline li{color:#fff}
.vw-imghero .vw-proofline .vw-trust__tick{color:var(--vw-gold-champagne)}
.vw-imghero__form .vw-leadform{box-shadow:0 30px 70px -28px rgba(0,0,0,.6)}
@media (max-width:900px){.vw-imghero__grid{grid-template-columns:1fr;gap:2rem}}

/* intro + at-a-glance spec panel */
.vw-intro{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
.vw-intro__lead{max-width:none}
.vw-intro__lead p{max-width:60ch}
.vw-intro__lead p:last-child{margin-bottom:0}
.vw-glancepanel{border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);overflow:hidden;box-shadow:var(--vw-shadow-whisper)}
.vw-glancepanel__head{background:var(--vw-ink);color:#fff;padding:.85rem 1.25rem;font-family:var(--vw-serif);font-size:1.15rem}
.vw-glancepanel dl{margin:0;padding:.35rem 1.25rem .6rem}
.vw-glancepanel .vw-grow{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.7rem 0;border-bottom:1px solid var(--vw-hairline)}
.vw-glancepanel .vw-grow:last-child{border-bottom:0}
.vw-glancepanel dt{color:var(--vw-muted);font-size:.88rem;margin:0}
.vw-glancepanel dd{margin:0;font-weight:600;color:var(--vw-ink);text-align:right;font-size:.95rem}
.vw-intro__side{display:grid;gap:1.25rem}
.vw-glancecta{text-align:center;background:var(--vw-ivory)}
.vw-glancecta p{margin:0 0 .85rem;font-family:var(--vw-serif);font-size:1.1rem;color:var(--vw-ink);max-width:none}
.vw-glancecta__note{font-family:var(--vw-sans)!important;font-size:.85rem!important;color:var(--vw-muted)!important;margin:.85rem 0 0!important;display:flex;gap:.4rem;justify-content:center;align-items:center}
@media (max-width:900px){.vw-intro{grid-template-columns:1fr}}

/* overview: lead + local stats, full container width (no dead right gap) */
.vw-overview{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
.vw-overview__lead{max-width:none}
.vw-overview__lead p{max-width:62ch}
.vw-overview__lead p:last-child{margin-bottom:0}
.vw-overview__stats{display:grid;gap:.85rem}
.vw-ostat{background:var(--vw-ivory);border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);padding:1rem 1.25rem}
.vw-ostat b{display:block;font-family:var(--vw-serif);font-size:1.4rem;color:var(--vw-ink);line-height:1.15}
.vw-ostat span{font-size:.82rem;color:var(--vw-muted)}
@media (max-width:900px){.vw-overview{grid-template-columns:1fr}}

/* editorial feature rows — alternating image/text, uses full width */
.vw-features{display:grid}
.vw-feature{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;padding-block:clamp(2.75rem,6vw,5rem)}
.vw-feature + .vw-feature{border-top:1px solid var(--vw-hairline)}
.vw-feature--flip .vw-feature__text{order:2}
.vw-feature__text{max-width:48ch}
.vw-feature__idx{font-family:var(--vw-serif);font-size:2.4rem;color:var(--vw-gold);line-height:1;display:block;margin-bottom:.4rem}
.vw-feature__text h2{margin-bottom:.6rem}
.vw-feature__text ul{padding-left:0;list-style:none;margin:1rem 0 0;display:grid;gap:.7rem}
.vw-feature__text ul li{display:flex;gap:.6rem;align-items:flex-start;font-size:1rem}
.vw-feature__text ul li::before{content:"";width:16px;height:16px;flex:none;margin-top:.35rem;background:var(--vw-gold);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}
.vw-feature__media{position:relative}
.vw-feature__media .vw-figure{margin:0}
.vw-feature__media img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius);box-shadow:0 20px 50px -30px rgba(20,20,26,.35)}
.vw-feature__media .vw-imgph{aspect-ratio:4/3}
@media (max-width:900px){
  .vw-feature{grid-template-columns:1fr;gap:1.5rem;padding-block:clamp(2rem,6vw,3rem)}
  .vw-feature--flip .vw-feature__text{order:0}
  .vw-feature__media{order:-1}
}

/* image placeholder (Stage-5 fill) + real figure */
.vw-figure{margin:1.75rem 0}
.vw-figure img{width:100%;border:1px solid var(--vw-gold-hairline);border-radius:var(--vw-radius)}
.vw-figure figcaption{font-size:.82rem;color:var(--vw-muted);margin-top:.5rem}
.vw-imgph{position:relative;border:1px dashed var(--vw-gold-hairline);border-radius:var(--vw-radius);background:
  repeating-linear-gradient(135deg,var(--vw-ivory),var(--vw-ivory) 14px,var(--vw-mist) 14px,var(--vw-mist) 28px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.5rem;color:var(--vw-gold-deep)}
.vw-imgph[data-ratio="16x9"]{aspect-ratio:16/9}
.vw-imgph[data-ratio="4x3"]{aspect-ratio:4/3}
.vw-imgph[data-ratio="1x1"]{aspect-ratio:1/1}
.vw-imgph svg{opacity:.7}
.vw-imgph small{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em}
.vw-imgph em{font-style:normal;font-size:.85rem;color:var(--vw-muted);max-width:34ch;padding:0 1rem}

/* mesh: nearby-area + service link cards */
.vw-meshcard{background:#fff;border:1px solid var(--vw-hairline);border-radius:var(--vw-radius);padding:1rem 1.15rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;transition:border-color .15s var(--vw-ease),transform .15s var(--vw-ease)}
.vw-meshcard:hover{border-color:var(--vw-gold);transform:translateY(-2px);text-decoration:none}
.vw-meshcard b{font-weight:600;color:var(--vw-ink);font-size:1rem}
.vw-meshcard small{display:block;color:var(--vw-muted);font-size:.82rem;font-weight:400}
.vw-meshcard .vw-card__more{margin:0;color:var(--vw-gold-deep)}

@media (max-width:960px){
  .vw-lochero__grid{grid-template-columns:1fr}
  .vw-lochero__fig{max-width:480px;order:-1}
  .vw-locbody{grid-template-columns:1fr}
  .vw-locside{position:static;order:2}
  .vw-finalcta{grid-template-columns:1fr}
  .vw-glanceband{grid-template-columns:1fr 1fr}
}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .vw-hero__grid{grid-template-columns:1fr}
  .vw-hero__figure{max-width:440px;margin-inline:auto;order:-1}
  .vw-hero__figure img{aspect-ratio:16/10}
  .vw-hero__badge{left:1rem}
  .vw-problem__grid{grid-template-columns:1fr}
  .vw-method{grid-template-columns:1fr 1fr}
  .vw-statband{grid-template-columns:1fr 1fr;gap:2rem}
}
@media (max-width:768px){
  .vw-stickycta{display:flex}
  body{padding-bottom:64px}
  .vw-method{grid-template-columns:1fr}
  .vw-method__step{margin-right:0}
}
/* ---------- responsive ---------- */
@media (max-width:900px){
  .vw-footer__top{grid-template-columns:1fr 1fr}
  .vw-promise{grid-template-columns:1fr}
  .vw-grid--4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .vw-nav{position:fixed;inset:76px 0 auto 0;background:#fff;flex-direction:column;align-items:flex-start;gap:0;padding:.5rem var(--vw-gutter) 1.5rem;border-bottom:1px solid var(--vw-hairline);display:none}
  .vw-nav.is-open{display:flex}
  .vw-nav a{padding:.85rem 0;width:100%;border-bottom:1px solid var(--vw-hairline)}
  .vw-navtoggle{display:block}
  .vw-matcher{grid-template-columns:1fr}
  .vw-grid--3,.vw-grid--2,.vw-steps{grid-template-columns:1fr}
  .vw-linklist{columns:1}
  .vw-form-2col{grid-template-columns:1fr}
}

/* Knowledge-tier guide up-link band (Knowledge → Authority power-pass) */
.vw-uplinks{margin:2.5rem 0 0;padding:1.5rem;border:1px solid #e8dcc0;border-radius:14px;background:#faf6ee}
.vw-uplinks > h2{margin-top:0}
.vw-uplinks p{margin-bottom:1rem}

/* Answer-tier direct answer box (featured-snippet bait) */
.vw-answer{margin:0 0 1.75rem;padding:1.25rem 1.5rem;border-left:4px solid #B08D3E;background:#faf6ee;border-radius:0 10px 10px 0}
.vw-answer__lead{margin:0;font-size:1.15rem;line-height:1.6;font-weight:500}

/* ===== Knowledge/Answer rich-article components (light context) ===== */
/* Key-takeaways box */
.vw-key{background:#faf6ee;border:1px solid var(--vw-gold-hairline);border-left:4px solid #B08D3E;border-radius:0 12px 12px 0;padding:1.5rem 1.75rem;margin:2.25rem 0}
.vw-key h3{font-family:var(--vw-serif);font-size:1.2rem;margin:0 0 .75rem;color:var(--vw-ink)}
.vw-key ul{margin:0;padding-left:1.1rem}
.vw-key li{margin:.4rem 0;line-height:1.55}
/* Light stat row (article context — statband is dark-only) */
.vw-statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1.25rem;margin:2.25rem 0;padding:1.5rem;background:var(--vw-ivory);border:1px solid var(--vw-gold-hairline);border-radius:14px}
.vw-statcell{text-align:center}
.vw-statcell strong{display:block;font-family:var(--vw-serif);font-size:clamp(1.9rem,3.5vw,2.6rem);color:#A0802E;line-height:1.05}
.vw-statcell span{font-size:.86rem;color:var(--vw-ink-soft,#6b6455);line-height:1.35;display:block;margin-top:.35rem}
/* Table caption + zebra polish for article tables */
/* was #9a8a5e — 3.40:1 on white, below the 4.5:1 AA bar for small text. A hardcoded hex,
   so the palette-token audit never saw it. #7A6A3E: 5.30 white / 4.59 ivory / 4.96 mist. */
.vw-tcap{font-size:.85rem;letter-spacing:.03em;text-transform:uppercase;color:#7a6a3e;font-weight:600;margin:0 0 .6rem}
/* The first-generation table rules that used to sit here have been REMOVED.
   They set border-collapse:collapse plus a tighter padding, and because they appeared
   LATER in the file than the designed rules near line 732 they won on equal specificity
   and silently undid them. collapse defeats border-radius + overflow:hidden, so every
   table on the site rendered with square corners, its gold top rule hidden behind the
   header, and cramped cells. The designed block above is now the only definition.
   Do not add table rules below this point. */

/* Inline TOC (on-page nav) */
.vw-toc{background:var(--vw-mist);border:1px solid var(--vw-hairline);border-radius:12px;padding:1.25rem 1.5rem;margin:2rem 0}
.vw-toc strong{display:block;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#7a6a3e;margin-bottom:.6rem}
.vw-toc ol{margin:0;padding-left:1.2rem;columns:2;column-gap:2rem}
.vw-toc a{text-decoration:none;color:#37506b}
.vw-toc a:hover{color:#B08D3E}
@media (max-width:640px){.vw-toc ol{columns:1}}

/* ============================================================================
   CONSISTENT VERTICAL RHYTHM (money/location pages only — .vw-article)
   .vw-article is a CSS grid, so each component's own margins add to the next and
   produce wildly uneven gaps. Reset child block-margins and drive ALL spacing from
   sibling rules: one base gap, a larger gap before a section heading, and a tight
   gap after a heading so it hugs its content. Appended last to win on source order.
   ============================================================================ */
.vw-article > *{margin-top:0;margin-bottom:0}
.vw-article > * + *{margin-top:2.9rem}
.vw-article > h2{margin-top:2.9rem;padding-top:0;border-top:none}
/* Section break: generous gap + a subtle full-width hairline divider with a gold accent,
   so each new section is clearly separated. */
.vw-article > * + h2{margin-top:4rem;padding-top:2.5rem;border-top:1px solid var(--vw-hairline)}
.vw-article > h2 + *{margin-top:.85rem}
.vw-article > h2:first-child{margin-top:.4rem}
.vw-article > h2::before{top:-1.15rem}
.vw-article > * + h2::before{top:-1px;left:0;width:54px;height:3px;background:var(--vw-gold)}

/* Scannable deep content: short intro + bold-lead key points (no prose bricks). */
.vw-faq .vw-accbody{margin:.9rem 0 .2rem}
.vw-faq .vw-accbody > p{margin:0 0 1rem;color:var(--vw-body)}
.vw-keypoints{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.vw-keypoints li{position:relative;padding-left:1.5rem;line-height:1.6;color:var(--vw-body);max-width:none}
.vw-keypoints li::before{content:"";position:absolute;left:.1rem;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--vw-gold)}
.vw-keypoints strong{color:var(--vw-ink);font-weight:600}
/* Punchy scenario cards read tighter now */
.vw-scenario p{font-size:.98rem;line-height:1.6}

/* =====================================================================
   KNOWLEDGE HUB — guides only.
   The money pages (home, service, location) keep the existing treatment.
   Guides get a distinct editorial identity: a paper ground, a sticky
   contents rail, and interactive components the money pages never use.
   All colour pairs below hold WCAG AA against their own backgrounds.
   ===================================================================== */
.vw-guide{--vw-hub-paper:#FCFAF5;--vw-hub-rule:#E6DFCF;--vw-hub-accent:#865F10}
.vw-guide .vw-article{background:var(--vw-hub-paper)}

/* Reading progress: a hairline that fills as you scroll the article. */
.vw-progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:60;background:transparent;pointer-events:none}
.vw-progress__bar{height:100%;width:0;background:linear-gradient(90deg,var(--vw-gold-deep),var(--vw-gold-champagne));transition:width .1s linear}
@media (prefers-reduced-motion:reduce){.vw-progress__bar{transition:none}}

/* Sticky contents rail. Falls back to the existing stacked TOC under 1100px. */
@media (min-width:1100px){
  .vw-guide .vw-toc{position:sticky;top:5.5rem;align-self:start;max-height:calc(100vh - 7rem);overflow-y:auto}
  .vw-guide .vw-toc a[aria-current="true"]{color:var(--vw-hub-accent);font-weight:600}
}
.vw-toc__prog{display:block;margin-top:.75rem;font-size:.78rem;color:var(--vw-muted)}

/* Answer-first summary. Deliberately the visual anchor of the page. */
.vw-tldr{background:var(--vw-white);border:1px solid var(--vw-gold-hairline);border-left:4px solid var(--vw-gold-deep);
  border-radius:var(--vw-radius);padding:1.6rem 1.8rem;margin:1.75rem 0 2.5rem}
.vw-tldr__h{font-family:var(--vw-sans);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--vw-gold-deep);margin:0 0 .7rem}
.vw-tldr__body p{font-size:1.12rem;line-height:1.6;color:var(--vw-ink2);margin:0 0 .6rem}
.vw-tldr__body ul{margin:.5rem 0 0;padding-left:1.1rem}
.vw-tldr__body li{margin:.3rem 0;color:var(--vw-body)}

/* FAQ accordion — native <details>, so it works with JS disabled. */
/* Vertical rhythm only. Using the `margin` shorthand here set margin-inline to 0 and,
   because this block is appended after the base rule at equal specificity, it silently
   removed `margin:0 auto` from EVERY .vw-faq on the site: FAQ sections on location pages,
   county hubs and trust pages all shifted off-centre. Set the block axis alone so the
   base rule keeps centring them. */
.vw-faq{margin-block:2.5rem}
.vw-faq__item{border-bottom:1px solid var(--vw-hub-rule)}
.vw-faq__item:first-of-type{border-top:1px solid var(--vw-hub-rule)}
.vw-faq__item summary{cursor:pointer;list-style:none;padding:1.05rem 2.2rem 1.05rem 0;position:relative;
  font-family:var(--vw-serif);font-size:1.09rem;color:var(--vw-ink);font-weight:600}
.vw-faq__item summary::-webkit-details-marker{display:none}
.vw-faq__item summary::after{content:"";position:absolute;right:.35rem;top:1.45rem;width:9px;height:9px;
  border-right:2px solid var(--vw-gold-deep);border-bottom:2px solid var(--vw-gold-deep);
  transform:rotate(45deg);transition:transform .2s var(--vw-ease)}
.vw-faq__item[open] summary::after{transform:rotate(-135deg)}
.vw-faq__item summary:focus-visible{outline:2px solid var(--vw-gold-deep);outline-offset:3px}
.vw-faq__a{padding:0 0 1.15rem;color:var(--vw-body)}
@media (prefers-reduced-motion:reduce){.vw-faq__item summary::after{transition:none}}

/* Numbered timeline — visually distinct from .vw-checklist. */
.vw-steps{list-style:none;counter-reset:vwstep;margin:2.25rem 0;padding:0;position:relative}
.vw-steps::before{content:"";position:absolute;left:17px;top:12px;bottom:12px;width:2px;background:var(--vw-hub-rule)}
.vw-steps__i{counter-increment:vwstep;position:relative;padding:0 0 1.7rem 3.1rem}
.vw-steps__i::before{content:counter(vwstep);position:absolute;left:0;top:0;width:36px;height:36px;border-radius:50%;
  background:var(--vw-white);border:2px solid var(--vw-gold-deep);color:var(--vw-gold-deep);
  font-family:var(--vw-sans);font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center}
.vw-steps__c h3{margin:.35rem 0 .4rem;font-size:1.1rem}
.vw-steps__note{font-size:.9rem;color:var(--vw-muted);margin:.4rem 0 0}

/* Calculator. Without JS the .vw-calc__fallback table is the content. */
.vw-calc{background:var(--vw-white);border:1px solid var(--vw-hub-rule);border-radius:var(--vw-radius);padding:1.7rem;margin:2.5rem 0}
.vw-calc h2{margin-top:0}
.vw-calc__ui{display:grid;gap:.9rem;margin:1.1rem 0}
.vw-calc__ui label{display:grid;gap:.3rem;font-size:.9rem;color:var(--vw-ink2)}
.vw-calc__ui input{padding:.6rem .7rem;border:1px solid var(--vw-field-border);border-radius:var(--vw-radius-sm);font:inherit}
.vw-calc__ui input:focus-visible{outline:2px solid var(--vw-gold-deep);outline-offset:2px}
.vw-calc__out{display:block;margin-top:.5rem;padding:1rem 1.1rem;background:var(--vw-mist);
  border-radius:var(--vw-radius-sm);font-family:var(--vw-serif);font-size:1.2rem;color:var(--vw-ink)}
.vw-calc__disc{font-size:.84rem;color:var(--vw-muted);margin:1rem 0 0}

/* Decision aid — nested native disclosure, no JS required. */
.vw-decide{margin:2.5rem 0}
.vw-decide__b{border:1px solid var(--vw-hub-rule);border-radius:var(--vw-radius-sm);margin:.6rem 0;background:var(--vw-white)}
.vw-decide__b summary{cursor:pointer;padding:.95rem 1.1rem;font-weight:600;color:var(--vw-ink)}
.vw-decide__b summary:focus-visible{outline:2px solid var(--vw-gold-deep);outline-offset:2px}
.vw-decide__a{padding:0 1.1rem 1.1rem;color:var(--vw-body)}
.vw-decide__then{margin:.6rem 0 0;padding:.65rem .85rem;background:var(--vw-mist);border-radius:var(--vw-radius-sm);color:var(--vw-ink2)}

/* E-E-A-T signals. */
.vw-reviewed{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;align-items:baseline;margin:.4rem 0 1.6rem;
  padding-bottom:1rem;border-bottom:1px solid var(--vw-hub-rule);font-size:.87rem;color:var(--vw-muted)}
.vw-reviewed__by{color:var(--vw-ink2);font-weight:600}
.vw-reviewed__pol{color:var(--vw-link);text-decoration:underline}
.vw-sources{margin:3rem 0 1rem;padding-top:1.5rem;border-top:1px solid var(--vw-hub-rule)}
.vw-sources h2{font-size:1.05rem}
.vw-sources ol{padding-left:1.2rem;font-size:.92rem;color:var(--vw-body)}
.vw-sources li{margin:.45rem 0}
.vw-sources__pub{color:var(--vw-muted)}

/* At-a-glance figures. */
.vw-keynum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:2rem 0}
.vw-keynum__c{background:var(--vw-white);border:1px solid var(--vw-hub-rule);border-radius:var(--vw-radius);padding:1.15rem;text-align:center}
.vw-keynum__c strong{display:block;font-family:var(--vw-serif);font-size:1.85rem;color:var(--vw-gold-deep);line-height:1.1}
.vw-keynum__c span{display:block;margin-top:.35rem;font-size:.87rem;color:var(--vw-ink2)}
.vw-keynum__c small{display:block;margin-top:.2rem;font-size:.78rem;color:var(--vw-muted)}
.vw-calc__intro,.vw-decide__intro{color:var(--vw-body);margin:.35rem 0 0}
.vw-reviewed__on{color:var(--vw-muted)}

/* FAQ / decision questions are real h3 headings inside their summary, so the page has a
   proper document outline. Reset the heading's own box so the disclosure still looks and
   behaves exactly as before. `display:inline` keeps the h3 from pushing the marker down. */
.vw-faq__q,.vw-decide__q{margin:0;font:inherit;color:inherit;display:inline}
.vw-faq__item summary>.vw-faq__q{font-family:var(--vw-serif);font-size:1.09rem;font-weight:600}
.vw-decide__b summary>.vw-decide__q{font-weight:600}

/* ---------------------------------------------------------------------------
   Author box (guides + answers).
   Sits between the article and the lead form. Ivory panel with a gold hairline so it
   reads as editorial furniture rather than another CTA. Colours are existing tokens
   only: --vw-ink on --vw-ivory and --vw-body on --vw-ivory both clear AA, which a new
   one-off colour here would not be guaranteed to do.
   --------------------------------------------------------------------------- */
.vw-authorbox{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(1rem,3vw,1.75rem);
  align-items:start;background:var(--vw-ivory);border:1px solid var(--vw-gold-hairline);
  border-radius:var(--vw-radius);padding:clamp(1.25rem,3vw,1.9rem);box-shadow:var(--vw-shadow-whisper)}
.vw-authorbox__img{width:104px;height:104px;border-radius:50%;object-fit:cover;display:block;
  border:1px solid var(--vw-gold-hairline)}
.vw-authorbox__body{min-width:0}
.vw-authorbox__kicker{margin:0 0 .15rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--vw-muted)}
.vw-authorbox__name{margin:0;font-family:var(--vw-serif);font-size:1.35rem;line-height:1.15;color:var(--vw-ink)}
.vw-authorbox__role{margin:.1rem 0 .7rem;font-size:.9rem;color:var(--vw-gold-deep);font-weight:600}
.vw-authorbox__bio{margin:0 0 .7rem;font-size:.95rem;line-height:1.65;color:var(--vw-body)}
.vw-authorbox__focus{margin:0;font-size:.87rem;color:var(--vw-body)}
.vw-authorbox__focus span{color:var(--vw-muted);text-transform:uppercase;letter-spacing:.07em;
  font-size:.72rem;margin-right:.4rem}
.vw-authorbox__meta{margin:.7rem 0 0;padding-top:.7rem;border-top:1px solid var(--vw-hairline);
  font-size:.83rem;color:var(--vw-muted)}
/* Stack on narrow screens and centre the portrait, so the bio keeps a full-width measure. */
@media (max-width:560px){
  .vw-authorbox{grid-template-columns:1fr;justify-items:center;text-align:center}
  .vw-authorbox__focus span{display:block;margin:0 0 .15rem}
  .vw-authorbox__meta{text-align:left}
}
