/* ============================================================
   T4 Tax Services — v6 "Disciplined"
   Two colours: navy + antique gold. Inter throughout, no serif.
   Approved 2026-08-09. Every value measured, not estimated.
   Re-skin the whole site by editing this :root block.

   HARD RULE: --gold measures 2.41:1 on white. It is a FILL only.
   For gold-coloured TYPE on a light ground, always use --gold-deep
   (olive #75692B, 5.51:1). On navy, use --gold-lt (#C8BD79, 7.66:1).
   ============================================================ */
:root{
  --navy:#152A40; --navy-deep:#0E2036; --navy-soft:#2A3E54;
  --gold:#B5A85E; --gold-deep:#75692B; --gold-lt:#C8BD79; --gold-wash:#F5F5F7;
  --paper:#FFFFFF; --paper-2:#F5F5F7; --mist:#F5F5F7;
  --ink:#152A40; --body:#6B6A66; --muted:#6B6A66;
  --line:#E3E3E6; --card:#FFFFFF;
  --on-navy:#B8BDC2; --on-navy-dim:#98A0A8;   /* 7.72:1 and 5.52:1 on --navy */
  --max:1120px; --r:12px; --r-sm:10px;
  --sh:0 1px 2px rgba(21,42,64,.04),0 10px 28px rgba(21,42,64,.07);
  --sh-hover:0 2px 4px rgba(21,42,64,.05),0 18px 44px rgba(21,42,64,.11);
  --ease:cubic-bezier(.16,1,.3,1);
  --font-display:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='1' y='10.75' width='13' height='2.5'/%3E%3Cpath d='M13 5l9 7-9 7z'/%3E%3C/svg%3E");
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);font-size:18px;}
@media(min-width:920px){body{font-size:19px}}
body{line-height:1.7;color:var(--body);background:var(--paper);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--gold-deep)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
h1,h2,h3{font-family:var(--font-display);font-weight:800;color:var(--navy);line-height:1.14;letter-spacing:-.03em}
h1{font-size:clamp(2.6rem,5.6vw,4.2rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.7rem)}
h3{font-size:1.35rem}
.hl-accent{color:var(--gold-deep);font-weight:800}
.band-navy .hl-accent,.on-navy .hl-accent,.hero .hl-accent{color:var(--gold-lt)}
.lead{font-size:1.14rem;font-weight:450;color:var(--body);max-width:44rem}
.num,.price{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}
.center{text-align:center}
.center .lead{margin-left:auto;margin-right:auto}
.mt1{margin-top:1rem}.mt2{margin-top:2rem}.mb2{margin-bottom:2rem}

/* motion */
.rv{opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}*,*::before,*::after{animation:none!important;transition:none!important}}

/* kicker */
.kicker,.kicker-chip{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;font-size:.75rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:1.2rem;background:none;border:0;padding:0}
.kicker::before,.kicker-chip::before{content:"";width:1.6rem;height:2px;background:var(--gold)}
.kicker-chip .dot{display:none}
.on-navy .kicker,.band-navy .kicker,.band-navy .kicker-chip{color:var(--gold-lt)}
.center .kicker,.center .kicker-chip{justify-content:center}

/* arrow bullets */
ul.arrows{list-style:none}
ul.arrows li{position:relative;padding-left:1.9rem;margin:.65rem 0}
ul.arrows li::before{content:"";position:absolute;left:0;top:.42em;width:.95em;height:.95em;background:var(--gold);-webkit-mask:var(--arrow) no-repeat center/contain;mask:var(--arrow) no-repeat center/contain}
.tri-arrow{display:none}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;text-decoration:none;border-radius:10px;padding:.95rem 1.8rem;font-size:1rem;border:1.5px solid transparent;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s;cursor:pointer;line-height:1.2;font-family:var(--font-body)}
.btn .arr{display:inline-block;transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-gold,.btn-citrus{background:var(--gold);color:var(--navy-deep);box-shadow:0 6px 18px rgba(181,168,94,.34)}
.btn-gold:hover,.btn-citrus:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(181,168,94,.45);background:#A29650}
.btn-navy{background:var(--navy);color:#fff;box-shadow:0 6px 20px rgba(18,43,69,.25)}
.btn-navy:hover{transform:translateY(-2px)}
.btn-outline-white{border-color:rgba(255,255,255,.45);color:#fff}
.btn-outline-white:hover{border-color:#fff;background:rgba(255,255,255,.08);transform:translateY(-2px)}
.btn-outline-navy,.btn-ghost-citrus{border-color:var(--navy);color:var(--navy);background:transparent}
.btn-outline-navy:hover,.btn-ghost-citrus:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}

/* header — navy */
.site-header{position:sticky;top:0;z-index:50;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.08);transition:box-shadow .25s}
.site-header.scrolled{box-shadow:0 8px 28px rgba(14,32,54,.35)}
.site-header .wrap{display:flex;align-items:center;gap:1.8rem;height:80px;transition:height .25s var(--ease)}
.site-header.scrolled .wrap{height:62px}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;flex:none}
.logo-svg{display:block;height:42px;width:auto}
.site-footer .logo-svg{height:50px}
.brand-foot{margin-bottom:1.1rem}
.brand-foot a{display:inline-flex}
.brand img{height:32px;width:auto}
.brand-name{font-family:var(--font-display);font-weight:600;font-size:1.12rem;color:#fff;letter-spacing:.01em;white-space:nowrap}
.brand-name small{display:block;font-family:var(--font-body);font-weight:600;font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-lt);line-height:1.4}
.site-nav{display:flex;gap:1.6rem;margin-left:auto;align-items:center}
.site-nav a{color:var(--on-navy);text-decoration:none;font-weight:500;font-size:.95rem;padding:.3rem 0;position:relative}
.site-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:2px;background:var(--gold);transition:right .25s var(--ease)}
.site-nav a:hover{color:#fff}
.site-nav a:hover::after,.site-nav a.is-active::after{right:0}
.site-nav a.is-active{color:#fff;font-weight:600}
.header-cta{background:var(--gold);color:var(--navy-deep);padding:.7rem 1.4rem;border-radius:10px;font-weight:600;text-decoration:none;font-size:.94rem;white-space:nowrap;transition:transform .25s var(--ease),background .2s}
.header-cta:hover{transform:translateY(-1px);background:#D4A855}
.nav-toggle{display:none;margin-left:auto;background:none;border:0;cursor:pointer;font-size:1.7rem;color:#fff;line-height:1}
.mobile-nav{display:none}

/* sections */
section{padding:92px 0;position:relative}
section[id]{scroll-margin-top:88px}
.band-navy{background:linear-gradient(170deg,var(--navy-deep) 0%,var(--navy) 70%);color:var(--on-navy)}
.band-navy h1,.band-navy h2,.band-navy h3{color:#fff}
.band-navy .lead,.band-navy p{color:var(--on-navy)}
.band-navy::before{display:none}
.band-tint{background:var(--mist)}
.band-citrus,.band-soft,.band-gold{background:var(--gold-wash)}
.band-citrus h2{color:var(--navy);text-shadow:none}
.band-citrus p{color:var(--body)}

/* hero */
.hero{padding:104px 0 92px}
.hero-grid{display:grid;grid-template-columns:1fr;gap:0;text-align:center;max-width:58rem;margin:0 auto}
.hero .tagline{margin:1.4rem auto 2.2rem;font-size:1.16rem;color:var(--on-navy);font-weight:400;max-width:40rem;line-height:1.7}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}
.hero-note{margin-top:1.4rem;font-size:.9rem;color:var(--on-navy-dim)}
.hero-stats{display:flex;gap:0;margin-top:3rem;padding-top:2.2rem;border-top:1px solid rgba(255,255,255,.14);flex-wrap:wrap;justify-content:center}
.hero-stats .hs{padding:0 2rem;border-left:1px solid rgba(255,255,255,.12);text-align:center}
.hero-stats .hs:first-child{border-left:0}
.hero-stats .hs b{display:block;font-family:var(--font-display);font-size:2.5rem;font-weight:800;letter-spacing:-.03em;color:#fff;font-feature-settings:"tnum";line-height:1.1}
.hero-stats .hs b .count{font:inherit;color:inherit}
.hero-stats .hs>span{display:block;margin-top:.45rem;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--on-navy-dim)}
.ui-stack,.marquee{display:none}

/* hero intake pill */
.hero-pill{display:flex;align-items:center;gap:.4rem;background:#fff;border-radius:999px;padding:.4rem .4rem .4rem 1.5rem;max-width:560px;margin:0 auto;box-shadow:0 14px 40px rgba(14,32,54,.35)}
.hero-pill input{border:0;background:none;flex:1;padding:.7rem 0;font-size:1.02rem;color:var(--ink);min-width:0}
.hero-pill input:focus{outline:none;box-shadow:none;border:0}
.hero-pill button{flex:0 0 auto;background:var(--gold);color:var(--navy-deep);border:0;border-radius:999px;padding:.85rem 1.6rem;font:600 1rem var(--font-body);cursor:pointer;white-space:nowrap;transition:transform .2s var(--ease),background .2s}
.hero-pill button:hover{transform:translateY(-1px);background:#A29650}
.hero-sub-link{display:inline-block;margin-top:1.2rem;color:var(--on-navy-dim);font-size:.92rem;text-decoration:none}
.hero-sub-link:hover{color:#fff}

/* calculator v2 */
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.7rem;align-items:start;max-width:1000px;margin:0 auto}
.calc-toggles{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0}
.calc-toggles label{display:inline-flex;align-items:center;gap:.45rem;border:1.5px solid var(--line);border-radius:999px;padding:.5rem 1.1rem;cursor:pointer;font-weight:550;font-size:.9rem;color:var(--ink);margin:0;background:#fff;transition:all .2s var(--ease)}
.calc-toggles label:has(input:checked){background:var(--navy);border-color:var(--navy);color:#fff}
.calc-toggles input{display:none;width:auto}
.takehome{font-family:var(--font-display);font-size:clamp(2.4rem,5vw,3.4rem);font-weight:600;color:var(--navy);line-height:1.05;font-feature-settings:"tnum"}
.takehome-sub{color:var(--body);font-size:.95rem;margin-top:.4rem}
.tax-bar{display:flex;height:22px;border-radius:99px;overflow:hidden;margin:1.3rem 0 .8rem;border:1px solid var(--line)}
.tax-bar i{display:block;height:100%}
.bar-legend{display:flex;gap:1.1rem;flex-wrap:wrap;font-size:.83rem;color:var(--body)}
.bar-legend b{font-weight:600;color:var(--navy);font-feature-settings:"tnum"}
.bar-legend .swatch{display:inline-block;width:.75rem;height:.75rem;border-radius:3px;margin-right:.35rem;vertical-align:-1px}
.rate-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.3rem}
.rate-card{background:var(--gold-wash);border:1px solid var(--line);border-radius:var(--r-sm);padding:1rem 1.2rem}
.rate-card b{font-family:var(--font-display);font-size:1.5rem;color:var(--navy);display:block;font-feature-settings:"tnum"}
.rate-card span{font-size:.82rem;color:var(--body)}
.bracket-list{font-size:.9rem;font-feature-settings:"tnum"}
.bracket-list .br{display:flex;justify-content:space-between;padding:.35rem .6rem;border-radius:6px;color:var(--body)}
.bracket-list .br.hit{background:var(--gold-wash);color:var(--navy);font-weight:600}
.bracket-list h4{font-family:var(--font-body);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:1.1rem 0 .4rem}

/* pricing toggle + samples + trust strip */
.price-toggle{display:flex;gap:.7rem;justify-content:center;margin-bottom:2.2rem}
.price-panel{display:none}
.price-panel.on{display:block}
.cadence-row{display:grid;grid-template-columns:1fr 1fr;gap:1.7rem;max-width:780px;margin:1.7rem auto 0}
.cadence-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:1.5rem 1.7rem;box-shadow:var(--sh);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.cadence-card b{font-family:var(--font-display);font-size:1.25rem;color:var(--navy);display:block}
.cadence-card .price{font-family:var(--font-display);font-size:1.4rem;color:var(--navy);white-space:nowrap}
.cadence-card p{font-size:.88rem;color:var(--body);margin:.2rem 0 0;flex-basis:100%}
.sample-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.7rem;margin-top:1.4rem}
.sample-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.8rem;box-shadow:var(--sh)}
.sample-card .who{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--navy)}
.sample-card .meta{font-size:.85rem;color:var(--muted);margin:.2rem 0 .8rem}
.sample-card .bundle{font-size:.92rem;color:var(--body)}
.sample-card .amt{font-family:var(--font-display);font-size:1.7rem;color:var(--navy);margin:.7rem 0 .4rem;font-feature-settings:"tnum"}
.tool-chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.6rem}
.tool-chips span{font-size:.74rem;font-weight:600;background:var(--paper-2);border:1px solid var(--line);color:var(--body);border-radius:6px;padding:.25rem .6rem}
.trust-strip{background:var(--navy-deep);padding:1.1rem 0}
.trust-strip .wrap{display:flex;gap:2.2rem;justify-content:center;align-items:center;flex-wrap:wrap;font-size:.86rem;color:var(--on-navy);font-weight:550}
.trust-strip b{color:var(--gold-lt);font-weight:650}

/* wizard (find your perfect plan) */
.wiz{max-width:720px;margin:0 auto}
.wiz-progress{height:6px;background:var(--line);border-radius:99px;overflow:hidden;margin-bottom:2rem}
.wiz-progress i{display:block;height:100%;background:var(--gold);border-radius:99px;transition:width .4s var(--ease)}
.wiz-step{display:none}
.wiz-step.on{display:block;animation:wizin .35s var(--ease)}
@keyframes wizin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.wiz-q{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--navy);margin-bottom:1.4rem}
.opt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.opt-card{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:1.4rem 1.5rem;cursor:pointer;text-align:left;font:inherit;transition:all .2s var(--ease);box-shadow:var(--sh)}
.opt-card:hover{border-color:var(--navy);transform:translateY(-2px);box-shadow:var(--sh-hover)}
.opt-card b{display:block;font-family:var(--font-display);font-size:1.12rem;font-weight:600;color:var(--navy);margin-bottom:.25rem}
.opt-card span{font-size:.9rem;color:var(--body);line-height:1.5}
.wiz-back{background:none;border:0;color:var(--muted);font:550 .9rem var(--font-body);cursor:pointer;margin-top:1.4rem;padding:0}
.wiz-back:hover{color:var(--navy)}
.wiz-result{text-align:center}
.wiz-result .price-line{font-family:var(--font-display);font-size:2.4rem;font-weight:600;color:var(--navy);margin:.6rem 0 .2rem;font-feature-settings:"tnum"}
@media(max-width:920px){.opt-grid{grid-template-columns:1fr}}

/* cards */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.7rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:2.1rem;position:relative;box-shadow:0 2px 5px rgba(21,42,64,.04),0 14px 34px rgba(21,42,64,.07);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh-hover)}
.door-card{text-decoration:none;color:var(--ink);display:block}
.door-card::before{display:none}
.door-card p{color:var(--body);margin:.7rem 0 1.2rem;font-size:1.02rem}
.door-card h3{font-size:1.35rem}
.door-card .go{font-weight:600;color:var(--gold-deep);display:inline-flex;align-items:center;gap:.4rem}
.door-card .go .arr{transition:transform .25s var(--ease)}
.door-card:hover .go .arr{transform:translateX(4px)}
.door-kicker{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:.6rem}

/* package cards */
.pkg{display:flex;flex-direction:column}
.pkg::before{content:"";position:absolute;top:0;left:2rem;right:2rem;height:3px;background:var(--gold)}
.pkg .price{font-family:var(--font-display);font-size:2.5rem;font-weight:600;margin:.5rem 0 .1rem;color:var(--navy)}
.pkg .per{color:var(--muted);font-size:.92rem;margin-bottom:1.1rem}
.pkg ul.arrows{flex:1;font-size:.95rem}
.pkg .btn{margin-top:1.5rem;justify-content:center}
.pkg-flag{position:absolute;top:-15px;left:50%;transform:translateX(-50%);background:var(--gold);color:var(--navy-deep);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.4rem 1.1rem;border-radius:999px;white-space:nowrap;box-shadow:0 6px 16px rgba(181,168,94,.4)}
.pkg-featured{background:linear-gradient(170deg,var(--navy-deep),var(--navy));border-color:var(--navy);transform:scale(1.045);box-shadow:0 22px 52px rgba(14,32,54,.34)}
.pkg-featured:hover{transform:scale(1.045) translateY(-4px)}
.pkg-featured h3,.pkg-featured .price{color:#fff}
.pkg-featured .per{color:var(--on-navy)}
.pkg-featured ul.arrows,.pkg-featured p{color:var(--on-navy)}
.chip{display:inline-block;background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:550;font-size:.88rem;padding:.55rem 1.2rem;border-radius:999px;margin:.28rem .22rem}
.chip-navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.included-chip{display:inline-block;background:var(--gold-wash);color:var(--gold-deep);border:1px solid var(--line);font-weight:700;font-size:.78rem;letter-spacing:.05em;padding:.4rem .85rem;border-radius:8px;margin:.45rem 0}
.pkg-featured .included-chip{background:rgba(181,168,94,.18);border-color:rgba(181,168,94,.5);color:var(--gold-lt)}

/* filter pills */
.filter-pills{display:flex;gap:.7rem;justify-content:center;margin:0 0 2.4rem;flex-wrap:wrap}
.filter-pill{font:inherit;font-weight:600;font-size:.95rem;border:1.5px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:.6rem 1.5rem;cursor:pointer;transition:all .25s var(--ease)}
.filter-pill:hover{border-color:var(--navy)}
.filter-pill.is-active{background:var(--navy);border-color:var(--navy);color:#fff}

/* reviews */
.review-strip{text-align:center}
.stars{color:var(--gold-deep);font-size:1.5rem;letter-spacing:.25rem}
.review-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin:2rem 0;text-align:left}
.review-quotes .card{font-size:1rem;border-top:3px solid var(--gold)}
.review-quotes .card::before{content:"★★★★★";display:block;color:var(--gold-deep);letter-spacing:.2rem;font-size:.95rem;margin-bottom:.7rem}
.review-quotes .card p{font-size:1.06rem;color:var(--navy);line-height:1.6}
.review-quotes cite{display:block;margin-top:1rem;font-style:normal;font-weight:700;color:var(--gold-deep);font-size:.88rem}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.7rem;counter-reset:step}
.step{counter-increment:step;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.9rem;box-shadow:var(--sh)}
.step::before{content:counter(step,decimal-leading-zero);font-family:var(--font-display);font-weight:800;font-size:1.9rem;letter-spacing:-.03em;color:var(--gold-deep);display:block;margin-bottom:.5rem;font-feature-settings:"tnum"}
.step p{color:var(--body);font-size:.96rem;margin-top:.4rem}
.steps-4{grid-template-columns:repeat(4,1fr)}

/* stat row */
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1.7rem}
.stat-row .stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:1.6rem 1.8rem;box-shadow:var(--sh)}
.stat-row .stat b{display:block;font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--navy)}
.stat-row .stat span{color:var(--body);font-size:.93rem}

/* FAQ */
details.faq{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);margin:.85rem 0;padding:1.3rem 1.6rem;box-shadow:var(--sh)}
details.faq summary{font-weight:600;cursor:pointer;list-style:none;display:flex;align-items:center;gap:.8rem;color:var(--navy);font-size:1.02rem}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::before{content:"";width:.9em;height:.9em;flex:0 0 auto;background:var(--gold);-webkit-mask:var(--arrow) no-repeat center/contain;mask:var(--arrow) no-repeat center/contain;transition:transform .25s var(--ease)}
details.faq[open] summary::before{transform:rotate(90deg)}
details.faq p{margin-top:.8rem;color:var(--body)}

/* forms & intake */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
input,textarea,select{font:inherit;width:100%;padding:.9rem 1.1rem;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(181,168,94,.22)}
label{font-weight:600;font-size:.88rem;display:block;margin-bottom:.35rem;color:var(--ink)}
.field-full{grid-column:1/-1}
.intake-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:2.4rem;box-shadow:var(--sh-hover);max-width:760px;margin:0 auto}
.radio-pills{display:flex;gap:.6rem;flex-wrap:wrap}
.radio-pills label{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:999px;padding:.6rem 1.3rem;cursor:pointer;font-weight:550;font-size:.93rem;color:var(--ink);margin:0;transition:all .2s var(--ease);background:#fff}
.radio-pills input{display:none}
.radio-pills label:has(input:checked){background:var(--navy);border-color:var(--navy);color:#fff}
.privacy-note{font-size:.85rem;color:var(--muted);margin-top:.9rem}

/* calculators */
.calc-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:2.2rem;box-shadow:var(--sh);max-width:680px;margin:0 auto}
.calc-row{display:flex;align-items:center;gap:1rem;margin:1rem 0}
.calc-row label{flex:1;margin:0}
.calc-row input,.calc-row select{flex:1.2}
.calc-out{background:var(--gold-wash);border:1px solid var(--line);border-radius:var(--r-sm);padding:1.4rem 1.6rem;margin-top:1.6rem}
.calc-out b{font-family:var(--font-display);font-size:1.9rem;color:var(--navy);display:block;font-feature-settings:"tnum"}
.calc-out span{font-size:.9rem;color:var(--body)}
.calc-note{font-size:.83rem;color:var(--muted);margin-top:1rem}

/* footer */
.site-footer{background:linear-gradient(180deg,var(--navy) 0%,var(--navy-deep) 100%);color:var(--on-navy);padding:72px 0 30px;font-size:.95rem}
.site-footer::before{display:none}
.site-footer h2{color:#fff;font-family:var(--font-display);font-weight:600}
.site-footer .btn-gold{background:transparent;color:#fff;border:1.5px solid var(--ghost,rgba(255,255,255,.45));box-shadow:none}
.site-footer .btn-gold:hover{background:rgba(255,255,255,.08);color:#fff;border-color:#fff;transform:none;box-shadow:none}
.site-footer h5{color:var(--gold-lt);font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:1rem;font-family:var(--font-body)}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:2.6rem;margin:2.6rem 0}
.site-footer a{color:var(--on-navy);transition:color .2s}
.site-footer a:hover{color:#fff}
.site-footer ul{list-style:none}
.site-footer li{margin:.5rem 0}
.site-footer li a{text-decoration:none}
.footer-ask{text-align:center;padding-bottom:2.6rem;border-bottom:1px solid rgba(255,255,255,.12)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:1.7rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.85rem;color:var(--on-navy-dim)}
.footer-mark{height:34px;margin-bottom:1.1rem;width:auto}

/* misc */
.scope-note{font-size:.94rem;color:var(--body);background:var(--card);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--r-sm);padding:1.2rem 1.5rem;box-shadow:var(--sh)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
.photo-ph{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);color:var(--muted);display:flex;align-items:center;justify-content:center;text-align:center;min-height:300px;font-size:.9rem;padding:1rem}
.sched-tabs,.scheduler-embed{display:none}
.skip{position:absolute;left:-9999px}

@media(max-width:920px){
  .site-nav,.site-header .header-cta{display:none}
  .nav-toggle{display:block}
  .site-header .wrap{height:70px}
  .mobile-nav.is-open{display:block;position:fixed;inset:70px 0 0 0;background:var(--navy-deep);z-index:49;padding:2rem 28px;overflow-y:auto}
  .mobile-nav a{display:block;color:#fff;text-decoration:none;font-size:1.3rem;font-weight:600;padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.1);font-family:var(--font-display)}
  .mobile-nav a.header-cta{display:block;text-align:center;margin-top:1.7rem;border-bottom:0;background:var(--gold);color:var(--navy-deep);font-family:var(--font-body);font-size:1.05rem}
  .hero{padding:72px 0 60px}
  .hero-grid,.two-col,.grid-3,.steps,.steps-4,.stat-row,.review-quotes,.form-grid{grid-template-columns:1fr}
  .hero-stats{gap:1.6rem}
  .footer-grid{grid-template-columns:1fr 1fr}
  .pkg-featured{transform:none}
  .calc-row{flex-direction:column;align-items:stretch}
  .intake-card{padding:1.6rem}
  section{padding:60px 0}
}

/* v9: gold hover line on cards (ARPGP pattern) */
.card:not(.pkg)::after{content:"";position:absolute;top:0;left:20px;right:20px;height:3px;border-radius:0 0 3px 3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.card:not(.pkg):hover::after{transform:scaleX(1)}

/* v7: sample rows, trusted-by marquee */
.sample-grid{grid-template-columns:1fr;gap:1.1rem;max-width:1000px;margin-left:auto;margin-right:auto}
.sample-card{display:grid;grid-template-columns:1.15fr 1.6fr .75fr 1fr;gap:1.4rem;align-items:center;padding:1.6rem 2rem}
.sample-card .lbl{display:block;font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem}
.sample-card .amt{margin:0;font-size:1.9rem;font-weight:700}
.sample-card .who{font-size:1.25rem;font-weight:700}
.tool-chips span{font-weight:700;font-size:.78rem;padding:.35rem .75rem;border-radius:8px;background:#fff;box-shadow:var(--sh)}
@media(max-width:920px){.sample-card{grid-template-columns:1fr;gap:.9rem}}
.logo-marquee{background:var(--gold-wash);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.5rem 0;overflow:hidden}
.logo-marquee p{text-align:center;font-size:.72rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:1rem}
.logo-track{display:flex;gap:2.6rem;width:max-content;animation:marq 32s linear infinite;align-items:center}
.logo-track span{font-family:var(--font-body);font-size:1.05rem;font-weight:700;letter-spacing:.02em;color:var(--navy);opacity:.62;white-space:nowrap}
.logo-marquee:hover .logo-track{animation-play-state:paused}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.logo-track{animation:none}}

/* ===== v15 mobile patch (additive only, on top of v12) ===== */
html,body{overflow-x:hidden}
.price-toggle{flex-wrap:wrap}
@media(max-width:920px){
  .grid-3,.steps,.calc-grid,.sample-card{grid-template-columns:1fr!important}
}
@media(max-width:600px){
  .footer-grid{grid-template-columns:1fr}
  .hero-stats .hs{padding:0 1.1rem}
  .hero-stats .hs b{font-size:2rem}
  .hero-stats .hs>span{font-size:.62rem;letter-spacing:.1em}
  .hero-pill button{padding:.7rem 1.05rem;font-size:.88rem}
  .wrap{padding:0 20px}
}

/* ===== v17 polish (additive): services + generations card typography & motion ===== */
#services .door-card h3{font-size:1.5rem;margin:.3rem 0 .55rem}
#services .door-card .door-kicker{color:var(--gold-deep);letter-spacing:.14em}
#services .door-card{transition:transform .25s ease,box-shadow .25s ease}
#services .door-card:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(18,43,69,.13)}
#services .door-card .go{font-weight:700}
#services .door-card .arr{display:inline-block;transition:transform .25s ease;color:var(--gold-deep)}
#services .door-card:hover .arr{transform:translateX(5px)}
#generations .card{border-top:3px solid var(--gold);padding:2rem 1.8rem}
#generations .card h3{font-size:1.45rem;margin-bottom:.15rem}
#generations .card p{font-size:.98rem;line-height:1.78}
#generations .card{transition:transform .25s ease,box-shadow .25s ease}
#generations .card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(18,43,69,.11)}

/* ===== v17.1 (additive): Generations = navy band, gold rules, centred headlines, stronger type ===== */
#generations{border-top:4px solid var(--gold);border-bottom:4px solid var(--gold)}
#generations .card{background:#fff;text-align:center;padding:2.3rem 2.1rem;box-shadow:0 18px 44px rgba(0,0,0,.28)}
#generations .card h3{color:var(--navy);font-size:1.65rem;margin-bottom:.9rem}
#generations .card p{color:var(--ink);text-align:left;font-size:1.03rem;line-height:1.8;margin:.2rem 0 1.2rem}
#generations .card .btn{min-width:60%}
#generations h2{font-size:clamp(2rem,3.4vw,2.7rem)}
#generations .card:hover{transform:translateY(-5px);box-shadow:0 24px 54px rgba(0,0,0,.34)}

/* ===== v18 (additive): gold section trims sitewide + advisors navy band ===== */
#reviews,#start{border-top:4px solid var(--gold)}
footer.site-footer{border-top:4px solid var(--gold)}
#advisor-benefits{border-top:4px solid var(--gold);border-bottom:4px solid var(--gold)}
#advisor-benefits .grid-2{gap:1.7rem}
#advisor-benefits .card{background:#fff;padding:2.1rem 2.2rem;box-shadow:0 18px 44px rgba(0,0,0,.28)}
#advisor-benefits .card h3{color:var(--navy);font-size:1.4rem;margin-bottom:.55rem}
#advisor-benefits .card p{color:var(--ink);font-size:1.02rem;line-height:1.8}
#advisor-benefits .card:hover{transform:translateY(-4px);box-shadow:0 24px 54px rgba(0,0,0,.34)}
#advisor-benefits .card{transition:transform .25s ease,box-shadow .25s ease}
/* ===== v18.1 (additive): .grid-2 was never defined; advisors cards were stacking with no gap ===== */
#advisor-benefits .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.7rem}
@media(max-width:920px){#advisor-benefits .grid-2{grid-template-columns:1fr;gap:1.4rem}}

/* ===== v19 (additive): hide dead trust links until real URLs exist ===== */
/* Every dead link carries title="TODO: ..." in the HTML. Hiding the wrapper via :has()
   keeps this fully reversible: wire the real GBP / portal URLs (remove the TODO titles)
   and these rules stop matching. Delete this block at GBP launch.
   Covers: footer "Client portal" + "Google reviews" on all pages, and the
   "Read all our reviews on Google" line under the testimonials on the home page.
   Privacy / Terms / AODA footer links stay visible: real pages are a launch TODO. */
li:has(> a[title^="TODO"]){display:none}
p:has(> a[title^="TODO"]){display:none}

/* ===== v20 (additive): advisory page + booking page cards ===== */
.adv-card{background:#fff;padding:2.1rem 2.2rem;box-shadow:0 14px 32px rgba(18,43,69,.11);border-top:3px solid var(--gold);transition:transform .25s ease,box-shadow .25s ease}
.adv-card:hover{transform:translateY(-4px);box-shadow:0 24px 54px rgba(18,43,69,.18)}
.adv-card h3{color:var(--navy);font-size:1.4rem;margin-bottom:.55rem}
.adv-card p{font-size:1.02rem;line-height:1.8}
.adv-price{background:#fff;padding:2.4rem 2.3rem;box-shadow:0 18px 44px rgba(18,43,69,.16);border-top:4px solid var(--gold);text-align:center}
@media(max-width:920px){.adv-grid{grid-template-columns:1fr!important;gap:1.4rem}}


/* ============================================================
   v6 additions — city marquee, real-estate callout, pricing blocks
   ============================================================ */
.logo-marquee p{color:var(--gold-deep)}
.vertical-callout{text-decoration:none;color:var(--ink);display:grid;grid-template-columns:auto 1fr auto;gap:1.6rem;align-items:center;
  background:var(--card);border:1px solid var(--line);border-left:4px solid var(--gold);
  border-radius:0 var(--r) var(--r) 0;padding:1.7rem 2rem;margin-top:1.7rem;text-align:left}
.vertical-callout .vc-kicker{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-deep);white-space:nowrap}
.vertical-callout h3{font-size:1.15rem;margin-bottom:.35rem;color:var(--navy)}
.vertical-callout:hover{box-shadow:var(--sh)}
.vertical-callout .arr{display:inline-block;transition:transform .25s var(--ease)}
.vertical-callout:hover .arr{transform:translateX(4px)}
.vertical-callout p{color:var(--body);font-size:.98rem;margin:0}
.vertical-callout .go{font-weight:700;color:var(--gold-deep);white-space:nowrap}
.price-block{margin-top:3.2rem}
.price-block:first-of-type{margin-top:1.4rem}
.price-block > .pb-head{margin-bottom:.4rem}
.price-block .pb-head h3{font-size:1.3rem}
.price-block .pb-head p{color:var(--body);font-size:.98rem;margin-top:.3rem}
@media (max-width:820px){
  .vertical-callout{grid-template-columns:1fr;gap:.9rem;text-align:left}
  .vertical-callout .vc-kicker,.vertical-callout .go{white-space:normal}
}

/* --muted and --body are white-ground colours. On navy they fail, so lift them. */
.band-navy [style*="var(--muted)"],.on-navy [style*="var(--muted)"],
.band-navy [style*="var(--body)"],.on-navy [style*="var(--body)"]{color:var(--on-navy-dim)!important}


/* ============================================================
   v7 — gold transition strips, Apple-density nav, calmer sections
   ============================================================ */

/* The gold strip. One between every band. This is the ornament. */
.strip{height:4px;background:var(--gold);width:100%}
.strip-thin{height:2px}

/* Nav: more labels, tighter, centred */
.site-nav{gap:1.45rem}
.site-nav a{font-size:.885rem;font-weight:500;letter-spacing:0}
@media (max-width:1180px){ .site-nav{gap:1.05rem} .site-nav a{font-size:.83rem} }

/* Hero: one column, properly centred, generous */
.hero{padding:5.5rem 0 5rem}
.hero-grid{max-width:50rem}
.hero h1{font-size:clamp(2.5rem,5.6vw,4.05rem);line-height:1.06;letter-spacing:-.035em;margin:0}
.hero .place{display:block;color:var(--gold-lt);font-weight:800}
.hero .tagline{font-size:1.12rem;margin:1.6rem auto 2.4rem;max-width:34rem;color:var(--on-navy)}
.hero-ctas{justify-content:center}
.hero-note{color:var(--on-navy-dim)}

/* Doors: three equal tiles, centred, big touch targets */
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem}
.door{display:flex;flex-direction:column;text-align:left;background:var(--card);
  border:1px solid var(--line);border-radius:16px;padding:2.4rem 2.1rem 2.1rem;
  text-decoration:none;color:var(--ink);transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.door:hover{box-shadow:0 14px 40px rgba(21,42,64,.10);transform:translateY(-2px)}
.door .dk{font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-deep);margin-bottom:1rem;white-space:nowrap}
.door h3{font-size:1.5rem;letter-spacing:-.025em;margin-bottom:.8rem}
.door p{font-size:.98rem;color:var(--body);margin:0 0 1.6rem;line-height:1.55}
.door .go{margin-top:auto;font-weight:700;font-size:.95rem;color:var(--gold-deep)}
.door .go .arr{display:inline-block;transition:transform .25s var(--ease)}
.door:hover .go .arr{transform:translateX(4px)}

/* Numbers band */
.figs{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;text-align:center}
.figs b{display:block;font-size:2.9rem;font-weight:800;letter-spacing:-.035em;color:var(--navy);
  line-height:1;font-variant-numeric:tabular-nums}
.figs i{color:var(--gold-deep);font-style:normal}
.figs span{display:block;margin-top:.7rem;font-size:.76rem;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--body)}

/* Price teaser: three numbers, no grid, no tabs */
.pteaser{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.8rem;text-align:center}
.pteaser div{padding:0 1rem}
.pteaser b{display:block;font-size:2.3rem;font-weight:800;letter-spacing:-.035em;color:var(--navy);
  line-height:1;font-variant-numeric:tabular-nums}
.pteaser strong{display:block;margin-top:.9rem;font-size:1rem;color:var(--navy)}
.pteaser span{display:block;margin-top:.35rem;font-size:.92rem;color:var(--body)}

/* Section rhythm, Apple-ish: fewer words, more air */
.sec-pad{padding:5.5rem 0}
.sec-pad .center h2{font-size:clamp(1.9rem,3.6vw,2.6rem);letter-spacing:-.03em}
.sec-lead{font-size:1.08rem;color:var(--body);max-width:38rem;margin:1.1rem auto 0}

@media (max-width:900px){
  .doors,.figs,.pteaser{grid-template-columns:1fr}
  .hero{padding:3.6rem 0 3.4rem}
  .sec-pad{padding:3.6rem 0}
}

/* ============================================================
   v22: dropdown nav (Personal / Business split) + comparison tables
   ============================================================ */

.site-header .wrap{gap:1.2rem}
.site-nav{align-self:stretch;height:100%;gap:.35rem;display:flex;align-items:stretch}
.navitem{position:relative;display:flex;align-items:center}
.navlink{display:inline-flex;align-items:center;gap:.4rem;color:var(--on-navy);
  text-decoration:none;font-weight:500;font-size:.9rem;font-family:var(--font-body);
  background:none;border:0;cursor:pointer;padding:.55rem .8rem;border-radius:9px;
  line-height:1;transition:color .18s,background .18s}
.site-nav a.navlink::after{display:none}
.navlink:hover,.navlink.is-active{color:#fff;background:rgba(255,255,255,.08)}
.navlink .chev{width:10px;height:6px;opacity:.75;transition:transform .2s var(--ease)}
.navitem:hover .chev,.navitem.open .chev{transform:rotate(180deg)}

.megamenu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);
  padding-top:.55rem;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .18s var(--ease),transform .18s var(--ease);z-index:60}
.navitem:hover .megamenu,.navitem:focus-within .megamenu,.navitem.open .megamenu{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.navitem[data-menu="resources"] .megamenu{left:auto;right:-.4rem;transform:translateY(6px)}
.navitem[data-menu="resources"]:hover .megamenu,
.navitem[data-menu="resources"]:focus-within .megamenu,
.navitem[data-menu="resources"].open .megamenu{transform:translateY(0)}
.mm-card{background:#fff;border:1px solid var(--line);border-radius:16px;
  box-shadow:0 22px 60px rgba(21,42,64,.22);padding:.75rem;
  display:grid;grid-template-columns:1fr 1fr;gap:.15rem;width:34rem}
.mm-card a{display:block;padding:.72rem .85rem;border-radius:11px;text-decoration:none;
  transition:background .15s}
.mm-card a:hover{background:var(--paper-2)}
.mm-card strong{display:block;color:var(--navy);font-size:.93rem;font-weight:600;line-height:1.3}
.mm-card span{display:block;color:var(--body);font-size:.8rem;margin-top:.16rem;line-height:1.35}

/* hamburger built from one span */
.nav-toggle{display:none;margin-left:auto;background:none;border:0;cursor:pointer;
  width:40px;height:40px;position:relative;color:#fff}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{
  content:"";position:absolute;left:9px;width:22px;height:2px;background:#fff;border-radius:2px;
  transition:transform .22s var(--ease),opacity .18s}
.nav-toggle span{top:19px}
.nav-toggle span::before{left:0;top:-7px}
.nav-toggle span::after{left:0;top:7px}
.nav-toggle[aria-expanded="true"] span{background:transparent}
.nav-toggle[aria-expanded="true"] span::before{transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span::after{transform:translateY(-7px) rotate(-45deg)}

@media (max-width:1080px){
  .site-nav,.site-header .header-cta{display:none}
  .nav-toggle{display:block}
  .mobile-nav .m-group{border-bottom:1px solid rgba(255,255,255,.1)}
  .mobile-nav .m-group summary{list-style:none;cursor:pointer;color:#fff;font-size:1.2rem;
    font-weight:700;padding:.95rem 0;font-family:var(--font-display);
    display:flex;justify-content:space-between;align-items:center}
  .mobile-nav .m-group summary::-webkit-details-marker{display:none}
  .mobile-nav .m-group summary::after{content:"+";font-weight:400;font-size:1.5rem;
    color:var(--gold-lt);line-height:1}
  .mobile-nav .m-group[open] summary::after{content:"\2212"}
  .mobile-nav .m-group a{font-size:1rem;font-weight:500;padding:.6rem 0 .6rem 1rem;
    border-bottom:0;color:var(--on-navy);font-family:var(--font-body)}
  .mobile-nav .m-group a:last-child{padding-bottom:1rem}
}

/* ---------- Comparison tables ---------- */
.cmp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:2.2rem}
table.cmp{width:100%;min-width:44rem;border-collapse:collapse;background:#fff;
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  font-variant-numeric:tabular-nums}
table.cmp th,table.cmp td{border-bottom:1px solid var(--line);text-align:center;
  padding:1rem .8rem;vertical-align:middle}
table.cmp thead th{background:#fff;padding:1.5rem .8rem 1.3rem;vertical-align:bottom}
table.cmp thead th .tier{display:block;font-size:.95rem;font-weight:700;color:var(--navy)}
table.cmp thead th .fee{display:block;margin-top:.3rem;font-size:1.55rem;font-weight:800;
  letter-spacing:-.03em;color:var(--navy);line-height:1.05}
table.cmp thead th .per{display:block;margin-top:.15rem;font-size:.76rem;color:var(--body)}
table.cmp thead th.cmp-head{text-align:left;font-size:1.15rem;font-weight:800;color:var(--navy);
  letter-spacing:-.02em}
table.cmp tbody th{text-align:left;font-weight:500;font-size:.94rem;color:var(--navy);
  width:42%;padding-left:1.3rem}
table.cmp tbody tr:nth-child(even) th,table.cmp tbody tr:nth-child(even) td{background:var(--paper-2)}
table.cmp tbody tr:last-child th,table.cmp tbody tr:last-child td{border-bottom:0}
table.cmp .feat{font-size:.9rem;color:var(--navy);font-weight:600}
.yes,.no{display:inline-block;width:22px;height:22px;border-radius:50%;line-height:22px;
  font-size:.78rem;font-weight:800}
.yes{background:var(--gold-deep);color:#fff}
.no{color:var(--body);background:none;font-size:1.05rem;font-weight:400}
.cmp-cta{padding:1.3rem .8rem 1.5rem}
.cmp-note{margin-top:1rem;font-size:.9rem;color:var(--body)}
.cmp-scroll-hint{display:none;font-size:.85rem;color:var(--body);margin-top:.8rem}
@media (max-width:820px){ .cmp-scroll-hint{display:block} }

table.cmp thead th.is-feat{position:relative}
table.cmp thead th.is-feat::before{content:"Most popular";position:absolute;top:.45rem;left:50%;
  transform:translateX(-50%);font-size:.64rem;font-weight:800;letter-spacing:.13em;
  text-transform:uppercase;color:var(--gold-deep);white-space:nowrap}
table.cmp thead th.is-feat,table.cmp tbody td:nth-child(3){background:rgba(181,168,94,.07)}
table.cmp tbody tr:nth-child(even) td:nth-child(3){background:rgba(181,168,94,.11)}
table.cmp tfoot td{border-bottom:0}
table.cmp tfoot .btn{padding:.6rem 1.1rem;font-size:.88rem}
.site-nav>a.navlink{align-self:center}

/* ============================================================
   v24: one hero, one set of rules. Every page uses this.
   ============================================================ */
.hero{padding:5.4rem 0 4.8rem}
.hero .wrap{display:block}
.hero-grid{display:block;text-align:center;max-width:52rem;margin:0 auto}
.hero-grid .kicker{justify-content:center;margin-bottom:1.4rem}
.hero h1{font-size:clamp(2.05rem,4.3vw,3.3rem);line-height:1.12;letter-spacing:-.028em;margin:0;color:#fff}
.hero-home h1{font-size:clamp(2.5rem,5.6vw,4.05rem);line-height:1.06;letter-spacing:-.035em}
.hero .place{display:block;color:var(--gold-lt);font-weight:800}
.hero .tagline{font-size:1.1rem;line-height:1.7;color:var(--on-navy);
  max-width:40rem;margin:1.5rem auto 2.2rem;font-weight:400}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin:0}
.hero-note{margin-top:1.4rem;font-size:.92rem;color:var(--on-navy-dim)}
.hero-grid .hero-stats{justify-content:center}
@media (max-width:900px){ .hero{padding:3.6rem 0 3.2rem} .hero .tagline{font-size:1.02rem} }

/* Colour highlight in the boxes: a gold rule that draws in on hover */
.door{position:relative;overflow:hidden}
.door::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--ease)}
.door:hover::after{transform:scaleX(1)}
.door:hover .dk{color:var(--navy)}
.door .dk{transition:color .3s var(--ease)}

/* ============================================================
   v26: kill the inline styles. Reusable components only.
   ============================================================ */

/* Footer newsletter, repeated on all 25 pages */
.foot-office{font-size:.88rem;color:var(--on-navy-dim)}
.foot-consent{font-weight:400;font-size:.78rem;margin-top:.5rem;display:flex;gap:.5rem;
  align-items:flex-start;color:var(--on-navy)}
.foot-consent input{width:auto;margin-top:.2rem}
.btn-sm{padding:.55rem 1.1rem;font-size:.9rem}

/* Feature grid: the standard way to show 3 or 4 short points */
.fgrid{display:grid;gap:1.4rem;margin-top:2.8rem}
.fgrid-2{grid-template-columns:repeat(2,1fr)}
.fgrid-3{grid-template-columns:repeat(3,1fr)}
.fgrid-4{grid-template-columns:repeat(4,1fr)}
.fg{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:1.75rem 1.5rem;position:relative;overflow:hidden;text-align:left;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.fg::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.fg:hover{transform:translateY(-2px);box-shadow:0 14px 40px rgba(21,42,64,.10)}
.fg:hover::after{transform:scaleX(1)}
.fg h3{font-size:1.05rem;font-weight:700;color:var(--navy);margin:0 0 .5rem;
  line-height:1.35;letter-spacing:-.01em}
.fg p{font-size:.95rem;color:var(--body);margin:0;line-height:1.55}

/* Section header: one way to open a section */
.sec-head{text-align:center;max-width:44rem;margin:0 auto}
.sec-head h2{font-size:clamp(1.85rem,3.4vw,2.5rem);letter-spacing:-.03em;margin:0}
.sec-head .kicker{justify-content:center}
.sec-head p{font-size:1.06rem;color:var(--body);margin:1rem auto 0;max-width:38rem}

@media (max-width:1000px){ .fgrid-4{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){ .fgrid-4,.fgrid-3,.fgrid-2{grid-template-columns:1fr} }
.door-static{cursor:default}
.door-static.is-feat{border:2px solid var(--navy)}
.door p.door-price,.door-price{font-size:2.1rem;font-weight:800;color:var(--navy);letter-spacing:-.03em;margin:0 0 1rem;line-height:1}
.door p.door-price .per,.door-price .per{font-size:1rem;font-weight:600;color:var(--body)}
.arrows-sm{font-size:.95rem}
.wrap-narrow{max-width:900px}
.sec-lead.on-dark{color:var(--on-navy)}
.sec-head+.doors,.sec-head+.fgrid,.sec-head+.cmp-wrap{margin-top:2.8rem}
.wrap-820{max-width:820px}
.wrap-52{max-width:52rem;margin-left:auto;margin-right:auto}
.align-start{align-items:start}
.btn-block{width:100%;justify-content:center}
.pt-lg{padding-top:64px}
.steps-5{grid-template-columns:repeat(5,1fr)}
.t-muted{color:var(--muted)}
.t-body{color:var(--body)}
.t-lg{font-size:1.15rem}
.t-semi{font-weight:600}
.mt3{margin-top:3.2rem}
.mb3{margin-bottom:2.6rem}
@media (max-width:900px){ .steps-5{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .steps-5{grid-template-columns:1fr} }

/* ---------- Mobile: readable type, thumb-sized targets ---------- */
@media (max-width:760px){
  .dk,.door-kicker,.logo-marquee p,.kicker,.kicker-chip,
  .figs span,.pteaser span,.hero-stats .hs>span{font-size:.78rem}
  .foot-consent{font-size:.82rem;line-height:1.45;align-items:center}
  .foot-consent input[type="checkbox"]{width:20px;height:20px;flex:0 0 20px;margin-top:0}
  .btn-sm{padding:.85rem 1.4rem;font-size:.95rem;min-height:44px}
  .site-footer form input[type="email"]{min-height:44px}
  .btn{min-height:46px}
  .radio-pills label{min-height:44px;display:inline-flex;align-items:center}
  .faq summary{min-height:44px;display:flex;align-items:center}
}


.foot-consent input[type="checkbox"]{width:18px;height:18px;flex:0 0 18px;margin-top:.1rem}
@media (max-width:760px){
  .door .dk,.pkg .dk,.fg .dk{font-size:.78rem;letter-spacing:.14em}
  .foot-consent input[type="checkbox"]{width:24px;height:24px;flex:0 0 24px;margin-top:0}
}

/* Comparison tables on a phone: fit the label plus one tier, fade the edge */
@media (max-width:760px){
  .cmp-wrap{position:relative;margin-left:-28px;margin-right:-28px;padding:0 28px}
  table.cmp{min-width:33rem;font-size:.88rem}
  table.cmp tbody th{width:52%;padding-left:.9rem;font-size:.87rem;line-height:1.35}
  table.cmp th,table.cmp td{padding:.8rem .45rem}
  table.cmp thead th{padding:1.35rem .45rem 1rem}
  table.cmp thead th .fee{font-size:1.3rem}
  table.cmp thead th .tier{font-size:.85rem}
  table.cmp thead th.cmp-head{font-size:1rem;padding-left:.9rem}
  table.cmp thead th.is-feat::before{font-size:.7rem;letter-spacing:.08em}
  table.cmp tfoot .btn{padding:.6rem .8rem;font-size:.8rem;min-height:0}
  .cmp-scroll-hint{padding:0 0 0 .2rem}
}

/* ============================================================
   v27 APPEND, 2026-09-19. Additive only, nothing above is edited.
   Three token changes plus the home-page components (h7-) and
   the slim footer (f7-). Rollback = delete from this marker down.
   ============================================================ */
:root{
  --font-body:'Source Serif 4',Georgia,'Times New Roman',serif;  /* was Inter */
  --body:#3B4654;      /* was #6B6A66, cool slate pulled from the navy */
  --muted:#3B4654;
  --paper-2:#EDEFF2;   /* was #F5F5F7, so a band is visibly a band */
  --mist:#EDEFF2;
  --gold-wash:#EDEFF2;
}
h1,h2,h3,h4,h5,h6,.navlink,.header-cta,.btn,.kicker,.tier,.fee,.per,.f7-h,.f7-list{font-family:var(--font-display)}
.hero h1,.hero-home h1{font-weight:700;letter-spacing:-.015em}
.mm-rule{border:0;border-top:1px solid var(--line);margin:8px 6px}

/* ---------- slim footer ---------- */
.f7-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px}
.f7-logo{width:112px;margin-bottom:18px}
.f7-logo svg{width:100%;height:auto;display:block}
.f7-addr{font-size:.95rem;line-height:1.65;color:var(--on-navy)}
.f7-h{font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-lt);margin-bottom:14px}
.f7-list{list-style:none;margin:0;padding:0;font-size:.93rem}
.f7-list li{margin-bottom:9px}
.f7-list a,.f7-addr a{color:var(--on-navy);text-decoration:none}
.f7-list a:hover,.f7-addr a:hover{color:#fff;text-decoration:underline}
.f7-cities{margin-top:34px;padding-top:18px;border-top:1px solid var(--navy-soft);
  font-size:.88rem;color:var(--on-navy-dim)}
.f7-legal{margin-top:16px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-family:var(--font-display);font-size:.82rem;color:var(--on-navy-dim)}
.f7-legal a{color:var(--on-navy-dim)}
@media (max-width:820px){.f7-grid{grid-template-columns:1fr;gap:28px}}

/* ---------- home v27 ---------- */
.h7-kick{font-family:var(--font-display);font-weight:700;font-size:.75rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-deep);margin-bottom:.9rem}
.h7-kick.on-navy{color:var(--gold-lt)}
.h7-sec{padding:58px 0}
.h7-band{background:var(--paper-2)}
.h7-head{max-width:44rem;margin-bottom:2rem}
.h7-head h2{font-weight:700;letter-spacing:-.018em;line-height:1.14;
  font-size:clamp(1.75rem,3.1vw,2.35rem);color:var(--navy)}
.h7-lead{font-size:1.06rem;margin-top:.7rem;max-width:40rem;color:var(--body)}

.h7-hero{background:var(--paper);padding:54px 0 46px;border-bottom:1px solid var(--line)}
.h7-hgrid{display:grid;grid-template-columns:1.12fr .88fr;gap:52px;align-items:center}
.h7-hgrid h1{font-family:var(--font-display);font-weight:700;letter-spacing:-.015em;line-height:1.1;
  font-size:clamp(2.1rem,4.3vw,3.35rem);color:var(--navy);margin:0}
.h7-hgrid h1 em{font-style:normal;color:var(--gold-deep)}
.h7-hlead{font-size:1.14rem;line-height:1.6;margin:1.15rem 0 1.7rem;max-width:34rem;color:var(--body)}
.h7-ctas{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.h7-textlink{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--navy);
  text-decoration:underline;text-underline-offset:4px;padding:.85rem .4rem}
.h7-proof{display:flex;gap:10px 30px;flex-wrap:wrap;margin-top:2rem;padding-top:1.2rem;
  border-top:1px solid var(--line);font-family:var(--font-display);font-size:.85rem;
  font-weight:500;color:var(--body)}
.h7-proof b{font-weight:700;color:var(--navy)}

.h7-start{background:linear-gradient(170deg,var(--navy-deep) 0%,var(--navy) 75%);border-radius:var(--r);
  padding:28px 26px 24px;color:var(--on-navy);
  box-shadow:0 2px 4px rgba(21,42,64,.06),0 20px 48px rgba(21,42,64,.16)}
ol.h7-sc{list-style:none;counter-reset:sc;margin:0;padding:0}
ol.h7-sc li{counter-increment:sc;padding:0 0 14px 40px;position:relative;margin-bottom:14px;
  border-bottom:1px solid var(--navy-soft)}
ol.h7-sc li:last-child{border-bottom:0;margin-bottom:0;padding-bottom:4px}
ol.h7-sc li::before{content:counter(sc);position:absolute;left:0;top:1px;width:26px;height:26px;
  border-radius:50%;border:1px solid var(--gold);color:var(--gold-lt);
  font-family:var(--font-display);font-size:.76rem;font-weight:700;line-height:24px;text-align:center}
ol.h7-sc b{display:block;font-family:var(--font-display);font-size:.98rem;font-weight:700;color:#fff;margin-bottom:2px}
ol.h7-sc span{display:block;font-size:.95rem;line-height:1.5}
.h7-scmore{display:inline-block;margin-top:18px;font-family:var(--font-display);font-weight:700;
  font-size:.9rem;color:var(--gold-lt);text-decoration:none}

.h7-doors{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.h7-door{background:var(--paper-2);border-radius:var(--r);padding:26px 24px 24px;
  display:flex;flex-direction:column}
.h7-door.feat{grid-column:span 2;background:#fff;border-top:3px solid var(--navy);padding:30px 28px 28px;
  box-shadow:0 2px 3px rgba(21,42,64,.05),0 16px 40px rgba(21,42,64,.09)}
.h7-door h3{font-family:var(--font-display);font-size:1.28rem;font-weight:700;letter-spacing:-.012em;
  margin:0 0 .55rem;color:var(--navy)}
.h7-door.feat h3{font-size:1.44rem}
.h7-door p{font-size:1rem;line-height:1.58;color:var(--body)}
.h7-inc{list-style:none;margin:1rem 0 1.3rem;padding:0}
.h7-inc li{display:flex;gap:10px;align-items:flex-start;font-family:var(--font-display);
  font-size:.9rem;font-weight:500;color:var(--navy);margin-bottom:.55rem;line-height:1.45}
.h7-dot{flex:none;width:20px;height:20px;border-radius:50%;background:var(--gold-deep);color:#fff;
  font-size:.66rem;line-height:20px;text-align:center;margin-top:1px}
.h7-go{margin-top:auto;font-family:var(--font-display);font-weight:700;font-size:.92rem;
  color:var(--gold-deep);text-decoration:none}

.h7-note{text-align:center;margin:-1rem auto 1.7rem;max-width:42rem;font-size:.95rem;color:#6E7885}
.h7-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:2.2rem}
.h7-rev{background:#fff;border-radius:var(--r);padding:24px;border:1px solid var(--line)}
.h7-rev .h7-stars{color:var(--gold-deep);font-size:.9rem;letter-spacing:.14em;margin-bottom:.6rem}
.h7-rev p{font-size:1rem;line-height:1.55;font-style:italic;color:var(--body);margin:0}
.h7-who{font-family:var(--font-display);font-size:.84rem;font-weight:600;color:#6E7885;margin-top:.9rem}
.h7-creds{display:flex;gap:10px 14px;flex-wrap:wrap;justify-content:center}
.h7-cred{font-family:var(--font-display);font-size:.8rem;font-weight:600;color:var(--navy);
  background:#fff;border:1px solid var(--line);border-radius:99px;padding:8px 16px}

.h7-prices{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:2rem}
.h7-price{padding-top:20px;border-top:2px solid var(--navy)}
.h7-amt{font-family:var(--font-display);font-weight:800;font-size:2.5rem;color:var(--navy);
  letter-spacing:-.025em;line-height:1;font-variant-numeric:tabular-nums}
.h7-what{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--navy);margin-top:.5rem}
.h7-per{font-size:.92rem;color:var(--body);margin-bottom:.8rem}
.h7-price p{font-size:.97rem;line-height:1.55;margin:0;color:var(--body)}

.h7-faqres{display:grid;grid-template-columns:1.4fr .85fr;gap:56px;align-items:start}
.h7-rail{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 24px}
.h7-rail h3{font-family:var(--font-display);font-size:1.22rem;font-weight:700;margin:0 0 .5rem;color:var(--navy)}
.h7-reslinks{display:grid;margin-top:1rem}
.h7-reslinks a{font-family:var(--font-display);font-size:.92rem;font-weight:600;color:var(--navy);
  text-decoration:none;padding:10px 0;border-top:1px solid var(--line)}
.h7-q{border-bottom:1px solid var(--line);padding:16px 0}
.h7-q h4{font-family:var(--font-display);font-size:1.05rem;font-weight:600;margin:0 0 .35rem;color:var(--navy)}
.h7-q p{font-size:1rem;margin:0;line-height:1.56;color:var(--body)}

.h7-close{background:linear-gradient(170deg,var(--navy-deep) 0%,var(--navy) 70%);color:var(--on-navy);
  border-top:4px solid var(--gold);padding:56px 0}
.h7-close h2{color:#fff}
.h7-close .h7-lead{color:var(--on-navy)}
.h7-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:38rem;margin-top:1.8rem}
.h7-form .full{grid-column:1/-1}
.h7-form label{display:block;font-family:var(--font-display);font-size:.78rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:var(--on-navy-dim);margin-bottom:6px}
.h7-form input,.h7-form textarea{width:100%;font-family:var(--font-body);font-size:1rem;padding:12px 14px;
  border-radius:8px;border:1px solid var(--navy-soft);background:rgba(255,255,255,.06);color:#fff}
.h7-form input::placeholder,.h7-form textarea::placeholder{color:#7C8899}
.h7-alt{margin-top:1.4rem;font-size:.95rem;color:var(--on-navy-dim)}
.h7-alt a{color:#fff}

@media (max-width:900px){
  .h7-hgrid{grid-template-columns:1fr;gap:28px}
  .h7-doors{grid-template-columns:1fr;gap:16px}
  .h7-door.feat{grid-column:span 1}
  .h7-reviews{grid-template-columns:1fr}
  .h7-prices{grid-template-columns:1fr;gap:20px}
  .h7-faqres{grid-template-columns:1fr;gap:26px}
}
@media (max-width:560px){
  .h7-sec{padding:38px 0}
  .h7-hero{padding:34px 0 38px}
  .h7-hgrid h1{font-size:2rem;letter-spacing:-.008em;line-height:1.14}
  .h7-hlead{font-size:1.02rem}
  .h7-ctas .btn{width:100%;text-align:center}
  .h7-form{grid-template-columns:1fr}
  .h7-close{padding:44px 0}
}

/* Content ships visible. The IntersectionObserver in site.js still runs and
   still adds its class, but nothing is parked at opacity:0 waiting for it,
   so a slow connection, a blocked script or a link preview never lands on a
   blank white page. Reveal-on-scroll was also doing the site no favours. */
.rv{opacity:1;transform:none}

/* Three doors, business wider. Estates and realtors move to a link line. */
.h7-doors{grid-template-columns:1.32fr 1fr 1fr}
.h7-door.feat{grid-column:auto}
.h7-also{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;margin-top:26px;
  padding-top:20px;border-top:1px solid var(--line)}
.h7-also .h7-kick{margin-bottom:0}
.h7-also a{font-family:var(--font-display);font-size:.94rem;font-weight:500;color:var(--body);
  text-decoration:none}
.h7-also a strong{font-weight:700;color:var(--navy)}
.h7-also a:hover strong{color:var(--gold-deep)}
@media (max-width:900px){
  .h7-doors{grid-template-columns:1fr}
  .h7-also{flex-direction:column;align-items:flex-start;gap:12px}
}

/* ---------- v27 part two: interior pages in the home-page format ---------- */

/* Mega-menu: the divider has to span both columns or the grid jumps. */
.mm-card .mm-rule{grid-column:1/-1;border:0;border-top:1px solid var(--line);margin:6px 2px}

/* Gold trim only on the highlighted sections. The strips between every
   section were doing no work; navy bands now carry the gold rule instead. */
.strip,.strip-thin{display:none}
.band-navy{border-top:4px solid var(--gold)}
.site-footer{border-top:4px solid var(--gold)}

/* Interior heroes: white, left aligned, same language as the home hero. */
.hero-light{background:var(--paper);color:var(--body);border-bottom:1px solid var(--line);
  padding:62px 0 54px}
.hero-light .hero-grid{text-align:left;margin:0;max-width:52rem}
.hero-light h1{color:var(--navy);font-weight:700;letter-spacing:-.015em;line-height:1.1;
  font-size:clamp(2rem,3.9vw,3rem)}
.hero-light .hl-accent{color:var(--gold-deep);font-weight:700}
.hero-light .kicker{color:var(--gold-deep)}
.hero-light .tagline{margin:1.15rem 0 1.7rem;color:var(--body);font-size:1.12rem;max-width:36rem}
.hero-light .hero-ctas{justify-content:flex-start}
.hero-light .hero-note{color:var(--body);opacity:.85}
.hero-light .hero-stats{border-top:1px solid var(--line);justify-content:flex-start;
  margin-top:2.2rem;padding-top:1.6rem}
.hero-light .hero-stats .hs{border-left-color:var(--line);text-align:left;padding:0 2rem}
.hero-light .hero-stats .hs:first-child{padding-left:0}
.hero-light .hero-stats .hs b{color:var(--navy);font-size:2.1rem}
.hero-light .hero-stats .hs span{color:var(--body)}
.hero-light .btn-outline-white,.hero-light .btn-ghost{border-color:var(--navy);color:var(--navy)}
.hero-light .btn-outline-white:hover,.hero-light .btn-ghost:hover{background:var(--navy);color:#fff}
@media (max-width:560px){
  .hero-light{padding:36px 0 34px}
  .hero-light h1{font-size:1.95rem;letter-spacing:-.008em;line-height:1.15}
  .hero-light .hero-ctas .btn{width:100%;text-align:center}
  .hero-light .hero-stats .hs{padding:0 1.1rem}
  .hero-light .hero-stats .hs:first-child{padding-left:0}
}

/* Calculators and tools inherit the same surfaces. */
.tool-card,.calc,.calc-card{background:var(--paper-2);border-color:var(--line)}
.tool-out,.calc-out{background:var(--navy);color:#fff}

/* Last item under the v7 12px floor on a phone. */
.bracket-list h4{font-family:var(--font-display);font-size:.78rem;color:var(--body)}

/* Price blocks stay left aligned with the section head, the lead and the button
   above and below them. Capping the description keeps the trio reading as a set. */
.h7-price p{max-width:26rem}

/* ---------- v27 part three: the card motion, measured off t4tax.netlify.app ----------
   Not reconstructed from the stylesheet. Read off the live reference at rest and
   on hover, so the numbers are the reference's numbers:
     card      translateY(-5px), transition transform .25s, box-shadow .25s
     shadow    to rgba(18,43,69,.13) 0 16px 36px
     gold rule 3px, inset 20px each side, radius 0 0 3px 3px,
               scaleX 0 to 1 over .4s cubic-bezier(.16,1,.3,1)
     arrow     translateX(5px) over .25s
     kicker    does NOT change colour on the reference, so it does not here either
   Only the gold is the current token (#B5A85E) rather than the retired #C89B4B. */

.h7-door{position:relative;transition:transform .25s,box-shadow .25s,background .25s}
.h7-door::after{content:"";position:absolute;top:0;left:20px;right:20px;height:3px;
  border-radius:0 0 3px 3px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;
  transition:transform .4s cubic-bezier(.16,1,.3,1)}
.h7-door:hover::after{transform:scaleX(1)}
.h7-door:hover{transform:translateY(-5px);box-shadow:rgba(21,42,64,.13) 0 16px 36px}
/* the reference cards are already white, so it had no fill to lift.
   Ours are filled, so the fill going to white is the "highlight" half. */
.h7-door:not(.feat):hover{background:#fff}

.h7-door .h7-go{position:relative}
.h7-door .h7-go .arr,.h7-door .h7-go::after{transition:transform .25s}
.h7-door .h7-go::after{content:"";display:inline-block;width:.62em;height:.62em;
  margin-left:.45em;vertical-align:-.02em;background:currentColor;
  -webkit-mask:var(--arrow) no-repeat center/contain;
  mask:var(--arrow) no-repeat center/contain}
.h7-door:hover .h7-go::after{transform:translateX(5px)}

/* Same motion, same numbers, on the other cards so the page reads as one system. */
.h7-rev,.h7-rail{position:relative;transition:transform .25s,box-shadow .25s}
.h7-rev::after,.h7-rail::after{content:"";position:absolute;top:0;left:20px;right:20px;height:3px;
  border-radius:0 0 3px 3px;background:var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .4s cubic-bezier(.16,1,.3,1)}
.h7-rev:hover::after,.h7-rail:hover::after{transform:scaleX(1)}
.h7-rev:hover,.h7-rail:hover{transform:translateY(-5px);box-shadow:rgba(21,42,64,.13) 0 16px 36px}

.h7-reslinks a{transition:color .25s,padding-left .25s}
.h7-reslinks a:hover{color:var(--gold-deep);padding-left:5px}
.h7-price{transition:border-color .25s}
.h7-price:hover{border-top-color:var(--gold-deep)}
.h7-start{transition:transform .25s,box-shadow .25s}
.h7-start:hover{transform:translateY(-5px);
  box-shadow:0 2px 4px rgba(21,42,64,.06),0 26px 56px rgba(21,42,64,.22)}

@media (prefers-reduced-motion:reduce){
  .h7-door,.h7-door::after,.h7-rev,.h7-rev::after,.h7-rail,.h7-rail::after,
  .h7-reslinks a,.h7-price,.h7-start,.h7-door .h7-go::after{transition:none}
  .h7-door:hover,.h7-rev:hover,.h7-rail:hover,.h7-start:hover{transform:none}
}

/* ---------- v27 part five ----------
   Sal spotted this: interior pages still read as the old site. They were not
   the old font, they were the old WEIGHT. Part one only loosened the hero H1,
   so every H2 and H3 below it stayed at Inter 800 / -0.03em while the home page
   ran 700 / -0.015em. Same face, two different voices, one page apart.
   Everything now sits on the home page's setting. */
h2,.sec-head h2{font-weight:700;letter-spacing:-.015em}
h3,.step h3,.card h3,.door h3{font-weight:700;letter-spacing:-.01em}
h4{font-weight:600}

/* A control is not prose. The accordion summary was rendering in the body serif,
   which is the other thing that read as off. */
details.faq summary,.faq summary,summary{font-family:var(--font-display);font-weight:600}

/* Step copy was 15.36px. Small for a paragraph, and under the phone floor once
   it scales down. */
.step p{font-size:.97rem;line-height:1.55}
.step h3{font-size:1.08rem}

/* ---------- v27 part six: one scale, everywhere ----------
   Audited all 25 live pages. The "sections aren't aligned" feeling was four
   different corner radii (16, 12, 10, 0), nine card paddings between 12 and
   38px, three H2 sizes (37.6 / 40 / 43.2), six H3 sizes, and two different
   kicker trackings (home .2em, every other page .28em). Same components,
   different numbers. One scale now. */

/* Radius: one value. --r is 12px. */
.card,.door,.door-card,.step,.stat,.opt-card,.pkg,.mm-card,.intake-card,.calc-card,
.tool-card,.h7-door,.h7-rev,.h7-rail,.h7-start,details.faq,.f-card,.note-card{
  border-radius:var(--r)}
.mm-card{border-radius:12px}

/* Card padding: two values only. Standard, and roomy for a feature card. */
.card,.step,.stat,.opt-card,.calc-card,.tool-card,details.faq{padding:1.7rem}
.h7-door,.intake-card,.pkg{padding:1.7rem}
.h7-door.feat{padding:1.9rem}

/* Heading scale: one clamp per level, site-wide. */
h2,.sec-head h2{font-size:clamp(1.75rem,3.1vw,2.35rem);font-weight:700;letter-spacing:-.015em;line-height:1.14}
h3{font-size:clamp(1.08rem,1.5vw,1.28rem);font-weight:700;letter-spacing:-.01em;line-height:1.25}
h4{font-size:1rem;font-weight:600;letter-spacing:0;line-height:1.35}
.h7-door.feat h3{font-size:1.44rem}

/* Kicker: one tracking. The home page ran .2em and every other page .28em. */
.kicker,.h7-kick,.f7-h{letter-spacing:.2em;font-size:.75rem;font-weight:700;text-transform:uppercase}
.kicker{color:var(--gold-deep)}
.band-navy .kicker,.on-navy .kicker{color:var(--gold-lt)}

/* A pale gold border was in use on six boxes and is not a brand token. */
[style*="#E3CF9F"],.note-card{border-color:var(--line)}

/* Borders: one hairline weight. The 3px gold card border was a one-off. */
.card,.step,.stat,.opt-card,.calc-card,.tool-card,details.faq,.h7-rev,.h7-rail{
  border-width:1px;border-color:var(--line)}

/* Last two off the audit. Card headings were landing on five values between
   19.52 and 23.04px because each card type named its own size. One value now,
   with the feature card as the single deliberate exception. */
.card h3,.door-card h3,.adv-card h3,.door h3,.h7-door h3,.h7-rail h3,
#services .door-card h3,#generations .card h3,#advisor-benefits .card h3,
.price-block .pb-head h3,.vertical-callout h3{
  font-size:1.28rem;letter-spacing:-.012em;line-height:1.25}
.h7-door.feat h3{font-size:1.44rem}

/* --r-sm was 10px and --r 12px, so card-like things split across two radii
   depending on which token they happened to use. One radius for cards. */
:root{--r-sm:12px}

/* ---------- v27 part eight: the closing band gets a place ----------
   Brant Street Pier behind the final CTA, under a navy wash that is heavy on
   the left where all the text sits and lifts across to the right so the photo
   actually reads. It is a background, not a hero: the form, the headline and
   the phone number stay in charge. Home page only, so it stays an event.
   No background-attachment:fixed. With cover sizing it re-crops against the
   viewport rather than the element, which hid the pier entirely. */
.h7-close{
  position:relative;
  background-color:var(--navy-deep);
  background-image:
    linear-gradient(97deg,
      rgba(14,32,54,.975) 0%,
      rgba(14,32,54,.955) 34%,
      rgba(14,32,54,.80)  58%,
      rgba(16,36,60,.46)  78%,
      rgba(18,40,66,.26)  100%),
    url("/assets/img/burlington-pier.jpg");
  background-size:auto, cover;
  background-position:center, right 38%;
  background-repeat:no-repeat;
}
/* Keep the form column off the bright end of the photo. */
.h7-close .wrap{position:relative;z-index:2}
.h7-close .h7-head,.h7-close .h7-form,.h7-close .h7-alt,.h7-close .h7-place{max-width:40rem}
.h7-place{margin-top:.55rem;font-size:.88rem;color:var(--on-navy-dim);
  font-family:var(--font-display);letter-spacing:.01em}

/* On a phone the content runs the full width, so the wash carries the whole
   frame instead of fading across it, and the pier sits under the lower half. */
@media (max-width:820px){
  .h7-close{
    background-image:
      linear-gradient(178deg,
        rgba(14,32,54,.975) 0%,
        rgba(14,32,54,.96)  56%,
        rgba(15,34,57,.91)  80%,
        rgba(16,36,60,.88)  100%),
      url("/assets/img/burlington-pier.jpg");
    background-position:center, center 82%;
  }
}

/* ---------- v27 part nine: the pier strip under the hero ----------
   A short band between the hero and the service doors. The hero keeps the
   intake card, the proof line and the fee anchors; the photo simply appears
   early. It also gives the service-area line a real home instead of leaving
   it buried in the footer, which is where that SEO copy actually wants to be.
   Same image file as the closing band, cropped by object-position. */
.h7-strip{
  position:relative;
  min-height:132px;
  display:flex;align-items:center;
  background-color:var(--navy-deep);
  background-image:
    linear-gradient(92deg,
      rgba(14,32,54,.94) 0%,
      rgba(14,32,54,.86) 30%,
      rgba(14,32,54,.55) 58%,
      rgba(16,36,60,.24) 82%,
      rgba(18,40,66,.10) 100%),
    url("/assets/img/burlington-pier.jpg");
  background-size:auto, cover;
  background-position:center, center 46%;
  background-repeat:no-repeat;
  border-top:1px solid var(--line);
}
.h7-strip-in{padding-block:22px;position:relative;z-index:2}
.h7-strip-k{font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-lt);margin-bottom:.45rem}
.h7-strip-t{font-family:var(--font-display);font-weight:700;color:#fff;
  font-size:clamp(1.15rem,2.1vw,1.55rem);letter-spacing:-.012em;line-height:1.2;margin:0}
.h7-strip-s{font-size:.97rem;color:var(--on-navy);margin:.3rem 0 0;max-width:46ch}

/* Phone: content is full width, so the wash carries the whole frame. */
@media (max-width:820px){
  .h7-strip{
    min-height:118px;
    background-image:
      linear-gradient(178deg,
        rgba(14,32,54,.95) 0%,
        rgba(14,32,54,.90) 60%,
        rgba(16,36,60,.82) 100%),
      url("/assets/img/burlington-pier.jpg");
    background-position:center, center 52%;
  }
  .h7-strip-in{padding-block:20px}
  .h7-strip-s{font-size:.92rem}
}

/* The strip was inheriting the base section padding and a centred text-align,
   which turned a 130px breath band into a 317px centred section. */
section.h7-strip{padding:0;text-align:left}
.h7-strip .h7-strip-in{padding-block:24px;text-align:left}
.h7-strip-t,.h7-strip-s,.h7-strip-k{text-align:left}
@media (max-width:820px){.h7-strip .h7-strip-in{padding-block:20px}}
