/* =================================================================
   Novin Pak — retirement income, one source at a time
   Technical data-sheet language: graph-paper ground,
   1px ink boxes, mono metadata strips, numbered Files and lettered
   Dossiers, and "The working" calculation table.
   Prefix: np-
   ================================================================= */

@font-face { font-family: 'Monument Grotesk'; font-weight: 400; font-style: normal; font-display: swap; src: url('fonts/MonumentGrotesk-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Monument Grotesk'; font-weight: 500; font-style: normal; font-display: swap; src: url('fonts/MonumentGrotesk-Medium.woff2') format('woff2'); }
@font-face { font-family: 'Monument Grotesk'; font-weight: 700; font-style: normal; font-display: swap; src: url('fonts/MonumentGrotesk-Bold.woff2') format('woff2'); }
@font-face { font-family: 'Sohne Mono'; font-weight: 400; font-style: normal; font-display: swap; src: url('fonts/SohneMono-Buch.woff2') format('woff2'); }

:root {
  --page: #DDDCD4;
  --paper: #F2F1EA;
  --paper-2: #EBEAE2;
  --grid: #E4E3DA;
  --ink: #1B1C18;
  --body: #45463D;
  --muted: #6A6B60;
  --line: #C9C8BD;
  --hair: #E0DFD4;
  --green: #0F6B3C;
  --green-d: #0C5530;
  --green-l: #9CC7AE;
  --green-t: #C4DCCE;
  --res: #E9F0E9;
  --red: #A33B22;
  --red-bg: #F7EBE6;
  --red-l: #E7C9BE;
  --sans: 'Monument Grotesk', 'Helvetica Neue', Arial, sans-serif;
  --mono: 'Sohne Mono', 'SFMono-Regular', Menlo, Consolas, monospace;
  --pad: 40px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 16px; }
body { margin: 0; background: var(--page); color: var(--ink); font-family: var(--sans); font-size: 17px; line-height: 1.6; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--green); }
b, strong { font-weight: 700; }
h1, h2, h3 { text-wrap: pretty; }
button, input { font: inherit; }
:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }

.np-skip { position: absolute; left: -9999px; top: 0; }
.np-skip:focus { left: 16px; top: 16px; z-index: 100; background: var(--ink); color: var(--paper); padding: 10px 14px; font-family: var(--mono); font-size: 13px; }
.np-red { color: var(--red); font-weight: 400; }

/* ---------- Sheet ---------- */
.np-sheet {
  max-width: 1280px; margin: 0 auto; overflow: hidden;
  background-color: var(--paper);
  background-image: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 32px 32px;
}

/* ---------- Disclosure strip ---------- */
.np-disclosure {
  display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  padding: 8px var(--pad); background: var(--paper-2); border-bottom: 1px solid var(--ink);
  font-family: var(--mono); font-size: 12px; color: var(--ink);
}
.np-disclosure-l { display: inline-flex; align-items: center; gap: 10px; }
.np-disclosure-l i { width: 9px; height: 9px; background: var(--red); flex: none; }
.np-disclosure b { font-weight: 400; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--red); }
.np-disclosure-r { color: var(--muted); }

/* ---------- Masthead ---------- */
.np-masthead { background: var(--paper); border-bottom: 1px solid var(--ink); }
.np-mast-top { display: flex; justify-content: space-between; align-items: stretch; border-bottom: 1px solid var(--ink); }
.np-brand { display: block; padding: 24px var(--pad) 20px; }
.np-brand:hover { color: var(--ink); }
.np-wordmark { display: block; font-size: 38px; font-weight: 700; letter-spacing: -0.025em; line-height: 1.25; }
.np-brand-sub { display: block; font-family: var(--mono); font-size: 11.5px; color: var(--muted); margin-top: 8px; }
.np-mast-card {
  display: grid; grid-template-columns: auto auto; align-content: center; column-gap: 18px; row-gap: 4px;
  padding: 16px var(--pad); border-left: 1px solid var(--ink);
  font-family: var(--mono); font-size: 11px; color: var(--muted);
}
.np-mast-card b { font-weight: 400; color: var(--ink); font-size: 13px; text-align: right; }

.np-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; font-family: var(--mono); font-size: 13px; }
.np-tabs a { display: flex; align-items: center; gap: 9px; padding: 11px 18px; border-right: 1px solid var(--line); position: relative; }
.np-tabs a:nth-child(4) { border-right: 0; }
.np-tab-l {
  display: inline-grid; place-items: center; width: 22px; height: 22px; flex: none;
  border: 1px solid var(--ink); font-size: 11.5px; line-height: 1;
}
.np-tabs a.is-tax .np-tab-l { border-color: var(--red); color: var(--red); }
.np-tabs a[aria-current="page"] { background: var(--res); }
.np-tabs a[aria-current="page"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--green); }
.np-tabs a.is-tax[aria-current="page"] { background: var(--red-bg); }
.np-tabs a.is-tax[aria-current="page"]::after { background: var(--red); }
.np-tabs a.np-tab-letter { background: var(--ink); color: var(--paper); border-right: 0; border-left: 1px solid var(--ink); padding: 11px 26px; }
.np-tabs a.np-tab-letter:hover, .np-tabs a.np-tab-letter.is-current { background: var(--green); color: var(--paper); }

/* ---------- Generic box + strips ---------- */
.np-main { padding: 32px var(--pad) 0; }
.np-box { border: 1px solid var(--ink); background: var(--paper); }
.np-box + .np-box, .np-gap { margin-top: 24px; }
.np-strip {
  display: flex; align-items: center; gap: 8px; padding: 8px 16px; border-bottom: 1px solid var(--ink);
  font-family: var(--mono); font-size: 11px; color: var(--muted); line-height: 1.4; letter-spacing: 0.02em;
}
.np-strip img { width: 13px; height: 13px; flex: none; }
.np-strip a:hover { color: var(--green); }
.np-strip--split { justify-content: space-between; padding: 0; }
.np-strip--split > span { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; }
.np-strip-r { border-left: 1px solid var(--line); text-align: right; }

.np-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px; cursor: pointer; border-radius: 0;
  font-family: var(--sans); font-size: 15px; font-weight: 700; padding: 13px 20px; line-height: 1.2;
}
.np-btn--ink { background: var(--ink); color: var(--paper); border: 1px solid var(--ink); }
.np-btn--ink:hover { background: var(--green); border-color: var(--green); color: var(--paper); }
.np-btn--line { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.np-btn--line:hover { background: var(--ink); color: var(--paper); }

/* ---------- Photo treatment: "plates" ---------- */
.np-plate { margin: 0; }
.np-plate-frame { position: relative; border: 1px solid var(--ink); background: var(--ink); overflow: hidden; }
.np-plate-frame img, .np-photo { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; filter: saturate(.72) contrast(1.06) brightness(1.02); }
.np-plate-frame::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(242, 241, 234, .10), rgba(15, 107, 60, .06));
  mix-blend-mode: multiply;
}
.np-plate figcaption { margin-top: 8px; font-family: var(--mono); font-size: 11px; color: var(--muted); letter-spacing: 0.02em; }

/* =================================================================
   HOMEPAGE
   ================================================================= */
.np-home-title { position: absolute; left: -9999px; }

/* Lead file: photo left, text right */
.np-lead-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.np-lead-media { border-right: 1px solid var(--ink); background: var(--ink); position: relative; min-height: 100%; }
.np-lead-media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto; min-height: 380px; filter: saturate(.72) contrast(1.06); }
.np-lead-plate { position: absolute; left: 0; bottom: 0; background: var(--paper); border-top: 1px solid var(--ink); border-right: 1px solid var(--ink); padding: 6px 12px; font-family: var(--mono); font-size: 10.5px; color: var(--muted); }
.np-lead-text { padding: 30px 36px 32px; display: flex; flex-direction: column; }
.np-lead-label { margin: 0 0 14px; font-family: var(--mono); font-size: 11.5px; color: var(--red); }
.np-lead-text h2 { margin: 0; font-size: clamp(30px, 3.3vw, 42px); font-weight: 700; line-height: 1.06; letter-spacing: -0.02em; }
.np-lead-text h2 a:hover { color: var(--ink); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; text-decoration-color: var(--green); }
.np-lead-ex { margin: 16px 0 0; font-size: 17.5px; line-height: 1.6; color: var(--body); }
.np-figs { margin-top: 22px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.np-figs > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: baseline; gap: 14px; padding: 9px 0; }
.np-figs > div + div { border-top: 1px solid var(--hair); }
.np-fig-v { font-family: var(--mono); font-size: 21px; line-height: 1.15; white-space: nowrap; }
.np-fig-v.is-g { color: var(--green); }
.np-fig-v.is-r { color: var(--red); }
.np-fig-l { font-family: var(--mono); font-size: 10.5px; color: var(--muted); text-transform: uppercase; line-height: 1.35; }
.np-lead-go { margin-top: auto; padding-top: 26px; }
.np-lead-go a { display: inline-flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 13px; border: 1px solid var(--ink); padding: 11px 16px; }
.np-lead-go a:hover { background: var(--ink); color: var(--paper); }
.np-lead-go a:hover img { filter: invert(1); }

/* Income ledger: one row per source */
.np-ledger-head, .np-ledger-row { display: grid; grid-template-columns: 64px minmax(0, 1.05fr) minmax(0, 1.5fr) 128px; }
.np-ledger-head { font-family: var(--mono); font-size: 10.5px; color: var(--muted); border-bottom: 1px solid var(--line); background: var(--paper-2); }
.np-ledger-head span { padding: 7px 16px; }
.np-ledger-row { border-bottom: 1px solid var(--hair); }
.np-ledger-row:last-child { border-bottom: 0; }
.np-ledger-letter { display: grid; place-items: center; border-right: 1px solid var(--line); font-family: var(--mono); font-size: 26px; }
.np-ledger-src { padding: 18px 20px; border-right: 1px solid var(--hair); }
.np-ledger-src h3 { margin: 0; display: flex; align-items: center; gap: 9px; font-size: 21px; font-weight: 700; line-height: 1.2; }
.np-ledger-src h3 img { width: 16px; height: 16px; }
.np-ledger-src p { margin: 6px 0 0; font-size: 14.5px; line-height: 1.5; color: var(--body); }
.np-ledger-role { display: block; font-family: var(--mono); font-size: 10.5px; color: var(--muted); margin-top: 8px; text-transform: uppercase; }
.np-ledger-files { padding: 12px 20px; display: flex; flex-direction: column; justify-content: center; }
.np-ledger-files a { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 8px; padding: 6px 0; font-size: 15px; font-weight: 500; line-height: 1.35; }
.np-ledger-files a span { font-family: var(--mono); font-size: 11.5px; color: var(--muted); font-weight: 400; padding-top: 2px; }
.np-ledger-count { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 8px; padding: 16px; border-left: 1px solid var(--hair); font-family: var(--mono); font-size: 12px; }
.np-ledger-count b { font-weight: 400; font-size: 22px; }
.np-ledger-count a { display: inline-flex; align-items: center; gap: 7px; border-bottom: 1px solid var(--ink); }
.np-ledger-row.is-tax { background: var(--red-bg); }
.np-ledger-row.is-tax .np-ledger-letter { color: var(--red); border-right-color: var(--red-l); }
.np-ledger-row.is-tax .np-ledger-role { color: var(--red); }
.np-ledger-row.is-tax .np-ledger-count b { color: var(--red); }
.np-ledger-row.is-cpp .np-ledger-count b { color: var(--green); }
.np-ledger-foot { padding: 10px 16px; border-top: 1px solid var(--ink); font-family: var(--mono); font-size: 11px; color: var(--muted); background: var(--paper-2); }

/* Recent files + side column */
.np-row { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; margin-top: 24px; align-items: start; }
.np-recent-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.np-recent { display: flex; flex-direction: column; border-bottom: 1px solid var(--line); }
.np-recent:nth-child(odd) { border-right: 1px solid var(--line); }
.np-recent:nth-last-child(-n+2) { border-bottom: 0; }
.np-recent img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-bottom: 1px solid var(--line); filter: saturate(.72) contrast(1.06); }
.np-recent-meta { padding: 12px 18px 0; font-family: var(--mono); font-size: 11px; color: var(--muted); }
.np-recent h3 { margin: 6px 0 0; padding: 0 18px; font-size: 20px; font-weight: 700; line-height: 1.22; }
.np-recent p { margin: 8px 0 0; padding: 0 18px 20px; font-size: 14.5px; line-height: 1.55; color: var(--body); }
.np-recent:hover h3 { color: var(--green); }

.np-side { display: flex; flex-direction: column; gap: 24px; }
.np-undo { border: 1px solid var(--red); background: var(--red-bg); }
.np-undo .np-strip { color: var(--red); border-bottom-color: var(--red); }
.np-undo p { margin: 0; padding: 14px 16px 4px; font-size: 14.5px; line-height: 1.55; color: var(--body); }
.np-undo ol { list-style: none; margin: 0; padding: 4px 0 6px; counter-reset: u; }
.np-undo li { counter-increment: u; display: grid; grid-template-columns: 36px minmax(0, 1fr); padding: 10px 16px 10px 0; border-top: 1px solid var(--red-l); font-size: 14.5px; line-height: 1.45; }
.np-undo li::before { content: counter(u, decimal-leading-zero); font-family: var(--mono); font-size: 11.5px; color: var(--red); padding: 2px 0 0 16px; }
.np-undo li a { display: block; margin-top: 4px; font-family: var(--mono); font-size: 11.5px; color: var(--red); }
.np-undo li a:hover { text-decoration: underline; }

/* Glossary */
.np-gloss { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.np-gloss > div { padding: 16px 18px 18px; border-right: 1px solid var(--hair); border-bottom: 1px solid var(--hair); }
.np-gloss > div:nth-child(4n) { border-right: 0; }
.np-gloss > div:nth-last-child(-n+4) { border-bottom: 0; }
.np-gloss dt { font-family: var(--mono); font-size: 14px; color: var(--ink); }
.np-gloss dd { margin: 6px 0 0; font-size: 14px; line-height: 1.5; color: var(--body); }
.np-gloss dd a { display: inline-block; margin-top: 6px; font-family: var(--mono); font-size: 11px; color: var(--green); border-bottom: 1px solid var(--green-l); }

/* Register table */
.np-register { width: 100%; border-collapse: collapse; font-size: 16px; }
.np-register th { text-align: left; font-family: var(--mono); font-weight: 400; font-size: 10.5px; color: var(--muted); padding: 8px 16px; border-bottom: 1px solid var(--line); background: var(--paper-2); }
.np-register td { padding: 13px 16px; border-bottom: 1px solid var(--hair); vertical-align: baseline; }
.np-register tr:last-child td { border-bottom: 0; }
.np-register .c-no, .np-register .c-cat, .np-register .c-min { font-family: var(--mono); font-size: 12.5px; color: var(--muted); white-space: nowrap; }
.np-register .c-min { text-align: right; }
.np-register .c-title a { font-weight: 500; }
.np-register .c-title small { display: inline-block; margin-left: 8px; font-family: var(--mono); font-size: 10.5px; color: var(--red); }
.np-register tr:hover td { background: var(--res); }

/* =================================================================
   ARTICLE
   ================================================================= */
.np-art-head { padding: 40px 48px 8px; max-width: 980px; }
.np-adlabel { margin: 0 0 16px; }
.np-adlabel span { display: inline-block; font-family: var(--mono); font-size: 12px; color: var(--red); border: 1px solid var(--red); background: var(--red-bg); padding: 5px 10px; line-height: 1.4; }
.np-h1 { margin: 0; font-size: clamp(31px, 3.7vw, 46px); font-weight: 700; line-height: 1.07; letter-spacing: -0.02em; }
.np-standfirst { margin: 18px 0 0; font-size: 19px; line-height: 1.6; color: var(--body); max-width: 44em; }
.np-keyfigs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 22px; border: 1px solid var(--ink); background: var(--paper); max-width: 760px; }
.np-keyfigs > div { padding: 12px 16px; }
.np-keyfigs > div + div { border-left: 1px solid var(--line); }
.np-keyfig-v { font-family: var(--mono); font-size: 25px; line-height: 1.15; }
.np-keyfig-v.is-g { color: var(--green); }
.np-keyfig-l { font-family: var(--mono); font-size: 10.5px; color: var(--muted); margin-top: 4px; text-transform: uppercase; line-height: 1.35; }

.np-art-grid { display: grid; grid-template-columns: 270px minmax(0, 720px); gap: 52px; justify-content: center; padding: 32px 48px 56px; }
.np-art-aside { display: flex; flex-direction: column; gap: 20px; align-self: start; }
.np-aside-box { border: 1px solid var(--ink); background: var(--paper); }
.np-toc a { display: grid; grid-template-columns: 30px minmax(0, 1fr); padding: 10px 14px; border-bottom: 1px solid var(--hair); font-size: 14px; font-weight: 500; line-height: 1.35; }
.np-toc a:last-child { border-bottom: 0; }
.np-toc a span { font-family: var(--mono); font-size: 11px; color: var(--muted); font-weight: 400; padding-top: 2px; }
.np-toc a.is-active { background: var(--res); }
.np-filecard dl { margin: 0; display: grid; grid-template-columns: 84px minmax(0, 1fr); font-size: 13.5px; }
.np-filecard dt, .np-filecard dd { padding: 8px 14px; border-bottom: 1px solid var(--hair); }
.np-filecard dt { font-family: var(--mono); font-size: 11px; color: var(--muted); padding-right: 0; }
.np-filecard dd { margin: 0; padding-left: 0; }
.np-filecard dt:nth-last-of-type(1), .np-filecard dd:last-child { border-bottom: 0; }
.np-filecard dd a { border-bottom: 1px solid var(--line); }
.np-note { border-color: var(--red); background: var(--red-bg); }
.np-note .np-strip { color: var(--red); border-bottom-color: var(--red); }
.np-note p { margin: 0; padding: 14px; font-size: 14px; line-height: 1.6; color: var(--body); }

/* Prose */
.np-prose { min-width: 0; counter-reset: sec; }
.np-prose > .np-plate:first-child { margin-bottom: 30px; }
.np-prose p, .np-prose li { font-size: 18.5px; line-height: 1.7; }
.np-prose p { margin: 0 0 18px; }
.np-prose ul, .np-prose ol:not([class]) { margin: 0 0 20px; padding-left: 24px; }
.np-prose li { margin-bottom: 8px; }
.np-prose li::marker { color: var(--green); }
.np-prose a:not([class]) { color: var(--green); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.np-prose a:not([class]):hover { color: var(--ink); }
.np-prose h2 { counter-increment: sec; margin: 44px 0 14px; font-size: 27px; font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; scroll-margin-top: 20px; }
.np-prose h2::before { content: "§ " counter(sec, decimal-leading-zero); display: block; margin-bottom: 6px; font-family: var(--mono); font-size: 11.5px; font-weight: 400; color: var(--green); letter-spacing: 0.04em; }
.np-prose h3 { margin: 28px 0 10px; font-size: 21px; font-weight: 700; line-height: 1.25; }
.np-prose .np-lede { font-size: 20px; line-height: 1.65; color: var(--ink); }
.np-prose > .np-plate { margin: 32px 0; }

/* "The working": signature calculation table */
.np-working { margin: 30px 0; border: 1px solid var(--ink); background: var(--paper); }
.np-working-scroll { overflow-x: auto; }
.np-working table { width: 100%; border-collapse: collapse; font-family: var(--mono); font-size: 14.5px; }
.np-working th { white-space: normal !important; text-align: left; font-weight: 400; font-size: 11px; color: var(--muted); padding: 9px 16px; border-bottom: 1px solid var(--line); background: var(--paper-2); vertical-align: bottom; line-height: 1.35; }
.np-working td { padding: 11px 16px; border-bottom: 1px solid var(--hair); vertical-align: top; }
.np-working tr:last-child td { border-bottom: 0; }
.np-working .num { text-align: right; white-space: nowrap; }
.np-working .neg { color: var(--red); }
.np-working .pos { color: var(--green); }
.np-working tr.res td { background: var(--res); font-weight: 700; }
.np-working tr.res td.num { color: var(--green); }
.np-working td.res { background: var(--res); color: var(--green); }
.np-working tr.sub td { color: var(--muted); }
.np-working-foot { padding: 10px 16px; border-top: 1px solid var(--ink); font-family: var(--mono); font-size: 11.5px; line-height: 1.55; color: var(--muted); background: var(--paper-2); }
.np-working-foot b { font-weight: 400; color: var(--red); }

/* Rows variant (label / value) of the working */
.np-rows { font-family: var(--mono); font-size: 14.5px; }
.np-rows > div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 16px; border-bottom: 1px solid var(--hair); }
.np-rows > div:last-child { border-bottom: 0; }
.np-rows > div > span:last-child { white-space: nowrap; text-align: right; }
.np-rows .neg { color: var(--red); }
.np-rows .res { font-weight: 700; background: var(--res); }
.np-rows .res > span:last-child { color: var(--green); }

/* Checklist */
.np-check { margin: 28px 0; border: 1px solid var(--ink); background: var(--paper); }
.np-check ol { list-style: none; margin: 0; padding: 0; counter-reset: c; }
.np-check li { counter-increment: c; display: grid; grid-template-columns: 48px minmax(0, 1fr); margin: 0; padding: 12px 16px 12px 0; border-bottom: 1px solid var(--hair); font-size: 17px; line-height: 1.55; }
.np-check li:last-child { border-bottom: 0; }
.np-check li::before { content: counter(c, decimal-leading-zero); font-family: var(--mono); font-size: 12px; color: var(--green); padding: 4px 0 0 16px; }

/* Pull quote (quotes the article's own sentence) */
.np-pull { margin: 32px 0; border: 1px solid var(--ink); background: var(--paper); }
.np-pull blockquote { margin: 0; padding: 20px 22px 22px; font-size: 23px; font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }

/* In-text callout */
.np-callout { margin: 28px 0; border: 1px solid var(--red); background: var(--red-bg); }
.np-callout .np-strip { color: var(--red); border-bottom-color: var(--red); }
.np-callout p { margin: 0; padding: 14px 16px; font-size: 16.5px; line-height: 1.6; color: var(--body); }
.np-callout--green { border-color: var(--green); background: var(--res); }
.np-callout--green .np-strip { color: var(--green); border-bottom-color: var(--green); }

.np-sources { margin-top: 44px; border: 1px solid var(--ink); background: var(--paper); }
.np-sources ol { margin: 0; padding: 12px 18px 12px 40px; }
.np-sources li { font-size: 15px; line-height: 1.55; margin: 6px 0; color: var(--body); }
.np-sources li::marker { font-family: var(--mono); font-size: 12px; color: var(--muted); }
.np-sources a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--green); text-underline-offset: 3px; }
.np-sources a:hover { color: var(--green); }
.np-disclaimer { margin-top: 24px; border: 1px solid var(--line); background: var(--paper-2); }
.np-disclaimer .np-strip { border-bottom-color: var(--line); }
.np-disclaimer p { margin: 0; padding: 14px 16px; font-size: 14px !important; line-height: 1.6 !important; color: var(--body); }
.np-disclaimer a { color: var(--green); text-decoration: underline; }
.np-prose .np-optin { margin-top: 32px; }

/* Related */
.np-related { margin-top: 24px; }
.np-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.np-related-item { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 22px; }
.np-related-item + .np-related-item { border-left: 1px solid var(--line); }
.np-related-no { font-family: var(--mono); font-size: 11px; color: var(--muted); }
.np-related-title { font-size: 19px; font-weight: 700; line-height: 1.25; }
.np-related-ex { font-size: 14.5px; line-height: 1.55; color: var(--body); }
.np-related-item:hover .np-related-title { color: var(--green); }

/* =================================================================
   NEWSLETTER BOX — "The Friday File"
   ================================================================= */
.np-optin { border: 1px solid var(--ink); background: var(--green); color: var(--paper); scroll-margin-top: 20px; }
.np-optin-strip { display: flex; align-items: center; gap: 8px; padding: 8px 16px; border-bottom: 1px solid var(--green-d); font-family: var(--mono); font-size: 11px; color: var(--green-l); }
.np-optin-inner { padding: 24px 26px 28px; }
.np-optin-head { margin: 0; font-size: 24px; font-weight: 700; line-height: 1.2; color: var(--paper); }
.np-optin-copy p { margin: 12px 0 0 !important; font-size: 14.5px !important; line-height: 1.6 !important; color: var(--green-t); }
.np-form { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; }
.np-form input[type=email] { font-family: var(--mono); font-size: 15px; padding: 13px 14px; border: 1px solid var(--green-d); background: var(--green-d); color: var(--paper); border-radius: 0; width: 100%; }
.np-form input[type=email]::placeholder { color: var(--green-l); }
.np-form button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; font-family: var(--sans); font-size: 15px; font-weight: 700; padding: 14px; border: 0; background: var(--paper); color: var(--green); cursor: pointer; border-radius: 0; }
.np-form button:hover { background: var(--ink); color: var(--paper); }
.np-form button:hover img { filter: invert(1); }
.np-consent { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; margin-top: 14px; font-size: 13px; line-height: 1.5; color: var(--green-t); cursor: pointer; }
.np-consent input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--ink); }
.np-consent a { color: var(--paper); text-decoration: underline; }
.np-form-msg { margin-top: 10px; font-family: var(--mono); font-size: 12.5px; min-height: 1em; }
.np-form-msg[data-state="err"] { color: #FFD9CC; }
.np-optin--wide .np-optin-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 36px; align-items: start; }
.np-optin--wide .np-form { margin-top: 0; }

/* =================================================================
   DOSSIER (category) PAGE
   ================================================================= */
.np-dossier-head { display: grid; grid-template-columns: 140px minmax(0, 1fr); }
.np-dossier-letter { display: grid; place-items: center; border-right: 1px solid var(--ink); font-family: var(--mono); font-size: 72px; line-height: 1; }
.np-dossier-head.is-tax .np-dossier-letter { color: var(--red); background: var(--red-bg); }
.np-dossier-copy { padding: 28px 32px 30px; }
.np-dossier-copy h1 { margin: 0; font-size: clamp(32px, 4vw, 48px); font-weight: 700; line-height: 1.05; letter-spacing: -0.02em; }
.np-dossier-copy p { margin: 12px 0 0; font-size: 18px; line-height: 1.6; color: var(--body); max-width: 40em; }
.np-dossier-list .np-dfile { display: grid; grid-template-columns: 300px minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.np-dossier-list .np-dfile:last-child { border-bottom: 0; }
.np-dfile img { width: 100%; height: 100%; min-height: 170px; object-fit: cover; border-right: 1px solid var(--line); filter: saturate(.72) contrast(1.06); }
.np-dfile-body { padding: 18px 24px 22px; }
.np-dfile-meta { font-family: var(--mono); font-size: 11px; color: var(--muted); }
.np-dfile-meta .np-red { color: var(--red); }
.np-dfile h2 { margin: 8px 0 0; font-size: 24px; font-weight: 700; line-height: 1.2; }
.np-dfile p { margin: 8px 0 0; font-size: 16px; line-height: 1.6; color: var(--body); max-width: 46em; }
.np-dfile:hover h2 { color: var(--green); }

/* =================================================================
   PLAIN PAGES (about, legal, contact, newsletter, thank-you, 404)
   ================================================================= */
.np-page-grid { display: grid; grid-template-columns: minmax(0, 780px); justify-content: center; padding: 44px 48px 56px; }
.np-page-grid h1 { margin: 0; font-size: clamp(32px, 4vw, 46px); font-weight: 700; line-height: 1.07; letter-spacing: -0.02em; }
.np-page-grid .np-standfirst { margin-bottom: 8px; }
.np-page-grid h2 { margin: 38px 0 12px; font-size: 24px; font-weight: 700; line-height: 1.25; }
.np-page-grid h3 { margin: 24px 0 8px; font-size: 19px; font-weight: 700; }
.np-page-grid p, .np-page-grid li { font-size: 17px; line-height: 1.7; color: var(--body); }
.np-page-grid p { margin: 0 0 14px; }
.np-page-grid ul { margin: 0 0 16px; padding-left: 22px; }
.np-page-grid li { margin-bottom: 6px; }
.np-page-grid a:not([class]) { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.np-page-grid .np-optin { margin-top: 28px; }
.np-dl { margin: 18px 0 0; border: 1px solid var(--ink); display: grid; grid-template-columns: 220px minmax(0, 1fr); font-size: 16px; background: var(--paper); }
.np-dl dt, .np-dl dd { padding: 11px 16px; border-bottom: 1px solid var(--hair); }
.np-dl dt { font-family: var(--mono); font-size: 12px; color: var(--muted); border-right: 1px solid var(--hair); }
.np-dl dd { margin: 0; color: var(--ink); }
.np-dl dt:nth-last-of-type(1), .np-dl dd:last-child { border-bottom: 0; }
.np-dl a { color: var(--green); text-decoration: underline; }
.np-idbox { margin: 16px 0 0; border: 1px solid var(--ink); border-left: 5px solid var(--green); background: var(--res); padding: 16px 20px 18px; }
.np-idbox-l { font-family: var(--mono); font-size: 11.5px; letter-spacing: 0.06em; color: var(--muted); text-transform: uppercase; }
.np-idbox-v { display: block; margin-top: 4px; font-family: var(--mono); font-size: 30px; color: var(--green); line-height: 1.2; }
.np-idbox-r { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--green-t); font-size: 16px; color: var(--ink); }
.np-idbox-r span { font-family: var(--mono); }
.np-company { margin: 26px 0 0; font-size: 28px; font-weight: 700; line-height: 1.2; }
.np-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.np-steps { margin: 24px 0; border: 1px solid var(--ink); background: var(--paper); }

/* =================================================================
   COLOPHON (footer) + COOKIE
   ================================================================= */
.np-colophon { margin: 48px var(--pad) 0; border: 1px solid var(--ink); border-bottom: 0; background: var(--paper); }
.np-colophon-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, .8fr) minmax(0, 1fr); }
.np-colophon-grid > * { padding: 20px 22px 22px; }
.np-colophon-grid > * + * { border-left: 1px solid var(--line); }
.np-colophon-mark { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.np-colophon p { margin: 10px 0 0; font-size: 13.5px; line-height: 1.6; color: var(--body); }
.np-colophon p a { color: var(--green); text-decoration: underline; }
.np-colophon-nav { display: flex; flex-direction: column; gap: 7px; font-family: var(--mono); font-size: 12.5px; }
.np-colophon-nav a { width: fit-content; border-bottom: 1px solid transparent; }
.np-colophon-nav a:hover { border-bottom-color: var(--green); }
.np-colophon-co { font-family: var(--mono); font-size: 12px; line-height: 1.75; color: var(--muted); }
.np-colophon-co b { font-weight: 400; color: var(--ink); font-size: 13px; }
.np-colophon-foot { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px 22px; border-top: 1px solid var(--ink); font-family: var(--mono); font-size: 11px; color: var(--muted); background: var(--paper-2); }

.np-cookie { position: fixed; right: 20px; bottom: 20px; z-index: 50; width: min(440px, calc(100vw - 32px)); border: 1px solid var(--ink); background: var(--paper); box-shadow: 6px 6px 0 rgba(27, 28, 24, .16); }
.np-cookie[hidden] { display: none; }
.np-cookie-body { padding: 14px 16px 16px; }
.np-cookie p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--body); }
.np-cookie p a { color: var(--green); text-decoration: underline; }
.np-cookie-actions { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.np-cookie-actions .np-btn { font-size: 14px; padding: 11px 16px; }

/* =================================================================
   RESPONSIVE
   ================================================================= */
@media (max-width: 1120px) {
  .np-art-grid { grid-template-columns: 240px minmax(0, 1fr); gap: 36px; padding: 28px 36px 48px; }
  .np-row { grid-template-columns: minmax(0, 1fr) 340px; }
  .np-ledger-head, .np-ledger-row { grid-template-columns: 56px minmax(0, 1fr) minmax(0, 1.3fr) 116px; }
  .np-gloss { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .np-gloss > div:nth-child(4n) { border-right: 1px solid var(--hair); }
  .np-gloss > div:nth-child(2n) { border-right: 0; }
  .np-gloss > div:nth-last-child(-n+4) { border-bottom: 1px solid var(--hair); }
  .np-gloss > div:nth-last-child(-n+2) { border-bottom: 0; }
}

@media (max-width: 960px) {
  :root { --pad: 24px; }
  .np-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .np-tabs a { border-bottom: 1px solid var(--line); }
  .np-tabs a:nth-child(2n) { border-right: 0; }
  .np-tabs a:nth-child(4) { border-right: 0; }
  .np-tabs a.np-tab-letter { grid-column: 1 / -1; border-left: 0; border-bottom: 0; justify-content: center; }
  .np-lead-grid { grid-template-columns: 1fr; }
  .np-lead-media { border-right: 0; border-bottom: 1px solid var(--ink); }
  .np-lead-media img { min-height: 0; aspect-ratio: 16 / 9; }
  .np-row { grid-template-columns: 1fr; }
  .np-art-head { padding: 32px 32px 4px; }
  .np-art-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 24px 32px 44px; }
  .np-prose { order: 1; }
  .np-art-aside { order: 2; }
  .np-art-aside .np-toc { display: none; }
  .np-ledger-head { display: none; }
  .np-ledger-row { grid-template-columns: 56px minmax(0, 1fr); }
  .np-ledger-letter { grid-row: span 3; }
  .np-ledger-src { border-right: 0; border-bottom: 1px solid var(--hair); }
  .np-ledger-count { border-left: 0; border-top: 1px solid var(--hair); flex-direction: row; align-items: center; justify-content: space-between; padding: 10px 20px; }
  .np-related-grid { grid-template-columns: 1fr; }
  .np-related-item + .np-related-item { border-left: 0; border-top: 1px solid var(--line); }
  .np-colophon-grid { grid-template-columns: 1fr 1fr; }
  .np-colophon-grid > :first-child { grid-column: 1 / -1; }
  .np-colophon-grid > :nth-child(2) { border-left: 0; }
  .np-colophon-grid > :nth-child(2), .np-colophon-grid > :nth-child(3) { border-top: 1px solid var(--line); }
  .np-dossier-list .np-dfile { grid-template-columns: 220px minmax(0, 1fr); }
  .np-optin--wide .np-optin-inner { grid-template-columns: 1fr; gap: 18px; }
  .np-page-grid { padding: 36px 32px 48px; }
}

@media (max-width: 760px) {
  body { font-size: 16.5px; }
  .np-hide-m { display: none; }
  .np-disclosure { font-size: 10px !important; padding: 6px 12px !important; }
  .np-disclosure-l { gap: 7px; }
  .np-disclosure-l i { width: 7px; height: 7px; }
  .np-tabs { display: flex !important; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .np-tabs::-webkit-scrollbar { display: none; }
  .np-tabs a { flex: none; white-space: nowrap; border-bottom: 0 !important; border-right: 1px solid var(--line) !important; padding: 9px 12px !important; }
  .np-tabs a.np-tab-letter { border-right: 0 !important; padding: 9px 14px !important; }
  .np-tab-l { width: 20px; height: 20px; font-size: 11px; }
  .np-art-head { display: flex; flex-direction: column; }
  .np-art-head .np-adlabel { order: 1; }
  .np-art-head .np-h1 { order: 2; }
  .np-art-head .np-keyfigs { order: 3; }
  .np-art-head .np-standfirst { order: 4; }
  .np-main { padding: 16px 16px 0; }
  .np-disclosure { padding: 7px 16px; font-size: 11.5px; }
  .np-disclosure-r { display: none; }
  .np-brand { padding: 12px 16px 10px; }
  .np-wordmark { font-size: 27px; }
  .np-brand-sub { font-size: 11px; margin-top: 6px; }
  .np-mast-card { display: none; }
  .np-tabs { font-size: 12.5px; }
  .np-tabs a { padding: 10px 12px; gap: 7px; }
  .np-tabs a img { display: none; }
  .np-box + .np-box, .np-gap, .np-row { margin-top: 16px; }
  .np-strip { padding: 7px 12px; font-size: 10.5px; }
  .np-strip--split { flex-direction: column; align-items: stretch; }
  .np-strip--split > span { padding: 7px 12px; }
  .np-strip-r { border-left: 0; border-top: 1px solid var(--line); text-align: left; }
  .np-lead-text { padding: 20px 18px 22px; }
  .np-lead-ex { font-size: 16.5px; }
  .np-figs > div { grid-template-columns: 124px minmax(0, 1fr); gap: 10px; }
  .np-fig-v { font-size: 18px; }
  .np-ledger-row { grid-template-columns: 44px minmax(0, 1fr); }
  .np-ledger-letter { font-size: 20px; }
  .np-ledger-src { padding: 14px 14px; }
  .np-ledger-files { padding: 8px 14px; }
  .np-ledger-count { padding: 10px 14px; }
  .np-recent-grid { grid-template-columns: 1fr; }
  .np-recent:nth-child(odd) { border-right: 0; }
  .np-recent:nth-last-child(-n+2) { border-bottom: 1px solid var(--line); }
  .np-recent:last-child { border-bottom: 0; }
  .np-gloss { grid-template-columns: 1fr; }
  .np-gloss > div { border-right: 0 !important; border-bottom: 1px solid var(--hair) !important; }
  .np-gloss > div:last-child { border-bottom: 0 !important; }
  .np-register thead { display: none; }
  .np-register tr { display: grid; grid-template-columns: auto 1fr; border-bottom: 1px solid var(--hair); padding: 10px 12px; column-gap: 12px; }
  .np-register td { border: 0; padding: 0; }
  .np-register .c-title { grid-column: 1 / -1; order: -1; margin-bottom: 4px; }
  .np-register .c-min { display: none; }
  .np-art-head { padding: 22px 16px 0; }
  .np-adlabel span { font-size: 11px; }
  .np-h1 { font-size: 27px; line-height: 1.1; }
  .np-standfirst { font-size: 17px; margin-top: 12px; }
  .np-keyfigs { grid-template-columns: 1fr; margin-top: 20px; }
  .np-keyfigs > div { display: grid; grid-template-columns: 118px minmax(0, 1fr); align-items: baseline; gap: 10px; padding: 7px 12px; }
  .np-keyfigs > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .np-keyfig-v { font-size: 17px; white-space: nowrap; }
  .np-keyfig-l { margin-top: 0; }
  .np-art-grid { padding: 20px 16px 36px; }
  .np-prose p, .np-prose li { font-size: 17.5px; line-height: 1.68; }
  .np-prose h2 { font-size: 23px; margin-top: 36px; }
  .np-pull blockquote { font-size: 19px; padding: 16px; }
  .np-working table { font-size: 13px; }
  .np-working th, .np-working td { padding: 9px 10px; }
  .np-rows { font-size: 13px; }
  .np-rows > div { padding: 9px 12px; }
  .np-optin-inner { padding: 18px 16px 20px; }
  .np-optin-head { font-size: 21px; }
  .np-dossier-head { grid-template-columns: 72px minmax(0, 1fr); }
  .np-dossier-letter { font-size: 40px; }
  .np-dossier-copy { padding: 18px 16px 20px; }
  .np-dossier-copy p { font-size: 16.5px; }
  .np-dossier-list .np-dfile { grid-template-columns: 1fr; }
  .np-dfile img { min-height: 0; aspect-ratio: 16 / 9; border-right: 0; border-bottom: 1px solid var(--line); }
  .np-dfile-body { padding: 14px 16px 18px; }
  .np-dfile h2 { font-size: 21px; }
  .np-page-grid { padding: 26px 16px 40px; }
  .np-dl { grid-template-columns: 1fr; }
  .np-dl dt { border-right: 0; border-bottom: 0; padding-bottom: 0; }
  .np-idbox-v { font-size: 25px; }
  .np-colophon { margin: 32px 16px 0; }
  .np-colophon-grid { grid-template-columns: 1fr; }
  .np-colophon-grid > * + * { border-left: 0; border-top: 1px solid var(--line); }
  .np-cookie { right: 16px; bottom: 16px; }
}
.np-related-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.np-endnote { margin: 18px 0 0; font-size: 15px !important; line-height: 1.6 !important; color: var(--muted); font-style: italic; }
@media (max-width: 1120px) { .np-related-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .np-related-grid--4 .np-related-item:nth-child(3) { border-left: 0; } .np-related-grid--4 .np-related-item:nth-child(n+3) { border-top: 1px solid var(--line); } }
@media (max-width: 960px) { .np-related-grid--4 { grid-template-columns: 1fr; } .np-related-grid--4 .np-related-item { border-left: 0 !important; } .np-related-grid--4 .np-related-item + .np-related-item { border-top: 1px solid var(--line); } }
.np-optin a, .np-prose .np-optin a:not([class]) { color: var(--paper); text-decoration: underline; }
.np-optin a:hover { color: var(--green-t); }
@media (max-width: 760px) {
  .np-stack thead { display: none; }
  .np-stack, .np-stack tbody, .np-stack tr { display: block; width: 100%; }
  .np-stack tr { padding: 6px 0; border-bottom: 1px solid var(--line); }
  .np-stack tr:last-child { border-bottom: 0; }
  .np-stack td { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 5px 12px !important; border: 0 !important; text-align: right; white-space: normal !important; }
  .np-stack td::before { content: attr(data-label); flex: none; max-width: 52%; text-align: left; font-size: 10.5px; color: var(--muted); text-transform: uppercase; }
  .np-stack td:first-child { font-weight: 700; justify-content: flex-start; text-align: left; }
  .np-stack td:first-child::before { display: none; }
  .np-stack td.res { background: var(--res); }
}
