/* Canadian calculators. Shared across the catalog and each calculator as it ships.
   Inherits every token from /styles.css. Adds nothing to the palette.

   THESIS: a free tool has to feel like an instrument, not a lead form. Ivory ground
   for the work, one forest panel where the answer lives, amber only on the number
   that matters. The answer stays visible while you are still typing. On desktop it is pinned
   beside the inputs, on a phone it rides the bottom of the screen, because a
   calculator whose result sits below the fold makes a person scroll to find out
   whether they are okay, and that is the wrong feeling to hand someone
   about their own money. */

/* ---------- nav ---------- */
.tnav{border-bottom:1px solid rgba(230,223,211,.82);background:rgba(252,250,248,.9);position:sticky;top:0;z-index:40;
  backdrop-filter:saturate(1.25) blur(14px);-webkit-backdrop-filter:saturate(1.25) blur(14px)}
.tnav__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 0}
.tnav__links{display:flex;align-items:center;gap:1.4rem;font-size:.92rem;font-weight:500;color:var(--ink-2)}
.tnav__links a:hover{color:var(--ink)}.tnav__home{display:inline-flex;align-items:center;gap:.28rem;font-weight:600;color:var(--ink)}.tnav__home svg{flex:none;margin-left:-2px}
.tnav__menu{display:none;position:relative}
.tnav__menu summary{display:inline-flex;min-height:44px;align-items:center;gap:.5rem;padding:.55rem .8rem;list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:.84rem;font-weight:700;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 7px 18px rgba(17,44,40,.08)}
.tnav__menu summary::-webkit-details-marker{display:none}.tnav__menu summary svg{width:18px;height:18px}.tnav__menu[open] summary{border-color:var(--amber);background:var(--amber)}
.tnav__menu summary:focus-visible{outline:3px solid var(--amber);outline-offset:3px}
.tnav__menu nav{position:absolute;top:calc(100% + .65rem);right:0;width:min(310px,calc(100vw - 2rem));padding:.65rem;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 22px 50px rgba(17,44,40,.18)}
.tnav__menu nav a{display:flex;min-height:48px;align-items:center;padding:.65rem .85rem;border-radius:10px;color:var(--ink);font-size:.95rem;font-weight:650}.tnav__menu nav a:hover,.tnav__menu nav a:focus-visible{background:var(--ivory-2);outline:none}
@media (max-width:1160px){.tnav__links a[data-opt]{display:none}}
@media (max-width:800px){.tnav__links{display:none}.tnav__menu{display:block}}

/* ---------- breadcrumbs ---------- */
.crumbs{font-size:.8rem;color:var(--ink-3);padding:1.5rem 0 0;display:flex;gap:.5rem;flex-wrap:wrap}
.crumbs a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.crumbs span[aria-current]{color:var(--ink-2)}

/* ---------- hero ---------- */
.thero{padding:clamp(1.8rem,4vw,3.5rem) 0 clamp(2.4rem,5vw,4rem)}
.thero h1{font-size:clamp(2.1rem,4.2vw,3.4rem)}
.thero .lede{max-width:52ch}
.tflags{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.4rem 0 0}
.tflag{display:inline-flex;align-items:center;gap:.4rem;background:var(--ivory-2);border:1px solid var(--line-2);color:var(--ink-2);font-size:.78rem;font-weight:600;padding:.42rem .8rem;border-radius:99px}
.tflag--free{background:var(--amber-soft);border-color:transparent;color:var(--amber-ink)}

/* ---------- the answer block: what an answer engine lifts ---------- */
.answer{background:var(--white);border:1px solid var(--line-2);
  border-radius:var(--r-sm);padding:1.5rem 1.6rem;margin:2rem 0 0;box-shadow:var(--sh-1);max-width:72ch}
.answer h2{font-family:var(--sans);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--amber-ink);margin:0 0 .8rem;display:flex;align-items:center;gap:.7rem}
.answer h2::after{content:"";flex:1;height:1px;background:var(--line-2)}
.answer p{margin:0;font-size:1.05rem;line-height:1.65;color:var(--ink)}
.answer p + p{margin-top:.8rem}
.answer strong{font-weight:600}
.answer ol{margin:.1rem 0 0;padding-left:1.25rem;color:var(--ink);display:grid;gap:.62rem}
.answer li{padding-left:.2rem;font-size:.98rem;line-height:1.55}
.answer li::marker{color:var(--amber-ink);font-weight:700}

/* ---------- the tool shell ---------- */
.tool{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,420px);gap:clamp(1.2rem,2.6vw,2rem);
  align-items:start;padding:clamp(1rem,2vw,1.5rem);margin:clamp(1.4rem,3vw,2.2rem) 0 clamp(2.5rem,5vw,4rem);
  border-radius:var(--r-lg);background:linear-gradient(145deg,var(--ivory-2) 0%,var(--ivory) 48%,var(--white) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),inset 0 -1px 0 rgba(17,44,40,.06),0 26px 70px -54px rgba(17,44,40,.5)}
@media (max-width:940px){.tool{grid-template-columns:1fr}}

.tpanel{position:relative;z-index:1;overflow:visible;background:linear-gradient(155deg,var(--white) 0%,var(--white) 60%,var(--ivory) 145%);border:0;border-radius:var(--r);
  box-shadow:0 22px 54px -42px rgba(17,44,40,.52),0 7px 20px -16px rgba(17,44,40,.28),inset 0 1px 0 rgba(255,255,255,.98),inset 0 -1px 0 rgba(17,44,40,.055);
  padding:clamp(1.35rem,2.5vw,2.1rem)}
.tpanel::before{content:"";position:absolute;z-index:0;inset:0 8% auto;height:1px;background:linear-gradient(90deg,transparent,rgba(237,174,29,.34),transparent);pointer-events:none}
.tpanel + .tpanel{margin-top:1rem}

.tgroup + .tgroup{margin-top:1.9rem;padding-top:1.6rem;border-top:1px solid var(--line-2)}
.tgroup__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 1rem}
.tgroup__head h3{font-family:var(--sans);font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin:0}
.tgroup__sum{font-size:.9rem;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums lining-nums}

/* a labelled money field */
.trow{display:grid;grid-template-columns:minmax(0,1fr) minmax(156px,180px);gap:1rem;align-items:center;padding:.48rem 0}
.trow:has(.tin--choice){grid-template-columns:minmax(0,1fr) minmax(210px,42%)}
.trow label{font-size:.95rem;color:var(--ink-2);line-height:1.35}
.trow label small{display:block;font-size:.78rem;color:var(--ink-3);margin-top:.1rem}
.tin{position:relative;display:flex;align-items:center}
.tin::before{content:"$";position:absolute;left:.7rem;font-size:.9rem;color:var(--ink-3);pointer-events:none}
/* A choice field, not an amount: no currency mark, and a chevron so it reads as a control rather than a disabled text box. */
.tin--choice::before{content:none}
.tin--choice{position:relative;min-width:0;overflow:visible}
.tin--choice::after{content:"";position:absolute;right:.85rem;width:.5rem;height:.5rem;border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);transform:translateY(-25%) rotate(45deg);pointer-events:none}/* impeccable-disable-line side-tab: two borders draw the select chevron, not a card accent */
.tin--choice select{width:100%;min-height:46px;padding:.68rem 2.45rem .68rem .8rem;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,var(--white),var(--ivory));color:var(--ink);font:inherit;font-size:.94rem;font-weight:600;line-height:1.2;-webkit-appearance:none;appearance:none;cursor:pointer;box-shadow:inset 0 1px 1px rgba(255,255,255,.95),inset 0 -2px 4px rgba(17,44,40,.035)}
.tin--choice select:hover{border-color:var(--ink-3);background:var(--white)}
.tin--choice select:focus{background:var(--white);border-color:var(--amber);outline:none;box-shadow:0 0 0 3px rgba(237,174,29,.18)}
.tin input{width:100%;padding:.62rem .7rem .62rem 1.5rem;border:1px solid var(--line);border-radius:10px;
  min-height:46px;background:linear-gradient(180deg,var(--white),var(--ivory));font-size:1rem;font-weight:600;text-align:right;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.95),inset 0 -2px 4px rgba(17,44,40,.035);
  font-variant-numeric:tabular-nums lining-nums;transition:border-color .2s,background .2s}
.tin input:hover{border-color:var(--ink-3)}
.tin input:focus{background:var(--white);border-color:var(--amber);outline:none;box-shadow:0 0 0 3px rgba(237,174,29,.18)}
.tin input[aria-invalid=true]{border-color:var(--amber-ink);box-shadow:0 0 0 3px rgba(237,174,29,.13)}
.tin--plain::before{content:none}
.tin--plain input{padding-left:.7rem}
@media (max-width:600px){
  .tool{padding:.7rem;border-radius:var(--r)}
  .trow,.trow:has(.tin--choice){grid-template-columns:1fr;gap:.38rem;padding:.55rem 0}
  .trow label small{max-width:42ch}
  .tin--choice select{font-size:1rem}
}

.tgroup__intro{font-size:.83rem;line-height:1.55;color:var(--ink-3);margin:-.25rem 0 .8rem;max-width:62ch}

/* First Home Readiness is deliberately two tools in one instrument: cash first,
   mortgage qualification second. The divider is structural, not another card. */
.fh-tool-part + .fh-tool-part{margin-top:2.4rem;padding-top:2.2rem;border-top:2px solid var(--forest)}
.fh-tool-part__head{margin:0 0 1.5rem}
.fh-tool-part__head h2{font-family:var(--sans);font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.2;margin:0;color:var(--ink)}
.fh-tool-part__head p{max-width:62ch;margin:.45rem 0 0;font-size:.88rem;line-height:1.55;color:var(--ink-3)}
.fh-tool-part > .tgroup:first-of-type{margin-top:0;padding-top:0;border-top:0}
.fh-debt-prompt{display:grid;gap:.2rem;margin:.9rem 0 .15rem;padding:.9rem 1rem;border-radius:12px;background:var(--amber-soft);color:var(--ink)}
.fh-debt-prompt[hidden]{display:none}
.fh-debt-prompt strong{font-size:.86rem;font-weight:700}
.fh-debt-prompt span{font-size:.8rem;line-height:1.5;color:var(--ink-2)}
.fh-input-error{margin:1.2rem 0 0;padding:.85rem 1rem;border-radius:12px;background:var(--amber-soft);color:var(--ink-2);font-size:.82rem;line-height:1.5}

.estimate-guide{margin:.35rem 0 1rem;padding:.9rem 0 1rem;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.estimate-guide p{margin:0;font-size:.83rem;line-height:1.55;color:var(--ink-2)}
.estimate-guide p strong,.estimate-guide li strong{color:var(--ink);font-weight:600}
.estimate-guide ul{margin:.65rem 0;padding-left:1.05rem;display:grid;gap:.5rem}
.estimate-guide li{font-size:.8rem;line-height:1.5;color:var(--ink-2)}
.estimate-guide a{color:var(--amber-ink);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.estimate-guide a:hover{text-decoration-color:var(--amber)}
.estimate-guide a:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:2px}
.estimate-guide .estimate-guide__note{color:var(--ink-3)}

/* ---------- the result panel ---------- */
.tres{background:linear-gradient(155deg,var(--forest-soft) 0%,var(--forest) 48%,var(--forest) 100%);color:var(--on-forest);border-radius:var(--r);padding:clamp(1.5rem,3vw,2rem);
  position:sticky;top:5.2rem;overflow:hidden;box-shadow:0 28px 62px -34px rgba(17,44,40,.72),0 10px 24px -18px rgba(17,44,40,.65),inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.2)}
.tres::before{content:"";position:absolute;width:420px;height:420px;left:50%;top:-40%;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(237,174,29,.16),transparent 65%);pointer-events:none}
.tres::after{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(118deg,rgba(255,255,255,.11) 0%,rgba(255,255,255,.035) 21%,transparent 42%);pointer-events:none}
.tres > *{position:relative;z-index:1}
.tres > .btn,.fh-review .btn{min-height:50px;margin-top:1rem;white-space:normal;text-align:center;line-height:1.25}
.tres__label{font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--on-forest-3);margin:0}
.tbig{font-family:var(--serif);font-weight:800;font-size:clamp(2.6rem,6vw,3.6rem);line-height:1;margin:.5rem 0 0;
  font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.02em}
.tbig--good{color:var(--amber)}
.tbig--bad{color:#F0A79A}
.tres__sub{margin:.55rem 0 0;font-size:.92rem;color:var(--on-forest-2);line-height:1.5}

.tmeta{list-style:none;margin:1.5rem 0 0;padding:1.3rem 0 0;border-top:1px solid rgba(255,255,255,.14);display:grid;gap:.85rem}
.tmeta li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:.92rem}
.tmeta span{color:var(--on-forest-2)}
.tmeta b{font-weight:600;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}
.tmeta b[data-tone=good]{color:var(--amber)}
.tmeta b[data-tone=bad]{color:#F0A79A}

/* stacked share bar: needs, wants, saving */
.tsplit{margin:1.5rem 0 0;padding:1.3rem 0 0;border-top:1px solid rgba(255,255,255,.14)}
.tbar{display:flex;height:12px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.12)}
.tbar i{display:block;height:100%}   /* no width transition: it retweens on every keystroke */
.tbar i[data-k=needs]{background:var(--amber)}
.tbar i[data-k=wants]{background:#7FA8A0}
.tbar i[data-k=save]{background:#F6F1E9}
.tkeys{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;margin:.85rem 0 0;padding:0;font-size:.82rem;color:var(--on-forest-2)}
.tkeys li{display:flex;align-items:center;gap:.42rem}
.tkeys em{width:9px;height:9px;border-radius:3px;flex:none}

.tnote{margin:1.4rem 0 0;padding:.9rem 1rem;background:rgba(255,255,255,.07);border-radius:12px;
  font-size:.87rem;line-height:1.5;color:var(--on-forest-2)}
.result-next{margin:1rem 0 0;padding:1rem;border-radius:12px;background:rgba(255,255,255,.08)}
.result-next span{display:block;color:var(--on-forest-3);font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.result-next p{margin:.35rem 0 .7rem;color:var(--on-forest-2);font-size:.86rem;line-height:1.5}
.result-next a{display:inline-flex;align-items:center;min-height:44px;color:var(--amber);font-size:.88rem;font-weight:700;text-decoration:underline;text-decoration-color:rgba(237,174,29,.45);text-underline-offset:4px}
.result-next a:hover{text-decoration-color:var(--amber)}
.tnote strong{color:var(--amber);font-weight:600}
.tres .btn{margin-top:1.2rem}
.tfine{margin:1.1rem 0 0;font-size:.74rem;line-height:1.5;color:var(--on-forest-3)}

.fh-qualifier-result{margin:1.7rem 0 0;padding:1.5rem 0 0;border-top:2px solid rgba(237,174,29,.72)}
.fh-qualifier-result h2{font-family:var(--sans);font-size:1.15rem;line-height:1.25;margin:0;color:var(--on-forest)}
.fh-qualifier-result__price{font-family:var(--sans);font-size:clamp(1.9rem,4vw,2.35rem);font-weight:700;line-height:1;margin:.75rem 0 0;color:var(--amber);font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.02em}
.fh-qualifier-result .tmeta{margin-top:1.25rem}
.fh-qualifier-result__ratios{margin-bottom:.15rem}
.tres-stack{min-width:0}
.tres-details{margin:1.1rem 0 0;border-top:1px solid rgba(255,255,255,.14)}
.tres-details summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;color:var(--on-forest-2);font-size:.82rem;font-weight:600;cursor:pointer;list-style:none}
.tres-details summary::-webkit-details-marker{display:none}
.tres-details summary::after{content:"+";color:var(--amber);font-size:1.15rem;font-weight:400;line-height:1}
.tres-details[open] summary::after{content:"−"}
.tres-details summary:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:4px}
.tres-details .tmeta{margin:.15rem 0 .7rem;padding:.8rem 0 0}
.tres-details .tnote{margin:.35rem 0 .75rem}
.fh-review{margin-top:1rem;padding:1.35rem 1.5rem;border-radius:var(--r);background:var(--forest);color:var(--on-forest);box-shadow:var(--sh-2)}
.fh-review .tnote{margin:0}.fh-review .btn{margin-top:1rem}.fh-review .tagent{margin:.75rem 0 0}.fh-review .tfine{margin-top:1rem}

@media (min-width:941px){
  .tres{max-height:calc(100vh - 6.2rem);overflow-y:auto;overscroll-behavior:contain;scrollbar-color:rgba(237,174,29,.65) rgba(255,255,255,.08);scrollbar-width:thin}
  .tres::-webkit-scrollbar{width:8px}.tres::-webkit-scrollbar-track{background:rgba(255,255,255,.08)}.tres::-webkit-scrollbar-thumb{background:rgba(237,174,29,.65);border-radius:99px}
}

/* phone: the answer rides the bottom of the screen */
@media (max-width:940px){
  .tres{position:static}
  .tdock{position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--forest);color:var(--on-forest);
    display:flex;align-items:center;justify-content:space-between;gap:1rem;
    padding:.75rem clamp(20px,4vw,48px) calc(.75rem + env(safe-area-inset-bottom));box-shadow:0 -8px 30px -12px rgba(17,44,40,.6),inset 0 1px 0 rgba(255,255,255,.12);
    opacity:0;visibility:hidden;pointer-events:none;transform:translateY(100%);
    transition:opacity .25s var(--ease),transform .35s var(--ease),visibility 0s linear .35s}
  .tdock.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}
  .tdock span{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--on-forest-3);font-weight:700}
  .tdock b{font-family:var(--serif);font-weight:800;font-size:1.6rem;font-variant-numeric:tabular-nums lining-nums;font-weight:400}
  .tdock--dual{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:.65rem clamp(16px,4vw,32px)}
  .tdock--dual .tdock__metric{display:grid;gap:.18rem;min-width:0}
  .tdock--dual .tdock__metric + .tdock__metric{padding-left:1rem;border-left:1px solid rgba(255,255,255,.14);text-align:right}
  .tdock--dual .tdock__metric span{font-size:.66rem;white-space:nowrap}
  .tdock--dual .tdock__metric b{font-family:var(--sans);font-size:clamp(1.05rem,5vw,1.35rem);font-weight:600;white-space:nowrap}
  body{padding-bottom:calc(4.6rem + env(safe-area-inset-bottom))}
}
@media (min-width:941px){.tdock{display:none}}
@media (prefers-reduced-motion:reduce){.tdock{transition:none}}

.treset{margin:1.2rem 0 0;text-align:right}
.treset .link-quiet{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.5rem .7rem}

/* ---------- estate check up ---------- */
.estate-context{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,220px);gap:.8rem 1.1rem;align-items:end}
.estate-context .trow{display:block;padding:0}.estate-context .trow label{display:block;margin:0 0 .42rem}
.estate-context .tin{width:100%}.estate-context .tin input,.estate-context .tin select{min-height:44px}
.estate-list{list-style:none;margin:.2rem 0 0;padding:0;border-top:1px solid var(--line-2)}
.estate-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(205px,220px);gap:1rem;align-items:center;padding:.9rem 0;border-bottom:1px solid var(--line-2)}
.estate-item label{font-size:.92rem;line-height:1.35;color:var(--ink);font-weight:600}
.estate-item label small{display:block;font-size:.76rem;line-height:1.45;color:var(--ink-3);font-weight:400;margin-top:.16rem}
.estate-item .tin--choice select{font-size:.9rem;background:var(--ivory);min-height:44px}
.estate-key{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin:.8rem 0 0;font-size:.76rem;color:var(--ink-3)}
.estate-key span{display:inline-flex;align-items:center;gap:.35rem}.estate-key i{width:7px;height:7px;border-radius:50%;background:var(--forest)}
.estate-key span:nth-child(2) i{background:var(--amber)}.estate-key span:nth-child(3) i{background:#F0A79A}
.estate-actions__label{margin:1.35rem 0 0;padding:1.3rem 0 .7rem;border-top:1px solid rgba(255,255,255,.14);font-size:.73rem;letter-spacing:.09em;text-transform:uppercase;color:var(--on-forest-3);font-weight:700}
.estate-actions{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.estate-big--copy{font-family:var(--sans);font-size:clamp(1.8rem,4vw,2.35rem);line-height:1.08;letter-spacing:-.02em}
.estate-action{display:grid;grid-template-columns:26px 1fr;gap:.7rem;align-items:start}
.estate-action > i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--amber);color:var(--amber-ink);font-style:normal;font-size:.75rem;font-weight:800}
.estate-action > span{display:grid;gap:.15rem}.estate-action b{font-size:.9rem;font-weight:600;color:var(--on-forest)}
.estate-action span span{font-size:.79rem;line-height:1.45;color:var(--on-forest-2)}
.estate-action--clear{display:block;padding:.85rem 1rem;background:rgba(255,255,255,.07);border-radius:12px}
.estate-action--clear b,.estate-action--clear span{display:block}.estate-action--clear span{margin-top:.25rem}
.estate-jurisdiction{margin:1.35rem 0 0;padding:1rem;background:rgba(255,255,255,.07);border-radius:12px}
.estate-jurisdiction h3{font-family:var(--sans);font-size:1.02rem;margin:.3rem 0 0;color:var(--on-forest)}
.estate-jurisdiction dl{margin:.8rem 0 0;display:grid;grid-template-columns:1fr;gap:.2rem;align-items:baseline}
.estate-jurisdiction dt{font-size:.77rem;color:var(--on-forest-3)}.estate-jurisdiction dd{font-size:.9rem;font-weight:600;margin:0 0 .55rem;text-align:left}
.estate-jurisdiction p{font-size:.75rem;line-height:1.45;color:var(--on-forest-2);margin:.7rem 0 0}
.estate-jurisdiction a{display:inline-block;margin-top:.65rem;color:var(--amber);font-size:.75rem;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.estate-print{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;background:none;border:0;color:var(--on-forest-2);font:inherit;font-size:.78rem;font-weight:600;padding:.6rem 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.estate-print:hover{color:var(--amber)}.estate-print:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:2px}
.estate-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1.4rem;margin:1rem 0 0;padding:0;list-style:none}
.estate-sources li{margin:0;font-size:.86rem}.estate-sources a{display:inline-flex;align-items:baseline;gap:.35rem}
@media (max-width:600px){.estate-context{grid-template-columns:1fr}.estate-item{grid-template-columns:1fr;gap:.5rem}.estate-sources{grid-template-columns:1fr}}

/* ---------- Canada Benefit Estimator ---------- */
.benefit-hero .answer strong{color:var(--ink)}
.benefit-tool{grid-template-columns:minmax(0,1fr) minmax(360px,430px)}
.benefit-tool .trow{grid-template-columns:minmax(0,1fr) minmax(190px,230px)}
.benefit-period{display:flex;align-items:center;justify-content:center;gap:.8rem;padding:.85rem 1rem;margin:-.2rem 0 1.7rem;
  background:var(--ivory-2);border-radius:12px;color:var(--ink-3);font-size:.78rem;line-height:1.35;text-align:center}
.benefit-period span{display:inline-flex;align-items:center;gap:.35rem}.benefit-period strong{color:var(--ink);font-weight:700}
.benefit-period span[aria-hidden]{color:var(--amber-ink);font-size:1rem}

.benefit-statement{padding-bottom:1.6rem}
.benefit-results{margin:1.5rem 0 0;padding:1.25rem 0 0;border-top:1px solid rgba(255,255,255,.14);display:grid}
.benefit-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:start;padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.12)}
.benefit-result[hidden]{display:none}
.benefit-result h3{font-family:var(--sans);font-size:.88rem;font-weight:600;line-height:1.35;color:var(--on-forest);margin:0}
.benefit-result p{font-size:.74rem;line-height:1.45;color:var(--on-forest-3);margin:.22rem 0 0}
.benefit-result a{display:inline-block;margin-top:.35rem;color:var(--amber);font-size:.7rem;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.benefit-result > strong{font-size:.93rem;font-weight:600;line-height:1.35;color:var(--on-forest);white-space:nowrap;font-variant-numeric:tabular-nums lining-nums}

.benefit-checks{margin:1.15rem 0 0;padding-top:.2rem;border-top:1px solid rgba(255,255,255,.14)}
.benefit-checks summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px;color:var(--on-forest-2);font-size:.78rem;font-weight:600;cursor:pointer;list-style:none}
.benefit-checks summary::-webkit-details-marker{display:none}.benefit-checks summary::after{content:"+";color:var(--amber);font-size:1.1rem}
.benefit-checks[open] summary::after{content:"−"}.benefit-checks summary:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:4px}
.benefit-checks ul{list-style:none;margin:.3rem 0 0;padding:0;display:grid;gap:.85rem}
.benefit-checks li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:start;padding:.75rem 0;border-top:1px solid rgba(255,255,255,.1)}
.benefit-checks strong,.benefit-checks small{display:block}.benefit-checks strong{font-size:.8rem;color:var(--on-forest);font-weight:600}
.benefit-checks small{font-size:.7rem;line-height:1.45;color:var(--on-forest-3);margin-top:.18rem}
.benefit-checks a{color:var(--amber);font-size:.7rem;font-weight:600;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.benefit-statement .tfine a{color:var(--on-forest-2);text-decoration:underline;text-underline-offset:3px}

.benefit-example{margin:1.4rem 0 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.benefit-example > div{display:flex;align-items:baseline;justify-content:space-between;gap:1.2rem;padding:.72rem 0;color:var(--ink-2);font-size:.9rem}
.benefit-example > div + div{border-top:1px solid var(--line-2)}
.benefit-example b{color:var(--ink);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums lining-nums}
.benefit-example .total{padding:1rem 0;color:var(--ink);font-weight:700}.benefit-example .total b{color:var(--amber-ink);font-size:1.05rem}

.benefit-method{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,3rem);margin:1.6rem 0 0}
.benefit-method > div + div{padding-left:clamp(1.5rem,4vw,3rem);border-left:1px solid var(--line-2)}
.benefit-method h3{margin:0;color:var(--ink)}.benefit-method ul{margin:.65rem 0 0}
.benefit-sources{list-style:none;margin:1.3rem 0 0!important;padding:0!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1.8rem}
.benefit-sources li{margin:0!important;padding:.8rem 0;border-top:1px solid var(--line-2)}
.benefit-sources a{display:inline;font-size:.9rem;font-weight:600;color:var(--ink)}
.benefit-sources small{display:block;margin:.25rem 0 0;font-size:.76rem;line-height:1.5;color:var(--ink-3)}

.tfaq{margin:1.2rem 0 0;border-top:1px solid var(--line-2)}
.tfaq details{border-bottom:1px solid var(--line-2)}.tfaq summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:56px;padding:.6rem 0;font-size:.95rem;font-weight:600;color:var(--ink);cursor:pointer;list-style:none}
.tfaq summary::-webkit-details-marker{display:none}.tfaq summary::after{content:"+";font-size:1.2rem;font-weight:400;color:var(--amber-ink)}.tfaq details[open] summary::after{content:"−"}
.tfaq summary:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:4px}.tfaq p{margin:-.2rem 0 1.1rem;font-size:.9rem;line-height:1.65}
.band__action{margin-top:1.2rem!important}

@media (max-width:940px){.benefit-tool{grid-template-columns:1fr}}
@media (max-width:620px){
  .benefit-tool .trow{grid-template-columns:1fr;gap:.42rem;padding:.62rem 0}
  .benefit-period{align-items:stretch;gap:.45rem}.benefit-period span:not([aria-hidden]){display:grid;gap:.1rem}.benefit-period span[aria-hidden]{align-self:center}
  .benefit-method,.benefit-sources{grid-template-columns:1fr}.benefit-method > div + div{padding:1.4rem 0 0;border-left:0;border-top:1px solid var(--line-2)}
}
@media (max-width:430px){.benefit-result,.benefit-checks li{grid-template-columns:1fr}.benefit-result > strong{grid-row:1}.benefit-checks a{white-space:normal}}

/* ---------- prose sections ---------- */
.tsec{padding:clamp(2.4rem,5vw,4rem) 0;border-top:1px solid var(--line-2)}
.tsec--tint{background:var(--ivory-2)}
.tsec h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.1;margin:0 0 .5rem}
.tsec h3{font-size:1.08rem;font-weight:600;margin:1.8rem 0 .5rem}
.tsec p{color:var(--ink-2);line-height:1.7;max-width:70ch;margin:.8rem 0 0}
.tsec ul{color:var(--ink-2);line-height:1.7;max-width:70ch;padding-left:1.1rem}
.tsec li{margin:.5rem 0}
.tsec a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.tsec a:hover{text-decoration-color:var(--amber)}

/* worked example: static numbers, the block a crawler reads */
.wscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.4rem 0 0;
  border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--white)}
.wtable{width:100%;border-collapse:collapse;font-size:.94rem;min-width:420px}
.wtable caption{text-align:left;padding:1rem 1.2rem .2rem;font-size:.8rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3)}
.wtable th,.wtable td{padding:.72rem 1.2rem;text-align:left;border-bottom:1px solid var(--line-2)}
.wtable th{font-weight:600;color:var(--ink)}
.wtable td:last-child,.wtable th:last-child{text-align:right;font-variant-numeric:tabular-nums lining-nums;font-weight:600}
.wtable tbody tr:last-child td{border-bottom:0}
.wtable tfoot td{border-top:2px solid var(--forest);border-bottom:0;font-weight:700;color:var(--ink);background:var(--ivory-2)}

.srcnote{font-size:.8rem;color:var(--ink-3);margin:1rem 0 0;line-height:1.55}
.srcnote a{color:var(--ink-2)}

/* ---------- hub ---------- */
.tgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin:1.5rem 0 0}
.tcard{background:var(--white);border:0;border-radius:var(--r);padding:1.55rem 1.6rem;
  box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:.55rem;scroll-margin-top:7rem;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}
.tcard:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.tcard h3,.tcard h4{font-family:var(--sans);font-size:1.12rem;font-weight:700;margin:0;line-height:1.25}
.tcard p{font-size:.91rem;color:var(--ink-2);margin:0;line-height:1.58;flex:1}
.tcard .tcard__question{flex:0;margin-top:.35rem;color:var(--ink);font-size:1rem;font-weight:700;line-height:1.35}
.tcard__go{font-size:.86rem;font-weight:700;color:var(--amber-ink);display:flex;align-items:center;gap:.35rem;margin-top:.45rem}
.tgrid--atlas{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;align-items:stretch}
.tgrid--atlas .tcard:has(>h4[data-feature]){grid-column:span 2;background:var(--forest);color:var(--on-forest);box-shadow:var(--sh-3)}
.tgrid--atlas .tcard:has(>h4[data-feature]) h4{color:var(--on-forest);font-size:clamp(1.25rem,2vw,1.55rem)}
.tgrid--atlas .tcard:has(>h4[data-feature]) p{color:var(--on-forest-2);max-width:58ch}
.tgrid--atlas .tcard:has(>h4[data-feature]) .tcard__question,.tgrid--atlas .tcard:has(>h4[data-feature]) .tcard__go{color:var(--amber)}
.tool-atlas{margin:clamp(2rem,4vw,3.5rem) 0 0}
.tool-atlas__head{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:.4rem}
.tool-atlas__head > div{max-width:70ch}
.tool-atlas__head > span{flex:none;display:inline-flex;align-items:center;min-height:38px;padding:.45rem .85rem;border-radius:99px;background:var(--amber-soft);color:var(--amber-ink);font-size:.78rem;font-weight:700;letter-spacing:.06em}
.tool-atlas__head > span::after{content:" live tools"}
.tool-collection{padding:clamp(2rem,4vw,3rem) 0;scroll-margin-top:5.5rem;border-top:1px solid var(--line)}
.tool-collection:first-of-type{margin-top:1.6rem}
.tool-collection__head{display:flex;align-items:end;justify-content:space-between;gap:1rem}
.tool-collection__head > div{max-width:68ch}
.tool-collection__head h3{font-family:var(--serif);font-size:clamp(1.35rem,2.4vw,1.8rem);line-height:1.15;margin:0}
.tool-collection__head p{margin:.4rem 0 0;color:var(--ink-2);font-size:.92rem;line-height:1.55}
.tool-collection__head > span{flex:none;color:var(--ink-3);font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.tool-collection .tgrid{margin-top:1.2rem}
.tool-collection--arrival .tcard{grid-column:1/-1}
.tool-routes{display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;border-radius:var(--r);background:rgba(255,255,255,.14);box-shadow:var(--sh-3)}
.tool-routes a{position:relative;display:grid;align-content:center;min-height:98px;padding:1rem 1.15rem;background:var(--forest);color:var(--on-forest);transition:background .2s,color .2s}
.tool-routes a::after{content:"\2192";position:absolute;right:1rem;top:1rem;color:var(--amber);font-weight:700;transition:transform .25s var(--ease)}
.tool-routes a:hover{background:var(--forest-soft)}
.tool-routes a:hover::after{transform:translateX(3px)}
.tool-routes span{display:block;padding-right:1.5rem;font-size:.94rem;font-weight:700}
.tool-routes b{display:block;margin-top:.22rem;color:var(--on-forest-2);font-size:.72rem;font-weight:500;line-height:1.35}
@media (max-width:900px){.tgrid--atlas{grid-template-columns:repeat(2,minmax(0,1fr))}.tgrid--atlas .tcard:has(>h4[data-feature]){grid-column:1/-1}}
@media (max-width:620px){.tool-routes{grid-template-columns:1fr}.tool-routes a{min-height:82px}.tgrid--atlas{grid-template-columns:1fr}.tgrid--atlas .tcard:has(>h4[data-feature]){grid-column:auto}.tool-atlas__head{align-items:start}.tool-atlas__head > span{display:none}.tool-collection__head{align-items:start}.tool-collection__head > span{display:none}.tool-collection--arrival .tcard{grid-column:auto}}
.tstage{margin:clamp(2rem,4vw,3rem) 0 0}
.tstage h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.5rem,2.6vw,2rem);margin:0}
.tstage p{color:var(--ink-2);margin:.35rem 0 0;font-size:.95rem}

/* The catalog is a build sequence, so the order stays visible instead of being
   flattened into four interchangeable cards. */
.troadmap{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;gap:1rem}
.troadmap__item{display:grid;grid-template-columns:118px minmax(0,1fr);gap:1rem;scroll-margin-top:6.5rem}
.troadmap__step{display:flex;flex-direction:column;align-items:center;gap:.55rem;padding:1.25rem .65rem;color:var(--ink-3)}
.troadmap__step span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--forest);color:var(--on-forest);font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums lining-nums}
.troadmap__item:first-child .troadmap__step span{background:var(--amber);color:var(--amber-ink)}
.troadmap__step strong{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;text-align:center}
.troadmap__body{background:var(--white);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:clamp(1.3rem,2.8vw,1.8rem);box-shadow:var(--sh-1)}
.troadmap__item:first-child .troadmap__body{border-color:rgba(237,174,29,.72);box-shadow:var(--sh-2)}
.troadmap__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1.15rem;border-bottom:1px solid var(--line-2)}
.troadmap__head h3{font-size:clamp(1.2rem,2.2vw,1.48rem);line-height:1.2;margin:0;color:var(--ink)}
.troadmap__question{font-size:1rem!important;line-height:1.5!important;color:var(--ink)!important;margin:.42rem 0 0!important;font-weight:500}
.troadmap__status{flex:none;display:inline-flex;align-items:center;min-height:32px;padding:.38rem .72rem;border-radius:99px;background:var(--ivory-2);color:var(--ink-3);font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.troadmap__item:first-child .troadmap__status{background:var(--amber-soft);color:var(--amber-ink)}
.troadmap__item--live .troadmap__step span{background:var(--amber);color:var(--amber-ink)}
.troadmap__item--live .troadmap__body{border-color:rgba(237,174,29,.72);box-shadow:var(--sh-2)}
.troadmap__item--live .troadmap__status{background:var(--forest);color:var(--on-forest)}
.troadmap__item--live h3 a{text-decoration:underline;text-decoration-color:var(--amber);text-underline-offset:4px}
.troadmap__action{margin:1rem 0 0!important}.troadmap__action .btn{text-decoration:none}
.troadmap__columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:clamp(1.2rem,3vw,2.2rem);padding-top:1.2rem}
.troadmap__columns h4{font-size:.75rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin:0 0 .55rem}
.troadmap__columns p{font-size:.91rem;line-height:1.65;margin:0;color:var(--ink-2)}
.trefs{list-style:none;margin:0;padding:0;display:grid;gap:.52rem}
.trefs li{font-size:.84rem;line-height:1.45}
.trefs a{color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.trefs a:hover{text-decoration-color:var(--amber);color:var(--ink)}
.trefs a:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:2px}
@media (max-width:760px){
  .troadmap__item{grid-template-columns:1fr;gap:.55rem}
  .troadmap__step{flex-direction:row;justify-content:flex-start;padding:.45rem .2rem}
  .troadmap__step span{width:36px;height:36px}
  .troadmap__head{display:grid}
  .troadmap__status{width:max-content}
  .troadmap__columns{grid-template-columns:1fr}
}

/* ---------- footer ---------- */
.tfoot{background:var(--forest);color:var(--on-forest-2);padding:2.6rem 0;text-align:center;font-size:.86rem;line-height:1.6}
.tfoot p{margin:0 auto}
.tfoot p + p{margin-top:.6rem;font-size:.75rem;color:var(--on-forest-3)}
.tfoot strong{color:var(--on-forest);font-weight:600}

@media print{.tnav,.tdock,.treset,.btn,.estate-print{display:none!important}.tres{background:none;color:#000;box-shadow:none}.estate-action b,.estate-jurisdiction h3{color:#000}.estate-action span span,.estate-jurisdiction p,.estate-jurisdiction dt{color:#333}.estate-jurisdiction{border:1px solid #bbb}.estate-actions{border-color:#bbb}}

/* ---------- compliance footer ---------- */
.tfoot__links{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.4rem;margin:0 0 1.5rem;
  padding:0 0 1.4rem;border-bottom:1px solid rgba(255,255,255,.14);font-size:.85rem;font-weight:500}
.tfoot__links a{color:var(--on-forest-2)}
.tfoot__links a:hover{color:var(--amber);text-decoration:underline;text-underline-offset:3px}
.tfoot p{margin:0 auto .7rem;font-size:.82rem;line-height:1.6}
.tfoot p:last-child{margin-bottom:0;font-size:.75rem;color:var(--on-forest-3)}
.tfoot strong{color:var(--on-forest);font-weight:600}

/* ---------- legal pages ---------- */
.legal{padding:2rem 0 clamp(3rem,6vw,5rem);max-width:74ch}
.legal h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.45rem,2.6vw,2rem);line-height:1.15;
  margin:2.6rem 0 .4rem;padding-top:1.6rem;border-top:1px solid var(--line-2)}
.legal h2:first-of-type{border-top:0;padding-top:0;margin-top:1.8rem}
.legal h3{font-size:1.02rem;font-weight:600;margin:1.6rem 0 .3rem}
.legal p,.legal li{color:var(--ink-2);line-height:1.7}
.legal p{margin:.7rem 0 0}
.legal ul{padding-left:1.1rem;margin:.7rem 0 0}
.legal li{margin:.45rem 0}
.legal strong{color:var(--ink);font-weight:600}
.legal a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.legal a:hover{text-decoration-color:var(--amber)}
.legal__meta{font-size:.85rem;color:var(--ink-3);margin:.5rem 0 0}
.legal__box{background:var(--ivory-2);border:1px solid var(--line-2);
  border-radius:var(--r-sm);padding:1.4rem 1.6rem;margin:1.8rem 0 0}
.legal__box p:first-child strong:first-child{color:var(--amber-ink)}
.legal__box p:first-child{margin-top:0}

/* ---------- debt rows: label, balance, rate, minimum ---------- */
.dhead,.drow{display:grid;grid-template-columns:minmax(0,1fr) 104px 96px 94px;gap:.5rem;align-items:center}
.dhead{padding:0 0 .55rem;font-size:.69rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.dhead span:not(:first-child){text-align:right}
.drow{padding:.28rem 0}
.drow > label{font-size:.94rem;color:var(--ink-2);line-height:1.3}
.tin--pct::before{content:"%";left:auto;right:.5rem;font-size:.82rem}
.tin--pct input{padding:.62rem 1.15rem .62rem .45rem}
@media (max-width:700px){
  .dhead{display:none}
  .drow{grid-template-columns:repeat(3,1fr);gap:.45rem;padding:.7rem 0;border-bottom:1px solid var(--line-2)}
  .drow > label{grid-column:1/-1;font-weight:600;color:var(--ink);margin-bottom:.1rem}
  .drow:last-child{border-bottom:0}
  .tin input{font-size:.95rem}
}

/* comparison table rows that the JS rewrites live */
.wtable tbody tr[data-hi] td{background:var(--amber-soft)}
.wtable tbody tr[data-hi] th{background:var(--amber-soft)}

/* ---------- hero: two columns so the page is not half empty ---------- */
.thero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(1.5rem,3vw,3rem);align-items:start;margin:1.6rem 0 0}
.thero__grid .answer{margin:0}
.thero__grid .lede{margin:0}
.thero__grid .tflags{margin:1.1rem 0 0}
@media (max-width:900px){.thero__grid{grid-template-columns:1fr;gap:1.4rem}}

/* Below every tool, explanatory copy uses the full shared page container. Newer
   pages use .tsec__in; older pages place the same elements directly in .wrap. */
.tsec__in{width:100%;max-width:none}
.tsec__in > p,.tsec__in > ul,
.tsec > .wrap > p,.tsec > .wrap > ul{max-width:none}
.tread{max-width:none}
.tsec--wide .tsec__in{max-width:none}

/* ---------- the guide: a quiet offer, not an interruption ---------- */
/* Left, not right: on a tool page the whole right column is the answer panel, and a
   helper that covers the number the person came for is worse than no helper. */
.guide{position:fixed;left:clamp(12px,3vw,28px);bottom:clamp(12px,3vw,28px);z-index:60;
  width:min(400px,calc(100vw - 24px));background:var(--white);border:1px solid var(--line-2);
  border-radius:var(--r);box-shadow:0 24px 60px -20px rgba(17,44,40,.42),0 0 0 1px rgba(17,44,40,.04);
  overflow:hidden;transform:translateY(16px);opacity:0;pointer-events:none;
  transition:transform .5s var(--ease),opacity .4s var(--ease)}
.guide[data-open]{transform:none;opacity:1;pointer-events:auto}
@media (max-width:940px){.guide{bottom:5.4rem}}
@media (prefers-reduced-motion:reduce){.guide{transition:none}}

.guide__head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;
  padding:1.15rem 1.25rem .3rem}
.guide__head h2{font-family:var(--sans);font-weight:700;font-size:1.06rem;line-height:1.3;margin:0;color:var(--ink)}
.guide__x{width:44px;height:44px;margin:-7px -7px 0 0;border-radius:50%;display:grid;place-items:center;color:var(--ink-3);
  flex:none;transition:background .2s,color .2s}
.guide__x:hover{background:var(--ivory-2);color:var(--ink)}
.guide__body{padding:.35rem 1.25rem 1.25rem}
.guide__body p{margin:.35rem 0 0;font-size:.94rem;line-height:1.55;color:var(--ink-2)}
.guide__actions{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0 0}
.guide__actions .btn{flex:1 1 auto}
.guide__step{display:none}
.guide__step[data-on]{display:block}

.guide__q{font-size:.94rem;font-weight:600;color:var(--ink);margin:0 0 .7rem}
.guide__opts{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}
.guide__opt{width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;
  min-height:44px;padding:.7rem .9rem;font-size:.92rem;line-height:1.35;color:var(--ink-2);background:var(--ivory);
  transition:border-color .2s,background .2s,color .2s}
.guide__opt:hover{border-color:var(--amber);background:var(--white);color:var(--ink)}
.guide__prog{display:flex;gap:.3rem;margin:0 0 .9rem}
.guide__prog i{height:3px;flex:1;border-radius:2px;background:var(--line-2)}
.guide__prog i[data-done]{background:var(--amber)}

.guide__rec{display:block;border:1px solid var(--line-2);border-radius:12px;padding:.8rem .95rem;
  background:var(--ivory);transition:border-color .2s,transform .2s}
.guide__rec + .guide__rec{margin-top:.5rem}
.guide__rec:hover{border-color:var(--amber);transform:translateX(2px)}
.guide__rec b{display:block;font-size:.95rem;color:var(--ink);font-weight:600}
.guide__rec span{display:block;font-size:.85rem;color:var(--ink-3);margin-top:.15rem;line-height:1.45}
.guide__soon{opacity:.6;pointer-events:none}
.guide__back{margin:.9rem 0 0;font-size:.85rem}
.guide__back + .guide__back{margin-top:.45rem}
/* Back is a real button, not a link: it changes what is on screen, it does not navigate. */
.guide__prev{display:inline-flex;align-items:center;gap:.28rem;min-height:44px;padding:.55rem .25rem;margin-left:-.25rem;border:0;background:none;
  font:inherit;font-size:.85rem;color:var(--ink-3);cursor:pointer;transition:color .25s}
.guide__prev:hover{color:var(--ink)}
.guide__prev svg{flex:none}

/* the start-here strip */
.tstart{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;justify-content:space-between;
  background:var(--white);color:var(--ink);border-radius:var(--r);box-shadow:var(--sh-1);
  padding:clamp(1.1rem,2.5vw,1.6rem) clamp(1.3rem,3vw,2rem);margin:1.2rem 0 0}
.tstart p{margin:0;font-size:1rem;line-height:1.5;color:var(--ink-2);max-width:56ch}
.tstart strong{color:var(--ink);font-weight:700}
.tcard__use{font-size:.82rem;color:var(--ink-3);line-height:1.45;margin:0}
.tcard__use b{color:var(--ink-2);font-weight:600}

.tread{display:flex;flex-direction:column;gap:.55rem;margin:1.2rem 0 0;max-width:60ch}
.tread a{display:block;padding:.8rem 1rem;background:var(--white);border:1px solid var(--line-2);
  border-radius:12px;font-size:.95rem;font-weight:600;color:var(--ink);text-decoration:none;
  transition:border-color .2s,transform .2s}
.tread a:hover{border-color:var(--amber);transform:translateX(3px)}
.tread a::after{content:' \2192';color:var(--amber-ink)}

/* ---------- FIRE target: the bridge and the age-65 base are one number ---------- */
.fire-stack{margin:1.5rem 0 0;padding:1.3rem 0 0;border-top:1px solid rgba(255,255,255,.14)}
.fire-stack__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 .75rem}
.fire-stack__head p{margin:0;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--on-forest-3)}
.fire-stack__head span{font-size:.78rem;color:var(--on-forest-3);white-space:nowrap}
.fire-stack__bar{display:flex;height:14px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.12)}
.fire-stack__bar i{display:block;height:100%}
.fire-stack__bar i[data-fire=bridge]{background:var(--amber)}
.fire-stack__bar i[data-fire=base]{background:#7FA8A0}
.fire-stack__key{list-style:none;margin:.9rem 0 0;padding:0;display:grid;gap:.68rem}
.fire-stack__key li{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:.55rem;align-items:baseline;font-size:.83rem;color:var(--on-forest-2)}
.fire-stack__key em{width:9px;height:9px;border-radius:3px;margin-top:.18rem}
.fire-stack__key b{font-weight:600;color:var(--on-forest);font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}
.fire-stack__key small{display:block;font-size:.72rem;line-height:1.4;color:var(--on-forest-3);margin-top:.08rem}
.fire-stack__key li:first-child em{background:var(--amber)}
.fire-stack__key li:last-child em{background:#7FA8A0}

.fire-formula{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:.7rem;align-items:stretch;margin:1.5rem 0 0;max-width:70ch}
.fire-formula__part{background:var(--white);border:1px solid var(--line-2);border-radius:12px;padding:1rem}
.fire-formula__part b{display:block;font-size:1.08rem;font-variant-numeric:tabular-nums lining-nums;color:var(--ink)}
.fire-formula__part span{display:block;font-size:.78rem;line-height:1.4;color:var(--ink-3);margin-top:.25rem}
.fire-formula__op{align-self:center;font-family:var(--serif);font-size:1.6rem;color:var(--amber-ink)}
@media (max-width:680px){
  .fire-formula{grid-template-columns:1fr}
  .fire-formula__op{text-align:center;line-height:.7}
  .fire-stack__head{align-items:flex-start;flex-direction:column;gap:.25rem}
}

/* ---------- Retirement projector: deposits become a visible growth story ---------- */
.ret-assumption{margin:1.25rem 0 0;padding:1rem 1.05rem;background:var(--ivory-2);border-radius:12px;color:var(--ink-3)}
.ret-assumption p{margin:0;font-size:.84rem;line-height:1.55}
.ret-assumption strong{color:var(--ink)}
.tfield-error{margin:.3rem 0 .1rem;font-size:.78rem;line-height:1.45;color:var(--amber-ink);text-align:right}
.tagent{margin:.75rem 0 0;font-size:.76rem;line-height:1.5;color:var(--on-forest-3)}
.tagent strong{color:var(--on-forest-2)}

.ret-growth{margin:1.5rem 0 0;padding:1.3rem 0 0;border-top:1px solid rgba(255,255,255,.14)}
.ret-growth__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 .75rem}
.ret-growth__head p{margin:0;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--on-forest-3)}
.ret-growth__head span{font-size:.78rem;color:var(--on-forest-3);white-space:nowrap}
.ret-growth__bar{display:flex;height:14px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.12)}
.ret-growth__bar i{display:block;height:100%}
.ret-growth__bar i[data-ret=deposit]{background:var(--amber)}
.ret-growth__bar i[data-ret=growth]{background:#7FA8A0}
.ret-growth__key{list-style:none;margin:.9rem 0 0;padding:0;display:grid;gap:.6rem}
.ret-growth__key li{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:.55rem;align-items:baseline;font-size:.83rem;color:var(--on-forest-2)}
.ret-growth__key em{width:9px;height:9px;border-radius:3px;margin-top:.18rem;background:var(--amber)}
.ret-growth__key li:last-child em{background:#7FA8A0}
.ret-growth__key b{font-weight:600;color:var(--on-forest);font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}

.ret-time{margin:1.35rem 0 0;padding:1.25rem 0 0;border-top:1px solid rgba(255,255,255,.14)}
.ret-time>p{margin:0 0 .85rem;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--on-forest-3)}
.ret-time__list{list-style:none;margin:0;padding:0;display:grid;gap:.58rem}
.ret-time__list li{display:grid;grid-template-columns:82px minmax(70px,1fr) 54px;gap:.65rem;align-items:center;font-size:.74rem;color:var(--on-forest-3)}
.ret-time__list i{display:block;height:6px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}
.ret-time__list em{display:block;height:100%;border-radius:99px;background:rgba(237,174,29,.78)}
.ret-time__list b{text-align:right;font-size:.75rem;font-weight:600;color:var(--on-forest);font-variant-numeric:tabular-nums lining-nums}

.ret-formula{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:.65rem;align-items:stretch;margin:1.5rem 0 0;max-width:76ch}
.ret-formula__part{background:var(--white);border:1px solid var(--line-2);border-radius:12px;padding:1rem}
.ret-formula__part b{display:block;font-size:1rem;font-variant-numeric:tabular-nums lining-nums;color:var(--ink)}
.ret-formula__part span{display:block;font-size:.76rem;line-height:1.4;color:var(--ink-3);margin-top:.25rem}
.ret-formula__op{align-self:center;font-family:var(--serif);font-size:1.45rem;color:var(--amber-ink)}

@media (max-width:760px){
  .ret-formula{grid-template-columns:1fr}
  .ret-formula__op{text-align:center;line-height:.65}
  .ret-growth__head{align-items:flex-start;flex-direction:column;gap:.25rem}
}

/* ---------- First 90 Days in Canada: a dated arrival runway ---------- */
.n90-tool{grid-template-columns:minmax(0,1fr) minmax(330px,390px)}
.n90-tool .tgroup__head h2{font-family:var(--sans);font-size:.78rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink-3);margin:0}
.n90-profile{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.1rem}
.n90-field{display:grid;gap:.42rem;align-content:start}
.n90-field--wide{grid-column:1/-1}
.n90-field>label{font-size:.88rem;line-height:1.35;color:var(--ink);font-weight:600}
.n90-field>label small{display:block;margin-top:.12rem;font-size:.75rem;line-height:1.45;color:var(--ink-3);font-weight:400}
.n90-field input[type=date]{width:100%;min-height:44px;padding:.62rem .7rem;border:1px solid var(--line);border-radius:10px;
  background:var(--ivory);color:var(--ink);font:inherit;font-size:.9rem;font-weight:600;color-scheme:light;
  font-variant-numeric:tabular-nums lining-nums;transition:border-color .2s,background .2s,box-shadow .2s}
.n90-field input[type=date]:hover{border-color:var(--ink-3)}
.n90-field input[type=date]:focus{background:var(--white);border-color:var(--amber);outline:0;box-shadow:0 0 0 3px rgba(237,174,29,.18)}
.n90-field .tin--choice,.n90-field .tin--choice select{min-height:44px}

.n90-needs{border:0;margin:1.25rem 0 0;padding:0}
.n90-needs legend{font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);margin:0 0 .55rem}
.n90-needs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.n90-needs legend{grid-column:1/-1}
.n90-needs label{position:relative;display:flex;align-items:center;min-height:44px;padding:.62rem .75rem;border:1px solid var(--line-2);
  border-radius:12px;background:var(--ivory);color:var(--ink-2);font-size:.85rem;font-weight:600;cursor:pointer;
  transition:border-color .2s,background .2s,color .2s}
.n90-needs label:hover{border-color:var(--amber);color:var(--ink)}
.n90-needs label:has(input:checked){background:var(--amber-soft);border-color:rgba(237,174,29,.55);color:var(--ink)}
.n90-needs input{width:18px;height:18px;margin:0 .55rem 0 0;accent-color:var(--forest)}
.n90-needs input:focus-visible{outline:2px solid var(--amber);outline-offset:3px}

.n90-runway{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin:.2rem 0 0}
.n90-runway::before{content:"";position:absolute;left:8%;right:8%;top:17px;height:3px;background:var(--line-2);border-radius:2px}
.n90-runway button{position:relative;z-index:1;display:grid;justify-items:start;gap:.18rem;min-width:0;min-height:96px;padding:2.05rem .72rem .68rem;
  border:1px solid transparent;border-radius:12px;background:transparent;color:var(--ink-3);text-align:left;cursor:pointer;
  transition:background .25s,border-color .25s,color .25s}
.n90-runway button::before{content:"";position:absolute;top:10px;left:.72rem;width:17px;height:17px;border:4px solid var(--white);
  border-radius:50%;background:var(--line);box-shadow:0 0 0 1px var(--line)}
.n90-runway button:hover{background:var(--ivory);color:var(--ink)}
.n90-runway button[aria-selected=true]{background:var(--forest);border-color:var(--forest);color:var(--on-forest)}
.n90-runway button[aria-selected=true]::before{background:var(--amber);box-shadow:0 0 0 1px var(--amber)}
.n90-runway button[data-today]::after{content:"Today";position:absolute;top:6px;right:.55rem;font-size:.59rem;line-height:1;
  font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--amber-ink)}
.n90-runway button[aria-selected=true][data-today]::after{color:var(--amber)}
.n90-runway span{font-size:.74rem;font-weight:700;line-height:1.25}
.n90-runway b{font-size:.72rem;font-weight:600;color:inherit}
.n90-runway small{font-size:.65rem;line-height:1.3;color:inherit;opacity:.82}
.n90-runway button:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.n90-filterline{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin:.85rem 0 0}
.n90-filterline p{max-width:64ch;margin:0;font-size:.82rem;line-height:1.55;color:var(--ink-3)}
.n90-filterline .link-quiet{flex:none;min-height:44px;margin-top:-.45rem}

.n90-tasks{border-top:1px solid var(--line-2)}
.n90-task{border-bottom:1px solid var(--line-2);transition:background .2s}
.n90-task:hover{background:rgba(246,241,233,.45)}
.n90-task--done{background:rgba(224,235,233,.4)}
.n90-task__top{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:.25rem}
.n90-check{display:grid;place-items:center;min-height:64px;padding-top:.15rem;cursor:pointer}
.n90-check input{position:absolute;inline-size:1px;block-size:1px;opacity:0}
.n90-check span{display:grid;place-items:center;width:23px;height:23px;border:1.5px solid var(--line);border-radius:7px;background:var(--white);
  color:var(--white);transition:border-color .2s,background .2s,transform .2s}
.n90-check svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.n90-check input:checked+span{background:var(--forest);border-color:var(--forest)}
.n90-check input:focus-visible+span{outline:2px solid var(--amber);outline-offset:3px}
.n90-check:hover span{border-color:var(--forest);transform:scale(1.05)}
.n90-task__main{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:.7rem;align-items:center;
  padding:.78rem .4rem .78rem .2rem;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer}
.n90-task__copy{display:grid;gap:.18rem;min-width:0}
.n90-task__copy small{font-size:.66rem;font-style:normal;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--amber-ink)}
.n90-task__copy b{font-size:.94rem;line-height:1.35;font-weight:600}
.n90-task__copy em{font-size:.77rem;line-height:1.45;font-style:normal;font-weight:400;color:var(--ink-3)}
.n90-task--done .n90-task__copy b{text-decoration:line-through;text-decoration-thickness:1px;color:var(--ink-3)}
.n90-task__main>svg{width:18px;height:18px;fill:none;stroke:var(--ink-3);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  transition:transform .25s var(--ease)}
.n90-task__main[aria-expanded=true]>svg{transform:rotate(180deg)}
.n90-task__main:focus-visible{outline:2px solid var(--amber);outline-offset:-2px;border-radius:8px}
.n90-task__detail{padding:.05rem .45rem 1.2rem 2.45rem}
.n90-task__detail ol{margin:.15rem 0 0;padding-left:1.15rem;display:grid;gap:.48rem;color:var(--ink-2)}
.n90-task__detail li{font-size:.82rem;line-height:1.55;padding-left:.2rem}
.n90-task__detail li::marker{color:var(--amber-ink);font-weight:700}
.n90-task__detail>p{margin:.85rem 0 0;padding:.72rem .82rem;border-radius:10px;background:var(--ivory-2);font-size:.78rem;line-height:1.5;color:var(--ink-3)}
.n90-task__detail>p strong{color:var(--ink-2);font-weight:600}
.n90-task__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin:.75rem 0 0}
.n90-task__links a{display:grid;gap:.12rem;min-height:54px;padding:.62rem .72rem;border:1px solid var(--line-2);border-radius:10px;background:var(--white);
  transition:border-color .2s,transform .2s}
.n90-task__links a:hover{border-color:var(--amber);transform:translateY(-1px)}
.n90-task__links span{font-size:.76rem;line-height:1.35;font-weight:600;color:var(--ink)}
.n90-task__links small{font-size:.66rem;line-height:1.35;color:var(--ink-3)}
.n90-noscript{padding:1rem;background:var(--amber-soft);border-radius:12px;font-size:.86rem;line-height:1.55;color:var(--ink-2)}

.n90-result .n90-big{font-family:var(--sans);font-size:clamp(2.25rem,5vw,3.2rem);font-weight:800}
.n90-progress{height:7px;margin:1rem 0 0;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden}
.n90-progress i{display:block;width:100%;height:100%;border-radius:inherit;background:var(--amber);transform:scaleX(0);transform-origin:left center;transition:transform .45s var(--ease)}
.n90-result__actions{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.25rem 0 0;padding:1.15rem 0 0;border-top:1px solid rgba(255,255,255,.14)}
.n90-result__actions .btn{margin:0;min-height:44px;flex:1 1 auto}
.n90-copy{min-height:44px;padding:.55rem .75rem;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:transparent;
  color:var(--on-forest-2);font:inherit;font-size:.78rem;font-weight:600;cursor:pointer;transition:border-color .2s,color .2s}
.n90-copy:hover{border-color:var(--amber);color:var(--amber)}
.n90-copy:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.n90-copy-status{min-height:1.2em;margin:.45rem 0 0;font-size:.7rem;line-height:1.4;color:var(--on-forest-3)}

.n90-library-head{display:flex;align-items:end;justify-content:space-between;gap:2rem}
.n90-library-head>div{max-width:72ch}
.n90-library-head h2{margin:0}
.n90-library-head p{max-width:none}
.n90-source-stamp{flex:none;text-align:right;font-size:.78rem!important;line-height:1.45!important;color:var(--ink-3)!important}
.n90-source-stamp b{display:block;font-size:1.7rem;line-height:1;color:var(--amber-ink);font-variant-numeric:tabular-nums lining-nums}
.n90-source-stamp span{font-size:.7rem}
.n90-local{display:grid;grid-template-columns:minmax(210px,.8fr) repeat(2,minmax(0,1fr));gap:.7rem;margin:1.5rem 0 0;padding:1rem;
  border-radius:16px;background:var(--forest);color:var(--on-forest)}
.n90-local>div{padding:.45rem .5rem}
.n90-local>div>span{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--amber)}
.n90-local h3{margin:.3rem 0 0;font-size:1.08rem;color:var(--on-forest)}
.n90-local p{margin:.28rem 0 0;font-size:.75rem;line-height:1.45;color:var(--on-forest-3)}
.n90-local>a{display:grid;align-content:center;gap:.2rem;min-height:94px;padding:.8rem .9rem;border:1px solid rgba(255,255,255,.14);border-radius:12px;
  background:rgba(255,255,255,.06);transition:border-color .2s,background .2s}
.n90-local>a:hover{border-color:var(--amber);background:rgba(255,255,255,.09)}
.n90-local a small{font-size:.64rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--on-forest-3)}
.n90-local a b{font-size:.86rem;line-height:1.35;color:var(--on-forest)}
.n90-local a span{font-size:.67rem;color:var(--amber)}
.n90-resource-tools{display:grid;grid-template-columns:minmax(220px,330px) minmax(0,1fr);gap:.85rem 1.2rem;align-items:end;margin:1.4rem 0 0}
.n90-resource-tools>label{grid-column:1;display:block;font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.n90-resource-tools>input{grid-column:1;min-height:46px;margin-top:-.55rem;padding:.65rem .8rem;border:1px solid var(--line);border-radius:10px;
  background:var(--white);color:var(--ink);font:inherit;font-size:.9rem}
.n90-resource-tools>input::placeholder{color:var(--ink-3)}
.n90-resource-tools>input:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:var(--amber)}
.n90-resource-filters{grid-column:2;grid-row:1/3;display:flex;flex-wrap:wrap;gap:.42rem;align-content:end}
.n90-resource-filters button{min-height:44px;padding:.55rem .75rem;border:1px solid var(--line-2);border-radius:999px;background:var(--white);color:var(--ink-2);
  font:inherit;font-size:.76rem;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.n90-resource-filters button:hover{border-color:var(--amber);color:var(--ink)}
.n90-resource-filters button[aria-pressed=true]{background:var(--forest);border-color:var(--forest);color:var(--on-forest)}
.n90-resource-filters button:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.n90-resource-list{list-style:none;margin:1.35rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.4rem;border-top:1px solid var(--line-2)}
.n90-resource-list li{border-bottom:1px solid var(--line-2)}
.n90-resource-list a{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) 20px;gap:.8rem;align-items:center;min-height:92px;padding:.9rem .2rem;
  transition:background .2s,transform .2s}
.n90-resource-list a:hover{background:rgba(255,255,255,.7);transform:translateX(3px)}
.n90-resource-list span{display:grid;gap:.2rem}
.n90-resource-list b{font-size:.86rem;line-height:1.35;color:var(--ink)}
.n90-resource-list small{font-size:.68rem;line-height:1.35;color:var(--amber-ink)}
.n90-resource-list em{font-size:.75rem;line-height:1.45;font-style:normal;color:var(--ink-3)}
.n90-resource-list svg{width:17px;height:17px;fill:none;stroke:var(--ink-3);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.n90-empty{max-width:none!important;padding:1rem;background:var(--white);border-radius:12px;font-size:.86rem!important}

@media (max-width:940px){
  .n90-tool{grid-template-columns:1fr}
  .n90-result{position:static}
}
@media (max-width:760px){
  .n90-runway{grid-template-columns:repeat(2,minmax(0,1fr))}
  .n90-runway::before{display:none}
  .n90-runway button{min-height:86px;padding:1.9rem .7rem .6rem;background:var(--ivory);border-color:var(--line-2)}
  .n90-local{grid-template-columns:1fr}
  .n90-local>a{min-height:80px}
  .n90-library-head{align-items:start}
  .n90-resource-tools{grid-template-columns:1fr}
  .n90-resource-tools>label,.n90-resource-tools>input,.n90-resource-filters{grid-column:1;grid-row:auto}
  .n90-resource-filters{margin-top:.15rem}
  .n90-resource-list{grid-template-columns:1fr}
}
@media (max-width:560px){
  .n90-profile,.n90-needs{grid-template-columns:1fr}
  .n90-field--wide,.n90-needs legend{grid-column:1}
  .n90-runway button[data-today]::after{font-size:.55rem}
  .n90-filterline{display:block}
  .n90-filterline .link-quiet{margin:.45rem 0 0}
  .n90-task__links{grid-template-columns:1fr}
  .n90-library-head{display:block}
  .n90-source-stamp{text-align:left;margin-top:1rem!important}
  .n90-resource-list a{grid-template-columns:minmax(0,1fr) 18px;min-height:0}
  .n90-resource-list em{grid-column:1}
  .n90-resource-list svg{grid-column:2;grid-row:1/3}
}
@media (prefers-reduced-motion:reduce){
  .n90-progress i,.n90-task,.n90-task__main>svg,.n90-check span,.n90-task__links a,.n90-resource-list a{transition:none}
}
@media print{
  .n90-needs,.n90-runway,.n90-filterline,.n90-result__actions,.n90-copy-status,.n90-resources-section,.band{display:none!important}
  .n90-tool{display:block;padding-top:1rem}
  .n90-tool .tpanel{border:0;box-shadow:none;padding:0}
  .n90-tool .tres{margin-top:1rem;border:1px solid #999;padding:1rem}
  .n90-task{break-inside:avoid}
  .n90-task__copy em{display:none}
  .n90-task__main>svg{display:none}
}

/* ---------- RRSP or TFSA: two-path tax timing ledger ---------- */
.account-tool{grid-template-columns:minmax(0,1fr) minmax(390px,450px)}
.account-hero .answer{max-width:76ch}
.account-period{display:flex;align-items:center;justify-content:center;gap:.8rem;margin:-.2rem 0 1.65rem;padding:.85rem 1rem;
  border-radius:12px;background:var(--ivory-2);color:var(--ink-3);font-size:.78rem;line-height:1.35;text-align:center}
.account-period strong{color:var(--ink);font-weight:700}.account-period span[aria-hidden]{color:var(--amber-ink);font-size:1rem}
.account-room{margin:.55rem 0 0;padding:.75rem 0 0;border-top:1px solid var(--line-2)}
.account-assumption{margin:1.7rem 0 0;padding:1rem 0 0;border-top:1px solid var(--line-2)}
.account-assumption p{margin:0;font-size:.82rem;line-height:1.55;color:var(--ink-3)}
.account-assumption strong{color:var(--ink);font-weight:650}

.account-statement{padding-bottom:1.6rem}
.account-meta{margin-top:1.25rem}
.account-compare{display:grid;gap:.7rem;margin:1.4rem 0 0;padding:1.15rem 0;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}
.account-compare>div{display:grid;grid-template-columns:40px minmax(0,1fr) 82px;gap:.65rem;align-items:center}
.account-compare span{font-size:.68rem;font-weight:700;letter-spacing:.07em;color:var(--on-forest-3)}
.account-compare i{display:block;height:7px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden}
.account-compare em{display:block;height:100%;border-radius:inherit}
.account-compare em[data-account=rrsp]{background:var(--amber)}
.account-compare em[data-account=tfsa]{background:#7FA8A0}
.account-compare b{text-align:right;font-size:.78rem;font-weight:600;color:var(--on-forest);font-variant-numeric:tabular-nums lining-nums}

.account-paths{margin:1.15rem 0 0}
.account-path{padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.14)}
.account-path:first-child{padding-top:.15rem}
.account-path h3{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 .65rem;
  font-family:var(--sans);font-size:.78rem;font-weight:650;color:var(--on-forest-2)}
.account-path h3 span{display:inline-flex;align-items:center;gap:.45rem}
.account-path h3 span::before{content:"";width:8px;height:8px;border-radius:999px;background:rgba(255,255,255,.28)}
.account-path#rrspPath h3 span::before{background:var(--amber)}
.account-path#tfsaPath h3 span::before{background:#7FA8A0}
.account-path h3 b{font-size:.93rem;color:var(--on-forest);font-variant-numeric:tabular-nums lining-nums}
.account-path[data-lead] h3 b{color:var(--amber)}
.account-path ol{list-style:none;margin:0;padding:0;display:grid;gap:.38rem}
.account-path li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:.8rem;line-height:1.45;color:var(--on-forest-3)}
.account-path li[hidden]{display:none}.account-path li b{flex:none;font-weight:550;color:var(--on-forest-2);font-variant-numeric:tabular-nums lining-nums}
.account-decision{margin-top:1.15rem}.account-decision strong{color:var(--on-forest)}
.account-statement .tfine a{color:var(--on-forest-2);text-decoration:underline;text-underline-offset:3px}

.account-equation{display:grid;grid-template-columns:repeat(5,auto);align-items:center;justify-content:start;gap:1rem;margin:1.4rem 0 1.7rem;padding:1.2rem 0;
  border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.account-equation>div{display:grid;gap:.2rem}.account-equation span{font-size:.72rem;line-height:1.35;color:var(--ink-3)}
.account-equation>span{font-size:1.15rem;color:var(--amber-ink)}
.account-equation b{font-size:1rem;color:var(--ink);font-variant-numeric:tabular-nums lining-nums}
.account-equation>div:last-child b{color:var(--amber-ink)}
.account-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.4rem,4vw,2.7rem);margin:1.5rem 0 0}
.account-rules>div+div{padding-left:clamp(1.4rem,4vw,2.7rem);border-left:1px solid var(--line-2)}
.account-rules h3{margin:0;color:var(--ink)}.account-rules p{margin:.55rem 0 0!important;font-size:.9rem!important;line-height:1.6!important}
.account-sources{grid-template-columns:repeat(2,minmax(0,1fr))}
.account-input-error{margin:-.55rem 0 1.25rem}
.band .account-band-title{font-family:var(--serif);font-weight:600;font-size:clamp(1.5rem,2.6vw,2.15rem);line-height:1.1;margin:0 0 .6rem;color:var(--on-forest)}

@media (max-width:940px){.account-tool{grid-template-columns:1fr}.account-statement{position:static}}
@media (max-width:680px){
  .account-equation{grid-template-columns:1fr;gap:.6rem}.account-equation>span{transform:rotate(90deg);justify-self:start;margin-left:1rem}
  .account-rules{grid-template-columns:1fr}.account-rules>div+div{padding:1.25rem 0 0;border-left:0;border-top:1px solid var(--line-2)}
  .account-sources{grid-template-columns:1fr}
}
@media (max-width:460px){
  .account-tool .trow{grid-template-columns:1fr}.account-tool .tin{width:100%}.account-period{align-items:flex-start;flex-direction:column;gap:.25rem}
  .account-period span[aria-hidden]{display:none}.account-compare>div{grid-template-columns:36px minmax(0,1fr) 76px}
}
@media (max-width:700px){
  .tin input,.tin--choice select,.pselect,.taxselect,.n90-field input[type=date],.n90-resource-tools>input{min-height:48px!important;font-size:16px!important}
  .estate-item .tin--choice select{font-size:16px!important}
}
@media (prefers-reduced-motion:reduce){.account-compare em{transition:none}}
