/* ============================================================================
   The Retirement Checkup — /retirement-checkup/ · v1 2026-09-23
   Brand Kit v1.1 tokens (from tfsc-site.css :root). Brass discipline: Brass
   marks only the argument, which here is an OPEN decision (its chip + 3px
   card bar) plus the kicker labels. Settled = Market Green #178A5B, Treatment
   D (3px signal bar + bold caption only; text stays Ink). Partly = Steel.
   No red / amber traffic lights.
   ========================================================================== */
.rc{ --ok:#178A5B; --ok-pale:#E8F4EE; --brass-wash:#F7F1E7; max-width:780px; margin:0 auto; color:var(--ink); }
.rc [hidden]{ display:none !important; }
.rc-print-head, .rc-print-only{ display:none; }

.rc-kicker, .rc-progress-meta, .rc-covers-k, .rc-card-area, .rc-ask-k, .rc-glance-area{
  font-family:var(--f-mono); font-size:11px; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
}
.rc-kicker{ color:var(--brass); margin:0 0 14px; }
.rc h1, .rc h2, .rc h3{ font-family:var(--f-display); font-weight:500; letter-spacing:.005em; color:var(--ink); }
.rc h1{ font-size:clamp(32px,4.6vw,46px); line-height:1.12; margin:0 0 18px; }
.rc-lede{ font-size:19px; line-height:1.6; margin:0 0 20px; }
.rc-note{ font-size:14px; line-height:1.55; color:var(--steel); margin:16px 0 0; }
.rc-note a{ color:var(--ink); }
.rc-vh{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.rc-meta{ list-style:none; padding:0; margin:0 0 26px; display:flex; flex-wrap:wrap; gap:8px 22px;
  font-size:15px; color:var(--steel); }
.rc-meta li{ position:relative; padding-left:16px; }
.rc-meta li::before{ content:""; position:absolute; left:0; top:.62em; width:6px; height:6px; border-radius:50%; background:var(--ink); opacity:.35; }

/* ---- buttons ---- */
.rc-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px;
  padding:12px 26px; border:1px solid var(--ink); border-radius:2px; background:var(--ink); color:var(--bone);
  font-family:var(--f-body); font-size:16px; font-weight:600; letter-spacing:.01em; text-decoration:none; cursor:pointer;
  transition:background .2s, color .2s; }
.rc-btn:hover{ background:#1d2a42; }
.rc-btn:disabled{ opacity:.4; cursor:not-allowed; }
.rc-btn-lg{ font-size:17px; padding:14px 34px; min-height:54px; }
.rc-btn-ghost{ background:transparent; color:var(--ink); }
.rc-btn-ghost:hover{ background:var(--paper); }
.rc-btn-light{ background:var(--bone); color:var(--ink); border-color:var(--bone); }
.rc-btn-light:hover{ background:#fff; }
.rc-link{ background:none; border:0; padding:4px 0; color:var(--ink); font:inherit; font-size:15px;
  text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.rc :focus-visible{ outline:2px solid var(--brass); outline-offset:3px; }

.rc-returning{ background:var(--paper); padding:14px 18px; margin:0 0 22px; font-size:16px; }

/* ---- what the readout covers ---- */
.rc-covers{ margin:44px 0 0; padding:26px 0 0; border-top:1px solid var(--line); }
.rc-covers-k{ color:var(--steel); margin:0 0 14px; }
.rc-covers dl{ margin:0; display:grid; grid-template-columns:repeat(2,1fr); gap:18px 32px; }
.rc-covers dt{ font-family:var(--f-display); font-size:19px; margin:0 0 4px; }
.rc-covers dd{ margin:0; font-size:15px; line-height:1.5; color:#3b4454; }

/* ---- quiz ---- */
.rc-progress-meta{ display:flex; justify-content:space-between; gap:12px; color:var(--steel); margin:0 0 10px; }
.rc-progress{ height:3px; background:var(--paper); margin:0 0 34px; }
.rc-fill{ height:100%; width:0; background:var(--ink); transition:width .3s ease; }
.rc-q{ font-size:clamp(25px,3.4vw,32px); line-height:1.25; margin:0 0 10px; outline:none; }
.rc-why{ font-size:15px; color:var(--steel); margin:0 0 24px; }
.rc-options{ display:grid; gap:10px; margin:0 0 20px; }
.rc-opt{ display:block; width:100%; text-align:left; min-height:56px; padding:15px 20px 15px 50px; position:relative;
  background:var(--white); border:1px solid rgba(14,22,38,.18); border-radius:2px; color:var(--ink);
  font-family:var(--f-body); font-size:17px; line-height:1.4; cursor:pointer; transition:border-color .15s, background .15s; }
.rc-opt::before{ content:""; position:absolute; left:18px; top:50%; width:16px; height:16px; margin-top:-8px;
  border:1.5px solid rgba(14,22,38,.4); border-radius:50%; }
.rc-opt:hover{ border-color:var(--ink); background:var(--bone); }
.rc-opt[aria-pressed="true"]{ border-color:var(--ink); background:var(--bone); }
.rc-opt[aria-pressed="true"]::before{ border-color:var(--ink); background:var(--ink); box-shadow:inset 0 0 0 3px var(--bone); }
.rc-year-row{ display:flex; gap:10px; flex-wrap:wrap; }
.rc-select{ min-height:52px; min-width:200px; padding:10px 14px; font:inherit; font-size:17px; color:var(--ink);
  background:var(--white); border:1px solid rgba(14,22,38,.3); border-radius:2px; }
.rc-skip{ justify-self:start; margin-top:4px; background:none; border:0; padding:4px 0; font:inherit; font-size:15px; color:var(--steel);
  text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.rc-back{ background:none; border:0; padding:6px 0; font:inherit; font-size:15px; color:var(--steel); cursor:pointer; }
.rc-back:hover{ color:var(--ink); }

/* ---- readout ---- */
.rc-headline{ font-size:clamp(27px,3.8vw,36px); line-height:1.2; margin:0 0 14px; }
.rc-sub{ font-size:17px; color:#3b4454; margin:0 0 28px; }

.rc-chip{ display:inline-block; font-family:var(--f-mono); font-size:10.5px; font-weight:500; letter-spacing:.14em;
  text-transform:uppercase; padding:4px 9px; border:1px solid currentColor; border-radius:2px; white-space:nowrap; }
.rc-chip.is-settled{ color:var(--ok); }
.rc-chip.is-partly{ color:var(--steel); }
.rc-chip.is-open{ color:var(--ink); border-color:var(--brass); background:var(--brass-wash); }

.rc-glance{ list-style:none; margin:0 0 22px; padding:0; border-top:1px solid var(--line); }
.rc-glance-row{ display:grid; grid-template-columns:150px 1fr auto; align-items:center; gap:14px;
  padding:13px 0; border-bottom:1px solid var(--line); }
.rc-glance-area{ color:var(--steel); font-size:10.5px; }
.rc-glance-name{ font-size:17px; text-decoration:none; }
.rc-glance-name:hover{ text-decoration:underline; }

.rc-keep{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin:0 0 44px; }

.rc-dates{ background:var(--bone); padding:28px 28px 22px; margin:0 0 48px; }
.rc-dates h3, .rc-section-h{ font-size:26px; margin:0 0 4px; }
.rc-dates-sub{ font-size:15px; color:var(--steel); margin:0 0 16px; }
.rc-table-wrap{ overflow-x:auto; }
.rc-table{ width:100%; border-collapse:collapse; font-size:15.5px; line-height:1.5; }
.rc-table th{ text-align:left; font-family:var(--f-mono); font-size:10.5px; font-weight:500; letter-spacing:.16em;
  text-transform:uppercase; color:var(--steel); padding:0 12px 8px 0; border-bottom:1px solid var(--line); }
.rc-table td{ padding:12px 12px 12px 0; border-bottom:1px solid var(--line); vertical-align:top; }
.rc-table .rc-y{ font-family:var(--f-display); font-size:19px; white-space:nowrap; font-variant-numeric:lining-nums tabular-nums; }
.rc-table .rc-age{ white-space:nowrap; color:#3b4454; }
.rc-table .rc-when{ white-space:nowrap; font-size:13px; color:var(--steel); text-align:right; padding-right:0; }
.rc-table tr.is-past td{ color:var(--steel); }
.rc-window{ margin:18px 0 0; padding:14px 16px; background:var(--white); border-left:3px solid var(--ink); font-size:15.5px; }

.rc-section-h{ margin:0 0 18px; }
.rc-cards{ display:grid; gap:18px; margin:0 0 48px; }
.rc-card{ background:var(--white); border:1px solid rgba(14,22,38,.14); border-top:3px solid var(--steel); padding:24px 26px 20px; }
.rc-card.is-open{ border-top-color:var(--brass); }
.rc-card.is-settled{ border-top-color:var(--ok); }
.rc-card-head{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin:0 0 8px; }
.rc-card-area{ color:var(--steel); font-size:10.5px; }
.rc-card h3{ font-size:24px; line-height:1.25; margin:0 0 6px; }
.rc-card h4{ font-family:var(--f-body); font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  margin:20px 0 6px; color:var(--ink); }
.rc-card p{ font-size:16.5px; line-height:1.62; margin:0 0 10px; }
.rc-card a{ color:var(--ink); text-underline-offset:3px; }
.rc-told{ color:#3b4454; }
.rc-told em{ font-style:normal; font-weight:600; }
.rc-steps{ margin:0 0 6px; padding-left:22px; font-size:16.5px; line-height:1.6; }
.rc-steps li{ margin:0 0 6px; padding-left:4px; }
.rc-ask{ margin:18px 0 8px; padding:14px 18px; background:var(--bone); border-left:2px solid var(--ink); }
.rc-ask-k{ display:block; color:var(--steel); font-size:10.5px; margin:0 0 6px; }
.rc-ask p{ font-family:var(--f-display); font-style:italic; font-size:19px; line-height:1.45; margin:0; }
.rc-more{ margin:4px 0 8px; }
.rc-more summary{ cursor:pointer; font-size:15px; color:var(--steel); padding:4px 0; }
.rc-more[open] summary{ margin-bottom:8px; }
.rc-guides{ font-size:14.5px !important; color:var(--steel); margin:14px 0 0 !important; padding-top:12px; border-top:1px solid var(--line); }

.rc-close{ background:var(--ink); color:var(--bone); padding:36px 34px 30px; margin:0 0 22px; }
.rc-close h3{ color:var(--bone); font-size:30px; line-height:1.2; margin:0 0 12px; }
.rc-close p{ font-size:17px; line-height:1.62; margin:0 0 20px; color:rgba(250,248,244,.9); }
.rc-close-alt{ margin:16px 0 6px !important; font-size:16px !important; }
.rc-close-alt a{ color:var(--bone); }
.rc-close-note{ font-size:14px !important; color:rgba(250,248,244,.7) !important; margin:0 !important; }
.rc-disclosure{ font-size:13px; }

@media (max-width:640px){
  .rc-lede{ font-size:17.5px; }
  .rc-covers dl{ grid-template-columns:1fr; }
  .rc-glance-row{ grid-template-columns:1fr auto; gap:4px 12px; }
  .rc-glance-area{ grid-column:1 / -1; }
  .rc-dates{ padding:22px 16px 16px; margin-left:-4px; margin-right:-4px; }
  .rc-table thead{ display:none; }
  .rc-table tr{ display:grid; grid-template-columns:auto 1fr; gap:2px 12px; padding:12px 0; border-bottom:1px solid var(--line); }
  .rc-table td{ border:0; padding:0; }
  .rc-table .rc-when{ text-align:left; }
  .rc-table td:nth-child(3){ grid-column:1 / -1; }
  .rc-card{ padding:20px 18px 16px; }
  .rc-close{ padding:28px 20px 24px; }
  .rc-btn-lg{ width:100%; }
  .rc-opt{ font-size:16.5px; }
}
@media (prefers-reduced-motion:reduce){
  .rc-fill, .rc-opt, .rc-btn{ transition:none; }
}

/* ---- print: a clean readout the person keeps ---- */
@media print{
  .tfsc-masthead, .tfsc-footer, .tfsc-skip, #tfsc-consent, .rc-keep, .rc-back, #rc-intro, #rc-quiz,
  .rc-close .rc-btn, .rc-close-alt{ display:none !important; }
  body{ background:#fff; font-size:12pt; }
  .tfsc-card{ padding:0 !important; margin:0 !important; border:0; }
  .rc{ max-width:none; }
  .rc-print-only{ display:block; font-weight:600; }
  .rc-print-head{ display:block; font-family:var(--f-mono); font-size:8pt; letter-spacing:.14em; text-transform:uppercase;
    color:var(--steel); border-bottom:1px solid #ccc; padding-bottom:6pt; margin:0 0 14pt; }
  .rc-card, .rc-dates, .rc-close{ break-inside:avoid; }
  .rc-close{ background:#fff; color:var(--ink); border:1px solid #ccc; padding:14pt; }
  .rc-close h3, .rc-close p{ color:var(--ink) !important; }
  .rc-more summary{ display:none; }
  .rc a{ text-decoration:none; }
  .rc-guides a::after{ content:" (thefinancialsciences.com" attr(href) ")"; font-size:9pt; color:var(--steel); }
}
