/* ============================================================
   THE HUB — Generational Wealth resource center
   Shared styles for the hub index + article pages (dark brand theme)
   ============================================================ */
:root{
  --navy-900:#070B17;--navy-850:#090f1f;--navy-800:#0B142B;--card:#0d1528;--line:#1f2a44;--line-soft:#162038;
  --gold:#D4AF37;--gold-bright:#E8C766;--green:#22C55E;--green-deep:#16A34A;--cream:#FBF7EA;
  --ink-100:#F8FAFC;--ink-200:#E5E7EB;--ink-300:#CBD5E1;--ink-400:#A8B1C2;--ink-500:#7c8499;
  --font-sans:'Inter',system-ui,sans-serif;--font-serif:'Playfair Display',Georgia,serif;--font-mono:'JetBrains Mono',monospace;
  --ease:cubic-bezier(.22,1,.36,1);--r-md:14px;--r-lg:20px;--r-xl:26px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--navy-900);color:var(--ink-300);font-family:var(--font-sans);line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:clip}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(900px 520px at 82% -8%,rgba(212,175,55,.08),transparent 60%),radial-gradient(700px 500px at 0% 100%,rgba(34,197,94,.06),transparent 60%)}
a{color:var(--gold);text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}

/* ---- Header / nav ---- */
header.site{position:sticky;top:0;z-index:50;background:rgba(7,11,23,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:84px}
.brand{display:flex;align-items:center;gap:14px}
.brand img{height:64px;width:auto;filter:drop-shadow(0 4px 14px rgba(212,175,55,.3))}
.brand .wm{font-family:var(--font-serif);font-weight:700;font-size:27px;line-height:1.2;color:var(--cream)}
.brand .wm b{color:var(--gold);font-weight:700}.brand .wm i{color:var(--green);font-style:italic;font-weight:700}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-links a{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-300)}
.nav-links a:hover{color:var(--gold)}
.nav-links a.active{color:var(--gold)}
.nav-cta{display:flex;align-items:center;gap:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:54px;padding:0 26px;border-radius:999px;cursor:pointer;border:1px solid transparent;
  font-family:var(--font-mono);font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease),color .25s var(--ease)}
.btn-primary{background:linear-gradient(180deg,#0f1a33,#0a1124);color:var(--gold);border:1px solid rgba(212,175,55,.5);box-shadow:0 12px 30px -14px rgba(0,0,0,.75)}
.btn-primary:hover{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 18px 38px -14px rgba(212,175,55,.4)}
.btn-gold{background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#1a1406;border:0;box-shadow:0 14px 30px -12px rgba(212,175,55,.55)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 18px 40px -12px rgba(212,175,55,.7)}
.btn-block{width:100%}
.btn-lg{height:60px;padding:0 34px;font-size:13px}
.btn svg{width:17px;height:17px}
.btn:active{transform:translateY(1px) scale(.99)}
.btn:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}
.hamburger{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.hamburger span{display:block;width:20px;height:2px;background:var(--cream);border-radius:2px}

/* ============================================================
   HUB INDEX
   ============================================================ */
.hub-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#0a1326,#070b17);text-align:center;padding:74px 24px 64px}
.hub-hero::before{content:"";position:absolute;inset:0;z-index:0;opacity:.5;
  background-image:linear-gradient(rgba(212,175,55,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(212,175,55,.05) 1px,transparent 1px);background-size:46px 46px;
  mask-image:radial-gradient(120% 90% at 50% 0%,#000,transparent 72%);-webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000,transparent 72%)}
.hub-hero > *{position:relative;z-index:1}
.hub-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.hub-hero h1{font-family:var(--font-serif);font-weight:700;font-size:clamp(38px,7vw,68px);line-height:1.02;color:var(--cream);margin:16px 0 0}
.hub-hero h1 .g{color:var(--gold)}
.hub-hero p{max-width:600px;margin:18px auto 0;font-size:17px;color:var(--ink-400)}
.hub-controls{max-width:780px;margin:34px auto 0}
.hub-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:18px}
.hub-tab{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-400);
  background:none;border:0;cursor:pointer;padding:8px 14px;border-radius:999px;transition:.25s var(--ease)}
.hub-tab:hover{color:var(--cream)}
.hub-tab.active{color:#1a1406;background:linear-gradient(180deg,var(--gold-bright),var(--gold))}
.hub-search{position:relative;margin-top:20px}
.hub-search input{width:100%;height:54px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.03);
  color:var(--ink-100);font-family:var(--font-sans);font-size:15px;padding:0 18px 0 48px;outline:none;transition:border-color .25s}
.hub-search input::placeholder{color:var(--ink-500)}
.hub-search input:focus{border-color:rgba(212,175,55,.5)}
.hub-search svg{position:absolute;left:18px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--ink-500)}

.hub-section{padding:56px 0 10px}
.hub-section h2{font-family:var(--font-serif);font-weight:700;font-size:clamp(26px,4vw,38px);color:var(--cream);text-align:center;margin-bottom:8px}
.hub-section .sub{text-align:center;color:var(--ink-400);font-size:15px;margin-bottom:36px}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:34px}
.acard{display:flex;flex-direction:column;background:linear-gradient(180deg,var(--card),#0a0f1e);border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}
.acard:hover{transform:translateY(-4px);border-color:rgba(212,175,55,.4);box-shadow:0 30px 60px -34px rgba(0,0,0,.9)}
.acard[hidden]{display:none}
.acard-img{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,#0e1830,#0a1124)}
.acard-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.acard:hover .acard-img img{transform:scale(1.05)}
.acard-tag{position:absolute;top:12px;left:12px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold-bright);background:rgba(7,11,23,.78);border:1px solid rgba(212,175,55,.35);border-radius:999px;padding:5px 11px;backdrop-filter:blur(4px)}
.acard-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.acard-body h3{font-family:var(--font-sans);font-weight:700;font-size:18px;line-height:1.35;color:var(--ink-100);letter-spacing:-.01em}
.acard:hover .acard-body h3{color:var(--gold-bright)}
.acard-body p{font-size:14px;color:var(--ink-400);margin-top:10px;flex:1}
.acard-meta{display:flex;align-items:center;gap:8px;margin-top:16px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-500)}
.acard-meta .arrow{margin-left:auto;color:var(--gold);transition:transform .25s var(--ease)}
.acard:hover .acard-meta .arrow{transform:translateX(4px)}
.hub-count{text-align:center;color:var(--ink-500);font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin:40px 0 8px}
.no-results{display:none;text-align:center;color:var(--ink-400);padding:30px 0}

/* ============================================================
   ARTICLE PAGE
   ============================================================ */
.art-top{border-bottom:1px solid var(--line);background:linear-gradient(180deg,#0a1326,#070b17);padding:40px 0 0}
.crumbs{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-500);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.crumbs a{color:var(--ink-400)}.crumbs a:hover{color:var(--gold)}
.crumbs .sep{color:var(--ink-600,#566)}
.art-head{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;padding:26px 0 40px}
.art-head .tag{display:inline-block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
  border:1px solid rgba(212,175,55,.4);border-radius:999px;padding:6px 12px}
.art-head h1{font-family:var(--font-sans);font-weight:900;font-size:clamp(30px,4.4vw,46px);line-height:1.08;letter-spacing:-.025em;color:var(--ink-100);margin:18px 0 0}
.art-byline{display:flex;align-items:center;gap:12px;margin-top:22px}
.art-byline img{height:42px;width:42px;border-radius:50%;border:1px solid var(--line)}
.art-byline .who{font-weight:700;color:var(--cream);font-size:14px}
.art-byline .meta{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-500)}
.art-hero-img{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;background:linear-gradient(135deg,#0e1830,#0a1124)}
.art-hero-img img{width:100%;height:100%;object-fit:cover}

.art-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;padding:50px 0 70px;align-items:start}
.prose{max-width:none;font-size:16.5px;color:var(--ink-300);line-height:1.85}
.prose > p{margin:0 0 20px}
.prose h2{font-family:var(--font-sans);font-weight:800;font-size:clamp(22px,3vw,30px);letter-spacing:-.02em;color:var(--ink-100);margin:38px 0 14px}
.prose h3{font-family:var(--font-sans);font-weight:700;font-size:19px;color:var(--cream);margin:26px 0 10px}
.prose strong{color:var(--cream);font-weight:600}
.prose a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.prose ul,.prose ol{margin:0 0 20px;padding-left:22px}
.prose li{margin:8px 0}
.prose li::marker{color:var(--gold)}
.prose .lead{font-size:18.5px;color:var(--ink-200);line-height:1.7}
.callout{border:1px solid var(--line);border-left:4px solid var(--gold);background:var(--navy-800);border-radius:0 14px 14px 0;padding:18px 22px;margin:26px 0;font-size:15.5px}
.callout b{color:var(--gold-bright)}
.kv{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:24px 0}
.kv table{width:100%;border-collapse:collapse;font-size:14.5px}
.kv th,.kv td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line-soft)}
.kv th{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);background:rgba(212,175,55,.05)}
.kv tr:last-child td{border-bottom:0}
.kv td{color:var(--ink-200)}.kv td:first-child{color:var(--cream);font-weight:600}

/* sidebar */
.art-side{position:sticky;top:104px;display:flex;flex-direction:column;gap:20px}
.side-cta{position:relative;overflow:hidden;border-radius:var(--r-lg);border:1px solid rgba(212,175,55,.4);
  background:linear-gradient(180deg,#0c1430,#080e1f);box-shadow:0 40px 80px -42px rgba(0,0,0,.9);padding:26px 24px}
.side-cta::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(120% 80% at 50% 0%,rgba(212,175,55,.14),transparent 60%)}
.side-cta > *{position:relative;z-index:1}
.side-cta .eyebrow{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.side-cta h3{font-family:var(--font-serif);font-weight:700;font-size:22px;color:var(--cream);margin:10px 0 8px;line-height:1.25}
.side-cta p{font-size:14px;color:var(--ink-400);margin-bottom:18px}
.side-cta ul{list-style:none;margin:0 0 20px;display:grid;gap:10px}
.side-cta li{display:flex;gap:11px;align-items:flex-start;font-size:13.5px;color:var(--ink-200);line-height:1.5}
/* checkmarks rendered as badges so the sidebar matches the .plan card treatment */
.side-cta li svg{flex:0 0 19px;width:19px;height:19px;padding:3.5px;border-radius:50%;color:var(--green);
  background:rgba(34,197,94,.14);border:1px solid var(--green-deep);margin-top:1px}
.side-cta .fine{margin-top:14px;text-align:center;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500)}
/* gold hairline along the top edge, echoing the plan card */
.side-cta::after{content:"";position:absolute;top:0;left:22px;right:22px;height:1px;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(212,175,55,.75),transparent)}
.side-related{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--card),#0a0f1e);padding:22px 24px}
.side-related h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.side-related a{display:block;color:var(--ink-200);font-size:14.5px;font-weight:500;padding:13px 0;border-bottom:1px solid var(--line-soft);line-height:1.4}
.side-related a:last-child{border-bottom:0}
.side-related a:hover{color:var(--gold-bright)}

/* interactive calculator */
.calc{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,#0c1430,#0a0f1e);padding:24px;margin:28px 0}
.calc h3{margin:0 0 4px}
.calc .row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.calc label{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-400);margin-bottom:6px}
.calc input,.calc select{width:100%;height:46px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--ink-100);font-family:var(--font-sans);font-size:15px;padding:0 14px;outline:none}
.calc input:focus,.calc select:focus{border-color:rgba(212,175,55,.5)}
.calc-out{margin-top:22px;border-top:1px solid var(--line);padding-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.calc-out .stat{background:rgba(255,255,255,.02);border:1px solid var(--line-soft);border-radius:12px;padding:16px 18px}
.calc-out .stat .l{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-500)}
.calc-out .stat .v{font-family:var(--font-sans);font-weight:800;font-size:24px;color:var(--gold-bright);margin-top:4px;letter-spacing:-.02em}

/* big bottom CTA band */
.cta-band{border-top:1px solid var(--line);background:linear-gradient(180deg,#0a1326,#070b17);text-align:center;padding:60px 24px}
.cta-band h2{font-family:var(--font-serif);font-weight:700;font-size:clamp(26px,4vw,40px);color:var(--cream);max-width:640px;margin:0 auto}
.cta-band h2 .g{color:var(--gold)}
.cta-band p{color:var(--ink-400);max-width:540px;margin:16px auto 26px;font-size:16px}

/* ============================================================
   HUB PAGINATION
   6 articles per page. Pager operates on the filtered set, so
   searching re-paginates rather than fighting the filter.
   ============================================================ */
.hub-pager{display:flex;align-items:center;justify-content:center;gap:8px;margin:44px 0 0;flex-wrap:wrap}
.hub-pager[hidden]{display:none}
.pg{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;height:44px;padding:0 14px;
  border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02);color:var(--ink-300);cursor:pointer;
  font-family:var(--font-mono);font-size:12.5px;font-weight:700;letter-spacing:.08em;
  transition:transform .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease),background .2s var(--ease)}
.pg:hover:not(:disabled):not([aria-current]){border-color:rgba(212,175,55,.5);color:var(--gold-bright)}
.pg:active:not(:disabled){transform:translateY(1px)}
.pg[aria-current="page"]{background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#1a1406;border-color:transparent;
  box-shadow:0 10px 24px -12px rgba(212,175,55,.6)}
.pg:disabled{opacity:.32;cursor:not-allowed}
.pg svg{width:15px;height:15px}
.pg-edge{padding:0 16px}
.hub-count{text-align:center;color:var(--ink-500);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;margin:26px 0 0}

/* ============================================================
   MEMBERSHIP CARD (below the article grid)
   Ported from the homepage #membership plan so the Hub closes
   on the same conversion block the rest of the site uses.
   ============================================================ */
.hub-plan-wrap{padding:64px 0 76px;border-top:1px solid var(--line);margin-top:64px;
  background:linear-gradient(180deg,rgba(10,19,38,.6),transparent 70%)}
.hub-plan-head{text-align:center;max-width:620px;margin:0 auto}
.hub-plan-head h2{font-family:var(--font-serif);font-weight:700;font-size:clamp(27px,4vw,40px);line-height:1.14;color:var(--cream)}
.hub-plan-head h2 .g{color:var(--gold)}
.hub-plan-head p{margin-top:14px;font-size:16px;color:var(--ink-400)}
.plan{max-width:560px;margin:40px auto 0;position:relative;overflow:hidden;border-radius:var(--r-xl);
  border:1px solid rgba(212,175,55,.35);background:linear-gradient(180deg,#0c1430,#080e1f);
  box-shadow:0 50px 90px -40px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.05);padding:38px 34px}
.plan::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(120% 80% at 50% 0%,rgba(212,175,55,.12),transparent 60%)}
.plan > *{position:relative;z-index:1}
.plan-tag{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);border:1px solid rgba(212,175,55,.4);border-radius:999px;padding:6px 12px}
.plan-price{display:flex;align-items:baseline;gap:8px;margin:20px 0 4px}
.plan-price .amt{font-family:var(--font-sans);font-weight:900;font-size:clamp(42px,6vw,56px);letter-spacing:-.03em;color:var(--ink-100);line-height:1}
.plan-price .per{font-family:var(--font-mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-400)}
.plan-sub{font-size:15px;color:var(--ink-400);line-height:1.6;margin-bottom:26px}
.plan-sub strong{color:var(--cream);font-weight:600}
.plan-feats{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:13px}
.plan-feats li{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--ink-300);line-height:1.5}
.plan-feats li b{color:var(--cream);font-weight:600}
.plan-feats .ck{flex:0 0 20px;width:20px;height:20px;margin-top:1px;border-radius:50%;display:grid;place-items:center;
  background:rgba(34,197,94,.14);border:1px solid var(--green-deep);color:var(--green)}
.plan-feats .ck svg{width:12px;height:12px}
.plan .btn{width:100%}
.plan-fine{margin-top:16px;text-align:center;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-500)}

/* ============================================================
   MOTION NOTE
   No entry/scroll-reveal animation on the article grid, by choice.
   An entry fade means the card's first painted state is transparent,
   and any renderer that stalls the animation clock leaves the whole
   grid invisible. On an indexed content page that trade is not worth
   a 500ms flourish, so motion here lives entirely in interaction
   states (card hover lift, image zoom, button and pager press) where
   the resting state is always the visible one.
   ============================================================ */

/* ---- Footer ---- */
footer.site{border-top:1px solid var(--line);padding:42px 0 48px;margin-top:0}
.foot-row{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between}
.foot-row .brand .wm{font-size:23px}
.foot-row .brand img{height:48px}
.foot-links{display:flex;flex-wrap:wrap;gap:22px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-400)}
.foot-links a{color:var(--ink-400)}.foot-links a:hover{color:var(--gold)}
.disclaimer{margin-top:30px;font-size:11.5px;color:var(--ink-500);line-height:1.7;border-top:1px solid var(--line-soft);padding-top:24px}
.disclaimer b{color:var(--ink-400);font-weight:600}
.foot-copy{margin-top:18px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500)}

/* ---- Mobile ---- */
.mobile-menu{position:fixed;inset:84px 0 auto 0;z-index:55;background:rgba(8,13,29,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);
  transform:translateY(-130%);transition:transform .4s var(--ease);padding:16px 22px 28px;display:flex;flex-direction:column;gap:6px}
body.menu-open .mobile-menu{transform:translateY(0)}
.mobile-menu a:not(.btn){font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;font-size:14px;color:var(--ink-300);padding:16px 4px;border-bottom:1px solid var(--line-soft)}
.mobile-menu .btn{margin-top:16px}

@media (max-width:980px){
  .art-layout{grid-template-columns:1fr;gap:36px}
  .art-side{position:static;flex-direction:row;flex-wrap:wrap}
  .side-cta,.side-related{flex:1 1 280px}
  .art-head{grid-template-columns:1fr;gap:24px}
  .art-head .art-hero-img{order:-1}
}
@media (max-width:860px){
  .nav-links,.nav-cta .btn-primary{display:none}
  .hamburger{display:flex}
  .nav{height:72px}
  .brand img{height:54px}
  .mobile-menu{inset:72px 0 auto 0}
}
@media (max-width:980px){
  /* tablet: 3-up is too tight before it earns a single column */
  .card-grid{grid-template-columns:repeat(2,1fr);gap:20px}
}
@media (max-width:760px){
  .card-grid{grid-template-columns:1fr;gap:18px}
  .art-side{flex-direction:column}
  .calc .row,.calc-out{grid-template-columns:1fr}
  .wrap{padding:0 16px}
  .hub-plan-wrap{padding:48px 0 56px;margin-top:48px}
  .plan{padding:30px 22px}
  .pg-edge span{display:none}
  .pg-edge{min-width:44px;padding:0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
