/* ============================================================
   THE M&S LEDGER: hub, entry cards, entry page.
   Built only from tokens.css. Ledger conventions used as structure:
   a double rule under each entry number, single over double rules
   under totals and "The number", Carried forward, running head,
   margin numerals.
   ============================================================ */

.ledger .screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

.ledger-shell {
  max-width: calc(var(--container-max) + 2 * var(--gutter));   /* same content width as .page-hero__inner */
  margin: 0 auto;
  padding-inline: var(--gutter);
}

.ledger-label {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--fs-meta);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-ink-mute);
  margin: 0 0 var(--space-5);
}

.ledger-link {
  display: inline-flex;
  gap: 0.5em;
  align-items: baseline;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.8125rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-navy);
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
}
.ledger-link:hover { color: var(--color-ink); }

.ledger-button {
  display: inline-flex;
  gap: 0.75em;
  align-items: center;
  background: var(--color-navy);
  color: var(--color-ink-on-dark);
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.8125rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 16px 26px;
  border-radius: var(--radius-button);
  transition: background var(--duration-hover) ease;
}
.ledger-button:hover { background: var(--color-primary-dark); color: var(--color-ink-on-dark); }

.ledger-disclaimer {
  font-size: 0.8125rem;
  line-height: 1.6;
  color: var(--color-ink-mute);
  margin: 0;
}

/* ============================================================
   MASTHEAD STRIP: the title and four facts, nothing else.
   ============================================================ */
.ledger-mast { padding: var(--space-8) 0 0; }
.ledger-mast__crumb {
  margin: 0 0 var(--space-3);
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  color: var(--color-ink-mute);
}
.ledger-mast__crumb a { color: var(--color-ink); }
.ledger-mast__crumb a:hover { color: var(--color-navy); }
.ledger-mast__crumb > span[aria-hidden] { margin: 0 6px; }
.ledger-mast__title {
  font-size: clamp(2.25rem, 4vw, 3.25rem);
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin: 0 0 var(--space-5);
}

.ledger-facts {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 0.8fr) minmax(0, 1.35fr) minmax(0, 1.25fr);
  margin: 0;
  border-top: 1px solid var(--color-ink);
  border-bottom: 1px solid var(--color-hairline-strong);
}
.ledger-facts > div { padding: 12px 20px 14px 0; }
.ledger-facts > div + div { padding-left: 20px; border-left: 1px solid var(--color-hairline); }
.ledger-facts dt {
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  color: var(--color-ink-mute);
  margin-bottom: 4px;
}
.ledger-facts dd {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.1875rem;
  line-height: 1.3;
  color: var(--color-ink);
}
.ledger-facts--short { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); max-width: 640px; }

/* ============================================================
   ENTRIES: topic filter, then cards.
   ============================================================ */
.ledger-book { padding: var(--space-6) 0 var(--space-10); }

.ledger-topics { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0 0 var(--space-5); }
.ledger-topics__item {
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  color: var(--color-ink-mute);
  padding-bottom: 4px;
  border-bottom: 1px solid transparent;
}
.ledger-topics__item:hover { color: var(--color-navy); }
.ledger-topics__item.is-active { color: var(--color-navy); border-bottom-color: var(--color-navy); }

.ledger-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

/* One card = one link. The title's link is stretched over the whole card,
   so the number, date, summary and footer all open the entry. */
.ledger-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 26px 28px 24px;
  background: rgba(255, 255, 255, 0.4);
  border: 1px solid var(--color-hairline);
  border-radius: var(--radius-md);
  transition:
    background-color var(--duration-hover) var(--ease-out-cubic),
    border-color var(--duration-hover) var(--ease-out-cubic),
    box-shadow var(--duration-hover) var(--ease-out-cubic),
    transform var(--duration-hover) var(--ease-out-cubic);
}
.ledger-card:hover,
.ledger-card:focus-within {
  background: var(--color-card);
  border-color: var(--color-hairline-strong);
  box-shadow: var(--shadow-card-hov);
  transform: translateY(-2px);
}
.ledger-card__title a::after {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: 1;
  border-radius: var(--radius-md);
}
.ledger-card__title a:focus-visible { outline: none; }
.ledger-card__title a:focus-visible::after { outline: 2px solid var(--color-navy); outline-offset: 3px; }

/* Head: the entry number, with the ledger's double rule beneath it */
.ledger-card__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
  padding-bottom: 14px;
  margin-bottom: 18px;
  border-bottom: 3px double rgba(26, 31, 46, 0.28);
}
.ledger-card__numeral {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 0;
  color: var(--color-navy);
}
.ledger-card__no-mark {
  font-family: var(--font-display);
  font-size: 1.625rem;
  line-height: 1;
  opacity: 0.7;
}
.ledger-card__no {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(3.5rem, 5vw, 4.5rem);
  line-height: 0.8;
  letter-spacing: -0.03em;
  font-variant-numeric: lining-nums tabular-nums;
}
.is-preface .ledger-card__no-mark {
  font-family: var(--font-body);
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  opacity: 1;
}
.is-preface .ledger-card__no { font-style: italic; font-weight: 400; }

.ledger-card__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
  margin: 0;
  text-align: right;
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  line-height: 1.5;
  color: var(--color-ink-mute);
}
.ledger-card__meta time { color: var(--color-ink); }
.ledger-card__flag { color: var(--color-navy); font-weight: 600; }

.ledger-card__body { display: flex; flex-direction: column; flex: 1; }
.ledger-card__title {
  font-size: 1.625rem;
  line-height: 1.15;
  margin: 0 0 var(--space-3);
}
.ledger-card__title a { color: var(--color-ink); transition: color var(--duration-fast) ease; }
.ledger-card:hover .ledger-card__title a { color: var(--color-navy); }
.ledger-card__hook {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-ink-soft);
  margin: 0 0 var(--space-5);
}
.ledger-card__foot {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin: auto 0 0;
  padding-top: 14px;
  border-top: 1px solid var(--color-hairline);
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  color: var(--color-ink-mute);
}
.ledger-card__read { color: var(--color-navy); }
.ledger-card__read span { display: inline-block; margin-left: 4px; transition: transform var(--duration-hover) var(--ease-out-cubic); }
.ledger-card:hover .ledger-card__read span { transform: translateX(4px); }

/* The newest entry spans the row: number column, text, The number */
.ledger-card--featured {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 0 var(--space-7);
  padding: 36px 40px;
}
/* With a figure, the text and The number sit side by side inside the body */
.ledger-card--featured.has-figure .ledger-card__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  grid-template-rows: auto auto 1fr auto;
  column-gap: var(--space-7);
}
.ledger-card--featured.has-figure .ledger-card__title { grid-column: 1; grid-row: 1; }
.ledger-card--featured.has-figure .ledger-card__hook { grid-column: 1; grid-row: 2; }
.ledger-card--featured.has-figure .ledger-card__foot { grid-column: 1; grid-row: 4; }
.ledger-card--featured.has-figure .ledger-figure { grid-column: 2; grid-row: 1 / -1; }
.ledger-card--featured .ledger-card__head {
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin: 0;
  padding: 0 var(--space-6) 0 0;
  border-bottom: 0;
  border-right: 3px double rgba(26, 31, 46, 0.28);
}
.ledger-card--featured .ledger-card__no { font-size: clamp(5rem, 8vw, 7rem); }
.ledger-card--featured .ledger-card__meta { align-items: flex-start; text-align: left; }
.ledger-card--featured .ledger-card__title { font-size: clamp(2rem, 3.2vw, 2.75rem); line-height: 1.08; max-width: 22ch; }
.ledger-card--featured .ledger-card__hook {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.3125rem;
  line-height: 1.45;
  max-width: 46ch;
}
.ledger-card--featured .ledger-figure { align-self: start; }

.ledger-cards__empty { grid-column: 1 / -1; margin: 0; padding: 28px 0; color: var(--color-ink-mute); font-style: italic; }

/* Carried forward: a total line, single rule over double rule */
.ledger-carry-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 14px;
  margin: var(--space-7) 0 0;
  padding: 14px 0;
  border-top: 1px solid var(--color-ink);
  border-bottom: 4px double var(--color-ink);
}
.ledger-carry-line__label {
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  color: var(--color-ink-mute);
}
.ledger-carry-line__text { font-family: var(--font-display); font-style: italic; font-size: 1.125rem; color: var(--color-ink); }

/* ---------- The number (single over double rule) ---------- */
.ledger-figure {
  border-top: 1px solid var(--color-ink);
  padding: var(--space-5) 0 var(--space-6);
  margin: 0 0 var(--space-6);
}
.ledger-figure__label {
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  color: var(--color-ink-mute);
  margin: 0 0 var(--space-3);
}
.ledger-figure__value {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(3rem, 6vw, 4.5rem);
  line-height: 1;
  font-variant-numeric: lining-nums tabular-nums;
  color: var(--color-navy);
  margin: 0 0 var(--space-4);
}
.ledger-figure__value span {
  display: inline-block;
  padding-bottom: 8px;
  border-bottom: 4px double currentColor;   /* the accountant's double underline */
}
.ledger-figure__line { font-size: 1rem; line-height: 1.55; color: var(--color-ink); margin: 0 0 var(--space-2); max-width: 46ch; }
.ledger-figure__src { font-size: 0.8125rem; color: var(--color-ink-mute); margin: 0; }
.ledger-figure__src a { color: inherit; border-bottom: 1px solid var(--color-hairline-strong); }
.ledger-figure--compact { margin: 0; padding-top: var(--space-4); }
.ledger-figure--compact .ledger-figure__value { font-size: clamp(2.5rem, 4vw, 3.25rem); }
.ledger-figure--compact .ledger-figure__line { font-size: 0.9375rem; color: var(--color-ink-soft); }


/* ---------- How the Ledger works ---------- */
.ledger-method { background: var(--color-paper-deep); padding: var(--space-9) 0; }
.ledger-method__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-6);
}
.ledger-method__list li { margin: 0; border-top: 1px solid var(--color-ink); padding-top: var(--space-4); }
.ledger-method__n { font-family: var(--font-display); font-size: 1.25rem; color: var(--color-navy); font-variant-numeric: lining-nums; }
.ledger-method__list h3 { font-size: 1.5rem; margin: var(--space-3) 0 var(--space-2); }
.ledger-method__list p { font-size: 0.9375rem; line-height: 1.6; color: var(--color-ink-soft); margin: 0; }

/* ---------- Colophon / CTA ---------- */
.ledger-colophon { padding: var(--space-9) 0 var(--space-10); }
.ledger-colophon__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: var(--space-8);
  align-items: end;
}
.ledger-colophon__title { font-size: clamp(2rem, 3.2vw, 2.75rem); margin: 0 0 var(--space-4); max-width: 20ch; }
.ledger-colophon__title em { color: var(--color-navy); }
.ledger-colophon__text { color: var(--color-ink-soft); margin: 0 0 var(--space-6); max-width: 48ch; }
.ledger-colophon .ledger-disclaimer { border-left: 1px solid var(--color-hairline-strong); padding-left: var(--space-5); }
.ledger-colophon__back { margin: 0; justify-self: end; }

/* ============================================================
   ENTRY
   ============================================================ */
.ledger-runhead { border-bottom: 1px solid var(--color-hairline); }
.ledger-runhead__inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 6px 24px;
  padding-block: 14px;
}
.ledger-runhead p {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  color: var(--color-ink-mute);
}
.ledger-runhead a { color: var(--color-ink); }
.ledger-runhead a:hover { color: var(--color-navy); }

.ledger-entry__grid {
  display: grid;
  grid-template-columns: 150px minmax(0, var(--content-max));
  gap: 0 var(--space-7);
  max-width: calc(150px + var(--space-7) + var(--content-max));
  margin: 0 auto;
  padding-inline: var(--gutter);
  box-sizing: content-box;
}
.ledger-entry__head { padding: var(--space-10) 0 var(--space-8); }
.ledger-entry__margin { display: flex; flex-direction: row; justify-content: flex-end; align-items: baseline; gap: 6px; text-align: right; color: var(--color-navy); }
.ledger-entry__no-mark {
  font-family: var(--font-display);
  font-size: 2rem;
  line-height: 1;
  color: var(--color-navy);
  opacity: 0.7;
}
.ledger-entry__margin.is-preface .ledger-entry__no-mark {
  font-family: var(--font-body);
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  opacity: 1;
}
.ledger-entry__no {
  font-family: var(--font-display);
  font-weight: 500;
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 0.85;
  letter-spacing: -0.03em;
  color: var(--color-navy);
}
.is-preface .ledger-entry__no { font-style: italic; font-weight: 400; }
.ledger-entry__no { font-size: clamp(4rem, 7vw, 6.25rem); line-height: 0.8; }

.ledger-entry__title {
  font-size: clamp(2.5rem, 4.6vw, 4rem);
  line-height: 1.04;
  margin: 0 0 var(--space-5);
  max-width: 20ch;
}
.ledger-entry__hook {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--fs-lead);
  line-height: 1.45;
  color: var(--color-ink-soft);
  margin: 0 0 var(--space-7);
  max-width: 46ch;
}
.ledger-entry__meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  margin: 0;
  border-top: 1px solid var(--color-ink);
  border-bottom: 1px solid var(--color-hairline-strong);
}
.ledger-entry__meta > div { padding: 12px 16px 14px 0; }
.ledger-entry__meta > div + div { padding-left: 16px; border-left: 1px solid var(--color-hairline); }
.ledger-entry__meta dt {
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  color: var(--color-ink-mute);
  margin-bottom: 4px;
}
.ledger-entry__meta dd { margin: 0; font-size: 0.875rem; line-height: 1.45; color: var(--color-ink); }

.ledger-entry__content { padding-bottom: var(--space-9); }

/* Body copy: the reading column */
.ledger-body { counter-reset: part; font-size: 1.125rem; line-height: 1.75; }
.ledger-body > * + * { margin-top: 1.15em; }
.ledger-body h2 {
  counter-increment: part;
  position: relative;
  font-size: clamp(1.625rem, 2.4vw, 2.125rem);
  margin-top: 1.7em;
  margin-bottom: -0.25em;
}
.ledger-body h2::before {
  content: counter(part, upper-roman) ".";
  position: absolute;
  right: calc(100% + var(--space-7));
  top: 0.12em;
  font-style: italic;
  font-weight: 400;
  font-size: 0.85em;
  color: var(--color-navy);
  white-space: nowrap;
}
.ledger-body h3 { font-size: 1.375rem; margin-top: 1.8em; }
.ledger-body a { color: var(--color-navy); border-bottom: 1px solid var(--color-hairline-strong); }
.ledger-body a:hover { border-bottom-color: var(--color-navy); }
.ledger-body ul, .ledger-body ol { padding-left: 0; list-style: none; }
.ledger-body ul li, .ledger-body ol li { position: relative; padding-left: 1.6em; }
.ledger-body ul li::before { content: ""; position: absolute; left: 0.3em; top: 0.72em; width: 6px; height: 6px; background: var(--color-navy); }
.ledger-body ol { counter-reset: item; }
.ledger-body ol li { counter-increment: item; }
.ledger-body ol li::before { content: counter(item) "."; position: absolute; left: 0; font-family: var(--font-display); color: var(--color-navy); }
.ledger-body blockquote {
  margin-inline: 0;
  padding-left: var(--space-5);
  border-left: 1px solid var(--color-navy);
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.375rem;
  line-height: 1.5;
  color: var(--color-ink-soft);
}
.ledger-body figure { margin-inline: 0; }

/* Tables in an entry read as a ledger: last row is the total */
.ledger-body table, .ledger-body .wp-block-table table, .ledger-body th, .ledger-body td { border: 0 !important; }
.ledger-body .wp-block-table { margin-inline: 0; overflow-x: auto; }
.ledger-body table { width: 100%; border-collapse: collapse; font-size: 1rem; font-variant-numeric: lining-nums tabular-nums; }
.ledger-body th, .ledger-body td { padding: 10px 0; border-bottom: 1px solid var(--color-hairline) !important; text-align: left; vertical-align: baseline; }
.ledger-body th, .ledger-body td { padding-left: 0 !important; padding-right: 0 !important; }
.ledger-body td:last-child, .ledger-body th:last-child { text-align: right; padding-left: 16px !important; white-space: nowrap; }
.ledger-body thead th { font-size: var(--fs-rule); letter-spacing: var(--ls-rule); text-transform: uppercase; color: var(--color-ink-mute); border-bottom: 1px solid var(--color-ink); }
.ledger-body tbody tr:last-child td { border-top: 1px solid var(--color-ink) !important; border-bottom: 4px double var(--color-ink) !important; font-weight: 600; }
.ledger-body figcaption, .ledger-body .wp-element-caption { font-size: 0.875rem; color: var(--color-ink-mute); margin-top: 10px; font-style: italic; }

.ledger-section-title { font-size: clamp(1.625rem, 2.4vw, 2.125rem); margin: 0 0 var(--space-4); }

/* ---------- Contents: sticky left rail on wide screens, a fold-out list elsewhere ---------- */
.ledger-entry__rail { min-width: 0; }
.ledger-toc__label {
  margin: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--color-ink);
  font-size: var(--fs-rule);
  font-weight: 500;
  letter-spacing: var(--ls-rule);
  text-transform: uppercase;
  color: var(--color-ink-mute);
}
.ledger-toc__list { list-style: none; margin: 0; padding: 0; }
.ledger-toc__list li { margin: 0; border-bottom: 1px solid var(--color-hairline); }
.ledger-toc__list a {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: baseline;
  padding: 9px 8px 9px 10px;
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--color-ink-soft);
  transition: color var(--duration-fast) ease, box-shadow var(--duration-fast) ease, background-color var(--duration-fast) ease;
}
.ledger-toc__n { font-family: var(--font-display); font-style: italic; font-size: 1rem; color: var(--color-navy); }
.ledger-toc__list a:hover { color: var(--color-navy); background-color: rgba(255, 255, 255, 0.5); }
.ledger-toc__list a.is-current { color: var(--color-ink); font-weight: 500; box-shadow: inset 2px 0 0 var(--color-navy); }
.ledger-toc__list a:focus-visible { outline: 2px solid var(--color-navy); outline-offset: -2px; }
.ledger-toc__list--extra { margin-top: 18px; border-top: 1px solid var(--color-hairline-strong); }
.ledger-toc__count { margin-left: 8px; color: var(--color-ink-mute); font-weight: 400; letter-spacing: 0.08em; }

/* Anchored parts stop below the sticky header */
.ledger-body h2, .ledger-todo, .ledger-qa, .ledger-sources { scroll-margin-top: 128px; }

/* Wide screens: the rail holds the entry number (head) and Contents (body) */
@media (min-width: 1100px) {
  .ledger-entry__grid {
    grid-template-columns: 220px minmax(0, var(--content-max));
    column-gap: 72px;
    max-width: calc(220px + 72px + var(--content-max));
  }
  .ledger-entry__head .ledger-entry__margin { margin-right: -48px; }
  .ledger-body h2::before { right: calc(100% + 24px); }
  .ledger-entry__rail .ledger-toc {
    position: sticky;
    top: 128px;
    max-height: calc(100vh - 160px);
    overflow-y: auto;
  }
  .ledger-toc--inline { display: none; }
}

/* Narrower screens: Contents folds out above the body */
@media (max-width: 1099px) {
  .ledger-entry__rail .ledger-toc { display: none; }
  .ledger-toc--inline { margin: 0 0 var(--space-6); border-bottom: 1px solid var(--color-hairline-strong); }
  .ledger-toc--inline summary {
    display: flex;
    align-items: baseline;
    padding: 14px 0;
    border-top: 1px solid var(--color-ink);
    border-bottom: 0;
    cursor: pointer;
    list-style: none;
  }
  .ledger-toc--inline summary::-webkit-details-marker { display: none; }
  .ledger-toc--inline summary::after {
    content: "+";
    margin-left: auto;
    font-size: 1.25rem;
    line-height: 1;
    letter-spacing: 0;
    color: var(--color-navy);
    transition: transform var(--duration-fast) ease;
  }
  .ledger-toc--inline[open] summary::after { transform: rotate(45deg); }
  .ledger-toc--inline > .ledger-toc__list:first-of-type { border-top: 1px solid var(--color-hairline); }
  .ledger-toc--inline .ledger-toc__list a { padding-top: 11px; padding-bottom: 11px; font-size: 0.9375rem; }
}

/* What to do: ruled checklist rows */
.ledger-todo { margin-top: var(--space-9); }
.ledger-todo__list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--color-ink); }
.ledger-todo__list li { display: flex; gap: 16px; align-items: baseline; margin: 0; padding: 14px 0; border-bottom: 1px solid var(--color-hairline); font-size: 1.0625rem; line-height: 1.55; }
.ledger-todo__box { flex: none; width: 15px; height: 15px; border: 1.5px solid var(--color-navy); border-radius: 1px; transform: translateY(2px); }

/* A question we get */
.ledger-qa { margin-top: var(--space-8); background: var(--color-paper-deep); padding: var(--space-6) var(--space-6) var(--space-6); }
.ledger-qa .ledger-label { margin-bottom: var(--space-3); }
.ledger-qa__q { font-size: clamp(1.5rem, 2.2vw, 1.875rem); margin: 0 0 var(--space-3); }
.ledger-qa__a { margin: 0; font-size: 1.0625rem; }

/* Sources */
.ledger-sources { margin-top: var(--space-8); }
.ledger-sources .ledger-section-title { font-size: 1.375rem; }
.ledger-sources__list { margin: 0; padding-left: 1.4em; font-size: 0.9375rem; line-height: 1.6; color: var(--color-ink-soft); }
.ledger-sources__list li::marker { font-family: var(--font-display); color: var(--color-navy); }
.ledger-sources__list a { color: var(--color-ink-soft); border-bottom: 1px solid var(--color-hairline-strong); }
.ledger-sources__list a:hover { color: var(--color-navy); }

/* Sign-off */
.ledger-signoff { margin-top: var(--space-8); padding-top: var(--space-5); border-top: 1px solid var(--color-ink); }
.ledger-signoff__line { font-family: var(--font-display); font-style: italic; font-size: 1.1875rem; line-height: 1.5; margin: 0 0 var(--space-3); }
.ledger-signoff__line strong { font-weight: 500; }

/* Brought forward / Carried forward */
.ledger-carry { border-top: 1px solid var(--color-hairline-strong); border-bottom: 1px solid var(--color-hairline-strong); }
.ledger-carry__grid { display: grid; grid-template-columns: 1fr 1fr; }
.ledger-carry__item { padding: var(--space-6) var(--space-6) var(--space-6) 0; display: flex; flex-direction: column; gap: 8px; }
.ledger-carry__item--next { text-align: right; align-items: flex-end; padding: var(--space-6) 0 var(--space-6) var(--space-6); border-left: 1px solid var(--color-hairline); }
.ledger-carry__label { font-size: var(--fs-rule); font-weight: 500; letter-spacing: var(--ls-rule); text-transform: uppercase; color: var(--color-ink-mute); }
.ledger-carry__item a { font-family: var(--font-display); font-size: 1.25rem; line-height: 1.3; color: var(--color-ink); max-width: 34ch; }
.ledger-carry__item a:hover { color: var(--color-navy); }
.ledger-carry__no { color: var(--color-navy); margin-right: 6px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1023px) {
  .ledger-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ledger-facts > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .ledger-facts > div:nth-child(n+3) { border-top: 1px solid var(--color-hairline); }
  .ledger-facts--short > div:nth-child(n+3) { border-top: 0; }
  .ledger-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ledger-card--featured { grid-template-columns: 150px minmax(0, 1fr); padding: 32px; }
  .ledger-card--featured.has-figure .ledger-card__body { display: flex; flex-direction: column; }
  .ledger-card--featured .ledger-figure { margin: 0 0 var(--space-5); }
  .ledger-method__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .ledger-mast { padding-top: var(--space-6); }
  .ledger-mast__title { margin-bottom: var(--space-4); }
  .ledger-facts dd { font-size: 1.0625rem; }
  .ledger-facts > div { padding: 10px 12px 12px 0; }
  .ledger-facts > div + div { padding-left: 12px; }
  .ledger-facts > div:nth-child(odd) { padding-left: 0; }
  .ledger-book { padding-top: var(--space-5); }
  .ledger-topics { gap: 6px 16px; }

  .ledger-cards { grid-template-columns: 1fr; gap: var(--space-4); }
  .ledger-card { padding: 22px 20px 20px; }
  .ledger-card__no { font-size: 3.5rem; }

  /* Featured card falls back to the normal card shape */
  .ledger-card--featured { display: flex; padding: 24px 20px 22px; }
  .ledger-card--featured .ledger-card__head {
    flex-direction: row;
    align-items: flex-end;
    padding: 0 0 14px;
    margin-bottom: 18px;
    border-right: 0;
    border-bottom: 3px double rgba(26, 31, 46, 0.28);
  }
  .ledger-card--featured .ledger-card__no { font-size: 4.25rem; }
  .ledger-card--featured .ledger-card__meta { align-items: flex-end; text-align: right; }
  .ledger-card--featured .ledger-card__title { font-size: 1.875rem; }
  .ledger-card--featured .ledger-card__hook { font-size: 1.1875rem; }
  .ledger-card:hover, .ledger-card:focus-within { transform: none; }

  .ledger-method__list { grid-template-columns: 1fr; }
  .ledger-colophon__grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .ledger-colophon .ledger-disclaimer { border-left: 0; padding-left: 0; }
  .ledger-colophon__back { justify-self: start; }

  .ledger-entry__head { padding: var(--space-7) 0 var(--space-6); }
  .ledger-entry__title { font-size: 2.25rem; line-height: 1.06; }
  .ledger-entry__hook { font-size: 1.1875rem; margin-bottom: var(--space-6); }
  .ledger-entry__grid { grid-template-columns: 1fr; }
  .ledger-entry__margin { justify-content: flex-start; margin-bottom: var(--space-4); }
  .ledger-entry__no { font-size: 3.5rem; margin: 0; }
  .ledger-entry__meta { grid-template-columns: 1fr 1fr; }
  .ledger-entry__meta > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .ledger-entry__meta > div:nth-child(n+3) { border-top: 1px solid var(--color-hairline); }
  .ledger-entry__rail { display: none; }
  .ledger-body h2::before { position: static; margin-right: 0.35em; }
  .ledger-qa { padding: var(--space-5); }
  .ledger-carry__grid { grid-template-columns: 1fr; }
  .ledger-carry__item--next { text-align: left; align-items: flex-start; border-left: 0; border-top: 1px solid var(--color-hairline); padding-left: 0; }
}

/* ============================================================
   PREFACE ADDITIONS (Oct 12): unnumbered parts, longer answers,
   a closing section with its own call to action, three facts.
   ============================================================ */
.ledger-body h2.is-unnumbered { counter-increment: none; }
.ledger-body h2.is-unnumbered::before { content: none; }
.ledger-qa__a p { margin: 0 0 0.85em; }
.ledger-qa__a p:last-child { margin-bottom: 0; }
.ledger-close { margin-top: var(--space-9); scroll-margin-top: 128px; }
.ledger-close__text { font-size: 1.125rem; line-height: 1.75; margin: 0 0 1.1em; }
.ledger-close__cta { margin: var(--space-6) 0 0; }
.ledger-close__note { margin: var(--space-6) 0 0; font-family: var(--font-display); font-style: italic; font-size: 1.0625rem; color: var(--color-ink-soft); }
.ledger-colophon--back { padding: var(--space-6) 0 var(--space-9); }
.ledger-colophon--back .ledger-colophon__back { justify-self: auto; }
.ledger-facts--three { grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, 1.25fr); }
@media (max-width: 1023px) {
  .ledger-facts--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  .ledger-card, .ledger-card__read span { transition: none; }
  .ledger-card:hover, .ledger-card:focus-within { transform: none; }
}

/* ============================================================
   PRINT: a clean ledger page
   ============================================================ */
@media print {
  .site-header, .site-footer, .ledger-colophon, .ledger-carry, .ledger-topics, .ledger-toc, #ms-preloader, #ms-curtain, .skip-link { display: none !important; }
  body { background: #fff; }
  .ledger-entry__head { padding-top: 24px; }
  .ledger-body a::after, .ledger-sources__list a::after { content: " (" attr(href) ")"; font-size: 0.8em; color: #555; }
  .ledger-qa { background: none; border: 1px solid #999; }
  .ledger-card { break-inside: avoid; box-shadow: none; }
}
