/* Regular report pages use the full 170 mm live width, with no reserved note
   rail. Figure labels sit beside their titles within the content column. */
.book-root .book-report-section { --rail: 0mm; --report-note: max-content; --report-gap: 4mm; }
.book-root .book-report-section .book-prose {
  margin: 0 0 0 var(--rail); width: auto; max-width: none;
  font: 400 11.5pt/15.5pt "Book Barlow", Arial, sans-serif;
}
.book-root .book-report-section .book-prose > p,
.book-root .book-report-section.book-chapter .book-prose > p:first-child {
  font: inherit; margin-top: 0; margin-bottom: 0; color: #171715;
}
.book-root .book-report-section .book-prose > p + p { text-indent: 4mm; }
.book-root .book-report-section.book-chapter::before,
.book-root .book-report-section.book-chapter::after { content: none; display: none; }
.book-root .book-report-section .book-section-heading {
  padding: 0; margin: 0 0 10mm var(--rail); min-height: 0; border: 0;
}
.book-root .book-report-section .book-section-heading .book-label {
  margin: 0 0 4mm; font: 400 9pt/13pt "Book Barlow", Arial, sans-serif;
  letter-spacing: .06em; color: #555;
}
.book-root .book-report-section .book-section-heading h2 {
  margin: 0; font: 400 28pt/32pt "Book Barlow", Arial, sans-serif;
  font-style: normal; text-transform: none; letter-spacing: -.015em;
}
.book-root .book-report-section .book-section-heading .book-subtitle {
  max-width: none; margin: 4mm 0 0;
  font: 400 13pt/18pt "Book Barlow", Arial, sans-serif;
  text-transform: none; letter-spacing: 0; color: #e10600;
}
.book-root .book-report-section .book-prose > h3,
.book-root .book-report-section .book-composition-copy h3 {
  display: block; margin: 7mm 0 2mm; padding: 0; border: 0;
  font: 600 12pt/15.5pt "Book Barlow", Arial, sans-serif;
  font-style: normal; text-transform: none; letter-spacing: 0; color: #e10600;
}
.book-root .book-report-section .book-prose > h3::after,
.book-root .book-report-section .book-composition-copy h3::after { content: none; }
.book-root .book-report-section .book-prose > h3 + p,
.book-root .book-report-section .book-composition-copy h3 + p { margin-top: 0; text-indent: 0; }
.book-root .book-report-section .book-prose > h4,
.book-root .book-report-section .book-composition-copy h4 { margin: 5mm 0 2mm; font: 600 11.5pt/15.5pt "Book Barlow", Arial, sans-serif; text-transform: none; }

/* All ordinary visual material, headings and captions share the content column.
   Existing wide spans also follow it now that the reserved rail is removed. */
.book-root .book-report-section .book-prose > :is(figure.book-figure, .book-composition, .book-photo-slot, table, .book-stats, .book-pull, blockquote) {
  width: 100%; max-width: none; margin-left: 0; margin-right: 0;
}
.book-root .book-report-section .book-prose > .book-figure,
.book-root .book-report-section .book-prose > .book-composition { margin-top: 8mm; margin-bottom: 8mm; }
.book-root .book-report-section .book-prose > :is(figure.book-figure, .book-composition)[data-span="wide"] {
  margin-left: calc(-1 * var(--rail)); width: calc(100% + var(--rail));
}
.book-root .book-report-section .book-figure-heading {
  display: grid; grid-template-columns: var(--report-note) minmax(0, 1fr);
  column-gap: var(--report-gap); align-items: baseline;
  width: calc(100% + var(--rail)); margin: 0 0 4mm calc(-1 * var(--rail)); min-height: 0;
  font: 400 9.5pt/13pt "Book Barlow", Arial, sans-serif; letter-spacing: 0; text-transform: none;
}
.book-root .book-report-section .book-figure-heading p { margin: 0; max-width: none; }
.book-root .book-report-section .book-figure-heading p:first-child { font: 400 9pt/13pt "Book Barlow", Arial, sans-serif; }
.book-root .book-report-section .book-figure-heading em { font-family: inherit; font-style: normal; }
.book-root .book-report-section .book-figure figcaption {
  padding: 0; margin: 4mm 0 0; border: 0;
  font: 400 9pt/12.5pt "Book Barlow", Arial, sans-serif; color: #60605b;
}
.book-root .book-report-section .book-figure[data-span="wide"] > .book-figure-heading { width: 100%; margin-left: 0; }
.book-root .book-report-section .book-figure[data-span="wide"] > figcaption { margin-left: var(--rail); }
.book-root .book-report-section .book-figure-drawing,
.book-root .book-report-section .book-figure-images { padding: 0; background: none; border: 0; min-width: 0; }
.book-root .book-report-section .book-figure-drawing::before,
.book-root .book-report-section .book-figure-images::before { content: none; }
.book-root .book-report-section .book-image-panel { min-width: 0; }
.book-root .book-report-section .book-panel-label { max-width: none; font: 400 9pt/12.5pt "Book Barlow", Arial, sans-serif !important; letter-spacing: 0; text-transform: none; }
.book-root .book-report-section table { font: 400 10pt/13.5pt "Book Barlow", Arial, sans-serif; table-layout: fixed; }
.book-root .book-report-section :is(th, td) { padding: 2.5mm 2mm; overflow-wrap: anywhere; }
.book-root .book-report-section th { font-weight: 600; letter-spacing: 0; text-transform: none; }
.book-root .book-report-section .book-prose > blockquote { padding: 0 0 0 6mm; margin: 6mm 0; font: 400 13pt/18pt "Book Barlow", Arial, sans-serif; color: #171715; }
.book-root .book-report-section .book-prose > blockquote p { max-width: none; font: inherit; color: inherit; }
.book-root .book-report-section .book-prose > .book-pull { padding: 0; margin-top: 8mm; margin-bottom: 8mm; }
.book-root .book-report-section .book-stats { padding-left: 0; }
.book-root .book-report-section .book-stats dl > div { grid-template-columns: minmax(0, 1fr) 65mm; }
.book-root .book-report-section .book-photo-slot figcaption { padding-left: 0; font: 400 9pt/12.5pt "Book Barlow", Arial, sans-serif; }
.book-root .book-report-section .book-evidence-note { padding: 0 0 0 4mm; background: none; font: 400 9.5pt/13.5pt "Book Barlow", Arial, sans-serif; }
.book-root .book-report-section .book-evidence-note::before { content: none; }

/* Selected argument/image + prose groups follow the same column geometry. */
.book-root .book-report-section .book-composition { display: block; break-inside: auto; }
.book-root .book-report-section .book-composition > .book-figure { margin: 0; width: 100%; max-width: none; }
.book-root .book-report-section .book-composition .book-composition-copy {
  display: block; padding: 5mm 0 0; font: inherit;
}
.book-root .book-report-section .book-composition[data-span="wide"] .book-composition-copy { margin-left: var(--rail); }
.book-root .book-report-section .book-composition-copy p + p { margin-top: 4mm; text-indent: 0; }
.book-root .book-report-section .book-composition-copy strong { display: block; color: #e10600; margin: 0 0 2mm; }
.book-root .book-report-section .book-composition:is(.book-composition-visitor-storyboard, .book-composition-lab-previous-reading) { break-inside: auto; }
.book-root .book-report-section .book-reference-entry { margin-left: var(--rail); font: 400 10.5pt/16pt "Book Barlow", Arial, sans-serif; }
.book-root .book-contents > h2 { string-set: chapter-title content(text); }

/* The loop's labels occupy grid cells below its visual, so longer labels cannot
   drift into the drawing or outside the figure's declared span. */
.book-root .book-report-section .vd-loop {
  --D: 58mm; height: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4mm;
}
.book-root .book-report-section .vd-loop::before { content: ""; grid-column: 1 / -1; height: 72mm; }
.book-root .book-report-section .vd-ring { top: 5mm; }
.book-root .book-report-section .vd-chev { top: calc(5mm + var(--D) / 2); }
.book-root .book-report-section .vd-loop-centre { top: calc(5mm + var(--D) / 2); }
.book-root .book-report-section .vd-loop-item { position: static; width: auto; transform: none; padding: 0; white-space: normal; text-align: left; grid-row: 2; }
.book-root .book-report-section .vd-at-top { grid-column: 1; }
.book-root .book-report-section .vd-at-right { grid-column: 2; }
.book-root .book-report-section .vd-at-left { grid-column: 3; }
.book-root .book-report-section .vd-loop-note { position: static; grid-column: 1 / -1; grid-row: 3; text-align: left; }
.book-root .book-report-section .vd-bar { min-height: 15mm; height: auto; }
.book-root .book-report-section .vd-seg { white-space: normal; overflow: visible; line-height: 10pt; }

/* The unpaginated edition keeps the same alignment in its reading container. */
.book-root .book-reading-layout .book-report-section { --report-gap: 16px; }
.book-root .book-reading-layout .book-report-section .book-prose { margin-left: 0; font-size: 17px; line-height: 1.8; }
.book-root .book-reading-layout .book-report-section .book-section-heading { margin-left: 0; }
.book-root .book-reading-layout .book-report-section .book-figure-heading { width: 100%; margin-left: 0; }
.book-root .book-reading-layout .book-report-section .book-reference-entry { margin-left: 0; }
@media print {
  .book-root .book-content .book-report-section .book-figure-heading { display: grid !important; }
}

/* The contents uses the same five-module master; its vertical title is retained. */
.book-root .book-contents { padding-left: calc(2 * (var(--book-column) + var(--book-grid-gutter))); }
.book-root .book-toc-part { margin-top: 5mm !important; }
/* A contents page is an intentional page, never an automatically split list. */
.book-root .book-contents { width: var(--book-live); max-width: var(--book-live); height: 250mm; min-height: 0; break-inside: avoid; }
.book-root .book-contents ol { width: 100%; max-width: 100%; break-inside: avoid; }
.book-root .book-contents ol > li:first-child { margin-top: 0 !important; }
.book-root .book-contents a { min-width: 0; }
.book-root .book-contents a > span:first-child { min-width: 0; }
/* Part-opening prose follows the same live area; the old reserved rail is inactive. */
.book-root .book-part .book-prose { margin-left: 0; }
/* Keep the cover and its institutional footer together within the live height. */
.book-root .book-content .book-cover-art { height: 72mm; flex-shrink: 0; }
.book-root .book-cover-footer { break-inside: avoid; }
/* Sustained research flows between headings; full-page artefacts and parts keep
   their explicit breaks. This avoids paragraphs stranded on otherwise empty pages. */
.book-root .book-report-section.book-chapter { break-before: auto; padding-top: 8mm; }
.book-root #prologue { padding-top: 0; }
.book-root .book-composition-visitor-storyboard .book-composition-copy { padding-top: 3mm; }
.book-root .book-composition-visitor-storyboard .book-composition-copy p + p { margin-top: 2mm; }
.book-root .book-composition-visitor-storyboard .book-composition-copy p { break-inside: avoid; }
.book-root #figure-method-scoping img { max-height: 135mm; }
