/* ============ TOKENS ============ */
:root{
  /* brand */
  --charcoal:#16243f;
  --brand:#1b3a5f;
  --brand-rgb:201,151,28;          /* --brand-bright, for alpha use */
  --brand-deep-rgb:20,48,79;
  --brand-lite-rgb:230,191,92;
  --brand-wash-rgb:246,240,226;
  --brand-tint-1:#eff3f9;          /* focused field                  */
  --brand-tint-2:#f5f8fc;
  --brand-muted:#9fb0c4;           /* disabled primary button        */
  --brand-on-dark:#ffd98a;         /* accent text on charcoal        */
  --brand-on-dark-2:#f0e4c4;
  --brand-dark:#17110a;
  --brand-hover-warm:#e6edf5;
  --grad-brand-deep:linear-gradient(100deg,#b8860b,#8f6a09 55%,#75570a);
  --brand-deep:#14304f;
  --brand-bright:#c9971c;
  --brand-text:#14304f;
  --brand-ink:#0f2440;   /* small text on warm backgrounds */
  --brand-wash:#eef2f8;
  --brand-line:#d2dce9;
  --grad-brand:linear-gradient(135deg,#24507a,#14304f);

  /* premium tier — the only saturated hue on the page */
  --prem:#b8860b;
  --prem-deep:#8f6a09;
  --prem-bright:#c9971c;
  --prem-text:#8a6a0f;
  --prem-ink:#7a5c08;
  --prem-wash:#f7f1e4;
  --prem-line:#e6d9b8;
  --prem-hover:#f2ead7;
  --grad-prem:linear-gradient(135deg,#c9971c,#8f6a09);

  /* neutral surfaces — kept near-neutral so the gold reads as the only accent */
  --bg:#f8f7f5;
  --surface:#ffffff;
  --surface-sunken:#ededea;
  --surface-warm:#f6f0e2;

  --ink:#17202f;
  --ink-2:#555d6b;
  --ink-3:#8a9099;
  --line:#e3e1dc;
  --danger:#a8392a;
  --income:#5b5750;                /* the Income product's accent    */
  --income-wash:#f0eeea;
  --income-line:#e0dcd5;
  --danger-wash:#f8ece9;
  --ok:#2e6f4e;
  --ok-wash:#e8f1ec;
  --info-bg:#e6e9f0;
  --info-ink:#3d4557;

  --s1:4px;  --s2:8px;  --s3:12px; --s4:16px;
  --s5:24px; --s6:32px; --s7:48px; --s8:64px;

  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-pill:999px;
  --shadow-1:0 1px 3px rgba(30,39,73,.06),0 4px 16px rgba(30,39,73,.05);
  --shadow-2:0 4px 12px rgba(30,39,73,.08),0 12px 32px rgba(30,39,73,.07);
  --shadow-gold:0 4px 16px rgba(var(--brand-deep-rgb),.26);

  /* one type scale for the whole plan experience */
  --t-page:clamp(30px,4vw,42px);
  --t-card:clamp(23px,2.2vw,30px);
  --t-hero:clamp(30px,3.1vw,42px);
  --t-sec:18px;
  --t-metric:22px;
  --t-label:13px;
  --t-body:14px;
  --t-note:12px;

  --dur:220ms;
  --ease:cubic-bezier(.4,0,.2,1);
  --shell:1200px;
  --gutter:48px;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
[hidden]{display:none !important;}
html{-webkit-text-size-adjust:100%;}
body{
  font-family:'Poppins',system-ui,-apple-system,sans-serif;
  background:var(--bg);
  color:var(--ink);
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
svg{display:block;}
.icon{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;}
.icon-sm{width:18px;height:18px;}
.icon-lg{width:32px;height:32px;}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:var(--r-sm);}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:none;touch-action:manipulation;}

.skip{
  position:absolute;left:var(--s4);top:-60px;z-index:200;
  background:var(--charcoal);color:#fff;padding:var(--s3) var(--s5);
  border-radius:var(--r-sm);font-weight:600;text-decoration:none;
  transition:top var(--dur) var(--ease);
}
.skip:focus{top:var(--s4);}

.shell{max-width:var(--shell);margin:0 auto;padding:0 var(--gutter);}

/* ============ CHROME ============ */
.topbar{background:var(--charcoal);position:sticky;top:0;z-index:60;}
.topbar-in{
  max-width:var(--shell);margin:0 auto;padding:var(--s3) var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:var(--s5);
}
.logo{display:flex;align-items:center;gap:var(--s2);color:#fff;font-weight:700;font-size:16px;}
.logo .mark{width:24px;height:24px;color:var(--brand-bright);}
.acct-top{width:40px;height:40px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:#d9d9de;}
.acct-top:hover{border-color:var(--brand-bright);color:var(--brand-bright);background:rgba(var(--brand-rgb),.14);}
.logo{cursor:pointer;}

/* Desktop brand mark. The shared header shows its own logo only below 940px,
   so this one fills the gap beside the pill navbar and hides at that width to
   avoid two logos at once. Vertically centred on the navbar, which sits at the
   bottom of the header's 6rem band. */
.ins-logo{
  position:fixed;top:2.5rem;left:clamp(16px,3vw,40px);
  z-index:1109;
  display:flex;align-items:center;height:3rem;
}
.ins-logo img{height:100%;width:auto;}
@media (max-width:940px){ .ins-logo{display:none;} }

/* The shared header is position:fixed, so it takes no room in the flow and the
   page has to reserve it: a 6rem band on desktop, a 7rem black one below 940px
   where the logo container takes over. Without this the hero opens underneath
   the navbar. */
body{padding-top:6rem;}
@media (max-width:940px){ body{padding-top:7rem;} }

.subbar{background:var(--bg);border-bottom:1px solid var(--line);}
.subbar-in{
  max-width:var(--shell);margin:0 auto;padding:var(--s3) var(--gutter);
  display:flex;align-items:center;justify-content:space-between;
}
.backbtn{
  display:flex;align-items:center;gap:var(--s3);
  color:var(--brand-text);font-weight:700;font-size:17px;
  padding:var(--s2) var(--s3);margin-left:calc(var(--s3) * -1);
  border-radius:var(--r-sm);min-height:44px;
  transition:background var(--dur) var(--ease);
}
.backbtn:hover{background:var(--surface-sunken);}
.acct{
  width:44px;height:44px;border-radius:var(--r-pill);
  background:var(--surface-sunken);border:1px solid var(--line);
  color:var(--ink-3);display:grid;place-items:center;
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease);
}
.acct:hover{border-color:var(--brand);color:var(--brand-text);}

/* ============ VIEWS ============ */
.view{display:none;}
.view.on{display:block;animation:viewIn 320ms var(--ease) both;}
@keyframes viewIn{
  from{opacity:0;transform:translateY(12px);}
  to{opacity:1;transform:none;}
}
.col{margin:0 auto;padding-bottom:var(--s8);}
.col-wide{max-width:100%;}
.col-mid{max-width:940px;}
.col-narrow{max-width:720px;}

/* ---- stepper ---- */
.stepper{padding:var(--s6) 0 0;}
.stepper-row{
  display:flex;justify-content:space-between;gap:var(--s4);
  font-size:11px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-2);margin-bottom:var(--s2);
}
.stepper-row .now{color:var(--brand-text);}
.track{height:6px;background:var(--surface-sunken);border-radius:var(--r-pill);overflow:hidden;}
.track > i{
  display:block;height:100%;background:var(--grad-brand);border-radius:var(--r-pill);
  transition:width 420ms var(--ease);
}

/* ---- headings ---- */
.page-title{font-size:clamp(30px,4vw,42px);font-weight:800;letter-spacing:-.025em;line-height:1.15;margin-top:var(--s6);}
.page-sub{color:var(--ink-2);font-size:15.5px;margin-top:var(--s3);max-width:60ch;}
.sec-title{font-size:clamp(24px,3vw,30px);font-weight:800;letter-spacing:-.02em;}
.eyebrow{
  font-size:11px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-2);
}

/* ============ STEP 1 : PLAN ============ */

.checkout{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--s5);padding-top:var(--s6);flex-wrap:wrap;
}
.checkout .amt{font-size:26px;font-weight:600;letter-spacing:-.02em;margin-top:2px;}
.checkout .amt span{font-size:14px;font-weight:500;color:var(--ink-2);}

.underwriter{
  margin-top:var(--s7);background:var(--surface-sunken);border-radius:var(--r-md);
  padding:var(--s5);display:flex;align-items:center;gap:var(--s4);
}
.underwriter .badge{
  width:44px;height:44px;border-radius:var(--r-pill);background:var(--charcoal);
  color:var(--brand-bright);display:grid;place-items:center;flex-shrink:0;
}
.underwriter h4{font-size:15px;font-weight:700;color:var(--charcoal);}
.underwriter p{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-2);margin-top:3px;}

/* ---- selection states ---- */
.blocked{opacity:.42;filter:grayscale(.5);pointer-events:none;user-select:none;}
.lockmsg{
  display:none;align-items:center;gap:var(--s2);margin-top:var(--s4);
  background:var(--brand-wash);border:1px solid var(--brand-line);border-radius:var(--r-sm);
  padding:var(--s3) var(--s4);font-size:13px;color:var(--brand-ink);font-weight:500;
}
.lockmsg.on{display:flex;}
.lockmsg button{text-decoration:underline;font-weight:700;color:var(--brand-ink);}

/* ---- coupon ---- */
.coupon{margin-top:var(--s5);}
.coupon-row{display:flex;gap:var(--s3);}
.coupon-row .input{flex:1;text-transform:uppercase;letter-spacing:.06em;}
.coupon-row .btn{min-height:56px;padding:var(--s4) var(--s6);white-space:nowrap;}
.coupon-msg{font-size:13px;margin-top:var(--s3);display:flex;align-items:center;gap:var(--s2);}
.coupon-msg.ok{color:var(--brand-text);font-weight:600;}
.coupon-msg.bad{color:var(--danger);font-weight:500;}
.coupon-applied{
  display:flex;align-items:center;gap:var(--s3);margin-top:var(--s3);
  background:var(--brand-wash);border:1px dashed var(--brand);border-radius:var(--r-md);
  padding:var(--s4);
}
.coupon-applied b{font-size:14.5px;color:var(--brand-text);letter-spacing:.06em;}
.coupon-applied p{font-size:12.5px;color:var(--ink-2);margin-top:2px;}
.coupon-applied .drop{margin-left:auto;color:var(--danger);font-weight:700;font-size:13px;min-height:44px;}
.coupon-hint{font-size:12px;color:var(--ink-3);margin-top:var(--s3);}
.amountcard .was{
  display:block;font-size:15px;font-weight:500;opacity:.8;
  text-decoration:line-through;margin-top:2px;
}

/* ============ STEP 2 : DETAILS ============ */
.field{margin-top:var(--s6);}
.field > label,.legend{
  display:block;font-size:13.5px;font-weight:600;color:var(--ink-2);margin-bottom:var(--s3);
}
.legend{padding:0;}
fieldset{border:0;}
.readonly{font-size:17px;font-weight:500;padding-bottom:var(--s3);border-bottom:1px solid var(--line);}
.verified{
  display:flex;align-items:center;gap:var(--s2);margin-top:var(--s3);
  font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
}
.radioseg{display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface-sunken);border-radius:var(--r-md);}
.radioseg label{
  display:grid;place-items:center;min-height:52px;border-radius:var(--r-md);
  font-size:14.5px;font-weight:500;cursor:pointer;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease);
}
.radioseg input{position:absolute;opacity:0;pointer-events:none;}
.radioseg label:hover{background:var(--line);}
.radioseg label:has(input:checked){background:var(--grad-brand);color:#fff;font-weight:600;}
.radioseg label:has(input:focus-visible){outline:3px solid var(--brand);outline-offset:2px;}

.input{
  width:100%;background:var(--surface-sunken);border:2px solid transparent;
  border-radius:var(--r-md);padding:var(--s4) var(--s5);min-height:56px;
  font:inherit;font-size:15.5px;color:var(--ink);
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.input:focus{outline:none;border-color:var(--brand);background:var(--brand-tint-1);}
.input:focus-visible{outline:none;}
.input[aria-invalid="true"]{border-color:var(--danger);background:#faeeec;}
.input[data-valid="true"]:not(:focus){border-color:var(--brand-line);}
.input::placeholder{color:var(--ink-3);}
.hint{font-size:12.5px;color:var(--ink-3);margin-top:var(--s3);display:flex;align-items:center;gap:6px;}
.hint.bad{color:var(--danger);font-weight:500;}
.hint.ok{color:var(--ok);}
.selectwrap{position:relative;}
.selectwrap select{appearance:none;padding-right:56px;cursor:pointer;}
.selectwrap .chev{position:absolute;right:var(--s5);top:50%;transform:translateY(-50%);color:var(--ink-2);pointer-events:none;}

.note{
  margin-top:var(--s7);background:var(--surface-sunken);border-radius:var(--r-md);
  padding:var(--s5);display:flex;gap:var(--s4);
}
.note .ico{
  width:44px;height:44px;border-radius:var(--r-md);background:var(--brand-wash);
  border:1px solid var(--brand-line);color:var(--brand-deep);
  display:grid;place-items:center;flex-shrink:0;
}
.note h4{font-size:15px;font-weight:700;margin-bottom:var(--s2);}
.note p{font-size:13px;color:var(--ink-2);line-height:1.6;}

.stack-btns{display:grid;gap:var(--s3);margin-top:var(--s7);}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);
  border-radius:var(--r-md);padding:var(--s4) var(--s6);min-height:56px;
  font-size:16px;font-weight:600;
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease);
}
.btn-primary{background:var(--grad-brand);color:#fff;box-shadow:var(--shadow-gold);}
.btn-primary:hover:not([disabled]){transform:translateY(-2px);box-shadow:0 8px 26px rgba(var(--brand-deep-rgb),.36);}
.btn-primary[disabled]{background:var(--brand-muted);box-shadow:none;cursor:not-allowed;transform:none;}
.btn-ghost{background:var(--surface-sunken);color:var(--ink-2);}
.btn-ghost:hover{background:var(--line);color:var(--ink);}
.btn-outline{background:var(--surface);border:2px solid var(--line);}
.btn-outline:hover{border-color:var(--brand);color:var(--brand-text);}
.btn-block{width:100%;}
.spinner{
  width:18px;height:18px;border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}

/* ============ STEP 3 : REVIEW ============ */
.sumgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);margin-top:var(--s6);align-items:start;}
.card{background:var(--surface-sunken);border-radius:var(--r-md);padding:var(--s5);position:relative;}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s5);}
.editbtn{
  width:44px;height:44px;border-radius:var(--r-sm);color:var(--brand);
  display:grid;place-items:center;margin:-10px -10px -10px 0;
  transition:background var(--dur) var(--ease);
}
.editbtn:hover{background:var(--line);}
.kv{display:grid;gap:var(--s2);}
.kv dt{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);}
.kv dd{font-size:16px;font-weight:500;}
.pairgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);}
.stackgrid{display:grid;gap:var(--s5);}

.policy{
  margin-top:var(--s5);background:var(--surface);border-radius:var(--r-lg);
  padding:var(--s6);box-shadow:var(--shadow-1);
}
.policy-id{display:flex;align-items:center;gap:var(--s4);margin-top:var(--s4);}
.policy-id .ico{
  width:60px;height:60px;border-radius:var(--r-md);background:var(--brand-wash);
  border:1px solid var(--brand-line);color:var(--brand-deep);
  display:grid;place-items:center;flex-shrink:0;
}
.policy-id h3{font-size:23px;font-weight:700;letter-spacing:-.015em;}
.policy-id p{color:var(--ink-2);font-size:14.5px;margin-top:2px;}
.figs{
  display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);
  margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--line);
}
.fig b{display:block;font-size:26px;font-weight:700;margin-top:var(--s2);letter-spacing:-.02em;}
.fig.gold b{color:var(--brand-text);}
.fig b span{font-size:14px;font-weight:500;color:var(--ink-2);}

.consents{margin-top:var(--s6);display:grid;gap:var(--s3);}
.consent{
  display:flex;align-items:flex-start;gap:var(--s3);cursor:pointer;
  padding:var(--s3);margin:calc(var(--s3) * -1);border-radius:var(--r-sm);
  transition:background var(--dur) var(--ease);
}
.consent:hover{background:var(--surface-sunken);}
.consent input{
  appearance:none;width:22px;height:22px;flex-shrink:0;margin-top:1px;
  border:2px solid var(--brand);border-radius:6px;cursor:pointer;
  display:grid;place-items:center;
  transition:background var(--dur) var(--ease);
}
.consent input:checked{background:var(--brand);}
.consent input:checked::after{
  content:"";width:11px;height:6px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;
  transform:rotate(-45deg) translate(1px,-2px);
}
.consent span{font-size:14.5px;line-height:1.55;}
.consent a{color:var(--brand-text);font-weight:700;}
.center{display:flex;justify-content:center;margin-top:var(--s6);}
.foot-note{text-align:center;margin-top:var(--s4);font-size:12.5px;color:var(--ink-3);}

/* ============ STEP 4 : PAY ============ */
.amountcard{
  margin-top:var(--s6);background:var(--grad-brand);color:#fff;
  border-radius:var(--r-lg);padding:var(--s5) var(--s6);
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--s5);flex-wrap:wrap;box-shadow:var(--shadow-gold);
}
.amountcard .lbl{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.88;}
.amountcard b{display:block;font-size:34px;font-weight:800;letter-spacing:-.02em;margin-top:var(--s1);}
.amountcard b span{font-size:15px;font-weight:500;opacity:.9;}
.amountcard .plan{text-align:right;font-size:15px;font-weight:600;}
.amountcard .plan small{display:block;font-weight:400;opacity:.88;margin-top:3px;font-size:12.5px;}

.methods{display:grid;gap:var(--s3);margin-top:var(--s4);}
.method{
  display:flex;align-items:center;gap:var(--s4);cursor:pointer;
  background:var(--surface-sunken);border:2px solid transparent;
  border-radius:var(--r-md);padding:var(--s4) var(--s5);min-height:76px;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.method:hover{border-color:var(--line);}
.method:has(input:checked){border-color:var(--brand);background:var(--surface-warm);}
.method:has(input:focus-visible){outline:3px solid var(--brand);outline-offset:2px;}
.method input{position:absolute;opacity:0;pointer-events:none;}
.method .ico{
  width:48px;height:48px;border-radius:var(--r-md);background:var(--brand-wash);
  border:1px solid var(--brand-line);color:var(--brand-deep);
  display:grid;place-items:center;flex-shrink:0;
}
.method h4{font-size:15px;font-weight:600;}
.method p{font-size:12.5px;color:var(--ink-2);margin-top:2px;}
.method .dot{
  margin-left:auto;width:22px;height:22px;border-radius:50%;
  border:2px solid var(--ink-3);flex-shrink:0;display:grid;place-items:center;
  transition:border-color var(--dur) var(--ease);
}
.method:has(input:checked) .dot{border-color:var(--brand);}
.method:has(input:checked) .dot::after{content:"";width:11px;height:11px;border-radius:50%;background:var(--brand);}

/* ============ STEP 5 : SUCCESS ============ */
.hero{text-align:center;padding:var(--s8) var(--s4) 0;position:relative;}
.hero::before{
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:min(560px,100%);height:320px;pointer-events:none;
  background:radial-gradient(circle,rgba(var(--brand-rgb),.18) 0%,rgba(var(--brand-rgb),0) 68%);
}
.hero > *{position:relative;}
.seal{
  width:76px;height:76px;margin:0 auto var(--s5);border-radius:20px;
  background:var(--brand-wash);border:1.5px solid var(--brand-line);
  color:var(--brand-deep);display:grid;place-items:center;
  animation:seal 480ms cubic-bezier(.2,1.3,.4,1) both;
}
@keyframes seal{from{transform:scale(.5);opacity:0;}to{transform:none;opacity:1;}}
.hero h1{font-size:clamp(32px,5vw,46px);font-weight:800;letter-spacing:-.03em;line-height:1.12;}
.hero p{color:var(--ink-2);font-size:16px;line-height:1.65;margin:var(--s4) auto 0;max-width:52ch;}

.policybox{background:var(--surface);border-radius:var(--r-lg);padding:var(--s6);margin-top:var(--s7);box-shadow:var(--shadow-1);}
.policybox header{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);}
.policybox h2{font-size:21px;font-weight:700;color:var(--brand-text);}
.pill{
  background:var(--info-bg);color:var(--info-ink);font-size:11px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;padding:var(--s2) var(--s4);border-radius:var(--r-sm);
}
.pbgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6) var(--s5);margin-top:var(--s6);}
.pbgrid .r{text-align:right;}
.pbgrid dt{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s2);}
.pbgrid dd{font-size:16.5px;font-weight:600;}
.pbgrid dd.big{font-size:24px;color:var(--brand-text);font-weight:700;}

.nextlist{display:grid;gap:var(--s3);margin-top:var(--s4);}
.next{
  display:flex;align-items:center;gap:var(--s4);width:100%;text-align:left;
  background:var(--surface-sunken);border:2px solid transparent;
  border-radius:var(--r-md);padding:var(--s4) var(--s5);min-height:76px;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.next:hover{border-color:var(--line);background:var(--line);}
.next .ico{
  width:48px;height:48px;border-radius:var(--r-md);background:var(--brand-wash);
  border:1px solid var(--brand-line);color:var(--brand-deep);
  display:grid;place-items:center;flex-shrink:0;
}
.next h4{font-size:15px;font-weight:600;}
.next p{font-size:12.5px;color:var(--ink-2);margin-top:2px;}
.next .chev{margin-left:auto;color:var(--ink-3);flex-shrink:0;}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin-top:var(--s7);}

/* ============ STEP 6 : MEMBERSHIP REGISTRATION ============ */
.col-form{max-width:620px;}
.tel{display:flex;background:var(--surface-sunken);border:2px solid transparent;border-radius:var(--r-md);transition:border-color var(--dur) var(--ease);}
.tel:focus-within{border-color:var(--brand);background:var(--brand-tint-2);}
.tel .cc{
  display:grid;place-items:center;padding:0 var(--s4);font-size:15.5px;font-weight:600;
  color:var(--ink);border-right:1px solid var(--line);
}
.tel input{background:none;border:0;flex:1;min-height:56px;padding:var(--s4);font:inherit;font-size:15.5px;}
.tel input:focus{outline:none;}
.tel[data-invalid="true"]{border-color:var(--danger);background:#faeeec;}
.tel[data-valid="true"]:not(:focus-within){border-color:var(--brand-line);}
textarea.input{min-height:86px;resize:vertical;line-height:1.6;padding-top:var(--s4);}
.duo-field{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);}
.privacy{
  margin-top:var(--s6);background:var(--surface-sunken);border-radius:var(--r-md);
  padding:var(--s4);display:flex;align-items:center;gap:var(--s4);
}
.privacy .ico{
  width:40px;height:40px;border-radius:var(--r-sm);background:var(--brand-wash);
  border:1px solid var(--brand-line);color:var(--brand-deep);
  display:grid;place-items:center;flex-shrink:0;
}
.privacy p{font-size:12.5px;color:var(--ink-2);line-height:1.55;}
.legal{text-align:center;font-size:12px;color:var(--ink-3);margin-top:var(--s4);}
.legal a{color:var(--ink-2);font-weight:600;}
@media (max-width:520px){.duo-field{grid-template-columns:1fr;}}

/* ---- order summary (review) ---- */
.linelist{display:grid;gap:var(--s3);margin-top:var(--s5);}
.lineitem{
  display:flex;align-items:center;gap:var(--s4);
  padding:var(--s4) 0;border-bottom:1px solid var(--line);
}
.lineitem:last-child{border-bottom:0;}
.lineitem .ico{
  width:40px;height:40px;border-radius:var(--r-sm);background:var(--brand-wash);
  border:1px solid var(--brand-line);color:var(--brand-deep);
  display:grid;place-items:center;flex-shrink:0;
}
.lineitem h4{font-size:14.5px;font-weight:600;}
.lineitem p{font-size:12.5px;color:var(--ink-2);margin-top:2px;}
.lineitem .amt{margin-left:auto;font-size:15px;font-weight:700;white-space:nowrap;}
.totals{margin-top:var(--s5);padding-top:var(--s5);border-top:2px solid var(--line);display:grid;gap:var(--s3);}
.totrow{display:flex;justify-content:space-between;gap:var(--s4);font-size:14px;color:var(--ink-2);}
.totrow.grand{
  font-size:19px;font-weight:800;color:var(--ink);
  padding-top:var(--s3);border-top:1px solid var(--line);
}
.totrow.grand span:last-child{color:var(--brand-text);}
.specs{
  display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s5);
  margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--line);
}
.spec dt{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s2);}
.spec dd{font-size:14.5px;font-weight:600;}

/* ---- richer policy card (success) ---- */
.policybox{overflow:hidden;padding:0;}
.pb-top{
  background:var(--charcoal);color:#fff;padding:var(--s5) var(--s6);
  display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
}
.pb-top h2{font-size:19px;font-weight:700;color:#fff;}
.pb-top .sub{font-size:12px;color:#b9b9c0;margin-top:3px;}
.pill-live{
  display:inline-flex;align-items:center;gap:7px;background:rgba(var(--brand-rgb),.18);
  color:var(--brand-bright);border:1px solid rgba(var(--brand-rgb),.5);
  font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:var(--s2) var(--s4);border-radius:var(--r-pill);
}
.pb-top .dot{width:7px;height:7px;border-radius:50%;background:var(--brand-bright);}
.pb-mid{padding:var(--s6);}
.pb-covers{display:grid;gap:var(--s2);margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--line);}
.pb-cover{display:flex;align-items:center;gap:var(--s3);font-size:14px;}
.pb-cover .icon{color:var(--brand);flex-shrink:0;}
.pb-cover b{margin-left:auto;font-weight:600;color:var(--ink-2);font-size:13px;}
.pb-foot{
  background:var(--surface-sunken);padding:var(--s4) var(--s6);
  display:flex;align-items:center;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;
}
.pb-foot p{font-size:12.5px;color:var(--ink-2);display:flex;align-items:center;gap:var(--s2);}
.linkbtn{color:var(--brand-text);font-weight:700;font-size:13.5px;display:inline-flex;align-items:center;gap:6px;min-height:44px;}
.linkbtn:hover{text-decoration:underline;}

/* ---- confetti ---- */
.confetti{position:fixed;inset:0;pointer-events:none;z-index:130;overflow:hidden;}
.confetti i{
  position:absolute;top:-14px;width:9px;height:14px;border-radius:2px;
  animation:fall linear forwards;
}
@keyframes fall{
  0%{transform:translateY(-10vh) rotate(0);opacity:1;}
  100%{transform:translateY(108vh) rotate(720deg);opacity:.85;}
}
.cheer{
  position:fixed;left:50%;top:38%;transform:translate(-50%,-50%) scale(.7);
  z-index:140;pointer-events:none;opacity:0;text-align:center;
  background:var(--surface);border:2px solid var(--brand-line);border-radius:20px;
  padding:var(--s5) var(--s7);box-shadow:0 18px 50px rgba(0,0,0,.18);
}
.cheer.on{animation:cheer 1900ms var(--ease) forwards;}
.cheer b{display:block;font-size:26px;font-weight:800;letter-spacing:-.02em;}
.cheer span{display:block;font-size:14px;color:var(--ink-2);margin-top:6px;}
.cheer .ring{
  width:56px;height:56px;margin:0 auto var(--s3);border-radius:50%;
  background:var(--brand-wash);border:1.5px solid var(--brand-line);
  color:var(--brand-deep);display:grid;place-items:center;
}
@keyframes cheer{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.7);}
  14%{opacity:1;transform:translate(-50%,-50%) scale(1.04);}
  22%{transform:translate(-50%,-50%) scale(1);}
  80%{opacity:1;transform:translate(-50%,-50%) scale(1);}
  100%{opacity:0;transform:translate(-50%,-58%) scale(.96);}
}

/* ============ PROFILE ============ */
.profhead{
  display:flex;align-items:center;gap:var(--s5);margin-top:var(--s6);
  background:var(--surface);border-radius:var(--r-lg);padding:var(--s6);box-shadow:var(--shadow-1);
  flex-wrap:wrap;
}
.avatar-lg{
  width:76px;height:76px;border-radius:50%;flex-shrink:0;
  background:var(--brand-wash);border:2px solid var(--brand-line);
  color:var(--brand-deep);display:grid;place-items:center;
}
.profhead h2{font-size:24px;font-weight:700;letter-spacing:-.015em;}
.profhead .meta{color:var(--ink-2);font-size:13.5px;margin-top:4px;}
.scorebox{margin-left:auto;text-align:right;}
.scorebox .n{font-size:32px;font-weight:800;color:var(--brand-text);line-height:1;}
.scorebox .l{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-top:6px;}

.polrow{
  display:flex;align-items:center;gap:var(--s4);width:100%;text-align:left;
  background:var(--surface);border:2px solid transparent;border-radius:var(--r-md);
  padding:var(--s5);box-shadow:var(--shadow-1);margin-top:var(--s3);min-height:76px;
  transition:border-color var(--dur) var(--ease);
}
.polrow:hover{border-color:var(--brand-line);}
.polrow .ico{
  width:46px;height:46px;border-radius:var(--r-md);background:var(--brand-wash);
  border:1px solid var(--brand-line);color:var(--brand-deep);display:grid;place-items:center;flex-shrink:0;
}
.polrow h4{font-size:15px;font-weight:600;}
.polrow p{font-size:12.5px;color:var(--ink-2);margin-top:2px;}
.polrow .tail{margin-left:auto;text-align:right;flex-shrink:0;}
.polrow .tail b{font-size:15px;font-weight:700;}
.tag-live{
  display:inline-block;background:var(--brand-wash);color:var(--brand-deep);
  border:1px solid var(--brand-line);font-size:10px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:var(--r-pill);margin-top:5px;
}
.menu{margin-top:var(--s4);background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow-1);overflow:hidden;}
.menu button{
  display:flex;align-items:center;gap:var(--s4);width:100%;text-align:left;
  padding:var(--s4) var(--s5);min-height:60px;border-bottom:1px solid var(--line);
  font-size:15px;font-weight:500;transition:background var(--dur) var(--ease);
}
.menu button:last-child{border-bottom:0;}
.menu button:hover{background:var(--surface-sunken);}
.menu .icon:first-child{color:var(--brand-deep);flex-shrink:0;}
.menu .chev{margin-left:auto;color:var(--ink-3);}
.menu button.danger{color:var(--danger);}
.menu button.danger .icon:first-child{color:var(--danger);}

/* ---- support dialog ---- */
.scrim{
  position:fixed;inset:0;z-index:150;background:rgba(26,26,29,.5);
  display:none;align-items:center;justify-content:center;padding:var(--s5);
}
.scrim.on{display:flex;animation:fade 180ms var(--ease) both;}
@keyframes fade{from{opacity:0}to{opacity:1}}
.dialog{
  background:var(--surface);border-radius:20px;padding:var(--s6);
  max-width:400px;width:100%;text-align:center;
  box-shadow:0 24px 60px rgba(0,0,0,.28);
  animation:rise 240ms var(--ease) both;
}
@keyframes rise{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.dialog .ring{
  width:60px;height:60px;margin:0 auto var(--s4);border-radius:50%;
  background:var(--brand-wash);border:1.5px solid var(--brand-line);
  color:var(--brand-deep);display:grid;place-items:center;
}
.dialog h2{font-size:21px;font-weight:700;letter-spacing:-.015em;}
.dialog p{font-size:14.5px;color:var(--ink-2);line-height:1.6;margin-top:var(--s3);}
.dialog .eta{
  margin-top:var(--s5);background:var(--surface-sunken);border-radius:var(--r-md);
  padding:var(--s3) var(--s4);font-size:13px;color:var(--ink-2);
  display:flex;align-items:center;justify-content:center;gap:var(--s2);
}
.dialog .btn{margin-top:var(--s5);width:100%;}

/* ============================================================
   HOME — light landing, same white-and-gold system as the app.
   ============================================================ */
body.dark{background:var(--bg);}
body.dark .topbar{background:var(--charcoal);border-bottom:1px solid rgba(255,255,255,.07);}
body.dark .subbar{display:none;}

#view-home{color:var(--ink);}
.dk{--dkpad:clamp(20px,3.2vw,56px);max-width:1360px;margin:0 auto;padding:0 var(--dkpad);}
.dk-sec{padding-top:var(--s8);padding-bottom:var(--s8);}

/* ---- hero ---- */
.hero-grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,88px);
  align-items:center;padding:clamp(48px,7vw,96px) 0 var(--s8);
}
.badge-pill{
  display:inline-flex;align-items:center;gap:var(--s2);
  background:var(--brand-wash);border:1px solid var(--brand-line);
  color:var(--brand-text);border-radius:var(--r-pill);
  padding:7px 14px;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.hero-h1{
  font-size:clamp(40px,5.4vw,66px);font-weight:800;letter-spacing:-.035em;
  line-height:1.03;margin-top:var(--s5);
}
.hero-h1 .gold{
  display:block;
  background:var(--grad-brand-deep);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-lede{color:var(--ink-2);font-size:17px;line-height:1.65;margin-top:var(--s5);max-width:46ch;}
.hero-cta{display:flex;gap:var(--s4);margin-top:var(--s6);flex-wrap:wrap;}
.btn-glow{
  background:var(--grad-brand);color:#fff;border-radius:var(--r-md);
  padding:var(--s4) var(--s7);min-height:58px;font-size:16.5px;font-weight:700;
  box-shadow:0 0 0 1px rgba(var(--brand-lite-rgb),.35),0 10px 34px rgba(var(--brand-rgb),.34);
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.btn-glow:hover{transform:translateY(-2px);box-shadow:0 0 0 1px rgba(var(--brand-lite-rgb),.5),0 16px 44px rgba(var(--brand-rgb),.46);}
.btn-quiet{
  color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-md);
  padding:var(--s4) var(--s6);min-height:58px;font-size:15.5px;font-weight:600;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.btn-quiet:hover{border-color:var(--brand);color:var(--brand-text);background:var(--brand-wash);}
.hero-trust{
  display:flex;gap:var(--s5);margin-top:var(--s7);flex-wrap:wrap;
  padding-top:var(--s5);border-top:1px solid var(--line);
}
.hero-trust div{min-width:120px;}
.hero-trust b{display:block;font-size:20px;font-weight:800;color:var(--brand-text);letter-spacing:-.02em;}
.hero-trust span{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:5px;}

/* hero visual */
.slab{
  position:relative;aspect-ratio:1/.95;border-radius:22px;overflow:hidden;
  background:var(--brand-dark);box-shadow:0 24px 56px rgba(30,39,73,.18);
  border:1px solid var(--brand-line);
}
.slab .hero-shot{
  width:100%;height:100%;object-fit:cover;object-position:50% 22%;display:block;
  filter:contrast(1.04) brightness(1.02);
}
.slab .gold-wash{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg,
      rgba(12,12,14,0) 38%,
      rgba(var(--brand-rgb),.30) 64%,
      rgba(140,99,12,.86) 86%,
      rgba(74,50,6,.97) 100%),
    linear-gradient(180deg, rgba(12,12,14,.28) 0%, rgba(12,12,14,0) 26%);
}
.slab-badge{
  position:absolute;left:var(--s5);bottom:var(--s5);z-index:2;
  display:flex;align-items:center;gap:var(--s3);
}
.slab-badge .ring{
  width:38px;height:38px;border-radius:50%;background:rgba(20,14,4,.8);
  border:1px solid rgba(255,225,160,.45);color:var(--brand-on-dark);
  display:grid;place-items:center;backdrop-filter:blur(6px);
}
.slab-badge .k{font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-on-dark-2);}
.slab-badge .v{font-size:15px;font-weight:700;color:#fff;margin-top:2px;}

/* ---- cover at a glance ---- */
.glance{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:var(--s6);
  background:var(--line);border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden;
}
.glance div{background:var(--surface);padding:var(--s5);}
.glance dt{
  font-size:10.5px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-3);
}
.glance dd{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin-top:var(--s3);}
.glance dd small{display:block;font-size:12.5px;font-weight:400;color:var(--ink-2);margin-top:5px;letter-spacing:0;}

/* ---- two sides ---- */
.sides{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);margin-top:var(--s6);}
.side{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:var(--s6);box-shadow:var(--shadow-1);
}
.side .ico{
  width:46px;height:46px;border-radius:var(--r-md);display:grid;place-items:center;
  background:var(--brand-wash);border:1px solid var(--brand-line);color:var(--brand-deep);margin-bottom:var(--s5);
}
.side .who{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-text);}
.side h3{font-size:23px;font-weight:700;letter-spacing:-.02em;margin-top:var(--s3);}
.side p{color:var(--ink-2);font-size:14.5px;line-height:1.65;margin-top:var(--s4);}

/* ---- eligibility ---- */
.elig{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4) var(--s6);margin-top:var(--s6);}
.elig p{display:flex;gap:var(--s3);font-size:15px;line-height:1.55;color:var(--ink);}
.elig .icon{color:var(--brand);flex-shrink:0;margin-top:2px;}
.elig-note{
  display:flex;gap:var(--s3);margin-top:var(--s6);
  background:var(--brand-wash);border:1px solid var(--brand-line);
  border-radius:var(--r-md);padding:var(--s5);
}
.elig-note .icon{color:var(--brand-deep);flex-shrink:0;}
.elig-note p{font-size:14px;color:var(--ink-2);line-height:1.6;}
.elig-note b{color:var(--ink);font-weight:600;}

@media (max-width:900px){
  .glance{grid-template-columns:repeat(2,1fr);}
  .sides,.elig{grid-template-columns:1fr;}
}
@media (max-width:560px){ .glance{grid-template-columns:1fr;} }

/* ---- section headings ---- */
.dk-head{max-width:46ch;}
.dk-h2{font-size:clamp(28px,3.6vw,40px);font-weight:800;letter-spacing:-.03em;line-height:1.12;}
.dk-rule{width:64px;height:3px;background:var(--brand);border-radius:2px;margin-top:var(--s4);}
.dk-sub{color:var(--ink-2);font-size:16px;line-height:1.65;margin-top:var(--s4);}

/* ---- how it works ---- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s5);margin-top:var(--s6);}
.step{border-top:2px solid var(--line);padding-top:var(--s5);transition:border-color var(--dur) var(--ease);}
.step:hover{border-top-color:var(--brand);}
.step .n{font-size:12px;font-weight:800;letter-spacing:.16em;color:var(--brand-text);}
.step h3{font-size:20px;font-weight:700;margin-top:var(--s3);letter-spacing:-.015em;}
.step p{color:var(--ink-2);font-size:14.5px;line-height:1.6;margin-top:var(--s3);}

/* ---- faq ---- */
.faq{margin-top:var(--s6);border-top:1px solid var(--line);}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{
  cursor:pointer;list-style:none;padding:var(--s5) 0;
  font-size:17px;font-weight:600;display:flex;align-items:center;gap:var(--s4);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"+";margin-left:auto;color:var(--brand-text);font-size:22px;font-weight:400;line-height:1;
}
.faq details[open] summary::after{content:"–";}
.faq details p{color:var(--ink-2);font-size:14.5px;line-height:1.7;padding-bottom:var(--s5);max-width:70ch;}

/* ---- closing cta ---- */
.finale{
  text-align:center;margin-top:var(--s8);padding:var(--s8) 0;
  border-top:1px solid var(--line);
}
.finale h2{font-size:clamp(28px,4vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1.1;}
.finale p{color:var(--ink-2);font-size:16.5px;margin-top:var(--s4);}
.finale .btn-glow{margin-top:var(--s6);}
.finale .fineprint{font-size:12px;color:var(--ink-3);margin-top:var(--s5);}

@media (max-width:960px){
  .hero-grid{grid-template-columns:1fr;gap:var(--s6);}
  .steps{grid-template-columns:1fr;gap:var(--s5);}
}
@media (max-width:560px){
  .hero-cta .btn-glow,.hero-cta .btn-quiet{width:100%;}
}

/* ============ TOAST ============ */
.toast{
  position:fixed;left:50%;bottom:var(--s6);z-index:120;
  transform:translateX(-50%) translateY(90px);opacity:0;pointer-events:none;
  background:var(--charcoal);color:#fff;font-size:14px;font-weight:500;
  padding:var(--s4) var(--s6);border-radius:var(--r-pill);
  box-shadow:0 10px 34px rgba(0,0,0,.28);max-width:calc(100vw - 32px);
  transition:transform 300ms var(--ease),opacity 300ms var(--ease);
}
.toast.on{transform:translateX(-50%);opacity:1;}

/* ============================================================
   STEP 1 : PLAN — decision layer → comparison → disclosure
   Built entirely on the existing token set. No new colours.
   ============================================================ */

/* ---- section heads ---- */
.plan-head{padding-top:var(--s6);max-width:66ch;}
.planzone .sec-title{font-weight:600;letter-spacing:-.03em;}
.plan-head .sec-title{font-size:var(--t-page);line-height:1.08;margin-top:var(--s3);}
.planzone .page-sub{font-size:15px;line-height:1.6;}
.planzone .eyebrow{font-size:10px;font-weight:700;letter-spacing:.18em;}
.plan-head .page-sub{margin-top:var(--s3);}
.sec-block{padding-top:var(--s8);}
.sec-block .page-sub{margin-top:var(--s3);}

/* ---- the rail of three product cards ----
   Layout follows a modular pricing-card pattern: header → headline figure →
   price and CTA → named feature modules → flat checklist → full detail.
   Every module is a bounded group with an uppercase header and `label · chip`
   rows, so the three cards compare horizontally without being read.
   ------------------------------------------------------------------------ */
.rail-wrap{margin-top:var(--s6);}
.plan-rail{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--s6);align-items:stretch;list-style:none;
}
.pcard{
  --accent:var(--brand-deep);
  --accent-wash:var(--brand-wash);
  --accent-line:var(--brand-line);
  --mod-surface:var(--surface);
  position:relative;display:flex;flex-direction:column;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:var(--s6) var(--s5) var(--s5);
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),
             opacity var(--dur) var(--ease);
}
.pcard::before{
  content:"";position:absolute;inset:1px 1px auto;height:2px;
  background:var(--accent);opacity:.5;
  border-radius:var(--r-lg) var(--r-lg) 0 0;
}
.pcard.featured::before{opacity:1;}
.pcard:hover{box-shadow:var(--shadow-1);}
.pcard[data-on="true"]{border-color:var(--accent);box-shadow:var(--shadow-1);}
.pcard[data-plan="job"]{
  --accent:var(--income);
  --accent-wash:var(--income-wash);
  --accent-line:var(--income-line);
}
.pcard.featured{
  background:var(--surface-warm);
  border-color:var(--brand-line);
  --mod-surface:var(--surface);
}
.pcard.featured::before{background:var(--grad-brand);}

/* 1 — badge rail, reserved on every card */
.pc-badge{
  position:absolute;top:var(--s4);right:var(--s4);z-index:2;
  display:inline-flex;align-items:center;gap:6px;
  color:var(--brand-deep);background:var(--surface);border:1px solid var(--brand-line);
  font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  padding:5px 12px;border-radius:var(--r-pill);
}
.pc-badge .icon{width:12px;height:12px;}

/* 2 — header */
.pc-head{min-height:var(--band-head,136px);}
.pc-brow{display:flex;align-items:center;gap:var(--s3);}
.pc-ico{
  width:32px;height:32px;border-radius:var(--r-sm);
  background:var(--accent-wash);color:var(--accent);
  display:grid;place-items:center;flex-shrink:0;
}
.pc-ico .icon{width:16px;height:16px;stroke-width:1.6;}
.pc-kicker{font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);}
.pc-name{font-size:var(--t-card);font-weight:600;letter-spacing:-.02em;line-height:1.15;margin-top:var(--s4);}
.pcard.featured .pc-name{color:var(--brand-text);}
.pcard.featured .pc-hero-lbl{color:var(--brand-ink);}
.pc-pitch{font-size:13.5px;line-height:1.5;color:var(--ink-2);margin-top:var(--s3);}

/* 3 — headline figure and its quick metrics */
.pc-hero{
  min-height:var(--band-hero,152px);
  margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--line);
}
.pcard.featured .pc-hero{border-color:var(--brand-line);}
.pc-hero-lbl{font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);}
.pc-hero-val{font-size:var(--t-hero);font-weight:600;letter-spacing:-.035em;line-height:1.05;margin-top:var(--s3);}
.pc-metrics{
  display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px;
  margin-top:var(--s3);list-style:none;
  /* two rows of pills, whether the copy wraps or not, so the bands below
     start on the same line across all three cards */
  min-height:60px;
}
.pc-metrics li{
  background:var(--surface-sunken);border-radius:var(--r-pill);
  padding:5px 11px;font-size:11.5px;font-weight:500;color:var(--ink);
}
.pcard.featured .pc-metrics li{background:var(--surface);}

/* 4 — price, CTA and its footnote, high on the card */
.pc-buy{min-height:var(--band-buy,146px);margin-top:var(--s5);}
.pc-price{display:flex;align-items:baseline;gap:var(--s2);flex-wrap:wrap;}
.pc-price b{font-size:26px;font-weight:600;letter-spacing:-.03em;}
.pc-price .per{font-size:13px;font-weight:400;color:var(--ink-2);}
.pc-price s{font-size:13px;font-weight:400;color:var(--ink-2);}
.pc-cta{
  width:100%;margin-top:var(--s4);min-height:50px;
  font-size:14.5px;font-weight:600;border:1px solid transparent;border-radius:var(--r-md);
}
.pcard:not(.featured) .pc-cta{background:var(--surface);border-color:var(--line);color:var(--ink);}
.pcard:not(.featured) .pc-cta:hover{border-color:var(--accent);color:var(--accent);}
.pc-cta[aria-pressed="true"]{background:var(--grad-brand);color:#fff;border-color:transparent;box-shadow:none;}
.pcard:not(.featured) .pc-cta[aria-pressed="true"]{background:var(--charcoal);color:#fff;}
.pc-cta[aria-pressed="true"]:hover{color:#fff;}
.pc-note{
  display:block;text-align:center;margin-top:var(--s3);
  font-size:12px;font-weight:400;color:var(--ink-2);line-height:1.4;
}
.pc-note b{font-weight:600;color:var(--ink);}

/* 5 & 6 — named feature modules */
.pc-mod{
  margin-top:var(--s4);background:var(--mod-surface);
  border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
}
.pcard.featured .pc-mod{border-color:var(--brand-line);}
.pc-mod-head{
  display:flex;align-items:center;gap:var(--s2);
  padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);
  font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);
}
.pcard.featured .pc-mod-head{border-color:var(--brand-line);}
.pc-mod-head .icon{width:15px;height:15px;color:var(--accent);flex-shrink:0;stroke-width:1.6;}
.pc-mod-body{padding:0 var(--s4);}
.pc-mod-foot{
  display:flex;align-items:flex-start;gap:7px;
  min-height:46px;padding:var(--s3) var(--s4);border-top:1px solid var(--line);
  font-size:11.5px;color:var(--ink-2);line-height:1.4;
}
.pcard.featured .pc-mod-foot{border-color:var(--brand-line);}
.pc-mod-foot .icon{width:14px;height:14px;color:var(--ink-3);flex-shrink:0;margin-top:1px;stroke-width:1.6;}

/* the row that carries the whole comparison: label on the left, value chipped right */
.pc-row{
  /* The chip is nowrap and unshrinkable, so a long label like
     "Hospitalisation" beside "Refer to Hospicash" used to overlap it on a
     narrow card. Wrapping lets the chip drop to its own line instead. */
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);
  min-height:54px;padding:var(--s3) 0;border-bottom:1px solid var(--line);
  font-size:13px;
}
.pc-row:last-child{border-bottom:0;}
.pcard.featured .pc-row{border-color:var(--brand-line);}
.pc-row > .icon{width:15px;height:15px;color:var(--accent);flex:0 0 auto;stroke-width:1.8;}
.pc-row .lbl{flex:1 1 auto;min-width:104px;font-weight:500;line-height:1.35;}
.pc-row .chip{
  margin-left:auto;flex:0 0 auto;white-space:nowrap;max-width:100%;
  background:var(--surface-sunken);border-radius:var(--r-pill);
  padding:5px 11px;font-size:11px;font-weight:600;color:var(--ink);
}
.pcard.featured .pc-row .chip{background:var(--brand-wash);color:var(--brand-ink);}
.pc-row.on .chip{background:var(--brand-wash);color:var(--brand-ink);}
.pc-row.off{color:var(--ink-2);}
.pc-row.off > .icon{color:var(--ink-3);}
.pc-row.off .lbl{font-weight:400;}
.pc-row.off .chip{background:transparent;border:1px solid var(--line);color:var(--ink-2);font-weight:500;}

/* 7 — flat checklist */
.pc-list{list-style:none;display:grid;gap:var(--s3);margin-top:var(--s5);min-height:var(--band-list,112px);align-content:start;}
.pc-list li{display:flex;align-items:flex-start;gap:var(--s3);font-size:13px;line-height:1.4;}
.pc-list .icon{width:15px;height:15px;color:var(--accent);flex-shrink:0;margin-top:1px;stroke-width:1.8;}

/* 8 — full detail */
.pc-more{
  margin-top:auto;padding-top:var(--s5);
  border-top:1px solid var(--line);
}
.pcard.featured .pc-more{border-color:var(--brand-line);}
.pc-more summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--s3);
  min-height:44px;
}
.pc-more summary::-webkit-details-marker{display:none;}
.pc-more-ico{color:var(--accent);display:grid;place-items:center;flex-shrink:0;}
.pc-more-ico .icon{width:17px;height:17px;stroke-width:1.6;}
.pc-more-txt{min-width:0;}
.pc-more-txt b{display:block;font-size:13px;font-weight:600;line-height:1.25;}
.pc-more-txt span{display:block;font-size:11.5px;font-weight:400;color:var(--ink-2);margin-top:2px;}
.pc-more summary::after{
  content:"";margin-left:auto;flex-shrink:0;width:7px;height:7px;
  border-right:1.5px solid var(--ink-2);border-bottom:1.5px solid var(--ink-2);
  transform:rotate(45deg) translate(-2px,-2px);
  transition:transform var(--dur) var(--ease);
}
.pc-more[open] summary::after{transform:rotate(-135deg) translate(-2px,-2px);}
.pc-more-body{padding-top:var(--s3);animation:disclose 240ms var(--ease) both;}
@keyframes disclose{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}

/* a quiet third action: straight to this product's policy detail */
.pc-know{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;margin-top:var(--s3);min-height:46px;
  font-size:13px;font-weight:600;color:var(--ink);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),
             color var(--dur) var(--ease);
}
.pc-know:hover{background:var(--surface-sunken);border-color:var(--accent);color:var(--accent);}
.pcard.featured .pc-know:hover{background:var(--brand-wash);color:var(--brand-ink);}
.pc-know .icon{width:14px;height:14px;stroke-width:1.9;}

/* fact rows — label over value, ruled, never boxed */
.facts{display:grid;column-gap:var(--s6);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}
.facts > div{padding:var(--s3) 0;border-bottom:1px solid var(--line);}
.facts dt{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);line-height:1.3;}
.facts dd{
  font-size:13.5px;font-weight:500;margin-top:5px;line-height:1.4;
  font-variant-numeric:tabular-nums;
}
.pcard .facts{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s4);}
.pcard .facts dd{font-size:12.5px;}

.mini-h{
  font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-2);margin-top:var(--s5);margin-bottom:var(--s2);
}

/* payout progression */
.paysteps{list-style:none;display:grid;}
.paysteps li{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  column-gap:var(--s4);row-gap:2px;align-items:center;
  padding:var(--s3) 0;border-bottom:1px solid var(--line);
}
.paysteps li:last-child{border-bottom:0;}
.ps-day{grid-row:1 / span 2;align-self:center;min-width:42px;}
.ps-day b{display:block;font-size:24px;font-weight:600;color:var(--brand-deep);line-height:1;letter-spacing:-.03em;}
.ps-day span{display:block;font-size:8.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-top:4px;}
.ps-amt{font-size:13.5px;font-weight:600;line-height:1.3;}
.ps-note{font-size:11.5px;font-weight:400;color:var(--ink-2);line-height:1.4;}

/* required documents — outline pills */
.docs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2);}
.docs > div{
  display:flex;align-items:center;gap:var(--s2);min-height:46px;
  border:1px solid var(--line);border-radius:var(--r-pill);
  padding:var(--s2) var(--s4);font-size:12px;font-weight:500;line-height:1.3;
}
.docs .icon{width:15px;height:15px;color:var(--accent,var(--brand-deep));flex-shrink:0;stroke-width:1.6;}

/* wellness — filled micro-chips */
.pc-chips{list-style:none;display:flex;flex-wrap:wrap;gap:5px;}
.pc-chips li{
  background:var(--brand-wash);border-radius:var(--r-pill);
  padding:5px 10px;font-size:11px;font-weight:500;color:var(--brand-ink);
}
.pcard.featured .pc-chips li{background:var(--surface);border:1px solid var(--brand-line);}

/* ---- rail affordances (tablet + mobile) ---- */
.rail-hint{display:none;align-items:center;gap:var(--s2);font-size:12px;color:var(--ink-2);margin-top:var(--s5);}
.rail-hint .icon{width:15px;height:15px;}
.rail-dots{display:none;justify-content:center;gap:8px;margin-top:var(--s3);}
.rail-dots button{
  width:8px;height:8px;padding:0;border-radius:var(--r-pill);background:var(--line);
  transition:width var(--dur) var(--ease),background var(--dur) var(--ease);
}
.rail-dots button[aria-current="true"]{width:22px;background:var(--brand);}

/* ---- selection messaging ---- */
.nudge{
  display:none;align-items:center;gap:var(--s3);margin-top:var(--s4);
  background:var(--surface);border:1px dashed var(--brand);border-radius:var(--r-md);
  padding:var(--s3) var(--s4);font-size:13px;color:var(--ink-2);line-height:1.5;
}
.nudge.on{display:flex;}
.nudge .icon{color:var(--brand-deep);flex-shrink:0;}
.nudge button{
  margin-left:auto;white-space:nowrap;font-size:13px;font-weight:700;
  color:var(--brand-deep);text-decoration:underline;min-height:44px;padding:0 var(--s2);
}

/* ---- sticky premium summary ---- */
.checkout{
  position:sticky;bottom:var(--s4);z-index:40;
  margin-top:var(--s6);padding:var(--s4) var(--s5);
  background:rgba(255,255,255,.92);backdrop-filter:blur(12px);
  border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:0 2px 10px rgba(30,39,73,.06),0 10px 30px rgba(30,39,73,.07);
}
.checkout .hint{font-size:12.5px;color:var(--ink-2);margin-top:2px;}

/* ---- comparison matrix ----
   Cells carry the actual figure rather than a tick, the recommended column
   runs as one continuous raised band, and the table closes with the totals
   and an action per column.
   ------------------------------------------------------------------------ */
.cmp{
  position:relative;margin-top:var(--s5);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-lg);
}
.cmp-head,.cmp-cat,.cmp-row{
  display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));
}

/* header: each column gets an icon, a name and its price */
.cmp-head{
  position:sticky;top:64px;z-index:20;background:var(--surface);
  border-bottom:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0;
}
.cmp-head > div{padding:var(--s5) var(--s3) var(--s4);text-align:center;}
.cmp-head > div:first-child{text-align:left;padding-left:var(--s5);display:flex;flex-direction:column;justify-content:flex-start;}

.cmp-corner b{color:var(--ink-2);}
.cmp-head b{display:block;font-size:15px;font-weight:600;letter-spacing:-.015em;line-height:1.25;}
.cmp-head .cmp-hl b{color:var(--brand-ink);}
.cmp-price{display:block;font-size:12.5px;color:var(--ink-2);margin-top:5px;}
.cmp-price i{font-style:normal;font-size:11px;}
.cmp-tag-slot{display:block;min-height:19px;margin-bottom:var(--s3);}
.cmp-tag{
  display:inline-block;
  background:var(--surface);border:1px solid var(--brand-line);color:var(--brand-ink);
  font-size:8.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:3px 8px;border-radius:var(--r-pill);
}

/* the recommended column, drawn as one continuous band */
.cmp-hl{
  background:var(--surface-warm);
  box-shadow:inset 1px 0 0 var(--brand-line),inset -1px 0 0 var(--brand-line);
}
.cmp-head .cmp-hl{
  box-shadow:inset 1px 0 0 var(--brand-line),inset -1px 0 0 var(--brand-line),inset 0 1px 0 var(--brand-line);
  border-radius:0 var(--r-lg) 0 0;
}
.cmp > *:last-child .cmp-hl{
  box-shadow:inset 1px 0 0 var(--brand-line),inset -1px 0 0 var(--brand-line),inset 0 -1px 0 var(--brand-line);
  border-radius:0 0 var(--r-lg) 0;
}

/* category bands carry a line of context, not just a label */
.cmp-cat{border-top:1px solid var(--line);}
.cmp-cat > div{padding:var(--s6) var(--s3) var(--s4);}
.cmp-cat > div:first-child{
  display:flex;align-items:center;gap:var(--s2);padding-left:var(--s5);
}
.cmp-cat .icon{width:19px;height:19px;color:var(--brand-deep);flex-shrink:0;stroke-width:1.75;}
.cmp-cat b{font-size:15px;font-weight:600;letter-spacing:-.015em;text-transform:none;color:var(--ink);}

.cmp-row{border-top:1px solid var(--line);}
.cmp-row > div{padding:var(--s3) var(--s3);min-height:52px;display:flex;align-items:center;justify-content:center;}
.cmp-row > div:first-child{
  justify-content:flex-start;padding-left:var(--s5);
  font-size:13.5px;font-weight:400;line-height:1.4;color:var(--ink);
}
.cmp-row:hover > div{background:rgba(0,0,0,.014);}
.cmp-row:hover > .cmp-hl{background:var(--brand-hover-warm);}

/* plain figures, so the columns read as columns */
.cmp-val{font-size:13px;font-weight:500;color:var(--ink);line-height:1.3;text-align:center;}
.cmp-hl .cmp-val{font-weight:600;color:var(--brand-ink);}
.cmp-yes{color:var(--brand-deep);width:18px;height:18px;stroke-width:1.75;}
.cmp-no{color:var(--ink-2);font-weight:400;font-size:16px;line-height:1;}

/* totals close the argument */
.cmp-total{border-top:1px solid var(--line);}
.cmp-total > div{padding-top:var(--s5);padding-bottom:var(--s5);min-height:0;}
.cmp-total > div:first-child{font-size:15px;font-weight:600;letter-spacing:-.015em;color:var(--ink);}
.cmp-total b{font-size:18px;font-weight:600;letter-spacing:-.025em;}
.cmp-total .cmp-hl b{color:var(--brand-ink);}

/* and an action per column */
.cmp-act{border-top:1px solid var(--line);}
.cmp-act > div{padding:var(--s5) var(--s4) var(--s5);align-items:flex-start;}
.cmp-act > div:first-child{padding-left:var(--s5);}
.cmp-cta{
  width:100%;min-height:44px;padding:0 var(--s3);
  font-size:12.5px;font-weight:600;border-radius:var(--r-md);
  background:var(--surface);border:1px solid var(--line);color:var(--ink);
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.cmp-cta:hover{border-color:var(--brand);color:var(--brand-ink);}
.cmp-hl .cmp-cta{border-color:var(--brand);color:var(--brand-ink);}
.cmp-cta[aria-pressed="true"]{background:var(--charcoal);border-color:transparent;color:#fff;}
.cmp-cta[aria-pressed="true"]:hover{color:#fff;}

/* scroll affordance, shown when the table has to scroll */
.cmp-hint{
  display:none;align-items:center;gap:var(--s2);
  margin-top:var(--s3);font-size:12px;color:var(--ink-2);
}
.cmp-hint .icon{width:15px;height:15px;}

/* ---- progressive disclosure accordion ---- */
.disclose{margin-top:var(--s5);display:grid;gap:var(--s3);}
.dsc{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);overflow:hidden;
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.dsc[open]{border-color:var(--brand-line);box-shadow:var(--shadow-1);}
.dsc summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--s4);
  padding:var(--s4) var(--s5);min-height:62px;font-size:15px;font-weight:500;
}
.dsc summary::-webkit-details-marker{display:none;}
.dsc summary .ico{
  color:var(--ink-3);display:grid;place-items:center;flex-shrink:0;
  transition:color var(--dur) var(--ease);
}
.dsc summary .ico .icon{width:19px;height:19px;stroke-width:1.6;}
.dsc[open] summary .ico{color:var(--brand-deep);}
.dsc summary::after{
  content:"+";margin-left:auto;padding-left:var(--s3);
  font-size:22px;font-weight:300;line-height:1;color:var(--ink-2);
}
.dsc[open] summary::after{content:"–";color:var(--brand-deep);}
.dsc-body{padding:0 var(--s5) var(--s5);animation:disclose 240ms var(--ease) both;}

/* topic tabs — secondary navigation inside a policy panel */
.ptabs{
  display:flex;flex-wrap:wrap;gap:6px;
  padding-bottom:var(--s4);margin-bottom:var(--s2);
  border-bottom:1px solid var(--line);
}
.ptab{
  min-height:44px;padding:10px 15px;border-radius:var(--r-pill);
  font-size:12.5px;font-weight:500;color:var(--ink-2);
  border:1px solid transparent;white-space:nowrap;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease),
             border-color var(--dur) var(--ease);
}
.ptab:hover{background:var(--surface-sunken);color:var(--ink);}
.ptab[aria-selected="true"]{
  background:var(--brand-wash);border-color:var(--brand-line);
  color:var(--brand-ink);font-weight:600;
}
.ptab-panel{animation:disclose 200ms var(--ease) both;}
.ptab-panel > .dsc-h:first-child{margin-top:var(--s4);}

/* one grid for every block inside a policy panel */
.dsc .facts,
.dsc .excl,
.dsc .docs{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s6);}
.dsc .facts > div{padding:var(--s3) 0 var(--s4);}
.dsc .excl > div{padding:var(--s3) 0 var(--s4);}
/* a lone final item runs the full width, so no row is left half-ruled */
.dsc .facts > div:last-child:nth-child(odd),
.dsc .excl > div:last-child:nth-child(odd){grid-column:1 / -1;}
.dsc .docs{row-gap:var(--s2);}


.dsc-h{
  display:flex;align-items:center;gap:var(--s3);margin:var(--s6) 0 var(--s3);
  font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);
}
.dsc-h::after{content:"";flex:1;height:1px;background:var(--line);}
.dsc-note{
  display:flex;gap:var(--s3);align-items:flex-start;margin-top:var(--s5);
  border-top:1px solid var(--line);
  padding:var(--s4) 0 0;font-size:12.5px;color:var(--ink-2);line-height:1.6;
}
.dsc-note .icon{color:var(--brand-deep);flex-shrink:0;margin-top:1px;}
.dsc-note b{color:var(--ink);font-weight:600;}

.excl{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--s7);}
.excl > div{
  display:flex;gap:var(--s3);padding:var(--s3) 0;
  border-bottom:1px solid var(--line);
}
/* covered reads green, not covered reads red — each set in a soft disc */
.excl .icon{
  width:26px;height:26px;padding:5px;box-sizing:border-box;border-radius:50%;
  background:var(--danger-wash);color:var(--danger);
  flex-shrink:0;margin-top:0;opacity:1;stroke-width:1.9;
}
.excl.incl .icon,
.excl .icon.cmp-yes{background:var(--ok-wash);color:var(--ok);}
.excl b{display:block;font-size:13px;font-weight:600;}
.excl span{display:block;font-size:12px;font-weight:400;color:var(--ink-2);margin-top:3px;line-height:1.5;}

.wrows{display:grid;gap:var(--s3);grid-template-columns:1fr 1fr;}
.wrow{
  display:flex;gap:var(--s4);align-items:flex-start;
  border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s4);
}
.wrow .ico{
  width:34px;height:34px;border-radius:var(--r-sm);background:var(--brand-wash);
  color:var(--brand-deep);display:grid;place-items:center;flex-shrink:0;
}
.wrow .ico .icon{width:19px;height:19px;}
.wrow h4{font-size:14px;font-weight:600;}
.wrow p{font-size:12.5px;color:var(--ink-2);margin-top:3px;line-height:1.5;}

.planzone .faq summary{font-weight:500;}
.planzone .faq details p{font-size:14px;}

/* ---- back to top ---- */
.totop{
  position:fixed;right:var(--gutter);bottom:calc(var(--s4) + 88px);z-index:60;
  width:46px;height:46px;border-radius:50%;
  background:var(--surface);border:1px solid var(--line);
  color:var(--ink-2);display:grid;place-items:center;
  box-shadow:var(--shadow-2);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),
             visibility var(--dur),border-color var(--dur) var(--ease),color var(--dur) var(--ease);
}
.totop.on{opacity:1;visibility:visible;transform:none;}
.totop:hover{border-color:var(--brand);color:var(--brand-text);}
.totop .icon{width:20px;height:20px;transform:rotate(-90deg);stroke-width:2;}

/* ---- support cards ---- */
.helpcards{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin-top:var(--s5);}
.helpcard{
  display:flex;align-items:center;gap:var(--s4);text-align:left;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  padding:var(--s4) var(--s5);min-height:84px;
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.helpcard:hover{border-color:var(--brand);box-shadow:var(--shadow-1);}
.helpcard .ico{
  width:40px;height:40px;border-radius:var(--r-sm);
  background:var(--brand-wash);color:var(--brand-deep);
  display:grid;place-items:center;flex-shrink:0;
}
.helpcard .ico .icon{width:20px;height:20px;}
.helpcard .txt b{display:block;font-size:16.5px;font-weight:600;letter-spacing:-.015em;line-height:1.25;}
.helpcard .txt span{display:block;font-size:var(--t-body);color:var(--ink-2);margin-top:4px;line-height:1.45;}
.helpcard .chev{margin-left:auto;flex-shrink:0;color:var(--ink-2);}

/* ---- closing band ---- */
.finale-band{
  margin-top:var(--s8);background:var(--charcoal);color:#fff;
  border-radius:var(--r-lg);padding:var(--s7) var(--s6);text-align:center;
}
.finale-band h2{font-size:clamp(22px,3vw,30px);font-weight:600;letter-spacing:-.03em;line-height:1.2;}
.finale-band p{color:#c5c5cc;font-size:14.5px;margin-top:var(--s3);}
.finale-band .btn{margin-top:var(--s5);}
.finale-band .fineprint{font-size:11.5px;color:#b3b3bb;margin-top:var(--s5);line-height:1.6;}

/* ---- responsive ---- */
@media (max-width:1023px){
  .plan-rail{
    display:flex;overflow-x:auto;gap:var(--s4);
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    scroll-padding-left:var(--dkpad);
    padding:var(--s2) var(--dkpad) var(--s5);
    margin:0 calc(var(--dkpad) * -1);
    scrollbar-width:none;
  }
  .plan-rail::-webkit-scrollbar{display:none;}
  .pcard{flex:0 0 min(82vw,340px);scroll-snap-align:start;}
  .rail-hint,.rail-dots{display:flex;}
  .wrows,.excl,.helpcards{grid-template-columns:1fr;}
  .dsc .facts,.dsc .excl,.dsc .docs{grid-template-columns:1fr;column-gap:0;}
  /* one scrollable row beats four stacked ones on a small screen */
  .ptabs{
    flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    margin:0 calc(var(--s4) * -1);padding:0 var(--s4) var(--s4);
  }
  .ptabs::-webkit-scrollbar{display:none;}
  .ptab{flex:0 0 auto;}
  .pcard .docs{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .cmp-head,.cmp-row{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.6fr);}
  .cmp-head > div,.cmp-row > div{padding:var(--s3) 4px;}
  .cmp-head > div:first-child,.cmp-row > div:first-child{padding-left:10px;}
  .cmp-head{top:56px;}
  .cmp-head b{font-size:11px;}
  .cmp-head span{font-size:9.5px;}
  .cmp-cat{padding:var(--s3);font-size:10.5px;letter-spacing:.1em;}
  .cmp-row > div:first-child{font-size:11px;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word;}
  .cmp-row .icon{width:17px;height:17px;}
  .dsc summary{padding:var(--s4);font-size:14.5px;gap:var(--s3);}
  .dsc-body{padding:0 var(--s4) var(--s4);}
  .helpcard{padding:var(--s4);gap:var(--s3);}
  .nudge{flex-wrap:wrap;}
  .nudge button{margin-left:0;}
  .checkout .btn{width:100%;}
  .finale-band{padding:var(--s6) var(--s5);}
}
/* Below ~360px a four-column matrix cannot hold the longest feature label and
   the product names at a legible size. Rather than shrink the type into
   unreadability, the matrix scrolls sideways at a fixed comfortable width. */
@media (max-width:1000px){
  .cmp{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .cmp::-webkit-scrollbar{display:none;}
  .cmp-head{position:static;}
  .cmp-head,.cmp-cat,.cmp-row{min-width:760px;}
  .cmp-row > div:first-child,.cmp-cat > div:first-child{
    position:sticky;left:0;z-index:2;background:var(--surface);
    box-shadow:1px 0 0 var(--line);
  }
  .cmp-head > div:first-child{
    position:sticky;left:0;z-index:3;background:var(--surface);
    box-shadow:1px 0 0 var(--line);
  }
  .cmp-hint{display:flex;}
}
@media (max-width:640px){
  .cmp-head,.cmp-cat,.cmp-row{min-width:700px;}
  .cmp-head > div{padding:var(--s4) var(--s3) var(--s3);}
  .cmp-corner b{font-size:13.5px;}
  .cmp-row > div{padding:var(--s3);}
}


/* ---- premium tier ----
   Super Saver swaps its accent family for gold. Placed after every component
   rule so it wins the cascade on shared selectors such as .cmp-hl. */
.pcard.featured,
.cmp-hl{
  --brand:var(--prem);
  --brand-deep:var(--prem-deep);
  --brand-bright:var(--prem-bright);
  --brand-text:var(--prem-text);
  --brand-ink:var(--prem-ink);
  --brand-wash:var(--prem-wash);
  --brand-line:var(--prem-line);
  --brand-hover-warm:var(--prem-hover);
  --grad-brand:var(--grad-prem);
  --accent:var(--prem-deep);
  --accent-wash:var(--prem-wash);
  --accent-line:var(--prem-line);
}
.pcard.featured{background:var(--prem-wash);}
.cmp-hl{background:var(--prem-wash);}

/* ============ RESPONSIVE ============ */
@media (max-width:1000px){
  :root{--gutter:28px;}
  .covgrid{grid-template-columns:repeat(2,1fr);}
  .sumgrid,.figs,.pbgrid,.duo{grid-template-columns:1fr;}
  .pbgrid .r{text-align:left;}
}
@media (max-width:640px){
  :root{--gutter:20px;}
  .amountcard .plan{text-align:left;}
  .checkout .btn{width:100%;}
  body{padding-bottom:env(safe-area-inset-bottom);}
  .toast{bottom:calc(var(--s5) + env(safe-area-inset-bottom));}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important;
  }
}

/* ============================================================
   UNIFIED DECISION PAGE
   Understand → see the situations → choose → compare → continue.
   One narrative, one primary action at each stage. Built on the
   existing token set; no new colour families introduced.
   ============================================================ */

/* ---- 01 hero : decision-oriented, not a marketing splash ---- */
.hero-grid{padding:clamp(40px,5.5vw,76px) 0 clamp(32px,4vw,56px);}
.hero-h1{font-size:clamp(36px,4.8vw,58px);}
.hero-lede{font-size:16.5px;max-width:44ch;margin-top:var(--s4);}

.hero-proof{
  list-style:none;display:flex;flex-wrap:wrap;gap:var(--s5) var(--s6);
  margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--line);
}
.hero-proof li{min-width:112px;}
.hero-proof b{
  display:block;font-size:19px;font-weight:700;letter-spacing:-.02em;
  color:var(--brand-text);font-variant-numeric:tabular-nums;
}
.hero-proof span{
  display:block;font-size:10.5px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);margin-top:4px;
}
.hero-cta{margin-top:var(--s5);}
.btn-glow{display:inline-flex;align-items:center;gap:var(--s3);}
.cta-chev{transition:transform var(--dur) var(--ease);}
.btn-glow:hover .cta-chev{transform:translateY(2px);}
.hero-fine{font-size:12px;color:var(--ink-3);margin-top:var(--s4);line-height:1.6;}
.slab{aspect-ratio:1/.86;}

/* ---- 02 the three situations, as a bridge into the choice ---- */
.sitband{
  padding-bottom:clamp(32px,4vw,56px);
  border-bottom:1px solid var(--line);
}
.band-eyebrow{
  font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-3);
}
.sitgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);margin-top:var(--s5);}
.sit{
  display:flex;flex-direction:column;align-items:flex-start;text-align:left;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--s5);gap:var(--s3);
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),
             transform var(--dur) var(--ease);
}
.sit:hover{border-color:var(--brand-line);box-shadow:var(--shadow-1);transform:translateY(-2px);}
.sit-ico{
  width:38px;height:38px;border-radius:var(--r-md);display:grid;place-items:center;
  background:var(--brand-wash);color:var(--brand-deep);
}
.sit-ico .icon{width:19px;height:19px;stroke-width:1.6;}
.sit b{font-size:16px;font-weight:600;letter-spacing:-.015em;}
.sit-txt{font-size:13.5px;line-height:1.55;color:var(--ink-2);}
.sit-go{
  display:inline-flex;align-items:center;gap:5px;margin-top:auto;padding-top:var(--s2);
  font-size:12px;font-weight:600;color:var(--brand-text);
}
.sit-go .icon{width:14px;height:14px;stroke-width:2;transition:transform var(--dur) var(--ease);}
.sit:hover .sit-go .icon{transform:translateX(3px);}
.sit-prem{
  --brand-wash:var(--prem-wash);--brand-deep:var(--prem-deep);
  --brand-text:var(--prem-text);--brand-line:var(--prem-line);
  background:var(--prem-wash);border-color:var(--prem-line);
}
.sit-prem .sit-ico{background:var(--surface);}

/* ---- 03 the choice ---- */
.planzone{padding-bottom:var(--s8);}
.sec-choose{padding-top:clamp(40px,5vw,72px);scroll-margin-top:76px;}
.plan-head{padding-top:0;max-width:60ch;}
.plan-head .eyebrow{display:flex;align-items:center;gap:8px;color:var(--brand-text);}
.step-dot{
  width:7px;height:7px;border-radius:50%;background:var(--brand);flex-shrink:0;
}
.plan-head .sec-title{font-size:clamp(28px,3.4vw,38px);font-weight:700;}
.sec-block{padding-top:clamp(44px,5vw,72px);}
.page-fine{font-size:11.5px;color:var(--ink-3);margin-top:var(--s5);line-height:1.6;}

/* card : level 1 decides, level 2 explains */
.pcard{padding:var(--s5);border-radius:var(--r-lg);}
.pcard.focusflash{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--brand-deep-rgb),.12),var(--shadow-2);}
.pc-head{min-height:0;}
.pc-name{
  font-size:clamp(28px,2.6vw,36px);font-weight:700;letter-spacing:-.035em;
  line-height:1.1;margin-top:var(--s5);
  /* the band holds two lines: above ~1200px every name fits on one, below it
     "Super Saver Combo" wraps, and all three must still start their figure
     on the same line either way */
  min-height:80px;
}
@media (min-width:1200px){ .pc-name{min-height:40px;} }
.pcard.featured .pc-name{color:var(--prem-ink);}
.pc-pitch{font-size:14.5px;line-height:1.6;margin-top:var(--s4);min-height:48px;}
.pc-head{min-height:224px;padding-right:0;}
@media (min-width:1200px){ .pc-head{min-height:172px;} }
.pc-brow{margin-bottom:var(--s2);}
.pc-kicker{letter-spacing:.2em;}
.pc-price{
  align-items:baseline;gap:var(--s2) var(--s3);margin-bottom:var(--s3);
  /* fixed, not a floor: the combo carries a struck list price that would
     otherwise push its CTA a row below the other two */
  height:74px;align-content:flex-start;
}
@media (min-width:1200px){ .pc-price{height:48px;} }
.pc-price b{font-size:30px;font-weight:700;letter-spacing:-.035em;}
.pc-price .per{font-size:13.5px;}
.pc-price s{font-size:14px;order:-1;}
.pc-badge{
  position:absolute;top:var(--s5);right:var(--s5);margin:0;
  font-size:9px;letter-spacing:.12em;
}

/* One dominant figure per card, two quiet supporting facts. Sub-captions
   moved into the disclosure — three type sizes in a 320px column was the
   source of the clutter, so the column now carries one. */
/* One dominant figure, its supporting facts as quiet pills. The clutter was
   never the pills — it was three type sizes stacked with no air. So the air
   is the fix: generous rules, one label size, one value size. */
.pc-figure{
  margin-top:var(--s6);padding-top:var(--s6);border-top:1px solid var(--line);
}
.pcard.featured .pc-figure{border-color:var(--prem-line);}
.pc-fig-lbl{
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-2);
}
.pcard.featured .pc-fig-lbl{color:var(--prem-text);}
.pc-fig-val{
  font-size:clamp(34px,3.6vw,44px);font-weight:700;letter-spacing:-.04em;
  line-height:1;margin-top:var(--s4);color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.pcard.featured .pc-fig-val{color:var(--ink);}

.pc-metrics{
  display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;
  margin-top:var(--s5);list-style:none;
  /* two rows of pills whether the copy wraps or not, so the price and CTA
     below land on the same line across all three cards */
  min-height:76px;
}
.pc-metrics li{
  background:var(--surface-sunken);border-radius:var(--r-pill);
  padding:8px 15px;font-size:12.5px;font-weight:500;color:var(--ink-2);
  line-height:1.3;
}
.pcard.featured .pc-metrics li{background:var(--surface);color:var(--prem-ink);}
/* the payee pill carries an icon — keep it on the same line as the label,
   since svg is display:block by default and would otherwise stack above it */
.pc-metrics li.pc-payee{display:flex;align-items:center;gap:6px;}
.pc-metrics li.pc-payee .icon{width:14px;height:14px;flex-shrink:0;stroke-width:1.8;}

/* two actions, one hierarchy: select is primary, learn is quiet */
.pc-actions{display:grid;gap:var(--s2);margin-top:var(--s4);}
.pc-actions .pc-cta{margin-top:0;}
.pc-learn{
  width:100%;min-height:46px;font-size:13.5px;font-weight:600;
  color:var(--ink-2);background:transparent;
  border:1px solid transparent;border-radius:var(--r-md);
  transition:color var(--dur) var(--ease),background var(--dur) var(--ease),
             border-color var(--dur) var(--ease);
}
.pc-learn:hover{color:var(--accent);background:var(--accent-wash);border-color:var(--accent-line);}

.pc-buy{min-height:0;margin-top:var(--s6);padding-top:var(--s6);border-top:1px solid var(--line);}
.pcard.featured .pc-buy{border-color:var(--prem-line);}
/* Every card reserves the same badge lane, whether or not it carries a badge.
   That keeps "Recommended" clear of the heading and keeps all three cards
   starting their header on the same line. */
.pcard{padding:calc(var(--s6) + 28px) var(--s5) var(--s5);}
.pc-badge{top:var(--s5);right:var(--s5);}
.pcard.featured .pc-buy{border-color:var(--brand-line);}
.pc-cta{min-height:52px;}

.pc-more{margin-top:var(--s5);padding-top:var(--s4);}
.pc-more-body{padding-top:var(--s4);}
.pc-more-body .pc-mod:first-child{margin-top:0;}
.pc-list{margin-top:var(--s4);min-height:0;}
.pc-know{margin-top:var(--s5);}

/* ---- 04 quick comparison ---- */
.qcmp{
  margin-top:var(--s5);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
}
.qc-row{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));}
.qc-row > div{
  padding:var(--s4) var(--s2);min-height:56px;
  display:flex;align-items:center;justify-content:center;text-align:center;
}
.qc-row > div:first-child{
  justify-content:flex-start;text-align:left;padding-left:var(--s5);
  font-size:13.5px;color:var(--ink);
}
.qc-row + .qc-row{border-top:1px solid var(--line);}
.qc-head > div{padding-top:var(--s5);padding-bottom:var(--s4);align-items:flex-end;}
.qc-head > div:first-child{
  font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);
}
.qc-head b{font-size:13.5px;font-weight:600;letter-spacing:-.015em;line-height:1.25;}
.qc-hl{
  background:var(--prem-wash);
  box-shadow:inset 1px 0 0 var(--prem-line),inset -1px 0 0 var(--prem-line);
}
.qc-head .qc-hl{box-shadow:inset 1px 0 0 var(--prem-line),inset -1px 0 0 var(--prem-line),inset 0 1px 0 var(--prem-line);}
.qc-head .qc-hl b{color:var(--prem-ink);}
.qcmp > .qc-row:last-child .qc-hl{box-shadow:inset 1px 0 0 var(--prem-line),inset -1px 0 0 var(--prem-line),inset 0 -1px 0 var(--prem-line);}
.qc-price > div{background:var(--surface-sunken);}
.qc-price > div:first-child{font-weight:600;}
.qc-price b{font-size:16px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.qc-price .qc-hl{background:var(--prem-hover);}
.qc-price .qc-hl b{color:var(--prem-ink);}
.qc-row .cmp-yes{color:var(--brand-deep);}
.qc-hl .cmp-yes{color:var(--prem-deep);}

.cmp-toggle{
  display:flex;align-items:center;justify-content:center;gap:var(--s2);
  width:100%;margin-top:var(--s4);min-height:48px;
  font-size:13.5px;font-weight:600;color:var(--ink);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),
             background var(--dur) var(--ease);
}
.cmp-toggle:hover{border-color:var(--brand);color:var(--brand-text);background:var(--brand-wash);}
.cmp-toggle .icon{transition:transform var(--dur) var(--ease);}
.cmp-toggle[aria-expanded="true"] .icon{transform:rotate(180deg);}
.cmp-full{animation:disclose 260ms var(--ease) both;}
.cmp-full .cmp{margin-top:var(--s4);}

/* ---- 05 selected plan summary ---- */
.selsum{
  margin-top:clamp(44px,5vw,72px);
  background:var(--charcoal);border-radius:var(--r-lg);
  padding:var(--s6);color:#fff;
  animation:disclose 300ms var(--ease) both;
  scroll-margin-top:88px;
}
.selsum-in{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:var(--s6);align-items:center;
}
.selsum .eyebrow{color:var(--brand-on-dark-2);}
.ss-title{font-size:clamp(22px,2.6vw,28px);font-weight:600;letter-spacing:-.025em;margin-top:var(--s2);}
.ss-inc{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);margin-top:var(--s4);}
.ss-inc li{
  display:flex;align-items:center;gap:7px;
  font-size:13px;color:#d8dae0;line-height:1.4;
}
.ss-inc .icon{width:15px;height:15px;color:var(--brand-bright);flex-shrink:0;stroke-width:2;}
.ss-right{text-align:right;min-width:210px;}
.ss-price b{font-size:32px;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;}
.ss-price span{font-size:14px;color:#b6bac4;margin-left:4px;}
.ss-meta{font-size:11.5px;color:#9aa0ac;margin-top:4px;}
.ss-right .btn{width:100%;margin-top:var(--s4);min-height:54px;}
.ss-fine{font-size:11.5px;color:#9aa0ac;margin-top:var(--s3);}

/* ---- 06 trust ---- */
.trustrow{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);margin-top:var(--s5);}
.trustrow .underwriter,.waitcard{
  margin-top:0;background:var(--surface-sunken);border-radius:var(--r-md);
  padding:var(--s4) var(--s5);display:flex;align-items:center;gap:var(--s4);
}
.waitcard .badge{
  width:40px;height:40px;border-radius:var(--r-pill);background:var(--charcoal);
  color:var(--brand-bright);display:grid;place-items:center;flex-shrink:0;
}
.waitcard h4{font-size:15px;font-weight:700;color:var(--charcoal);}
.waitcard p{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);margin-top:3px;}
.dsc-elig{margin-top:var(--s5);}
.dsc-elig .elig{margin-top:var(--s3);}
.dsc-elig .elig-note{margin-top:var(--s5);}
.planzone .disclose{margin-top:var(--s3);}
.planzone .helpcards{margin-top:var(--s6);}

/* ---- 07 closing band : the decision, offered once more ---- */
.closer{
  margin-top:clamp(44px,5vw,72px);padding-top:clamp(40px,4.5vw,64px);
  border-top:1px solid var(--line);
}
.closer-in{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:var(--s6);align-items:center;
}
.closer-txt{min-width:0;}
.closer-brow{
  display:flex;align-items:center;gap:8px;
  font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brand-text);
}
.closer-dot{width:7px;height:7px;border-radius:50%;background:var(--brand);flex-shrink:0;}
.closer-h{
  font-size:clamp(26px,3.2vw,36px);font-weight:700;letter-spacing:-.03em;
  line-height:1.15;margin-top:var(--s3);
}
.closer-sub{font-size:var(--t-body);line-height:1.6;color:var(--ink-2);margin-top:var(--s4);max-width:56ch;}
/* proof pills, not a bulleted list — icon and label share one line */
.closer-proof{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin-top:var(--s5);}
.closer-proof li{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-2);line-height:1.4;}
.closer-proof .icon{width:15px;height:15px;color:var(--brand-deep);flex-shrink:0;stroke-width:1.9;}
.closer-act{min-width:230px;}
.closer-act .btn{width:100%;min-height:54px;}
.closer-fine{font-size:11.5px;color:var(--ink-3);margin-top:var(--s3);line-height:1.6;}

/* ---- sticky selection bar ---- */
.selbar{
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  padding:var(--s3) 0 calc(var(--s3) + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94);backdrop-filter:blur(14px);
  border-top:1px solid var(--line);
  box-shadow:0 -6px 24px rgba(30,39,73,.07);
  transform:translateY(112%);opacity:0;visibility:hidden;
  transition:transform 280ms var(--ease),opacity 220ms var(--ease),visibility 280ms;
}
.selbar.on{transform:none;opacity:1;visibility:visible;}
.selbar-in{
  max-width:1360px;margin:0 auto;padding:0 clamp(20px,3.2vw,56px);
  display:flex;align-items:center;justify-content:space-between;gap:var(--s5);
}
.selbar-txt{min-width:0;}
.sb-plan{
  font-size:15px;font-weight:600;letter-spacing:-.015em;line-height:1.25;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.sb-plan .sb-amt{color:var(--brand-text);}
.sb-sub{font-size:12px;color:var(--ink-2);margin-top:2px;}
.selbar .btn{min-height:50px;padding:0 var(--s7);flex-shrink:0;}
.selbar .btn[disabled]{opacity:1;}
body.barred{padding-bottom:88px;}
body.barred .totop{bottom:calc(var(--s4) + 104px);}

/* A locked card must still be readable. Blocking selection is correct;
   blocking comprehension is not — so only the decision zone dims and only
   the CTA stops responding. The disclosure stays open to anyone. */
.pcard.blocked{opacity:1;filter:none;pointer-events:auto;user-select:auto;}
.pcard.blocked .pc-head,
.pcard.blocked .pc-key,
.pcard.blocked .pc-buy{opacity:.45;transition:opacity var(--dur) var(--ease);}
.pcard.blocked .pc-cta{pointer-events:none;}
.pcard{scroll-margin-top:84px;}
.pc-more summary{scroll-margin-top:96px;}

/* Pagination dots stay 8px to the eye and 44px to the thumb. */
.rail-dots button{position:relative;}
.rail-dots button::after{
  content:"";position:absolute;left:50%;top:50%;
  width:44px;height:44px;transform:translate(-50%,-50%);
}

/* ---- responsive ---- */
@media (max-width:1023px){
  .sitgrid{grid-template-columns:1fr;}
  .sit{flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s4);}
  .sit-ico{flex-shrink:0;}
  .sit b{flex:1;min-width:0;}
  .sit-txt{flex-basis:100%;}
  .sit-go{margin-top:0;padding-top:0;}
  .trustrow{grid-template-columns:1fr;}
  .selsum-in{grid-template-columns:1fr;gap:var(--s5);}
  .ss-right{text-align:left;min-width:0;}
  .closer-in{grid-template-columns:1fr;gap:var(--s5);}
  .closer-act{min-width:0;}
}
@media (max-width:640px){
  .hero-grid{padding-top:var(--s6);}
  /* the alignment bands are a desktop-rail concern; on a swipe rail one card
     is on screen at a time, so they only add dead space */
  .pc-name{font-size:26px;min-height:0;}
  .pc-head{min-height:0;padding-right:var(--s6);}
  .pc-pitch{min-height:0;}
  .pc-metrics{min-height:0;}
  .pc-price{height:auto;min-height:0;}
  .pc-fig-val{font-size:34px;}
  /* the smallest labels in the system get a floor on small screens */
  .pc-kicker{font-size:11px;}
  .mini-h{font-size:10.5px;}
  .ps-day span{font-size:10px;}
  .pc-badge{font-size:10px;}
  /* the situations band earns its place but shouldn't delay the decision */
  .sitband{padding-bottom:var(--s6);}
  .sitgrid{gap:var(--s3);margin-top:var(--s4);}
  .sit{padding:var(--s4);gap:var(--s2) var(--s3);}
  .sit-ico{width:34px;height:34px;}
  .sit-txt{font-size:13px;line-height:1.5;}
  .sec-choose{padding-top:var(--s7);}
  .hero-h1{font-size:clamp(32px,8.6vw,42px);}
  .hero-lede{font-size:15.5px;}
  .hero-proof{gap:var(--s4) var(--s5);}
  .hero-proof li{min-width:96px;}
  .hero-proof b{font-size:17px;}
  .hero-cta .btn-glow{width:100%;justify-content:center;}
  .slab{aspect-ratio:1/.78;}
  .qc-row > div{padding:var(--s3) 4px;min-height:52px;}
  .qc-row > div:first-child{padding-left:var(--s4);font-size:12px;line-height:1.35;}
  .qc-head b{font-size:11px;}
  .qc-price b{font-size:13.5px;}
  .selsum{padding:var(--s5);border-radius:var(--r-md);}
  .ss-price b{font-size:28px;}
  .selbar-in{gap:var(--s3);}
  .selbar .btn{padding:0 var(--s5);min-height:48px;}
  .sb-plan{font-size:13.5px;}
  .sb-sub{font-size:11px;}
  body.barred{padding-bottom:80px;}
}
@media (max-width:380px){
  .qc-row{grid-template-columns:minmax(0,1.25fr) repeat(3,minmax(0,1fr));}
  .selbar .btn{padding:0 var(--s4);font-size:14px;}
}
