/* Locally served OFL fonts; licenses and origins in assets/fonts. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: optional;
  src: url(assets/fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: optional;
  src: url(assets/fonts/inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 500 700;
  font-display: optional;
  src: url(assets/fonts/sora-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 500 700;
  font-display: optional;
  src: url(assets/fonts/sora-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ============================================================
   forex-podstawy.pl — REDESIGN v2.1 (koncept B, po review)
   Fintech, ale spokojniejszy: nauka i wyszukiwarka na 1. miejscu,
   mniej ozdobników, prawdziwy autor, dopracowany mobile.
   ============================================================ */

:root {
  --bg:          #F5F7FA;
  --surface:     #FFFFFF;
  --ink:         #0B1B2E;
  --ink-2:       #3E4E66;
  --ink-3:       #5C6B80;   /* poprawiony kontrast dla drobnych opisów */

  --line:        #E2E8F0;
  --line-soft:   #ECF0F5;

  --brand:       #00A67C;
  --brand-dark:  #00785A;
  --brand-soft:  #E4F5EE;
  --navy:        #0B1B2E;
  --navy-2:      #13253C;
  --navy-line:   #233957;

  --up:          #00785A;
  --down:        #C63E43;
  --down-soft:   #FBECEC;

  --font-display: 'Sora', 'Inter', system-ui, sans-serif;
  --font-body:    'Inter', -apple-system, 'Segoe UI', system-ui, sans-serif;
  --font-mono:    'Consolas', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Readable secondary text, also when users enlarge their default font. */
  --text-small: .875rem;
  --text-support: .9375rem;

  --container: 1160px;
  --gutter: 24px;
  --radius: 12px;
  --radius-sm: 8px;

  --shadow-sm: 0 1px 2px rgba(11,27,46,.05);
  --shadow-md: 0 6px 20px rgba(11,27,46,.08);

  --t-fast: 140ms ease-out;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img, svg { display: block; max-width: 100%; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: 0; padding: 0; }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.15;
  margin: 0;
}
a { color: inherit; text-decoration: none; }

:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; border-radius: 4px; }
#main:focus { outline: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

.container { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }

.skip-link {
  position: absolute; top: -48px; left: 8px;
  background: var(--navy); color: #fff;
  padding: 8px 14px; z-index: 100; font-size: 0.875rem; border-radius: 8px;
}
.skip-link:focus { top: 8px; }
.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;
}

/* Etykiety — tylko tam, gdzie naprawdę potrzebne */
.tag {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--text-small); font-weight: 600;
  color: var(--brand-dark);
}

/* Przyciski */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-size: 0.9375rem; font-weight: 600;
  padding: 13px 24px;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  white-space: nowrap;
  transition: background var(--t-fast), transform var(--t-fast);
}
.btn:hover { background: var(--brand-dark); transform: translateY(-1px); }
.btn--ghost {
  background: transparent;
  color: var(--ink);
  box-shadow: inset 0 0 0 1.5px var(--line);
}
.btn--ghost:hover { box-shadow: inset 0 0 0 1.5px var(--ink-3); }
.btn--sm { padding: 9px 18px; font-size: var(--text-small); }

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line-soft);
}
.header-row {
  display: flex; align-items: center; gap: 24px;
  height: 64px;
}
.brand { display: flex; align-items: center; gap: 10px; flex: none; }
.brand-mark {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: var(--navy);
  display: grid; place-items: center;
  flex: none;
}
.brand-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.0625rem;
  letter-spacing: -0.02em;
  color: var(--ink);
  white-space: nowrap;
}
.brand-name em { font-style: normal; color: var(--brand); }

.site-nav { display: flex; gap: 2px; }
.site-nav a {
  font-size: 0.90625rem; font-weight: 500;
  color: var(--ink-2);
  padding: 8px 12px;
  border-radius: 8px;
  transition: background var(--t-fast), color var(--t-fast);
}
.site-nav a:hover { background: #EEF2F7; color: var(--ink); }
.site-nav a[aria-current="page"] { color: var(--ink); font-weight: 600; }

.header-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; flex: none; }
.header-icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  border-radius: 10px;
  color: var(--ink-2);
  transition: background var(--t-fast), color var(--t-fast);
}
.header-icon-btn:hover { background: #EEF2F7; color: var(--ink); }

/* Hamburger — tylko mobile */
.nav-toggle { display: none; }

/* Menu mobilne */
.mobile-menu {
  display: none;
  border-top: 1px solid var(--line-soft);
  background: var(--surface);
  padding: 8px 0 16px;
}
.mobile-menu.open { display: block; }
.mobile-menu a {
  display: flex; justify-content: space-between; align-items: center;
  padding: 13px 24px;
  font-size: 0.96875rem; font-weight: 500;
  border-bottom: 1px solid var(--line-soft);
}
.mobile-menu a:last-of-type { border-bottom: 0; }
.mobile-menu a .cnt { font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3); }
.mobile-menu .mobile-cta { padding: 14px 24px 4px; }
.mobile-menu .mobile-cta .btn { width: 100%; }

/* ============================================================
   HERO — wyszukiwarka + początek nauki
   ============================================================ */
.hero {
  background: var(--surface);
  border-bottom: 1px solid var(--line-soft);
  padding: 64px 0 72px;
}
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 64px;
  align-items: start;
}
.hero h1 {
  font-size: clamp(2.125rem, 4.2vw, 3.25rem);
  letter-spacing: -0.035em;
  line-height: 1.08;
  margin: 0 0 18px;
}
.hero .lede {
  font-size: 1.09375rem;
  color: var(--ink-2);
  line-height: 1.6;
  max-width: 52ch;
  margin: 0 0 30px;
}

/* Duża wyszukiwarka */
.bigsearch { position: relative; max-width: 560px; }
.bigsearch-box {
  display: flex; align-items: center; gap: 12px;
  background: var(--bg);
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 6px 6px 6px 18px;
  transition: border-color var(--t-fast), background var(--t-fast);
}
.bigsearch-box:focus-within { border-color: var(--brand); background: var(--surface); }
.bigsearch-box svg { color: var(--ink-3); flex: none; }
.bigsearch-box input {
  flex: 1; min-width: 0;
  border: 0; outline: none; background: none;
  font: inherit; font-size: 1rem;
  color: var(--ink);
  padding: 10px 0;
}
.bigsearch-box input::placeholder { color: var(--ink-3); }
.bigsearch-box .btn { flex: none; }

/* Podpowiedzi z synonimami */
.bigsearch-suggest {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow-md);
  overflow: hidden;
  z-index: 20;
  display: none;
}
.bigsearch-suggest.open { display: block; }
.suggest-item {
  display: flex; align-items: baseline; gap: 10px;
  width: 100%;
  text-align: left;
  padding: 12px 18px;
  font-size: 0.90625rem;
  border-bottom: 1px solid var(--line-soft);
  transition: background var(--t-fast);
}
.suggest-item:last-child { border-bottom: 0; }
.suggest-item:hover, .suggest-item.active { background: #F4F8FB; }
.suggest-item .s-cat {
  margin-left: auto;
  font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3);
  flex: none;
}
.suggest-item .s-syn {
  font-family: var(--font-mono); font-size: var(--text-small); color: var(--brand-dark);
  flex: none;
}
.suggest-empty { padding: 14px 18px; font-size: var(--text-small); color: var(--ink-3); }

/* Przykładowe pytania */
.hero-examples {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: 16px;
  font-size: var(--text-small);
  color: var(--ink-3);
  align-items: center;
}
.hero-examples a {
  color: var(--ink-2);
  border-bottom: 1px solid var(--line);
  padding-bottom: 1px;
  transition: color var(--t-fast), border-color var(--t-fast);
}
.hero-examples a:hover { color: var(--brand-dark); border-color: var(--brand); }

.hero-cta { margin-top: 28px; }

/* Plan nauki po prawej */
.plan {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 24px 26px;
}
.plan-head {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 6px;
}
.plan-head h2 { font-size: 1.0625rem; letter-spacing: -0.015em; }
.plan-head span { font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3); }
.plan-steps { margin: 10px 0 0; padding: 0; list-style: none; counter-reset: plan; }
.plan-steps li {
  counter-increment: plan;
  display: flex; gap: 14px; align-items: baseline;
  padding: 11px 0;
  border-bottom: 1px solid var(--line-soft);
  font-size: 0.90625rem;
}
.plan-steps li:last-child { border-bottom: 0; }
.plan-steps li::before {
  content: counter(plan);
  flex: none;
  width: 22px; height: 22px;
  border-radius: 7px;
  background: var(--brand-soft);
  color: var(--brand-dark);
  font-family: var(--font-mono);
  font-size: var(--text-small); font-weight: 600;
  display: grid; place-items: center;
  align-self: center;
}
.plan-steps li .t { font-weight: 600; letter-spacing: -0.01em; }
.plan-steps li .m { margin-left: auto; font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3); flex: none; }
.plan-continue {
  margin-top: 16px;
  display: none;
}
.plan-continue.visible { display: block; }
.plan-continue .btn { width: 100%; }
.plan-start { margin-top: 16px; }
.plan-start .btn { width: 100%; }
.plan-progress {
  height: 5px;
  background: var(--line-soft);
  border-radius: 99px;
  overflow: hidden;
  margin-top: 14px;
  display: none;
}
.plan-progress.visible { display: block; }
.plan-progress i {
  display: block; height: 100%;
  background: var(--brand);
  border-radius: 99px;
}

/* ============================================================
   SEKCJE
   ============================================================ */
.section { padding: 60px 0; }
.section + .section { border-top: 1px solid var(--line-soft); }
.section--white { background: var(--surface); }

.section-head { margin-bottom: 30px; max-width: 620px; }
.section-head .tag { margin-bottom: 10px; display: inline-block; }
.section-head h2 {
  font-size: clamp(1.5625rem, 2.8vw, 2.0625rem);
  letter-spacing: -0.03em;
  margin: 0 0 10px;
}
.section-head p { margin: 0; color: var(--ink-2); font-size: 0.96875rem; line-height: 1.6; }
.section-head--row {
  max-width: none;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
}
.link-more {
  font-size: 0.875rem; font-weight: 600; color: var(--brand-dark);
  white-space: nowrap; padding-bottom: 4px;
}
.link-more:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Ścieżka 4 kroków — lista, nie karty */
.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
}
.step {
  padding: 22px 24px 22px 0;
  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 8px;
}
.step:last-child { border-right: 0; }
.step:not(:first-child) { padding-left: 24px; }
.step:hover .step-title { color: var(--brand-dark); }
.step-no {
  font-family: var(--font-mono);
  font-size: var(--text-small); font-weight: 600;
  color: var(--brand-dark);
}
.step-title { font-family: var(--font-display); font-size: 1.125rem; font-weight: 700; letter-spacing: -0.02em; transition: color var(--t-fast); }
.step p { margin: 0; font-size: var(--text-small); color: var(--ink-2); line-height: 1.55; }
.step-meta {
  margin-top: auto; padding-top: 8px;
  font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3);
}

/* Najczęstsze pytania — zwykła lista z separatorami */
.q-list { border-top: 1px solid var(--line); }
.q-row {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto 70px 24px;
  align-items: center; gap: 16px;
  padding: 15px 0;
  border-bottom: 1px solid var(--line-soft);
}
.q-num { font-family: var(--font-mono); font-size: var(--text-small); font-weight: 600; color: var(--ink-3); }
.q-row:nth-child(-n+3) .q-num { color: var(--brand-dark); }
.q-title { font-size: 0.96875rem; font-weight: 600; letter-spacing: -0.01em; }
.q-row:hover .q-title { color: var(--brand-dark); }
.q-cat { font-size: var(--text-small); color: var(--ink-3); }
.q-time { font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3); text-align: right; }
.q-arrow { color: var(--ink-3); transition: transform var(--t-fast), color var(--t-fast); }
.q-row:hover .q-arrow { transform: translateX(3px); color: var(--brand); }

/* Tematy — lista dwukolumnowa */
.topic-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 56px;
  border-top: 1px solid var(--line);
}
.topic-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px 20px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line-soft);
  align-items: baseline;
}
.topic-row h3 { font-size: 1.0625rem; letter-spacing: -0.015em; }
.topic-row:hover h3 { color: var(--brand-dark); }
.topic-row p { grid-column: 1; margin: 0; font-size: var(--text-small); color: var(--ink-2); line-height: 1.55; }
.topic-row .topic-count {
  grid-row: 1 / span 2; grid-column: 2; align-self: center;
  font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3);
  white-space: nowrap;
}

/* Kalkulatory — ciemny panel, spokojniejszy */
.tools-panel {
  background: var(--navy);
  border-radius: var(--radius);
  padding: 40px 44px;
  color: #E7EEF8;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: 44px;
  align-items: center;
}
.tools-panel .tag { color: #7FD8BC; }
.tools-panel h2 {
  color: #fff;
  font-size: clamp(1.4375rem, 2.4vw, 1.875rem);
  letter-spacing: -0.025em;
  margin: 10px 0 12px;
}
.tools-panel p { margin: 0; color: #9DB0CA; font-size: 0.90625rem; line-height: 1.6; }
.tools-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.tool-tile {
  display: flex; align-items: center; gap: 12px;
  border: 1px solid var(--navy-line);
  border-radius: var(--radius-sm);
  padding: 13px 15px;
  font-size: 0.875rem; font-weight: 500;
  color: #E7EEF8;
  transition: background var(--t-fast), border-color var(--t-fast);
}
.tool-tile:hover { background: var(--navy-2); border-color: #33517C; }
.tool-tile .glyph {
  font-family: var(--font-mono); font-size: var(--text-small); font-weight: 600;
  color: #7FD8BC;
  flex: none;
}
.tool-tile .arrow { margin-left: auto; color: #47628A; }

/* Autor + aktualizacje */
.duo {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 48px;
  align-items: start;
}
.author-intro { display: flex; gap: 18px; }
.author-intro img {
  width: 72px; height: 72px;
  border-radius: 50%;
  object-fit: cover;
  flex: none;
}
.author-intro .role {
  font-size: var(--text-small); font-weight: 600;
  color: var(--brand-dark);
  margin-bottom: 4px;
}
.author-intro h3 { font-size: 1.1875rem; margin-bottom: 6px; letter-spacing: -0.02em; }
.author-intro h3 a { border-bottom: 1px solid var(--line); }
.author-intro h3 a:hover { border-color: var(--brand); color: var(--brand-dark); }
.author-intro p { margin: 0; font-size: var(--text-small); color: var(--ink-2); line-height: 1.6; }
.author-intro .creds {
  margin-top: 10px;
  font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3);
}
.updates { border-top: 1px solid var(--line); }
.update-row {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr) 60px;
  gap: 16px; align-items: baseline;
  padding: 13px 0;
  border-bottom: 1px solid var(--line-soft);
  font-size: 0.90625rem;
}
.update-row .d { font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3); }
.update-row .t { font-weight: 550; letter-spacing: -0.01em; }
.update-row:hover .t { color: var(--brand-dark); }
.update-row .m { font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3); text-align: right; }

/* Newsletter — spokojny */
.newsletter {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 36px 40px;
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 40px;
  align-items: center;
}
.newsletter h2 { font-size: 1.4375rem; letter-spacing: -0.025em; margin: 0 0 8px; }
.newsletter p { margin: 0; color: var(--ink-2); font-size: 0.90625rem; line-height: 1.6; }
.newsletter form {
  display: flex;
  border: 1.5px solid var(--line);
  border-radius: 999px;
  padding: 5px;
  background: var(--bg);
}
.newsletter form:focus-within { border-color: var(--brand); background: var(--surface); }
.newsletter input {
  flex: 1; min-width: 0;
  border: 0; outline: none; background: none;
  padding: 10px 16px;
  font: inherit; font-size: 0.90625rem;
  color: var(--ink);
}
.newsletter button {
  background: var(--navy);
  color: #fff;
  font-weight: 600; font-size: 0.875rem;
  padding: 11px 22px;
  border-radius: 999px;
  white-space: nowrap;
  transition: background var(--t-fast);
}
.newsletter button:hover { background: var(--navy-2); }
.newsletter small { display: block; margin-top: 10px; font-size: var(--text-small); color: var(--ink-3); }

/* ============================================================
   STOPKA
   ============================================================ */
.site-footer {
  background: var(--navy);
  color: #9DB0CA;
  padding: 56px 0 28px;
}
.footer-risk {
  border: 1px solid var(--navy-line);
  border-radius: var(--radius-sm);
  padding: 16px 20px;
  font-size: var(--text-small); line-height: 1.65;
  color: #7E93B5;
  margin-bottom: 44px;
}
.footer-risk b { color: #E7EEF8; }
.footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 4fr) repeat(3, minmax(0, 2fr));
  gap: 40px;
  padding-bottom: 36px;
  border-bottom: 1px solid var(--navy-line);
}
.footer-brand p { font-size: var(--text-small); line-height: 1.65; margin: 12px 0 0; max-width: 38ch; }
.footer-brand .brand-name { color: #fff; }
.footer-col h4 {
  font-family: var(--font-body);
  font-size: var(--text-small); font-weight: 700;
  letter-spacing: .09em; text-transform: uppercase;
  color: #5F759A;
  margin: 0 0 14px;
}
.footer-col ul { list-style: none; margin: 0; padding: 0; }
.footer-col li { margin-bottom: 9px; }
.footer-col a { font-size: 0.875rem; color: #C4D2E6; }
.footer-col a:hover { color: #fff; }
.footer-bottom {
  display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  padding-top: 22px;
  font-size: var(--text-small); color: #5F759A;
}
.footer-bottom a { color: #7E93B5; }
.footer-bottom a:hover { color: #fff; }

/* ============================================================
   ARTYKUŁ
   ============================================================ */
.article-hero {
  background: var(--surface);
  border-bottom: 1px solid var(--line-soft);
  padding: 32px 0 36px;
}
.crumbs {
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
  font-size: var(--text-small); color: var(--ink-3);
  margin-bottom: 22px;
}
.crumbs a:hover { color: var(--brand-dark); }
.crumbs .sep { color: var(--line); }
.course-pos {
  margin-left: auto;
  font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3);
}
.article-hero h1 {
  font-size: clamp(1.75rem, 3.6vw, 2.625rem);
  letter-spacing: -0.03em;
  line-height: 1.12;
  max-width: 780px;
  margin: 0 0 16px;
}
.article-hero .standfirst {
  font-size: 1.0625rem;
  color: var(--ink-2);
  line-height: 1.6;
  max-width: 64ch;
  margin: 0 0 22px;
}
.article-meta {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  font-size: var(--text-small); color: var(--ink-3);
}
.article-meta img {
  width: 30px; height: 30px;
  border-radius: 50%;
  object-fit: cover;
}
.article-meta b { color: var(--ink); font-weight: 600; }
.article-meta .sep { color: var(--line); }

/* Rozwijany spis treści — mobile */
.toc-mobile { display: none; }

.article-layout {
  display: grid;
  grid-template-columns: minmax(0, 700px) 280px;
  gap: 56px;
  padding: 44px 0 64px;
  align-items: start;
}

.prose { font-size: 1.0625rem; line-height: 1.75; }
.prose > p { margin: 0 0 22px; }
.prose h2 {
  font-size: 1.5625rem;
  letter-spacing: -0.025em;
  margin: 48px 0 16px;
  scroll-margin-top: 90px;
}
.prose h3 { font-size: 1.1875rem; margin: 32px 0 12px; letter-spacing: -0.02em; }
.prose a {
  color: var(--brand-dark);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(0,166,124,.35);
}
.prose a:hover { text-decoration-color: var(--brand); }
.prose ul, .prose ol { margin: 0 0 22px; padding-left: 0; list-style: none; }
.prose ul li, .prose ol li { position: relative; padding-left: 26px; margin-bottom: 10px; }
.prose ul li::before {
  content: "";
  position: absolute; left: 2px; top: 10px;
  width: 6px; height: 6px; border-radius: 2px;
  background: var(--brand);
}
.prose ol { counter-reset: li; }
.prose ol li { counter-increment: li; }
.prose ol li::before {
  content: counter(li) ".";
  position: absolute; left: 0; top: 3px;
  font-family: var(--font-mono);
  font-size: var(--text-small); font-weight: 600;
  color: var(--brand-dark);
}
.prose strong { font-weight: 650; }

/* Krótka odpowiedź na początku */
.answer {
  border-left: 3px solid var(--brand);
  padding: 4px 0 4px 22px;
  margin: 0 0 28px;
}
.answer p {
  font-size: 1.125rem;
  line-height: 1.65;
  font-weight: 500;
  letter-spacing: -0.01em;
  margin: 0 0 12px;
}
.answer p:last-child { margin-bottom: 0; }

/* Kluczowe punkty — max 3 */
.keypoints {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 20px 24px;
  margin: 0 0 32px;
}
.keypoints-title {
  font-size: var(--text-small); font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 10px;
}
.keypoints ul { margin: 0; padding: 0; list-style: none; }
.keypoints li {
  display: flex; gap: 12px;
  font-size: 0.9375rem; line-height: 1.6;
  padding: 9px 0;
  border-bottom: 1px solid var(--line-soft);
}
.keypoints li:last-child { border-bottom: 0; }
.keypoints li svg { flex: none; margin-top: 4px; color: var(--brand); }

/* Objaśnienia pojęć inline */
.term {
  border-bottom: 1.5px dotted var(--brand);
  cursor: help;
  position: relative;
}
.term:hover, .term.open { border-bottom-style: solid; }
.term-tip {
  position: absolute;
  left: 0; bottom: calc(100% + 8px);
  width: 260px;
  background: var(--navy);
  color: #E7EEF8;
  font-size: var(--text-small); font-weight: 400;
  line-height: 1.55;
  padding: 12px 14px;
  border-radius: 10px;
  box-shadow: var(--shadow-md);
  z-index: 30;
  display: none;
}
.term.open .term-tip, .term:hover .term-tip { display: block; }
.term-tip::after {
  content: "";
  position: absolute; top: 100%; left: 20px;
  border: 6px solid transparent;
  border-top-color: var(--navy);
}
.term-tip a { color: #7FD8BC; font-weight: 500; }

/* Przykład liczbowy */
.calc-card {
  background: var(--navy);
  border-radius: var(--radius);
  padding: 22px 24px;
  margin: 0 0 28px;
  color: #E7EEF8;
}
.calc-card-title {
  display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  font-family: var(--font-mono); font-size: var(--text-small);
  letter-spacing: .08em; text-transform: uppercase;
  color: #7E93B5;
  margin-bottom: 12px;
}
.calc-card table { width: 100%; border-collapse: collapse; font-family: var(--font-mono); font-size: var(--text-small); }
.calc-card td { padding: 8px 0; border-bottom: 1px dashed var(--navy-line); }
.calc-card td:last-child { text-align: right; color: #fff; font-weight: 500; }
.calc-card tr.total td {
  border-bottom: 0; border-top: 1px solid var(--navy-line);
  padding-top: 12px;
  font-weight: 600;
}
.calc-card tr.total td:last-child { color: #FF9A9D; }

/* Callout */
.callout {
  border-radius: var(--radius-sm);
  padding: 16px 20px;
  margin: 0 0 28px;
  font-size: 0.90625rem; line-height: 1.6;
  border: 1px solid;
}
.callout--warn { background: var(--down-soft); border-color: #F0CFD1; color: #7A2A2D; }
.callout--warn b { color: var(--down); }

/* Cytat */
.prose blockquote {
  margin: 36px 0;
  padding: 0 0 0 22px;
  border-left: 3px solid var(--brand);
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: -0.015em;
  line-height: 1.5;
}
.prose blockquote footer {
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: var(--text-small); font-weight: 400;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--ink-3);
}

/* Źródła */
.sources { margin-top: 48px; }
.sources h2 { font-size: 0.9375rem !important; margin: 0 0 12px !important; letter-spacing: 0 !important; }
.sources ol { margin: 0; padding: 0; list-style: none; }
.sources li {
  font-size: var(--text-small); color: var(--ink-2);
  padding: 7px 0;
  border-bottom: 1px solid var(--line-soft);
}
.sources li:last-child { border-bottom: 0; }

/* Autor pod artykułem */
.author-box {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 24px 26px;
  margin-top: 36px;
}
.author-box img {
  width: 84px; height: 84px;
  border-radius: 50%;
  object-fit: cover;
}
.author-box .role {
  font-size: var(--text-small); font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase;
  color: var(--brand-dark);
  margin-bottom: 4px;
}
.author-box h4 { font-size: 1.09375rem; margin-bottom: 6px; letter-spacing: -0.015em; }
.author-box p { margin: 0; font-size: var(--text-small); color: var(--ink-2); line-height: 1.6; }
.author-box .author-links {
  margin-top: 10px;
  display: flex; gap: 16px;
  font-size: var(--text-small); font-weight: 600;
}
.author-box .author-links a { color: var(--brand-dark); }
.author-box .author-links a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Rail — sam spis treści */
.rail { position: sticky; top: 88px; }
.rail-toc {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 18px 20px;
}
.rail-toc h4 {
  font-family: var(--font-body);
  font-size: var(--text-small); font-weight: 700;
  letter-spacing: .09em; text-transform: uppercase;
  color: var(--ink-3);
  margin: 0 0 10px;
}
.toc-list { display: flex; flex-direction: column; }
.toc-list a {
  font-size: var(--text-small); color: var(--ink-2);
  padding: 8px 10px;
  margin: 0 -10px;
  border-radius: 8px;
  border-left: 2px solid transparent;
  transition: background var(--t-fast), color var(--t-fast);
}
.toc-list a:hover { background: #F2F5F9; color: var(--ink); }
.toc-list a.active { color: var(--brand-dark); font-weight: 600; border-left-color: var(--brand); border-radius: 0 8px 8px 0; }

/* Poprzednia / następna lekcja */
.lesson-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 48px;
}
.lesson-nav a {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 16px 20px;
  display: flex; flex-direction: column; gap: 5px;
  transition: border-color var(--t-fast);
}
.lesson-nav a:hover { border-color: var(--brand); }
.lesson-nav .dir {
  font-family: var(--font-mono); font-size: var(--text-small);
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--ink-3);
}
.lesson-nav .ttl { font-size: 0.9375rem; font-weight: 600; letter-spacing: -0.01em; }
.lesson-nav a:hover .ttl { color: var(--brand-dark); }
.lesson-nav a.next { text-align: right; }

/* „Co przeczytać dalej" */
.read-next { margin-top: 48px; border-top: 1px solid var(--line); padding-top: 26px; }
.read-next h2 { font-size: 1.1875rem; letter-spacing: -0.02em; margin-bottom: 6px; }
.read-next .why { font-size: var(--text-small); color: var(--ink-3); margin-bottom: 14px; }
.read-next-list { border-top: 1px solid var(--line-soft); }
.read-next-list a {
  display: flex; justify-content: space-between; gap: 16px; align-items: baseline;
  padding: 12px 0;
  border-bottom: 1px solid var(--line-soft);
  font-size: 0.9375rem; font-weight: 550;
}
.read-next-list a:hover { color: var(--brand-dark); }
.read-next-list .t { font-family: var(--font-mono); font-size: var(--text-small); color: var(--ink-3); flex: none; }

/* ============================================================
   RESPONSYWNOŚĆ
   ============================================================ */
@media (max-width: 1080px) {
  .site-nav { display: none; }
  .nav-toggle { display: inline-flex; }
  .hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .plan { max-width: 560px; }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .step:nth-child(2) { border-right: 0; }
  .step:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .step:nth-child(3) { padding-left: 0; }
  .tools-panel { grid-template-columns: 1fr; padding: 32px; gap: 28px; }
  .duo { grid-template-columns: 1fr; gap: 36px; }
  .article-layout { grid-template-columns: 1fr; }
  .rail { display: none; }
  .toc-mobile {
    display: block;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    margin-bottom: 28px;
  }
  .toc-mobile summary {
    list-style: none;
    display: flex; justify-content: space-between; align-items: center;
    padding: 15px 20px;
    font-size: 0.90625rem; font-weight: 600;
    cursor: pointer;
  }
  .toc-mobile summary::-webkit-details-marker { display: none; }
  .toc-mobile summary .chev { transition: transform var(--t-fast); color: var(--ink-3); }
  .toc-mobile[open] summary .chev { transform: rotate(180deg); }
  .toc-mobile .toc-list { padding: 0 20px 14px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 680px) {
  body { overflow-x: clip; }
  .header-row { gap: 10px; height: 58px; }
  .header-actions .btn { display: none; }
  .section-head--row { flex-direction: column; align-items: flex-start; gap: 10px; }
  .link-more { white-space: normal; padding-bottom: 0; }
  .hero { padding: 44px 0 52px; }
  .hero h1 { font-size: clamp(1.875rem, 8.5vw, 2.375rem); }
  .bigsearch-box { flex-wrap: nowrap; }
  .bigsearch-box .btn { padding: 11px 16px; font-size: var(--text-small); }
  .steps { grid-template-columns: 1fr; }
  .step { border-right: 0; padding-left: 0 !important; }
  .topic-list { grid-template-columns: 1fr; }
  .q-row { grid-template-columns: 30px minmax(0,1fr) 24px; }
  .q-cat, .q-time { display: none; }
  .update-row { grid-template-columns: 84px minmax(0,1fr); }
  .update-row .m { display: none; }
  .tools-grid { grid-template-columns: 1fr; }
  .newsletter { grid-template-columns: 1fr; padding: 28px 22px; gap: 20px; }
  .newsletter form { flex-direction: column; border-radius: 16px; gap: 6px; background: none; border: 0; padding: 0; }
  .newsletter input { border: 1.5px solid var(--line); border-radius: 999px; background: var(--bg); padding: 13px 18px; }
  .newsletter button { width: 100%; padding: 13px; }
  .lesson-nav { grid-template-columns: 1fr; }
  .lesson-nav a.next { text-align: left; }
  .author-box { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 26px; }
  .course-pos { margin-left: 0; flex-basis: 100%; }
}

/* v2.2 — learning, real content and responsive reading layout */
:root { --brand: #007b60; --brand-dark: #00634d; --brand-soft: #e8f3ef; --bg: #f5f7f6; --ink: #142c32; --ink-2: #41555b; --ink-3: #596b71; --line: #dbe3df; --line-soft: #e9eeeb; --radius: 8px; --navy: #102c2b; --container: 1240px; }
[hidden] { display: none !important; }
html { scroll-padding-top: 88px; }
body { overflow-x: visible; }
input,select,button { font: inherit; }
button,a,input,select,summary { -webkit-tap-highlight-color: transparent; }
a,button { touch-action: manipulation; }
section[id] { scroll-margin-top: 82px; }
.container { width: 100%; }
.btn { background: var(--brand); border-radius: 6px; white-space: normal; min-height: 46px; line-height: 1.4; text-align:center; }
.btn:hover { transform: none; }
.btn--ghost { background: transparent; color: var(--ink); }
.btn--ghost:hover { background:var(--brand-soft); color:var(--ink); }
.text-button { color:var(--brand-dark); text-decoration:underline; text-underline-offset:4px; font-size:var(--text-small); min-height:44px; }
.eyebrow { font:500 var(--text-small)/1.5 var(--font-mono); text-transform:uppercase; letter-spacing:.1em; color:var(--brand-dark); margin:0 0 18px; }
.header-row { gap:28px; height:76px; }
.brand-mark { color:#89d4b7; border-radius:5px; }
.brand-name { font-size:1rem; }
.brand-name em {color:var(--brand-dark)}
.site-nav { gap:4px; margin-left:24px; }
.site-nav a { font-size:var(--text-small); padding:12px 10px; white-space:nowrap; }
.header-question { font-size:var(--text-small); font-weight:600; white-space:nowrap; padding:12px 0 12px 12px; }
.header-icon-btn { width:44px; height:44px; flex:none; border-radius:5px; }
.header-icon-btn:hover {background:var(--brand-soft)}
.mobile-menu { max-height:calc(100dvh - 64px); overflow-y:auto; }
.mobile-menu a {min-height:48px;}
.hero { padding:66px 0 62px; background:#fff; }
.hero-grid { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:80px; align-items:center; }
.hero-copy { min-width:0; }
.hero h1 { font-size:clamp(2.375rem,4.4vw,3.625rem); line-height:1.1; letter-spacing:-.045em; margin-bottom:22px; }
.hero h1 span { color:var(--brand-dark); }
.hero .lede { font-size:1.0625rem; max-width:51ch; margin-bottom:30px; }
.search-label { display:block; font-size:var(--text-small); font-weight:600; margin:0 0 9px; }
.bigsearch { max-width:none; }
.bigsearch-box { border-radius:7px; background:#fff; border:1px solid #acbbb4; padding:5px; gap:4px; }
.bigsearch-box input {padding:10px 12px; font-size:0.9375rem; }
.bigsearch-box .btn {padding:10px 21px; font-size:0.875rem; }
.bigsearch-suggest {border-radius:7px; max-height:min(440px,60vh); overflow-y:auto; }
.suggest-item { display:grid; grid-template-columns:1fr; gap:5px; font-size:0.875rem; padding:13px 16px; }
.suggest-item .s-cat {margin-left:0; font:400 var(--text-small) var(--font-body);}
.suggest-item.active,.suggest-item:hover {background:var(--brand-soft)}
.hero-examples {font-size:var(--text-small);gap:8px 14px;margin-top:12px;}
.hero-examples a {padding:5px 0;}
.hero-signature {display:flex;align-items:center;gap:12px;margin-top:30px;font-size:var(--text-small);font-weight:600;}
.hero-signature img {width:38px;height:44px;object-fit:cover;border-radius:4px;}
.hero-signature a {display:inline-block;color:var(--ink-3);font-size:var(--text-small);font-weight:400;margin-top:3px;}
.plan {background:#f0f5f1;border:0;border-top:3px solid var(--brand);border-radius:0;padding:28px 28px 24px;max-width:none;}
.plan .eyebrow {font-size:var(--text-small);margin-bottom:14px;}
.plan-head h2 {font-size:1.5rem;line-height:1.25;letter-spacing:-.035em;}
.plan-intro {font-size:var(--text-small);color:var(--ink-3);margin:9px 0 22px;}
.plan-steps {margin:0;}
.plan-steps li {display:block;padding:0;}
.plan-steps li::before {display:none;}
.plan-steps li a {display:flex;align-items:center;gap:12px;padding:15px 0;}
.plan-number {font:var(--text-small) var(--font-mono);color:var(--brand-dark);width:20px;flex:none;}
.plan-steps li .t {font-size:var(--text-small);font-weight:500;}
.plan-steps li .m {font-size:var(--text-small);}
.plan-steps a:hover .t {text-decoration:underline;text-underline-offset:4px;}
.course-progress {margin-top:18px;}
.course-progress label {display:flex;justify-content:space-between;font-size:var(--text-small);gap:10px;color:var(--ink-3);}
progress {appearance:none;border:0;display:block;width:100%;height:4px;background:#d9e4dc;border-radius:0;margin-top:9px;}
progress::-webkit-progress-bar {background:#d9e4dc;}
progress::-webkit-progress-value {background:var(--brand);}
progress::-moz-progress-bar {background:var(--brand);}
.plan-action {display:flex;width:100%;margin-top:20px;font-size:var(--text-small);gap:12px;}
.plan-note {font-size:var(--text-small);color:var(--ink-3);text-align:center;margin:12px 0 0;line-height:1.6;}
.plan .text-button {display:block;margin:4px auto -12px;}
.plan-steps li.is-complete .plan-number {font-size:0;}
.plan-steps li.is-complete .plan-number::after {content:'✓';font-size:0.875rem;}
.section {padding:58px 0;}
.section-head h2 {font-size:clamp(1.4375rem,2.6vw,1.875rem);}
.section-head .eyebrow {margin-bottom:12px;}
.section-head p:not(.eyebrow) {font-size:0.875rem;}
.section-index {font:var(--text-small) var(--font-mono);color:var(--ink-3);white-space:nowrap;}
.link-more {font-size:var(--text-small);}
.step {padding:24px 22px 22px 0;gap:12px;}
.step:not(:first-child) {padding-left:22px;}
.step-title {font-size:1.0625rem;line-height:1.35;}
.step p {font-size:var(--text-small);}
.step-no {font-size:var(--text-small);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;}
.lesson-state {font:500 var(--text-small) var(--font-body);text-transform:none;}
.step-meta {display:flex;justify-content:space-between;font-size:var(--text-small);}
.step.is-complete {background:linear-gradient(180deg,#f1f7f2,transparent);}
.q-row {padding:19px 0;}
.q-title {font-size:0.875rem;font-weight:500;}
.q-cat,.q-time,.q-num {font-size:var(--text-small);}
.topic-row {padding:22px 0;gap:8px 14px;}
.topic-row h3 {font-size:1rem;}
.topic-row p {font-size:var(--text-small);}
.topic-count {font-size:var(--text-small) !important;}
.tools-panel {border-radius:8px;padding:36px;gap:48px;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);background:var(--navy);}
.tools-panel h2 {font-size:1.75rem;line-height:1.25;}
.tools-panel .eyebrow,.tools-panel .link-more {color:#9ddcc4;}
.tools-panel p:not(.eyebrow) {font-size:var(--text-small);color:#c2d5cf;}
.tools-grid {grid-template-columns:1fr;gap:0;}
.tool-tile {display:flex;align-items:center;gap:16px;border:0;border-bottom:1px solid #38504b;background:transparent;border-radius:0;padding:15px 0;box-shadow:none;}
.tool-tile:first-child {padding-top:0;}
.tool-tile:last-child {border-bottom:0;}
.tool-tile:hover {background:transparent;transform:none;border-color:#78958c;}
.tool-number {font:var(--text-small) var(--font-mono);color:#99bcb0;}
.tool-tile strong {display:block;font-size:0.875rem;font-weight:500;color:#fff;}
.tool-tile small {display:block;font-size:var(--text-small);font-weight:400;color:#c2d5cf;margin-top:4px;}
.tool-tile>span:last-child {margin-left:auto;color:#9ddcc4;}
.duo {grid-template-columns:1.15fr 1fr;gap:64px;}
.author-intro {align-items:start;gap:22px;}
.author-intro img {width:80px;height:102px;border-radius:4px;object-fit:cover;}
.author-intro h2 {font-size:1.25rem;}
.author-intro p:not(.eyebrow) {font-size:var(--text-small);line-height:1.75;}
.author-intro .eyebrow {font-size:var(--text-small);margin-bottom:10px;}
.author-links {display:flex;gap:12px 18px;flex-wrap:wrap;}
.author-links a {font-size:var(--text-small);color:var(--brand-dark);font-weight:500;}
.updates-title {font-size:1rem;margin:0 0 18px;}
.update-row {grid-template-columns:85px minmax(0,1fr);gap:14px;}
.update-row .t {font-size:var(--text-small);line-height:1.6;}
.update-row .d {font-size:var(--text-small);}
.question-strip {border-top:1px solid var(--line);padding:32px 0;background:#eef3ef;}
.question-strip .container {display:flex;align-items:center;justify-content:space-between;gap:24px;}
.question-strip h2 {font-size:1.125rem;}
.question-strip p {font-size:var(--text-small);color:var(--ink-2);margin-bottom:0;}
.question-strip .btn {font-size:var(--text-small);flex:none;}
.site-footer {padding:38px 0 26px;background:#fff;color:var(--ink);border-top:1px solid var(--line);}
.footer-main {display:flex;justify-content:space-between;gap:32px;margin-bottom:28px;}
.footer-main nav {display:flex;gap:14px 24px;flex-wrap:wrap;align-content:start;font-size:var(--text-small);}
.footer-main nav a {padding:6px 0;color:var(--ink-2);}
.footer-brand .brand-name {color:var(--ink);}
.footer-brand p {color:var(--ink-3);font-size:var(--text-small);margin:10px 0 0;}
.footer-risk {border:0;border-radius:0;border-top:1px solid var(--line);background:none;padding:20px 0 0;margin:0 0 20px;color:var(--ink-3);font-size:var(--text-small);line-height:1.7;}
.footer-risk strong {color:var(--ink-2);}
.footer-bottom {border-top:1px solid var(--line-soft);padding-top:16px;font-size:var(--text-small);color:var(--ink-3);}
.footer-bottom a {color:var(--ink-2);}
.footer-bottom a:hover {color:var(--brand-dark);}
.article-hero {padding:32px 0 36px;}
.article-hero .container {max-width:1080px;}
.article-hero h1 {font-size:clamp(1.75rem,3.3vw,2.6875rem);line-height:1.18;max-width:860px;}
.article-hero .eyebrow {margin-bottom:14px;}
.article-layout {padding:40px var(--gutter) 64px;grid-template-columns:minmax(0,740px) minmax(0,250px);gap:64px;max-width:1100px;}
.prose {font-size:1.0625rem;min-width:0;line-height:1.8;}
.article-body>p {margin:0 0 24px;}
.prose h2 {line-height:1.3;font-size:1.5625rem;}
.prose .answer .eyebrow {font:500 var(--text-small)/1.5 var(--font-mono);color:var(--brand-dark);margin-bottom:12px;}
.answer {padding-left:20px;}
.answer p {font-size:1.125rem;}
.keypoints {border:0;background:#edf3ee;border-radius:4px;padding:20px 24px;}
.prose .keypoints ul li {padding:8px 0;margin:0;}
.prose .keypoints ul li::before {display:none;}
.keypoints li>span:first-child {color:var(--brand-dark);flex:none;}
.prose .keypoints li {font-size:0.875rem;}
.rail {top:100px;}
.rail-toc {border:0;border-left:1px solid var(--line);border-radius:0;background:none;padding:0 0 0 22px;box-shadow:none;max-height:calc(100dvh - 128px);overflow:auto;}
.rail-toc .eyebrow {font-size:var(--text-small);margin:0 0 10px;}
.toc-list a {line-height:1.5;font-size:var(--text-small);padding:9px 8px;}
.toc-list a::before {display:none;}
.rail-back {display:block;font-size:var(--text-small);color:var(--brand-dark);padding:22px 0;}
.lesson-glossary {margin-bottom:32px;border-bottom:1px solid var(--line);font-size:var(--text-small);}
.lesson-glossary summary {cursor:pointer;padding:14px 0;color:var(--ink-2);}
.term-entry {border-top:1px solid var(--line-soft);}
.term-toggle {display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;font-weight:600;font-size:var(--text-small);padding:12px 0;gap:16px;min-height:44px;}
.term-entry p {font-size:var(--text-small);margin:0 0 16px;color:var(--ink-2);}
.article-figure {margin:28px 0;max-width:100%;}
.article-figure svg {width:100%;height:auto;}
.article-figure figcaption {font-size:var(--text-small);line-height:1.6;color:var(--ink-3);margin-top:10px;}
.example,.callout {margin:26px 0;background:#edf3ee;border:1px solid var(--line);border-radius:6px;padding:20px;font-size:0.875rem;}
.example-label {font-size:var(--text-small);font-weight:600;margin-bottom:12px;color:var(--brand-dark);}
.example-row {display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--line);}
.example-row>span {min-width:0;}
.example-row .num {text-align:right;}
.table-scroll {overflow-x:auto;max-width:100%;margin:24px 0;}
.table-scroll table {border-collapse:collapse;width:100%;font-size:var(--text-small);}
.table-scroll th,.table-scroll td {border-bottom:1px solid var(--line);padding:12px 14px;text-align:left;}
.table-scroll th {background:var(--brand-soft);}
.prose .sources {margin-top:40px;}
.prose .sources li {font-size:var(--text-small);overflow-wrap:anywhere;}
.prose .sources h2 {font-size:1.125rem;}
.author-box {grid-template-columns:72px 1fr;gap:20px;border-radius:0;border:0;border-top:1px solid var(--line);background:none;padding:28px 0;margin-top:32px;}
.author-box img {width:72px;height:88px;border-radius:4px;object-fit:cover;}
.author-box .eyebrow {margin-bottom:8px;font-size:var(--text-small);}
.prose .author-box h3 {font-size:1.125rem;margin:0 0 10px;}
.author-box p {font-size:var(--text-small);}
.author-box a {font-size:var(--text-small);}
.lesson-completion {background:var(--brand-soft);padding:24px;margin-top:24px;border-radius:6px;}
.lesson-completion strong {font-size:1.0625rem;}
.lesson-completion p {font-size:var(--text-small);margin:6px 0 16px;}
.lesson-completion .btn {font-size:var(--text-small);}
.lesson-completion #lesson-status {margin-bottom:0;}
.lesson-nav {margin-top:20px;}
.prose .lesson-nav a {text-decoration:none;color:var(--ink);}
.lesson-nav .ttl {font-size:0.875rem;}
.lesson-nav .dir {font-size:var(--text-small);}
.read-next-list a {font-size:0.875rem;line-height:1.5;}
.library-hero {background:#fff;border-bottom:1px solid var(--line);padding:28px 0 48px;}
.library-hero h1 {font-size:clamp(1.875rem,4vw,2.75rem);margin-bottom:18px;}
.library-hero .lede {max-width:65ch;font-size:1rem;color:var(--ink-2);margin-bottom:26px;}
.library-hero .bigsearch {max-width:700px;}
.library-controls {display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px 24px;padding-bottom:24px;border-bottom:1px solid var(--line);}
.library-controls label {display:flex;flex-direction:column;gap:7px;font-size:var(--text-small);color:var(--ink-2);}
.library-controls select {font-size:0.875rem;border:1px solid #acbbb4;border-radius:5px;padding:11px 32px 11px 12px;background:#fff;min-height:44px;max-width:100%;color:var(--ink);}
.library-controls .text-button {margin-left:auto;}
.results-count {font-size:var(--text-small);color:var(--ink-3);margin:24px 0 4px;}
.result-row {display:flex;align-items:center;justify-content:space-between;gap:24px;padding:23px 0;border-bottom:1px solid var(--line);}
.result-row h2 {font-size:1.125rem;line-height:1.5;margin:6px 0 0;}
.result-category {font-size:var(--text-small);color:var(--brand-dark);}
.result-meta {font:var(--text-small) var(--font-mono);color:var(--ink-3);white-space:nowrap;}
.result-row:hover h2 {color:var(--brand-dark);}
#load-more {margin-top:28px;}
.empty-state {padding:32px 0;}
.empty-state h2 {font-size:1.4375rem;}
.empty-state p {font-size:0.875rem;color:var(--ink-2);}
.library-note {font-size:var(--text-small);color:var(--ink-3);border-top:1px solid var(--line);padding-top:24px;margin-top:32px;}
@media(min-width:1101px){.site-nav{display:flex;}.nav-toggle{display:none;}.mobile-menu{display:none!important;}}
@media(max-width:1100px){
 .site-nav{display:none;}.nav-toggle{display:inline-flex;}.header-row{height:66px;}
 .hero-grid{gap:36px;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);}.plan{padding:24px 20px;}
 .hero h1{font-size:2.75rem;}.hero .lede{font-size:0.9375rem;}.hero-signature{margin-top:22px;}
 .article-layout{grid-template-columns:minmax(0,740px);justify-content:center;}.rail{display:none;}.toc-mobile{display:block;}
 .tools-panel{grid-template-columns:1fr 1.15fr;gap:28px;}.duo{gap:36px;}
}
@media(max-width:820px){
 .hero-grid{grid-template-columns:minmax(0,1fr);gap:32px;}.hero-copy{max-width:660px;}.hero h1{font-size:3rem;}.plan{max-width:none;}
 .hero{padding:36px 0;}.plan-steps li a{padding:12px 0;}.plan-head h2{font-size:1.4375rem;}
 .duo,.tools-panel{grid-template-columns:minmax(0,1fr);}.tools-panel{padding:28px;}.tools-panel h2 br{display:none;}
 .steps{grid-template-columns:repeat(2,minmax(0,1fr));}.step:nth-child(2){border-right:0;}.step:nth-child(3){padding-left:0;}
 .footer-main{flex-direction:column;gap:24px;}.topic-list{column-gap:28px;}
}
@media(max-width:680px){
 :root{--gutter:20px;}.header-row{height:64px;gap:8px;}.brand{gap:8px;}.brand-name{font-size:0.875rem;}.brand-mark{width:28px;height:30px;}.header-actions{gap:0;}.header-question{display:none;}
 .hero h1{font-size:2.4375rem;}.eyebrow{font-size:var(--text-small);}.hero .lede{font-size:0.9375rem;line-height:1.7;margin-bottom:24px;}
 .hero-examples{font-size:var(--text-small);gap:6px 12px;}.bigsearch-box input{font-size:1rem;padding-left:8px;}.bigsearch-box .btn{padding:10px 15px;font-size:var(--text-small);}
 .section{padding:38px 0;}.section-head{margin-bottom:23px;}.section-head h2{font-size:1.5rem;line-height:1.25;}.section-index{display:none;}
 .steps{grid-template-columns:minmax(0,1fr);}.step,.step:not(:first-child){padding:22px 0;border-right:0;}.step-title{font-size:1.1875rem;}.step p{font-size:0.875rem;}.step-no{font-size:var(--text-small);}.step-meta{font-size:var(--text-small);}
 .q-row{grid-template-columns:24px minmax(0,1fr) 18px;gap:12px;padding:18px 0;}.q-title{font-size:0.875rem;line-height:1.6;}
 .topic-list{grid-template-columns:minmax(0,1fr);}.topic-row .topic-count{grid-row:auto;grid-column:1;margin-top:6px;}.topic-row{grid-template-columns:minmax(0,1fr);}.topic-row h3{font-size:1.0625rem;}.topic-row p{font-size:var(--text-small);}
 .tools-panel{padding:25px 22px;}.tools-panel h2{font-size:1.5625rem;}.tool-tile{gap:12px;}.tool-tile strong{font-size:0.875rem;}.tool-tile small{font-size:var(--text-small);}
 .author-intro{grid-template-columns:64px minmax(0,1fr);gap:16px;}.author-intro img{width:64px;height:82px;}.author-intro h2{font-size:1.125rem;}.author-intro .eyebrow{font-size:var(--text-small);}
 .question-strip .container{align-items:flex-start;flex-direction:column;gap:18px;}.question-strip h2{font-size:1.1875rem;}.question-strip p{font-size:var(--text-small);}
 .article-hero h1{font-size:1.875rem;}.article-hero{padding:24px 0 28px;}.article-meta{font-size:var(--text-small);gap:8px;}.article-hero .standfirst{font-size:0.9375rem;}.crumbs{font-size:var(--text-small);line-height:1.6;}
 .article-layout{padding-top:26px;gap:0;}.prose{font-size:1rem;line-height:1.8;}.prose h2{font-size:1.4375rem;}.answer p{font-size:1.0625rem;}.keypoints{padding:17px 18px;}.prose .keypoints li{font-size:var(--text-small);}
 .example-row{flex-direction:column;gap:6px;}.example-row .num{text-align:left;}.example{padding:16px;}.lesson-completion{padding:20px;}.lesson-nav .ttl{font-size:0.9375rem;}
 .read-next-list a{flex-direction:column;gap:6px;}.author-box{grid-template-columns:64px minmax(0,1fr);gap:16px;}.author-box img{width:64px;height:82px;}
 .library-hero h1{font-size:1.9375rem;}.library-hero .lede{font-size:0.875rem;}.library-controls{align-items:stretch;gap:14px;}.library-controls label{width:100%;}.library-controls .text-button{margin-left:0;text-align:left;}
 .result-row{align-items:flex-start;flex-direction:column;gap:12px;}.result-row h2{font-size:1.0625rem;}.result-meta{font-size:var(--text-small);}.results-count{overflow-wrap:anywhere;}
}
@media(max-width:360px){:root{--gutter:16px;}.brand-name{font-size:var(--text-small);}.brand{gap:6px;}.brand-mark{width:26px;}.header-icon-btn{width:40px;}.hero h1{font-size:2.1875rem;}.plan{padding:22px 18px;}.plan-steps li .t{font-size:var(--text-small);}.plan-steps li a{gap:9px;}}
@media print{.site-header,.site-footer,.rail,.toc-mobile,.lesson-glossary,.lesson-completion,.lesson-nav,.read-next{display:none!important;}body{background:#fff;}.article-layout{display:block;padding:0;max-width:none;}.article-hero{padding:0;border:0;}.prose{font-size:11pt;}.article-figure{break-inside:avoid;}}
.prose h2 .section-step { display:block; font:500 var(--text-small)/1.5 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--brand-dark); margin-bottom:10px; }
.inline-term { display:inline; padding:0; font:inherit; color:var(--brand-dark); border-bottom:1px dotted currentColor; cursor:pointer; }
.inline-term>span {display:inline-block;font:600 0.625rem var(--font-body);vertical-align:super;margin-left:3px;}
.inline-definition {font-size:.9em;font-weight:400;color:var(--ink-2);background:var(--brand-soft);}

/* v2.3: full content, glossary and tools share the same restrained layout. */
[hidden]{display:none!important;}
.library-section .bigsearch{max-width:760px;margin-bottom:28px;}
.crumbs{flex-wrap:wrap;}
.category-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.6fr);gap:64px;align-items:start;}
.category-layout h2,.course-module h2,.calc-container h2,.read-next h2{font-size:1.4375rem;line-height:1.4;}
.category-start{background:var(--brand-soft);padding:28px;border-radius:6px;}
.category-start .read-next-list{margin-bottom:24px;}
.category-start .read-next-list a{align-items:flex-start;flex-direction:column;gap:8px;}
.read-next-list a{display:flex;justify-content:space-between;align-items:baseline;gap:24px;min-width:0;padding:20px 0;border-bottom:1px solid var(--line);}
.read-next-list a>span:first-child{min-width:0;overflow-wrap:anywhere;}
.read-next-list .t{white-space:nowrap;font:var(--text-small) var(--font-mono);color:var(--ink-3);}
.course-module{max-width:860px;padding:32px 0;border-bottom:1px solid var(--line);}
.course-module:first-child{padding-top:0;}
.course-module>p:not(.eyebrow){font-size:0.9375rem;color:var(--ink-2);}
.course-module .link-more{display:inline-block;margin-top:20px;}
.narrow{max-width:840px;}
.definition{font-size:1.25rem;line-height:1.8;color:var(--ink);max-width:65ch;}
.term-links{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:32px;}
.term-links a{border:1px solid var(--line);border-radius:4px;padding:12px 16px;color:var(--brand-dark);font-size:0.875rem;}
.glossary-controls{max-width:850px;margin-bottom:24px;}
.glossary-controls>label{display:block;font-size:0.875rem;font-weight:600;margin-bottom:12px;}
.glossary-controls>input{width:100%;max-width:580px;background:white;border:1px solid #acbbb4;padding:16px;border-radius:5px;font:1rem var(--font-body);}
.alphabet{display:flex;flex-wrap:wrap;gap:6px;margin:24px 0;}
.alphabet button{min-width:44px;min-height:44px;padding:10px 13px;border:1px solid var(--line);border-radius:4px;font:500 var(--text-small) var(--font-body);}
.alphabet button[aria-pressed=true]{background:var(--brand-dark);color:white;border-color:var(--brand-dark);}
#term-status{font-size:var(--text-small);color:var(--ink-3);}
.glossary-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 36px;}
.glossary-list>a{min-width:0;display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:65px;padding:16px 0;border-bottom:1px solid var(--line);font-size:0.875rem;overflow-wrap:anywhere;}
.glossary-list>a:hover{color:var(--brand-dark);}
.glossary-list>a span{color:var(--brand-dark);}
.calculator-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
.calculator-card{display:flex;flex-direction:column;padding:32px;background:#fff;border:1px solid var(--line);border-radius:6px;}
.calculator-card h2{font-size:1.375rem;line-height:1.4;margin:16px 0;}
.calculator-card p{font-size:0.875rem;line-height:1.8;color:var(--ink-2);margin-bottom:24px;}
.calculator-card .link-more{margin-top:auto;}
.calc-container{max-width:1000px;}
.calc-widget{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:start;}
.calc-fields h2{margin-top:0;}
.calc-intro{font-size:var(--text-small);color:var(--ink-3);margin-bottom:28px;}
.calc-field{display:flex;flex-direction:column;gap:8px;margin:0 0 22px;}
.calc-label{font-size:0.875rem;font-weight:600;line-height:1.5;}
.calc-field input,.calc-field select{width:100%;min-height:48px;border:1px solid #acbbb4;background:white;border-radius:4px;padding:12px;color:var(--ink);font:1rem var(--font-body);}
.calc-field [aria-invalid=true]{border-color:#a5302c;outline-color:#a5302c;}
.calc-field-error{color:#a5302c;font-size:var(--text-small);}
.calc-hint{color:var(--ink-3);font-size:var(--text-small);line-height:1.7;}
.calc-output{background:var(--brand-soft);border:1px solid var(--line);padding:28px;border-radius:6px;position:sticky;top:110px;}
.calc-result{border-bottom:1px solid #cad9d0;padding:22px 0;}
.calc-result-label{display:block;font-size:var(--text-small);line-height:1.6;color:var(--ink-2);}
.calc-result-value{display:block;font:500 clamp(1.5rem,3vw,2.25rem)/1.4 var(--font-mono);color:var(--brand-dark);margin-top:8px;overflow-wrap:anywhere;}
.calc-disclaimer{font-size:var(--text-small);line-height:1.8;color:var(--ink-2);margin:22px 0 0;}
.calc-explanation{margin-top:44px;padding-top:28px;border-top:1px solid var(--line);font-size:0.875rem;line-height:1.8;}
.calc-formula{padding:20px;background:white;border-left:3px solid var(--brand-dark);overflow-wrap:anywhere;}
.article-body{min-width:0;overflow-wrap:anywhere;}
.article-body img,.article-body svg{max-width:100%;height:auto;}
.article-body figure{max-width:100%;margin:28px 0;}
.article-body figcaption{font-size:var(--text-small);line-height:1.7;color:var(--ink-3);margin-top:12px;}
.article-body pre{overflow:auto;max-width:100%;font-size:var(--text-small);padding:16px;background:var(--brand-soft);}
.article-body blockquote{border-left:3px solid var(--brand-dark);padding:4px 20px;margin:28px 0;color:var(--ink-2);}
.article-body details,.article-faq details{border-bottom:1px solid var(--line);padding:14px 0;}
.article-body summary,.article-faq summary{font-weight:600;line-height:1.6;cursor:pointer;min-height:44px;padding:8px 4px;}
.article-faq{margin-top:40px;}
.article-faq details>div{padding:12px 4px;font-size:0.9375rem;line-height:1.8;}
.sources small{font-size:inherit;color:var(--ink-3);}
.sources li{scroll-margin-top:110px;}
.static-wrap{padding:36px 0 64px;}
.static-wrap>.container{max-width:860px;display:block;}
.static-wrap h1{font:600 clamp(1.75rem,4vw,2.625rem)/1.25 var(--font-display);margin:28px 0 20px;}
.static-wrap h2{font-size:1.5rem;line-height:1.4;margin:36px 0 16px;}
.static-wrap h3{font-size:1.1875rem;margin:28px 0 14px;}
.static-wrap p,.static-wrap li{font-size:1rem;line-height:1.9;}
.static-wrap ul,.static-wrap ol{padding-left:24px;margin:16px 0;}
.static-wrap a{color:var(--brand-dark);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere;}
.static-wrap img{max-width:100%;height:auto;}
.static-wrap .breadcrumb{font-size:var(--text-small);display:flex;gap:12px;flex-wrap:wrap;}
@media(max-width:900px){.category-layout{grid-template-columns:1fr;gap:32px;}.category-start .read-next-list a{flex-direction:row;}.glossary-list{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:680px){
 .category-start{padding:22px;}.category-start .read-next-list a,.read-next-list a{align-items:flex-start;flex-direction:column;gap:8px;}
 .glossary-list,.calculator-cards,.calc-widget{grid-template-columns:minmax(0,1fr);}.glossary-list{gap:0;}.calc-widget{gap:28px;}
 .calc-output{position:static;padding:22px;}.calculator-card{padding:24px;}.calculator-card h2{font-size:1.3125rem;}.definition{font-size:1.125rem;}
 .category-layout h2,.course-module h2,.calc-container h2{font-size:1.375rem;}.static-wrap h2{font-size:1.4375rem;}
 .article-faq summary{font-size:0.9375rem;}.library-controls{margin-top:24px;}
}
@media print{.calc-output{position:static;}.calc-widget{display:block;}.alphabet,.glossary-controls{display:none;}.article-faq details>div{display:block;}}
.article-summary{background:var(--brand-soft);padding:24px 28px;border-radius:5px;margin-bottom:32px;}
.article-summary .eyebrow{font-size:var(--text-small);margin:0 0 14px;}
.article-summary>p:last-child{font-size:0.9375rem;line-height:1.9;margin:0;}
.alphabet-filter{margin:20px 0;border-bottom:1px solid var(--line);}
.alphabet-filter summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:var(--text-small);font-weight:600;}
.alphabet-filter .alphabet{margin:12px 0 20px;}
.calc-currency{font-size:var(--text-small);line-height:1.7;color:var(--ink-2);margin-top:16px;}
@media(max-width:680px){.article-summary{padding:20px;}.article-summary>p:last-child{font-size:0.875rem;}}

/* v2.4: explanations, illustrated examples and an explicit route into practice. */
.prose .summary-points{padding-left:20px;margin:18px 0 0;}
.prose .summary-points li{font-size:0.875rem;line-height:1.8;margin:7px 0;padding-left:3px;}
.concept-lab{margin:34px 0 42px;border-bottom:1px solid var(--line);padding-bottom:26px;}
.prose .concept-lab h2,.prose .practice h2{font-size:1.4375rem;margin:0 0 20px;}
.learning-figure{margin:18px 0!important;}
.learning-figure svg{width:100%;max-width:560px;height:auto;margin:auto;}
.diagram-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.learning-figure .diagram-scroll svg{display:block;min-width:var(--diagram-min-width,22.5rem);}
@media print{.diagram-scroll{overflow:visible;}.learning-figure .diagram-scroll svg{min-width:0;}}
.learning-figure figcaption,.visual-note{font-size:var(--text-support)!important;line-height:1.8;color:var(--ink-2);margin:16px 0 0;}
.learning-table table{font-size:0.875rem;line-height:1.65;min-width:460px;}
.learning-table caption{text-align:left;font-size:0.875rem;font-weight:600;color:var(--ink);padding:0 0 14px;}
.learning-table th[scope=row]{background:transparent;font-weight:600;}
.learning-table th,.learning-table td{vertical-align:top;}
.table-scroll:focus-visible{outline:3px solid var(--brand-dark);outline-offset:4px;}
.practice{margin:48px 0 32px;padding:28px;background:#eef4ef;border-left:3px solid var(--brand-dark);}
.practice>.eyebrow{font-size:var(--text-small);margin:0 0 14px;}
.practice>p{font-size:1rem;line-height:1.8;}
.practice details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0;}
.practice details p{font-size:0.9375rem;line-height:1.8;}
.prose .practice .btn{color:#fff;text-decoration:none;font-size:var(--text-small);white-space:normal;text-align:left;}
.practice-next{display:block;font-size:var(--text-small);line-height:1.8;margin-top:22px;}
.calc-examples{margin-bottom:36px;border-bottom:1px solid var(--line);padding-bottom:24px;}
.calc-examples h2{font-size:1.25rem;margin-top:0;}
.example-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0;}
.example-buttons button{padding:12px 16px;border:1px solid #93aaa1;border-radius:5px;background:#fff;font-size:var(--text-small);line-height:1.6;min-height:44px;text-align:left;}
.example-buttons button[aria-pressed=true]{border-color:var(--brand-dark);background:var(--brand-dark);color:white;}
#example-note{font-size:0.875rem;line-height:1.8;color:var(--ink-2);max-width:85ch;}
.calc-output{position:static;}
.result-unit{display:block;font-size:var(--text-small);color:var(--ink-2);margin-top:3px;}
.result-meaning{margin-top:24px;border-top:1px solid #cad9d0;padding-top:22px;}
.result-meaning h3{font-size:1.0625rem;margin:0 0 12px;}
#calc-meaning{font-size:var(--text-small);line-height:1.85;margin:0;min-height:70px;}
.return-to-lesson{display:inline-block;margin-top:20px;font-weight:600;color:var(--brand-dark);}
.result-jump{display:inline-block;font-size:var(--text-small);margin:16px 0 0;min-height:44px;padding:12px 0;}
.calc-result-heading{scroll-margin-top:110px;}
.source-review{font-size:var(--text-small);color:var(--ink-2);line-height:1.8;margin-top:18px;}
:focus-visible{outline:3px solid #00634f;outline-offset:4px;}
.practice details[open] summary{margin-bottom:8px;}
@media(max-width:680px){.practice{padding:22px 18px;}.practice>p{font-size:0.9375rem;}.concept-lab{margin:28px 0;}.prose .concept-lab h2,.prose .practice h2{font-size:1.3125rem;}.learning-table th,.learning-table td{padding:11px;}.calc-examples{padding-bottom:16px;}.example-buttons{flex-direction:column;}.example-buttons button{width:100%;}.article-summary{padding:20px 18px;}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important;}*,*::before,*::after{animation:none!important;transition:none!important;}}
@media(forced-colors:active){.example-buttons button[aria-pressed=true],.alphabet button[aria-pressed=true]{outline:2px solid Highlight;}.learning-figure svg{forced-color-adjust:none;}}
@media print{.practice .btn,.practice-next,.calc-examples{display:none;}.learning-table{overflow:visible;}.learning-table table{min-width:0;font-size:10pt;}.learning-figure{break-inside:avoid;}.learning-figure svg{max-width:380px;}.practice details::details-content,.article-faq details::details-content{content-visibility:visible!important;}}
/* ToC links no longer expand outside the scrolling sidebar. */
.rail-toc .toc-list a{margin-left:0;margin-right:0;overflow-wrap:anywhere;}

/* Summary uses native bullets instead of the decorative prose marker. */
.prose .summary-points{list-style:disc;}
.prose .summary-points li::before{display:none;}

.learning-table th[scope=row]{min-width:100px;overflow-wrap:normal;}
.learning-table caption span{display:block;max-width:calc(100vw - var(--gutter) - var(--gutter) - 16px);}

/* Old article fragments remain valid without adding empty ToC items. */
.legacy-anchor{display:block;height:0;scroll-margin-top:90px}

/* v2.6: a readable sequence from the basics to one demo exercise. */
.basics-jumps{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:32px;}
.basics-jumps a{padding:14px 18px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-weight:600;}
.basics-jumps a:hover{border-color:var(--brand-dark);}
.basics-jumps span{display:block;font-size:var(--text-small);font-weight:400;color:var(--ink-2);margin-top:4px;}
.basics-practice-invite{display:flex;align-items:center;gap:24px;justify-content:space-between;background:var(--brand-soft);padding:28px;border-radius:12px;margin:0 0 48px;}
.basics-practice-invite h2{font-size:1.375rem;line-height:1.4;margin:8px 0;}
.basics-practice-invite p{margin-bottom:0;max-width:640px;}
.basics-practice-invite .btn{flex-shrink:0;}
.basics-group{margin:0 0 56px;}.basics-group h2{font-size:1.75rem;scroll-margin-top:110px;}.basics-group>p{color:var(--ink-2);margin:14px 0 28px;}
.demo-practice{max-width:860px;margin:0 0 64px;padding:32px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--brand-dark);border-radius:8px;scroll-margin-top:110px;}
.demo-practice h2{font-size:1.75rem;line-height:1.3;margin:10px 0 20px;}
.demo-intro{font-size:1rem;line-height:1.8;}.demo-storage{font-size:.875rem;color:var(--ink-2);line-height:1.7;}
.demo-progress{margin:24px 0;}.demo-progress progress{width:100%;height:12px;accent-color:var(--brand-dark);}.demo-progress p{font-size:.875rem;margin:8px 0;}
.demo-practice fieldset{margin:0;padding:0;border:0;min-width:0;}.demo-practice legend{font-size:.875rem;color:var(--ink-2);margin-bottom:12px;}
.demo-step{padding:16px 0;border-top:1px solid var(--line);}.demo-step label{display:flex;align-items:center;gap:14px;font-weight:600;min-height:44px;cursor:pointer;}.demo-step input{width:22px;height:22px;flex-shrink:0;accent-color:var(--brand-dark);margin:0;}.demo-step p{margin:4px 0 4px 36px;font-size:1rem;line-height:1.8;}.demo-calc-link{display:table;color:var(--brand-dark);text-decoration:underline;text-underline-offset:3px;padding:8px 0;line-height:1.8;}
.demo-note-label{display:block;font-weight:600;margin:20px 0 12px;}.demo-practice textarea{display:block;width:100%;max-width:100%;padding:14px;border:1px solid #78958b;border-radius:6px;font:inherit;resize:vertical;min-height:120px;}.demo-practice .text-button{min-height:44px;margin-top:12px;text-decoration:underline;}.demo-finish{border-left:3px solid var(--brand-dark);padding:12px 16px;background:var(--brand-soft);line-height:1.8;}
@media(max-width:680px){.basics-jumps{display:grid;grid-template-columns:1fr;width:100%;}.basics-practice-invite{display:block;padding:22px;}.basics-practice-invite .btn{margin-top:20px;white-space:normal;}.demo-practice{padding:20px 16px;}.demo-step p{margin-left:0;}.demo-practice h2,.basics-group h2{font-size:1.5rem;}}
@media print{.demo-practice{break-before:page;}.demo-practice textarea{border:1px solid #777;}.demo-practice #demo-reset{display:none;}}

#search-results{min-height:360px;}
.results-count{min-height:1.55em;}

.table-scroll-hint{font-size:var(--text-small);line-height:1.7;color:var(--ink-2);margin:20px 0 12px;}
@media print{.table-scroll-hint{display:none;}}

/* Keep controls reachable when the user enlarges the default text size. */
h1,h2,h3,h4{overflow-wrap:anywhere;}
.header-row{height:auto;min-height:76px;padding-top:14px;padding-bottom:14px;}
.site-header .brand{flex:0 1 auto;min-width:0;}
.site-header .brand-name{min-width:0;white-space:normal;overflow-wrap:anywhere;}
.brand-mark{flex-shrink:0;}
.plan-number{width:1.25rem;}.tool-tile>div{min-width:0;overflow-wrap:anywhere;}
.tools-grid{grid-template-columns:minmax(0,1fr);}
.update-row{grid-template-columns:max-content minmax(0,1fr);}
@media(max-width:1100px){.header-row{min-height:66px;}}
@media(max-width:680px){.header-row{min-height:64px;padding-top:10px;padding-bottom:10px;}.q-row{grid-template-columns:1.5rem minmax(0,1fr) 1.125rem;}}

.tool-tile > :nth-child(2){min-width:0;overflow-wrap:anywhere;}
.q-arrow{font-size:clamp(.75rem,2vw,1rem);}
/* v2.7: evidence notes and a transparent two-offer cost model. */
.broker-invites{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:36px;}
.broker-invites .basics-practice-invite{display:flex;flex-direction:column;align-items:flex-start;margin:0;}
.broker-invites .btn{white-space:normal;}
.broker-tool{margin:44px 0;padding:28px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--brand-dark);border-radius:8px;min-width:0;}
.prose .broker-tool h2{margin-top:8px;font-size:1.5rem;}
.broker-tool .tool-note{font-size:.875rem;color:var(--ink-2);line-height:1.75;}
.broker-tool fieldset{border:0;padding:0;margin:24px 0;min-width:0;}
.broker-tool legend{font-weight:600;margin-bottom:16px;max-width:100%;}
.broker-tool label{display:block;font-size:.9375rem;line-height:1.65;font-weight:600;min-width:0;}
.broker-tool label+label{margin-top:16px;}
.broker-tool input,.broker-tool textarea,.broker-tool select{display:block;width:100%;max-width:100%;min-width:0;min-height:44px;padding:10px 12px;margin-top:6px;border:1px solid #78958b;border-radius:5px;background:#fff;color:var(--ink);font:inherit;line-height:1.5;}
.broker-tool textarea{resize:vertical;min-height:110px;font-weight:400;}
.broker-tool label small{display:block;font-size:var(--text-small);font-weight:400;color:var(--ink-2);margin-top:6px;line-height:1.65;}
.broker-tool input[aria-invalid=true]{border:2px solid #983d33;}
.broker-tool [disabled]{opacity:.65;}
.broker-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.broker-fields label+label{margin-top:0;}
.broker-check-steps details{border-top:1px solid var(--line);padding:0;}
.broker-check-steps summary{cursor:pointer;padding:18px 4px;font-weight:600;line-height:1.6;min-height:44px;}
.broker-check-steps summary small{display:block;margin:5px 0 0 20px;font-size:var(--text-small);font-weight:400;color:var(--ink-2);}
.broker-check-steps details>p{font-size:.9375rem;}
.broker-check-steps fieldset{margin:16px 0 28px;}
.broker-tool .text-button{min-height:44px;text-align:left;margin:16px 0;padding:8px 0;text-decoration:underline;text-underline-offset:3px;line-height:1.6;}
.broker-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
.broker-offers fieldset{padding:18px;border:1px solid var(--line);border-radius:5px;}
.broker-offers legend{padding:0 8px;margin:0;}
.broker-tool [role=status]{font-size:.9375rem;line-height:1.7;}
#broker-cost-error{border-left:3px solid #983d33;padding:12px 16px;background:#fff5f2;}
.broker-total{background:var(--brand-soft);font-weight:700;}
.broker-formulas summary{cursor:pointer;min-height:44px;line-height:1.7;padding:12px 0;}
.broker-formulas p,.broker-formulas li{font-size:.9375rem;}
.broker-tool .learning-table{margin-left:0;margin-right:0;}
.broker-tool .learning-table td{font-variant-numeric:tabular-nums;white-space:nowrap;}
.broker-tool .learning-table caption{white-space:normal;}
@media(max-width:850px){.broker-invites{grid-template-columns:minmax(0,1fr);}}
@media(max-width:680px){.broker-tool{padding:20px 16px;}.broker-fields,.broker-offers{grid-template-columns:minmax(0,1fr);}.broker-offers{gap:0;}.broker-offers fieldset{margin:20px 0;}.broker-tool label{font-size:1rem;}}
@media print{.broker-tool .text-button{display:none;}.broker-check-steps details::details-content{content-visibility:visible!important;}.broker-tool{padding:16px;}.broker-tool textarea{height:auto;}.broker-invites{display:block;}}

.broker-tool .learning-table table{min-width:0;table-layout:fixed;}
.broker-tool .learning-table th:first-child{width:40%;min-width:0;}
.broker-tool .learning-table th,.broker-tool .learning-table td{padding:10px 8px;overflow-wrap:anywhere;white-space:normal;}
#broker-cost-caption{scroll-margin-top:110px;}

/* v2.7 readability: helper copy stays comfortable at every screen width. */
.eyebrow {letter-spacing:.06em;}
.hero-signature, .hero-signature a, .plan-intro, .plan-note,
.step p, .topic-row p, .tools-panel p:not(.eyebrow), .tool-tile small,
.author-intro p:not(.eyebrow), .question-strip p, .footer-brand p, .footer-risk,
.article-figure figcaption, .article-body figcaption, .prose .sources li,
.author-box p, .lesson-completion p, .library-note, .lesson-glossary,
.term-entry p, .calc-intro, .calc-hint, .calc-field-error, .calc-disclaimer,
.calc-currency, #calc-meaning, .source-review, .table-scroll-hint,
.broker-tool .tool-note, .broker-tool label small, .broker-check-steps summary small {
  font-size:var(--text-support);
  line-height:1.7;
}
.crumbs, .article-meta, .footer-bottom, .footer-main nav,
.course-progress label, .step-no, .step-meta, .lesson-nav .dir,
.result-category, .result-meta, .read-next-list .t {
  line-height:1.6;
}
.plan-steps li .t {font-size:var(--text-support);line-height:1.5;min-width:0;overflow-wrap:anywhere;}
.plan-number {width:1.5em;}
.plan-steps li a {display:grid;grid-template-columns:1.5em minmax(0,1fr) auto;}
.plan-steps li .m {white-space:nowrap;}
.course-progress label, .step-meta {flex-wrap:wrap;gap:6px 12px;}
.site-nav a {font-size:var(--text-support);}
@media (max-width:1200px) and (min-width:1101px) {
  .header-row {gap:16px;}
  .site-nav {margin-left:0;gap:0;}
  .site-nav a {padding-left:8px;padding-right:8px;}
}
@media (max-width:680px) {
  .library-controls select, .glossary-controls input {font-size:1rem;}
  .update-row {grid-template-columns:minmax(0,1fr);gap:6px;}
  .plan-steps li a {grid-template-columns:1.5em minmax(0,1fr);gap:4px 12px;align-items:start;}
  .plan-steps li .m {grid-column:2;margin-left:0;}
}

/* Allow long summary words to reflow when readers enlarge text. */
.article-summary{overflow-wrap:anywhere;}
