/* ==========================================================================
   BUNKER INSIGHT REPORT · Edição Editorial
   Sistema de diagramação inspirado em revistas de longform sério
   (Despertai, Economist Special Reports, HBR Features) sob o brandbook Bunker
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@400;500;600;700;800;900&display=swap');

:root {
  /* Brand monochrome */
  --ink: #0a0a0a;
  --ink-2: #1a1a1a;
  --ink-soft: #4d4d4d;
  --ink-muted: #767676;
  --paper: #f5f3ef;       /* off-white com leve creme — sensação editorial */
  --paper-2: #ebe9e3;
  --paper-3: #e0ddd5;
  --white: #ffffff;
  --rule: #0a0a0a;
  --rule-soft: rgba(10,10,10,0.18);
  --rule-hair: rgba(10,10,10,0.10);

  /* Page geometry */
  --page-w: 210mm;
  --page-h: 297mm;
  --m-l: 16mm;
  --m-r: 16mm;
  --m-t: 16mm;
  --m-b: 18mm;

  /* Grain (filmic, low opacity) */
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.07'/%3E%3C/svg%3E");
}

* { box-sizing: border-box; margin: 0; padding: 0; }



img { display: block; max-width: 100%; }

/* ==========================================================================
   STAGE (preview only)
   ========================================================================== */
.stage {
  padding: 60px 0 140px;
  display: flex; flex-direction: column; align-items: center; gap: 44px;
}

/* ==========================================================================
   PAGE PRIMITIVE
   ========================================================================== */
.page, .cover, .back-cover {
  width: var(--page-w);
  height: var(--page-h);
  background: #ffffff;
  position: relative;
  overflow: hidden;
  box-shadow: 0 14px 56px rgba(0,0,0,0.4);
  color: var(--ink);
}
.page-dark { background: var(--ink); color: var(--paper); }
.page-dark .running-head .rh-label,
.page-dark .running-head .rh-num,
.page-dark .body p,
.page-dark .body { color: var(--paper); }

/* Running head (top bar) and signature (bottom) — shared across content pages */
.running-head {
  position: absolute; top: 8mm; left: var(--m-l); right: var(--m-r);
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 6px;
  border-bottom: 0.5px solid var(--rule-soft);
  font-size: 7.5pt; font-weight: 600; text-transform: uppercase; letter-spacing: 1.6px;
  color: var(--ink-soft);
}
.running-head .rh-label::before { content: "_"; }
.running-head .rh-label::after  { content: "_"; }
.running-head .rh-num { font-variant-numeric: tabular-nums; color: var(--ink); }

.signature {
  position: absolute; bottom: 8mm; left: var(--m-l); right: var(--m-r);
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 6px; border-top: 0.5px solid var(--rule-soft);
  font-size: 6.5pt; font-weight: 500; text-transform: uppercase; letter-spacing: 1.6px;
  color: var(--ink-muted);
}
.signature .folio {
  font-size: 9pt; font-weight: 700; color: var(--ink); letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}

/* Content frame inside a page */
.page-frame {
  position: absolute;
  top: calc(8mm + 18px);
  left: var(--m-l); right: var(--m-r);
  bottom: calc(8mm + 18px);
  display: flex; flex-direction: column;
}

/* ==========================================================================
   COVER
   ========================================================================== */
.cover {
  background: #000;
  color: var(--paper);
  background-image: none;
  display: flex; flex-direction: column;
  position: relative;
}
.cover::after { /* grain over black */
  content: ""; position: absolute; inset: 0;
  background-image: var(--grain); opacity: 0.55; pointer-events: none;
  mix-blend-mode: screen;
}
.cover > * { position: relative; z-index: 1; }

.cover-top {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 14mm 14mm 0;
}
.cover-flag {
  display: flex; align-items: baseline; gap: 14px;
  font-size: 9.5pt; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--paper);
}
.cover-flag .flag-mark {
  display: inline-block;
  font-size: 18pt; font-weight: 900; letter-spacing: 1.5px;
}
.cover-flag .flag-meta {
  display: flex; flex-direction: column; gap: 2px;
  border-left: 1px solid rgba(245,243,239,0.4); padding-left: 12px;
  font-size: 7pt; font-weight: 500; letter-spacing: 1.6px;
  color: rgba(245,243,239,0.7);
}

/* Cover flag with logo image */
.cover-flag.cover-flag-img {
  display: flex; align-items: center;
}
.cover-flag.cover-flag-img img {
  height: 84px; width: auto; display: block;
}
.cover[data-variant="tipografica"] .cover-flag.cover-flag-img img {
  /* white logo doesn't read on paper — use black-with-slogan instead */
  content: url('../../assets/logos/Bunker_Logo__black_com-slogan.png');
}
.cover-edition {
  text-align: right;
  font-size: 7pt; font-weight: 600; letter-spacing: 1.8px; text-transform: uppercase;
  color: rgba(245,243,239,0.75);
  line-height: 1.5;
}
.cover-edition strong { display: block; font-size: 9pt; color: var(--paper); margin-bottom: 4px; }

.cover-eyebrow {
  margin: 14mm 14mm 0;
  padding-top: 14px;
  border-top: 2px solid var(--paper);
  font-size: 8pt; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
  color: rgba(245,243,239,0.85);
  display: flex; gap: 18px; align-items: center;
}
.cover-eyebrow .dot { width: 5px; height: 5px; background: var(--paper); border-radius: 50%; }

.cover-headline {
  margin: 6mm 14mm 0;
  font-size: 64px; font-weight: 900; line-height: 1.02; letter-spacing: -1.4px;
  text-transform: uppercase;
  color: var(--paper);
  max-width: 165mm;
  padding-top: 6px;
}
.cover-headline em { font-style: normal; color: rgba(245,243,239,0.55); font-weight: 800; }

.cover-deck {
  margin: 10mm 14mm 0;
  max-width: 130mm;
  font-size: 14pt; font-weight: 400; line-height: 1.45;
  color: rgba(245,243,239,0.78);
}

.cover-spacer { flex: 1; }

.cover-teaser {
  margin: 0 14mm 14mm;
  display: grid; grid-template-columns: 1.5fr 1fr; gap: 14mm; align-items: end;
}
.cover-teaser-box {
  border-top: 2px solid var(--paper);
  padding-top: 10px;
}
.cover-teaser-label {
  font-size: 7.5pt; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: rgba(245,243,239,0.75); margin-bottom: 14px;
}
.cover-teaser-list {
  list-style: none; display: flex; flex-direction: column; gap: 10px;
}
.cover-teaser-list li {
  display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: baseline;
  border-bottom: 0.5px dotted rgba(245,243,239,0.35); padding-bottom: 8px;
}
.cover-teaser-list li:last-child { border-bottom: none; }
.cover-teaser-list .teaser-text {
  font-size: 10pt; font-weight: 500; line-height: 1.3; color: var(--paper);
}
.cover-teaser-list .teaser-page {
  font-size: 7pt; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
  color: rgba(245,243,239,0.65); white-space: nowrap;
}
.cover-byline {
  text-align: right;
  font-size: 8pt; letter-spacing: 1.6px; text-transform: uppercase;
  color: rgba(245,243,239,0.65);
  line-height: 1.6;
}
.cover-byline strong { color: var(--paper); font-weight: 700; letter-spacing: 1.8px; display: block; margin-bottom: 4px; }

/* "B" outline as anchor — bottom right, very large, faded */
.cover-b-anchor {
  position: absolute;
  right: -120px; bottom: -120px;
  width: 540px; height: 540px;
  opacity: 0.07;
  pointer-events: none; z-index: 0;
}
.cover-b-anchor img { width: 100%; height: 100%; object-fit: contain; filter: invert(1); }

/* Cover variants */
.cover[data-variant="tipografica"] {
  background: var(--paper);
  color: var(--ink);
}
.cover[data-variant="tipografica"]::after { mix-blend-mode: multiply; opacity: 0.5; }
.cover[data-variant="tipografica"] .cover-headline { color: var(--ink); }
.cover[data-variant="tipografica"] .cover-headline em { color: var(--ink-muted); }
.cover[data-variant="tipografica"] .cover-deck { color: var(--ink-soft); }
.cover[data-variant="tipografica"] .cover-flag,
.cover[data-variant="tipografica"] .cover-edition strong,
.cover[data-variant="tipografica"] .cover-teaser-list .teaser-text { color: var(--ink); }
.cover[data-variant="tipografica"] .cover-edition,
.cover[data-variant="tipografica"] .cover-flag .flag-meta,
.cover[data-variant="tipografica"] .cover-teaser-label,
.cover[data-variant="tipografica"] .cover-teaser-list .teaser-page,
.cover[data-variant="tipografica"] .cover-byline { color: var(--ink-soft); }
.cover[data-variant="tipografica"] .cover-eyebrow { border-top-color: var(--ink); color: var(--ink); }
.cover[data-variant="tipografica"] .cover-eyebrow .dot { background: var(--ink); }
.cover[data-variant="tipografica"] .cover-flag .flag-meta { border-left-color: var(--rule-soft); }
.cover[data-variant="tipografica"] .cover-teaser-box { border-top-color: var(--ink); }
.cover[data-variant="tipografica"] .cover-teaser-list li { border-bottom-color: rgba(10,10,10,0.18); }
.cover[data-variant="tipografica"] .cover-b-anchor img { filter: none; }
.cover[data-variant="tipografica"] .cover-b-anchor { opacity: 0.06; }
.cover[data-variant="tipografica"] .cover-byline strong { color: var(--ink); }

/* ==========================================================================
   INSIDE COVER · CARTA DO EDITOR
   ========================================================================== */
.editor-letter .body { display: grid; grid-template-columns: 70mm 1fr; gap: 14mm; flex: 1; }
.editor-letter .col-meta {
  display: flex; flex-direction: column; gap: 18px;
  height: 100%;
  order: 2;
}
.editor-letter .col-meta .meta-mark {
  margin-top: auto;
  margin-bottom: auto;
  display: flex; flex-direction: column; gap: 14px;
}
.editor-letter .col-meta .meta-mark-rule {
  height: 2px; background: var(--ink); width: 100%;
}
.editor-letter .col-meta .meta-mark-row {
  display: grid; grid-template-columns: 26mm 1fr; gap: 10px; align-items: center;
}
.editor-letter .col-meta .meta-mark-row img {
  width: 100%; height: auto; display: block;
}
.editor-letter .col-meta .meta-mark-text {
  display: flex; flex-direction: column;
  font-size: 18px; font-weight: 900; line-height: 1.04;
  letter-spacing: -0.5px; text-transform: uppercase; color: var(--ink);
}
.editor-letter .col-meta .meta-mark-text span.muted { color: var(--ink-muted); }
.editor-letter .col-meta .meta-mark-foot {
  font-size: 7pt; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--ink-soft); padding-top: 4px; border-top: 0.5px solid var(--rule-soft);
}
.editor-letter .col-meta .meta-block {
  border-top: 1px solid var(--ink); padding-top: 8px;
}
.editor-letter .col-meta .meta-label {
  font-size: 7pt; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 4px;
}
.editor-letter .col-meta .meta-value {
  font-size: 11pt; font-weight: 700; color: var(--ink); line-height: 1.3;
}
.editor-letter .col-meta .meta-sub {
  font-size: 9pt; color: var(--ink-soft); margin-top: 2px;
}
.editor-letter h1 {
  font-size: 44px; font-weight: 900; line-height: 1.05; letter-spacing: -1.2px;
  text-transform: uppercase; margin-bottom: 14px; padding-top: 6px;
}
.editor-letter h1 em { font-style: normal; color: var(--ink-muted); }
.editor-letter .letter-eyebrow {
  font-size: 8pt; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
  color: var(--ink); margin-bottom: 14px;
  display: flex; align-items: center; gap: 10px;
}
.editor-letter .letter-eyebrow::before { content: ""; width: 18px; height: 2px; background: var(--ink); }
.editor-letter .letter-body p {
  font-size: 10.5pt; line-height: 1.55; color: var(--ink); margin-bottom: 10px;
  text-align: justify; hyphens: auto;
}

/* Drop cap — explicit span, works inside columns too */
.dc {
  font-size: 56pt; font-weight: 900; float: left; line-height: 0.82;
  padding-right: 8px; padding-top: 4px; color: var(--ink);
  letter-spacing: -2px; font-family: 'Schibsted Grotesk', sans-serif;
}
.body-2col .dc {
  font-size: 44pt; line-height: 0.8; padding-right: 6px; padding-top: 2px;
}
/* Author meta-block (carta do editor, P02) — photo + name + bio stats */
.editor-letter .meta-author { padding-top: 10px; }
.editor-letter .author-card {
  display: flex; align-items: center; gap: 10px;
  margin: 8px 0 12px;
}
.editor-letter .author-id { display: flex; flex-direction: column; }
.editor-letter .author-name {
  font-size: 14pt; font-weight: 800; color: var(--ink); line-height: 1.1;
  letter-spacing: -0.3px;
}
.editor-letter .author-role {
  font-size: 7.5pt; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--ink-soft); margin-top: 3px;
}
.editor-letter .author-stats {
  list-style: none; padding: 0; margin: 0 0 10px;
  display: flex; flex-direction: column; gap: 6px;
  border-top: 0.5px solid var(--rule-soft); padding-top: 10px;
}
.editor-letter .author-stats li {
  display: flex; flex-direction: column; gap: 1px;
}
.editor-letter .author-stats strong {
  font-size: 13pt; font-weight: 900; color: var(--ink);
  letter-spacing: -0.4px; font-variant-numeric: tabular-nums;
  line-height: 1;
}
.editor-letter .author-stats span {
  font-size: 7.5pt; line-height: 1.35; color: var(--ink-soft);
}
.editor-letter .author-tag {
  font-size: 8pt; line-height: 1.4; color: var(--ink);
  font-weight: 600;
  border-top: 0.5px solid var(--rule-soft); padding-top: 8px;
  font-style: italic;
}

/* ==========================================================================
   TOC
   ========================================================================== */
.toc h1 {
  font-size: 100px; font-weight: 900; line-height: 1.02; letter-spacing: -3px;
  text-transform: uppercase; margin-bottom: 4px; padding-top: 8px;
}
.toc .kicker { margin-top: 14px; }
.toc .toc-deck {
  font-size: 12pt; color: var(--ink-soft); margin-bottom: 18px;
  max-width: 130mm; line-height: 1.4;
}
.toc-rule { height: 3px; background: var(--ink); margin-bottom: 12px; }
.toc-list { list-style: none; display: flex; flex-direction: column; }
.toc-list li {
  display: grid; grid-template-columns: minmax(150px, 240px) minmax(0, 1fr) auto; gap: 18px; align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid var(--rule-soft);
}
.toc-num {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 20pt; font-weight: 900; letter-spacing: -0.025em; color: var(--ink);
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
  line-height: 1;
}
.toc-num .num-tag {
  font-size: 8pt !important; font-weight: 700 !important; letter-spacing: 0.18em !important; text-transform: uppercase;
  color: var(--ink-soft); border: 1px solid var(--rule-soft); padding: 3px 7px;
  display: inline-block; white-space: nowrap;
}
.toc-num .num-tag {
  font-size: 7pt; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase;
  color: var(--ink-soft);
  border: 1px solid var(--ink-soft); padding: 2px 6px;
}
.toc-title {
  display: flex; flex-direction: column; gap: 3px;
}
.toc-title .t-title {
  font-size: 13pt; font-weight: 800; text-transform: uppercase; letter-spacing: -0.2px;
  color: var(--ink); line-height: 1.15;
}
.toc-title .t-desc {
  font-size: 9.5pt; color: var(--ink-soft); line-height: 1.4; font-weight: 400;
}
.toc-folio {
  text-align: right;
  font-size: 18pt; font-weight: 900; color: var(--ink); font-variant-numeric: tabular-nums;
}
.toc-folio .folio-label {
  font-size: 7pt; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--ink-soft); display: block;
}

/* ==========================================================================
   SECTION TITLE (running)
   ========================================================================== */
.section-flag {
  display: flex; align-items: baseline; justify-content: space-between;
  border-bottom: 2px solid var(--ink); padding-bottom: 8px; margin-bottom: 14px;
  margin-top: 12px;
}
.section-flag .sf-num {
  font-size: 9pt; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
  color: var(--ink);
}
.section-flag .sf-tag {
  font-size: 7.5pt; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
  color: var(--ink-soft);
}

/* ==========================================================================
   FEATURE OPENER (esquerda do spread)
   ========================================================================== */
.feature-opener { display: flex; flex-direction: column; flex: 1; }
.feature-opener .feat-num {
  font-size: 240px; font-weight: 900; line-height: 0.78; letter-spacing: -8px;
  color: var(--ink); margin-bottom: 12px;
}
.feature-opener .feat-num em {
  font-style: normal; color: rgba(10,10,10,0.18); margin-left: -4px;
}
.feature-opener .feat-num em.aster {
  color: inherit; margin-left: 0.42em;
}

/* Bunker brand asterisk · 8-spoked, monochrome */
.aster {
  display: inline-block;
  width: 0.42em; height: 0.42em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg stroke='black' stroke-width='5' stroke-linecap='square' fill='none'%3E%3Cline x1='20' y1='3' x2='20' y2='37'/%3E%3Cline x1='3' y1='20' x2='37' y2='20'/%3E%3Cline x1='8' y1='8' x2='32' y2='32'/%3E%3Cline x1='32' y1='8' x2='8' y2='32'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg stroke='black' stroke-width='5' stroke-linecap='square' fill='none'%3E%3Cline x1='20' y1='3' x2='20' y2='37'/%3E%3Cline x1='3' y1='20' x2='37' y2='20'/%3E%3Cline x1='8' y1='8' x2='32' y2='32'/%3E%3Cline x1='32' y1='8' x2='8' y2='32'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain;
  vertical-align: 0.1em;
  margin-left: 0.04em;
}
.feat-num .aster {
  width: 0.3em; height: 0.3em;
  vertical-align: baseline;
  margin-left: 0.42em;
}
.feature-opener .feat-eyebrow {
  font-size: 8.5pt; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 22px;
  display: flex; align-items: center; gap: 10px;
}
.feature-opener .feat-eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--ink); }
.feature-opener h2 {
  font-size: 64px; font-weight: 900; line-height: 1.02; letter-spacing: -1.6px;
  text-transform: uppercase; margin-bottom: 18px; padding-top: 8px;
  max-width: 92%;
}
.feature-opener h2 em { font-style: normal; color: var(--ink-muted); font-weight: 800; }
.feature-opener .feat-lead {
  font-size: 13pt; font-weight: 400; line-height: 1.5; color: var(--ink); max-width: 92%;
  border-left: 3px solid var(--ink); padding-left: 14px;
}

/* ==========================================================================
   BODY COLUMNS · multi-col reading
   ========================================================================== */
.body-2col {
  column-count: 2; column-gap: 6mm; column-rule: 0.5px solid var(--rule-soft);
  font-size: 9.5pt; line-height: 1.55; color: var(--ink);
  text-align: justify; hyphens: auto;
}
.body-2col p { margin-bottom: 9px; break-inside: avoid; }
/* legacy dropcap rule removed — use <span class="dc"> instead */
.body-2col h3 {
  font-size: 11pt; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px;
  margin: 4px 0 6px; color: var(--ink); break-after: avoid;
}
.body-2col h3.kicker {
  font-size: 8pt; letter-spacing: 2.5px; color: var(--ink-soft); margin-bottom: 4px;
}

.body-3col {
  column-count: 3; column-gap: 5mm; column-rule: 0.5px solid var(--rule-soft);
  font-size: 9pt; line-height: 1.5; color: var(--ink-soft);
}
.body-3col p { margin-bottom: 7px; break-inside: avoid; }

/* ==========================================================================
   PULL QUOTE
   ========================================================================== */
.pullquote {
  margin: 14px 0;
  padding: 18px 0 14px;
  border-top: 3px solid var(--ink); border-bottom: 0.5px solid var(--ink);
  break-inside: avoid;
  position: relative;
}
.pullquote .q-text {
  font-size: 22pt; font-weight: 800; line-height: 1.1; letter-spacing: -0.6px;
  color: var(--ink); margin-bottom: 10px;
  text-transform: none; text-align: left; hyphens: none;
}
.pullquote .q-attr {
  font-size: 7.5pt; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
  color: var(--ink-soft);
}
.pullquote.inverted {
  background: var(--ink); color: var(--paper);
  border-color: var(--paper);
  padding: 22px 22px;
  margin: 14px -4mm;
}
.pullquote.inverted .q-text { color: var(--paper); }
.pullquote.inverted .q-attr { color: rgba(245,243,239,0.65); }

/* small-quote inline */
.smallquote {
  font-size: 11.5pt; font-weight: 700; line-height: 1.3; letter-spacing: -0.2px;
  border-left: 2px solid var(--ink); padding-left: 10px; margin: 8px 0;
}

/* ==========================================================================
   FEATURE STAT BLOCK — big numbers as visuals
   ========================================================================== */
/* Upside card (P10 "+30%" treatment) */
.upside-card {
  background: #ffffff;
  padding: 22px 22px 24px;
  border: 0.5px solid var(--rule-soft);
  border-top: 4px solid var(--ink);
  display: flex; flex-direction: column; gap: 12px;
  position: relative;
}
.upside-card::after {
  content: ""; position: absolute; top: 0; right: 0; width: 14px; height: 14px; background: var(--ink);
}
.upside-card .up-kicker {
  font-size: 7.5pt; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--ink-soft);
}
.upside-card .up-num {
  font-size: 88px; font-weight: 900; line-height: 0.88; letter-spacing: -2.5px;
  color: var(--ink); font-variant-numeric: tabular-nums;
}
.upside-card .up-bar {
  height: 16px; background: var(--paper-3); position: relative;
  border: 0.5px solid var(--rule-soft);
}
.upside-card .up-bar-fill { height: 100%; background: var(--ink); }
.upside-card .up-bar-axis {
  display: flex; justify-content: space-between;
  font-size: 7pt; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--ink-soft);
}
.upside-card .up-bar-axis span:nth-child(2) { color: var(--ink); }
.upside-card .up-caption {
  font-size: 9.5pt; line-height: 1.5; color: var(--ink);
  border-top: 0.5px solid var(--rule-soft); padding-top: 12px;
  margin-top: auto;
}
.upside-card .up-source {
  font-size: 7pt; font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase;
  color: var(--ink-muted);
}

/* Editorial figure (inserted graphic + caption) */
.report-figure {
  margin: 14px auto 0; display: block; break-inside: avoid;
  max-width: 60%;
}
.body-2col .report-figure {
  column-span: all;
  -webkit-column-span: all;
  margin: 14px auto;
  max-width: 70%;
}
.report-figure img {
  width: 100%; height: auto; display: block;
  border: 0.5px solid var(--rule-soft);
}
.report-figure figcaption {
  font-size: 7.5pt; line-height: 1.4; color: var(--ink-soft);
  letter-spacing: 0.3px; text-transform: uppercase;
  margin-top: 8px; padding-top: 6px;
  border-top: 0.5px solid var(--rule-soft);
  font-weight: 600;
}

/* P05 flow — single column with floated graphic so text wraps around it */
.body-2col.p05-flow {
  column-count: 1;
  font-size: 10pt; line-height: 1.6;
}
.body-2col.p05-flow p { margin-bottom: 10px; }
.report-figure-float {
  float: right;
  width: 38%;
  margin: 4px 0 12px 16px;
  shape-outside: margin-box;
}

/* Graphic prompt placeholder (visible in preview AND print until replaced) */
.graphic-prompt {
  border: 2px dashed #d32f2f;
  padding: 14px 16px;
  margin-top: 14px;
  background: rgba(211,47,47,0.04);
  color: #b71c1c;
  break-inside: avoid;
}
.graphic-prompt .gp-label {
  font-size: 8pt; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase;
  color: #d32f2f; margin-bottom: 8px;
}
.graphic-prompt .gp-body p {
  font-size: 8.5pt; line-height: 1.45; color: #6e1818; margin: 0 0 6px;
}
.graphic-prompt .gp-body p strong { color: #b71c1c; font-weight: 800; }
.graphic-prompt .gp-body ol {
  padding-left: 20px; margin: 6px 0 8px;
  columns: 2; column-gap: 14px;
}
.graphic-prompt .gp-body li {
  font-size: 8pt; line-height: 1.4; color: #6e1818; margin-bottom: 2px;
  break-inside: avoid;
}
.bignum {
  display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start;
  padding: 14px 0; border-bottom: 0.5px solid var(--rule-soft);
}
.bignum:last-child { border-bottom: none; }
.bignum .bn-num {
  font-size: 38px; font-weight: 900; line-height: 0.92; letter-spacing: -1.2px;
  color: var(--ink); font-variant-numeric: tabular-nums;
  min-width: 30mm;
}
.bignum .bn-body {
  display: flex; flex-direction: column; gap: 4px; padding-top: 6px;
}
.bignum .bn-kicker {
  font-size: 7pt; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
  color: var(--ink-soft);
}
.bignum .bn-text {
  font-size: 9.5pt; line-height: 1.45; color: var(--ink);
}
.bignum .bn-source {
  font-size: 7pt; color: var(--ink-muted); margin-top: 2px;
  font-style: italic;
}

/* Chapter index (sub-TOC inside opener) */
.chapter-index { border-top: 2px solid var(--ink); padding-top: 18px; }
.feature-opener .chapter-index { margin-top: auto; margin-bottom: auto; }
.chapter-index .ci-label {
  font-size: 8pt; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 14px;
}
.chapter-index ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0; }
.chapter-index li {
  display: grid; grid-template-columns: 16mm 1fr 14mm; gap: 10px; align-items: baseline;
  padding: 12px 0;
  border-bottom: 0.5px solid var(--rule-soft);
}
.chapter-index li:last-child { border-bottom: none; }
.chapter-index .ci-num {
  font-size: 11pt; font-weight: 900; color: var(--ink); letter-spacing: -0.2px;
  font-variant-numeric: tabular-nums;
}
.chapter-index .ci-text {
  font-size: 13pt; font-weight: 700; color: var(--ink); line-height: 1.2; letter-spacing: -0.2px;
}
.chapter-index .ci-page {
  font-size: 14pt; font-weight: 900; color: var(--ink); text-align: right;
  font-variant-numeric: tabular-nums; letter-spacing: -0.2px;
}

/* Stat-strip (3 bignums side by side, smaller) */
.stat-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 2px solid var(--ink); }
.stat-strip .ss-cell {
  padding: 14px 12px 12px;
  border-right: 0.5px solid var(--rule-soft);
}
.stat-strip .ss-cell:last-child { border-right: none; }
.stat-strip .ss-num {
  font-size: 42px; font-weight: 900; line-height: 0.9; letter-spacing: -1.4px;
  color: var(--ink); margin-bottom: 6px; font-variant-numeric: tabular-nums;
}
.stat-strip .ss-label {
  font-size: 8.5pt; line-height: 1.4; color: var(--ink-soft);
}

/* Dark charts (P11 Cap 03 opener — 3 mini visualizations on dark page) */
.dark-charts {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 8mm;
  border-top: 2px solid var(--paper);
  padding-top: 18px;
}
.dchart {
  display: flex; flex-direction: column; gap: 12px;
  padding-right: 4mm;
  border-right: 0.5px solid rgba(245,243,239,0.15);
}
.dchart:last-child { border-right: none; padding-right: 0; }
.dchart .dc-headline {
  font-size: 32pt; font-weight: 900; line-height: 0.9; letter-spacing: -1px;
  color: var(--paper); font-variant-numeric: tabular-nums;
}
.dchart .dc-eyebrow {
  font-size: 7.5pt; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
  color: rgba(245,243,239,0.55);
}
.dchart .dc-bar {
  height: 14px; background: rgba(245,243,239,0.10);
  border: 0.5px solid rgba(245,243,239,0.20);
  position: relative;
}
.dchart .dc-bar span {
  position: absolute; left: 0; top: 0; bottom: 0;
  background: var(--paper);
}
.dchart .dc-compare {
  display: flex; justify-content: space-between; gap: 6px;
  font-size: 7.5pt; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase;
  color: rgba(245,243,239,0.55);
}
.dchart .dc-compare strong { color: var(--paper); font-weight: 700; }
.dc-text {
  font-size: 10pt; line-height: 1.5; color: rgba(245,243,239,0.85);
  margin-top: auto;
}

/* Data deck (P09 — 4 horizontal rows replacing the bignum grid) */
.data-deck {
  display: flex; flex-direction: column;
  border-top: 2px solid var(--ink);
}
.data-deck .dr-row {
  display: grid; grid-template-columns: 76mm 1fr; gap: 8mm;
  padding: 16px 0;
  border-bottom: 0.5px solid var(--rule-soft);
  align-items: center;
}
.data-deck .dr-row:last-child { border-bottom: 1.5px solid var(--ink); }
.data-deck .dr-num {
  font-size: 28pt; font-weight: 900; color: var(--ink);
  line-height: 0.95; letter-spacing: -1px;
  font-variant-numeric: tabular-nums;
}
.data-deck .dr-body { display: flex; flex-direction: column; gap: 6px; }
.data-deck .dr-kicker {
  font-size: 8pt; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase;
  color: var(--ink);
}
.data-deck .dr-text {
  font-size: 9.5pt; line-height: 1.5; color: var(--ink-soft);
}

/* Compact list (P19 unified — predictions) */
.compact-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column;
}
.compact-list li {
  display: grid; grid-template-columns: 22mm 1fr; gap: 4mm;
  padding: 10px 0;
  border-bottom: 0.5px solid var(--rule-soft);
  font-size: 9pt; line-height: 1.4;
}
.compact-list li:last-child { border-bottom: none; }
.compact-list li strong {
  font-size: 24pt; font-weight: 900; color: var(--ink);
  letter-spacing: -0.6px; line-height: 0.9; font-variant-numeric: tabular-nums;
}
.compact-list li span { color: var(--ink); display: block; margin-bottom: 4px; }
.compact-list li em {
  font-style: italic; font-size: 7pt; color: var(--ink-muted);
  letter-spacing: 0.3px;
}

/* Horizon compact (P19 unified — 3 horizontes em coluna) */
.horizon-compact { display: flex; flex-direction: column; gap: 0; }
.horizon-compact .hzc-row {
  display: grid; grid-template-columns: 22mm 1fr; gap: 4mm;
  padding: 10px 0;
  border-bottom: 0.5px solid var(--rule-soft);
}
.horizon-compact .hzc-row:last-child { border-bottom: none; }
.horizon-compact .hzc-num {
  font-size: 28pt; font-weight: 900; color: var(--ink);
  letter-spacing: -0.8px; line-height: 0.9; font-variant-numeric: tabular-nums;
  display: flex; align-items: baseline; gap: 4px;
}
.horizon-compact .hzc-unit {
  font-size: 9pt; font-weight: 700; color: var(--ink-soft);
  letter-spacing: 1px; text-transform: uppercase;
}
.horizon-compact .hzc-title {
  font-size: 11pt; font-weight: 800; text-transform: uppercase;
  letter-spacing: 0.3px; color: var(--ink); margin-bottom: 4px;
}
.horizon-compact .hzc-body p {
  font-size: 8.5pt; line-height: 1.5; color: var(--ink-soft); margin: 0;
}

/* Copyright footer (P24 — replaces the two callouts) */
.copy-foot {
  font-size: 7.5pt; line-height: 1.55; color: var(--ink-soft);
  border-top: 0.5px solid var(--rule-soft); padding-top: 10px;
  font-style: italic;
}

/* Reference list (P23 — 26 fontes em coluna dupla compacta) */
.ref-list {
  list-style: none; padding: 0; margin: 0;
  columns: 2; column-gap: 8mm; column-rule: 0.5px solid var(--rule-soft);
}
.ref-list li {
  display: grid; grid-template-columns: 8mm 1fr; gap: 4px 6px;
  padding: 5px 0; border-bottom: 0.5px solid var(--rule-soft);
  font-size: 7.5pt; line-height: 1.3;
  break-inside: avoid;
}
.ref-list li:last-child { border-bottom: none; }
.ref-list .ref-num {
  grid-row: 1 / span 2;
  font-size: 9pt; font-weight: 900; color: var(--ink);
  font-variant-numeric: tabular-nums; letter-spacing: -0.2px;
}
.ref-list .ref-name {
  grid-column: 2; grid-row: 1;
  font-size: 8pt; font-weight: 700; color: var(--ink); line-height: 1.3;
}
.ref-list .ref-type {
  grid-column: 2; grid-row: 2;
  font-size: 6.5pt; font-weight: 600; color: var(--ink-soft);
  letter-spacing: 0.4px; text-transform: uppercase;
}

/* Comparison bars (chart 1) */
.dc-comparison { display: flex; flex-direction: column; gap: 8px; }
.dcc-row {
  display: grid; grid-template-columns: 16mm 1fr 12mm; gap: 6px; align-items: center;
}
.dcc-label {
  font-size: 7pt; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
  color: rgba(245,243,239,0.55); text-align: right;
}
.dcc-row-hi .dcc-label { color: var(--paper); }
.dcc-track {
  height: 14px; background: rgba(245,243,239,0.08);
  border: 0.5px solid rgba(245,243,239,0.18);
}
.dcc-fill { height: 100%; background: rgba(245,243,239,0.45); }
.dcc-row-hi .dcc-fill { background: var(--paper); }
.dcc-num {
  font-size: 12pt; font-weight: 900; color: var(--paper); text-align: right;
  font-variant-numeric: tabular-nums; letter-spacing: -0.3px;
}
.dcc-row-base .dcc-num { color: rgba(245,243,239,0.6); }
.dcc-delta {
  font-size: 8pt; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--paper); padding-top: 4px;
  border-top: 0.5px solid rgba(245,243,239,0.18);
  font-variant-numeric: tabular-nums;
}

/* Multiplier (chart 2) */
.dc-multiplier { display: flex; flex-direction: column; gap: 8px; }
.dcm-baseline, .dcm-target {
  display: flex; align-items: baseline; gap: 8px;
  padding: 6px 0; border-top: 0.5px solid rgba(245,243,239,0.15);
}
.dcm-target { border-top: 0.5px solid var(--paper); }
.dcm-mark {
  font-size: 22pt; font-weight: 900; letter-spacing: -0.6px;
  color: rgba(245,243,239,0.45); font-variant-numeric: tabular-nums;
}
.dcm-target-num {
  font-size: 36pt; font-weight: 900; letter-spacing: -1.2px;
  color: var(--paper); font-variant-numeric: tabular-nums; line-height: 1;
}
.dcm-baseline-label, .dcm-target-label {
  font-size: 7pt; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
  color: rgba(245,243,239,0.55);
}
.dcm-target-label { color: var(--paper); }
.dcm-arrow {
  height: 18px; position: relative; margin: 2px 0;
  background: linear-gradient(to bottom, rgba(245,243,239,0.15), rgba(245,243,239,0.55));
  width: 2px; margin-left: 8px;
}
.dcm-arrow::after {
  content: ""; position: absolute; bottom: -1px; left: -3px;
  width: 0; height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 6px solid var(--paper);
}

/* Doubling stack (chart 3) */
.dc-doubling { display: flex; flex-direction: column; gap: 10px; }
.dcd-row {
  display: grid; grid-template-columns: 22mm 1fr 10mm; gap: 6px; align-items: center;
}
.dcd-label {
  font-size: 7pt; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
  color: rgba(245,243,239,0.55); text-align: right;
}
.dcd-hi .dcd-label { color: var(--paper); }
.dcd-bar {
  height: 22px; background: rgba(245,243,239,0.08);
  border: 0.5px solid rgba(245,243,239,0.18);
  position: relative;
}
.dcd-bar span {
  position: absolute; left: 0; top: 0; bottom: 0;
  background: rgba(245,243,239,0.4);
}
.dcd-hi .dcd-bar span { background: var(--paper); }
.dcd-num {
  font-size: 14pt; font-weight: 900; color: var(--paper);
  font-variant-numeric: tabular-nums; letter-spacing: -0.4px;
  text-align: right;
}

/* Stat-strip with mini-viz (bar under the number) — for opener pages */
.stat-viz-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6mm; border-top: 2px solid var(--ink); padding-top: 16px; }
.stat-viz {
  display: flex; flex-direction: column; gap: 8px;
  padding-right: 8px;
}
.stat-viz .sv-num {
  font-size: 56px; font-weight: 900; line-height: 0.88; letter-spacing: -1.4px;
  color: var(--ink); font-variant-numeric: tabular-nums;
  display: flex; align-items: baseline; gap: 4px;
}
.stat-viz .sv-num .sv-frac {
  font-size: 18pt; color: var(--ink-muted); font-weight: 700;
}
.stat-viz .sv-bar {
  height: 14px; background: var(--paper-3); position: relative;
  border: 0.5px solid var(--rule-soft);
}
.stat-viz .sv-bar-fill { height: 100%; background: var(--ink); }
.stat-viz .sv-meta {
  display: flex; justify-content: space-between;
  font-size: 7pt; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--ink-soft);
}
.stat-viz .sv-meta .sv-meta-strong { color: var(--ink); }
.stat-viz .sv-label {
  font-size: 8.5pt; line-height: 1.45; color: var(--ink-soft); margin-top: 4px;
}

/* ==========================================================================
   SIDEBAR / CALLOUT BOXES
   ========================================================================== */
.callout {
  background: var(--ink); color: var(--paper); padding: 18px 20px;
  position: relative; overflow: hidden;
  break-inside: avoid;
}
.callout::before {
  content: ""; position: absolute; top: 8px; right: 8px;
  width: 26px; height: 18px;
  border-top: 1px solid rgba(245,243,239,0.25);
  border-right: 1px solid rgba(245,243,239,0.25);
}
.callout .co-kicker {
  font-size: 7.5pt; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: rgba(245,243,239,0.75); margin-bottom: 8px;
  display: flex; align-items: center; gap: 8px;
}
.callout .co-kicker::before { content: ""; width: 8px; height: 8px; background: var(--paper); }
.callout .co-title {
  font-size: 14pt; font-weight: 800; line-height: 1.1; letter-spacing: -0.4px;
  color: var(--paper); margin: 12px 0 14px; text-transform: uppercase;
}
.callout ul { list-style: none; padding: 0; margin: 0; }
.callout li {
  font-size: 9pt; line-height: 1.5; color: rgba(245,243,239,0.88);
  padding: 8px 0 8px 20px; position: relative;
  border-bottom: 0.5px solid rgba(245,243,239,0.10);
}
.callout li:last-child { border-bottom: none; }
.callout li::before {
  content: ""; position: absolute; left: 0; top: 13px;
  width: 10px; height: 10px;
  background-color: var(--paper);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg stroke='black' stroke-width='5' stroke-linecap='square' fill='none'%3E%3Cline x1='20' y1='3' x2='20' y2='37'/%3E%3Cline x1='3' y1='20' x2='37' y2='20'/%3E%3Cline x1='8' y1='8' x2='32' y2='32'/%3E%3Cline x1='32' y1='8' x2='8' y2='32'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg stroke='black' stroke-width='5' stroke-linecap='square' fill='none'%3E%3Cline x1='20' y1='3' x2='20' y2='37'/%3E%3Cline x1='3' y1='20' x2='37' y2='20'/%3E%3Cline x1='8' y1='8' x2='32' y2='32'/%3E%3Cline x1='32' y1='8' x2='8' y2='32'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain;
}
.callout p { font-size: 9.5pt; line-height: 1.5; color: rgba(245,243,239,0.88); margin: 0; }

.callout.paper {
  background: #efefef; color: var(--ink);
  border: none;
  border-left: 6px solid var(--ink);
  padding-left: 22px;
}
.callout.paper::before { border-color: var(--rule-soft); }
.callout.paper .co-kicker { color: var(--ink-soft); }
.callout.paper .co-kicker::before { background: var(--ink); }
.callout.paper .co-title { color: var(--ink); }
.callout.paper li { color: var(--ink); border-bottom-color: var(--rule-hair); }
.callout.paper li::before { background-color: var(--ink); }
.callout.paper p { color: var(--ink); }

/* ==========================================================================
   NUMBERED LIST (editorial, big numerals)
   ========================================================================== */
.numlist { list-style: none; padding: 0; display: flex; flex-direction: column; }
.numlist li {
  display: grid; grid-template-columns: 22mm 1fr; gap: 4mm; align-items: start;
  padding: 14px 0; border-bottom: 0.5px solid var(--rule-soft);
  break-inside: avoid;
}
.numlist li:last-child { border-bottom: none; }
.numlist .nl-num {
  font-size: 56px; font-weight: 900; line-height: 0.85; letter-spacing: -1.4px;
  color: var(--ink); font-variant-numeric: tabular-nums;
}
.numlist .nl-body { padding-top: 8px; }
.numlist .nl-title {
  font-size: 11.5pt; font-weight: 800; text-transform: uppercase; letter-spacing: -0.1px;
  margin-bottom: 4px; color: var(--ink);
}
.numlist .nl-text {
  font-size: 9.5pt; line-height: 1.5; color: var(--ink-soft);
}
.numlist .nl-source {
  font-size: 7.5pt; color: var(--ink-muted); margin-top: 4px; font-style: italic;
}

/* ==========================================================================
   Q&A (Despertai-style numbered question/answer)
   ========================================================================== */
/* Q&A — numbered editorial deck */
.qa {
  counter-reset: qacount;
  border-top: 3px solid var(--ink);
  padding-top: 10px;
  display: flex; flex-direction: column;
}
.qa .qa-item {
  counter-increment: qacount;
  display: grid;
  grid-template-columns: 22mm 1fr;
  grid-template-areas: "num q" "num a";
  gap: 6px 6mm;
  padding: 16px 0 18px;
  border-bottom: 0.5px solid var(--rule-soft);
  position: relative;
}
.qa .qa-item:last-child { border-bottom: none; padding-bottom: 0; }
.qa .qa-item::before {
  content: counter(qacount, decimal-leading-zero);
  grid-area: num;
  font-size: 56px; font-weight: 900; line-height: 0.86; letter-spacing: -1.6px;
  color: var(--ink); font-variant-numeric: tabular-nums;
  align-self: start;
}
.qa .qa-q {
  grid-area: q;
  font-size: 14pt; font-weight: 900; text-transform: uppercase; letter-spacing: -0.3px;
  line-height: 1.1; color: var(--ink);
  padding-top: 4px;
}
.qa .qa-q::after { content: "?"; }
.qa .qa-a {
  grid-area: a;
  font-size: 10pt; line-height: 1.55; color: var(--ink);
}
.qa .qa-a strong { color: var(--ink); }

/* ==========================================================================
   DATA TABLE (editorial, slim)
   ========================================================================== */
.dtable { width: 100%; border-collapse: collapse; font-size: 8.5pt; line-height: 1.35; }
.dtable thead th {
  background: var(--ink); color: var(--paper); text-align: left;
  font-weight: 700; font-size: 7.5pt; letter-spacing: 2px; text-transform: uppercase;
  padding: 9px 10px; vertical-align: top;
}
.dtable tbody td {
  padding: 9px 10px; vertical-align: top;
  border-bottom: 0.5px solid var(--rule-soft);
  color: var(--ink);
}
.dtable tbody tr:nth-child(even) td { background: rgba(10,10,10,0.025); }
.dtable tbody td:first-child {
  font-weight: 700; font-size: 9pt; width: 28%;
}
.dtable tbody td.stage { font-weight: 700; color: var(--ink); }
.dtable .sub { color: var(--ink-soft); font-size: 7.5pt; }

/* Table footnote (under .dtable) */
.table-footnote {
  font-size: 8pt; line-height: 1.5; color: var(--ink-soft);
  padding: 10px 0 0; margin-top: 6px;
  border-top: 0.5px solid var(--rule-soft);
  font-style: italic;
}
.table-footnote strong { color: var(--ink); font-style: normal; font-weight: 800; font-variant-numeric: tabular-nums; }

/* Sector table — stage meter visualization */
.table-intro {
  font-size: 9pt; line-height: 1.5; color: var(--ink-soft); margin-bottom: 10px;
  max-width: 90%;
}
.table-intro strong { color: var(--ink); font-weight: 800; }
.dtable-sector { font-size: 8pt; }
.dtable-sector .stage-cell {
  width: 42mm; padding: 8px 10px;
}
.dtable-sector .stage-meter {
  display: flex; gap: 2px; margin-bottom: 5px;
}
.dtable-sector .stage-meter i {
  width: 11px; height: 5px; background: var(--paper-3);
  border: 0.5px solid var(--rule-soft);
}
.dtable-sector .stage-meter[data-stage="1"] i:nth-child(-n+1),
.dtable-sector .stage-meter[data-stage="2"] i:nth-child(-n+2),
.dtable-sector .stage-meter[data-stage="3"] i:nth-child(-n+3),
.dtable-sector .stage-meter[data-stage="4"] i:nth-child(-n+4),
.dtable-sector .stage-meter[data-stage="5"] i:nth-child(-n+5) {
  background: var(--ink); border-color: var(--ink);
}
.dtable-sector .stage-info {
  display: flex; align-items: baseline; gap: 6px;
}
.dtable-sector .stage-info .stage-n {
  font-size: 16pt; font-weight: 900; color: var(--ink); line-height: 1;
  font-variant-numeric: tabular-nums; letter-spacing: -0.4px;
}
.dtable-sector .stage-info .stage-l {
  font-size: 7.5pt; font-weight: 600; color: var(--ink-soft);
  text-transform: uppercase; letter-spacing: 0.5px;
}

/* ==========================================================================
   DONUT CHARTS (monochrome)
   ========================================================================== */
.donuts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14mm; padding: 8px 0; }
.donuts.two { grid-template-columns: repeat(2, 1fr); gap: 18mm; }
.donut { display: flex; flex-direction: column; align-items: center; text-align: center; }
.donut .ring { position: relative; width: 130px; height: 130px; }
.donut .ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.donut .ring circle.track { fill: none; stroke: var(--paper-3); stroke-width: 9; }
.donut .ring circle.fill { fill: none; stroke: var(--ink); stroke-width: 9; stroke-linecap: butt; }
.donut .ring .num {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 28px; font-weight: 900; color: var(--ink); letter-spacing: -1px;
  font-variant-numeric: tabular-nums;
}
.donut .d-title {
  margin-top: 10px;
  font-size: 9pt; font-weight: 800; line-height: 1.2; text-transform: uppercase; letter-spacing: -0.1px;
  color: var(--ink);
}
.donut .d-text { font-size: 8.5pt; color: var(--ink-soft); line-height: 1.4; margin-top: 4px; }

/* ==========================================================================
   BAR CHART (monochrome, horizontal)
   ========================================================================== */
.bars { display: flex; flex-direction: column; gap: 22px; }
.bars .bar-row {
  display: grid;
  grid-template-areas: "bar bar" "label num";
  grid-template-columns: 1fr auto;
  gap: 6px 8px;
}
.bars .bar-track {
  grid-area: bar;
  height: 18px; background: var(--paper-3); position: relative;
}
.bars .bar-label {
  grid-area: label;
  font-size: 9pt; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px;
  color: var(--ink); text-align: left;
}
.bars .bar-num {
  grid-area: num;
  font-size: 12pt; font-weight: 900; color: var(--ink);
  font-variant-numeric: tabular-nums; letter-spacing: -0.3px;
  text-align: right;
}
.bars .bar-fill { height: 100%; background: var(--ink); }
.bars .bar-fill.alt { background: var(--ink-muted); }
.bars .bar-num {
  font-size: 11pt; font-weight: 900; color: var(--ink); font-variant-numeric: tabular-nums;
  text-align: right;
}

/* ==========================================================================
   TIMELINE (3 horizontes — vertical, big)
   ========================================================================== */
.horizon { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 4mm; margin-top: 4mm; }
.horizon .hz-cell {
  background: var(--paper-2);
  padding: 18px 16px 22px;
  border-top: 4px solid var(--ink);
  position: relative;
  break-inside: avoid;
}
.horizon .hz-cell::after {
  content: ""; position: absolute; top: 0; right: 0; width: 12px; height: 12px;
  background: var(--ink);
}
.horizon .hz-tag {
  font-size: 7.5pt; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 6px;
}
.horizon .hz-num {
  font-size: 56px; font-weight: 900; line-height: 0.88; letter-spacing: -1.6px;
  color: var(--ink); margin-bottom: 4px;
}
.horizon .hz-unit { font-size: 14pt; font-weight: 700; color: var(--ink-soft); }
.horizon .hz-title {
  font-size: 13pt; font-weight: 900; text-transform: uppercase; letter-spacing: -0.2px;
  color: var(--ink); margin: 10px 0 8px; line-height: 1.1;
}
.horizon .hz-text {
  font-size: 8.5pt; line-height: 1.5; color: var(--ink-soft);
}

/* ==========================================================================
   PHOTO PLACEHOLDER — solid black with B mark crop reveal
   ========================================================================== */
.photo-ph {
  background: var(--ink);
  position: relative; overflow: hidden;
  color: var(--paper);
  display: flex; align-items: flex-end;
  background-image: var(--grain);
  background-blend-mode: screen;
}
.photo-ph .ph-b {
  position: absolute; right: -40px; top: 50%; transform: translateY(-50%);
  width: 70%; opacity: 0.08; pointer-events: none;
}
.photo-ph .ph-b img { width: 100%; filter: invert(1); }
.photo-ph .ph-caption {
  font-size: 8pt; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
  color: rgba(245,243,239,0.75); padding: 12px 14px;
  border-top: 1px solid rgba(245,243,239,0.25);
  width: 100%;
}
.photo-ph .ph-label {
  position: absolute; top: 12px; left: 14px;
  font-size: 7pt; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: rgba(245,243,239,0.5);
}

/* ==========================================================================
   BACK COVER
   ========================================================================== */
.back-cover {
  background: #ffffff;
  display: flex; flex-direction: column;
}
.back-cover .bc-top {
  padding: 16mm;
  border-bottom: 3px solid var(--ink);
  display: flex; justify-content: space-between; align-items: flex-start;
}
.back-cover .bc-flag {
  font-size: 9.5pt; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
}
.back-cover .bc-body {
  padding: 18mm 16mm; flex: 1;
  display: grid; grid-template-columns: 1fr 75mm; gap: 14mm;
}
.back-cover .bc-tagline {
  font-size: 54px; font-weight: 900; line-height: 1.02; letter-spacing: -1.2px;
  text-transform: uppercase; color: var(--ink); max-width: 110mm; padding-top: 6px;
}
.back-cover .bc-tagline em { font-style: normal; color: var(--ink-muted); }
.back-cover .bc-side { display: flex; flex-direction: column; gap: 20px; }
.back-cover .bc-cta {
  background: var(--ink); color: var(--paper);
  padding: 22px 22px 26px; position: relative;
}
.back-cover .bc-cta::after {
  content: ""; position: absolute; top: 0; right: 0; width: 18px; height: 18px; background: var(--paper);
}
.back-cover .bc-cta .cta-eyebrow {
  font-size: 7.5pt; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
  color: rgba(245,243,239,0.65); margin-bottom: 12px;
}
.back-cover .bc-cta .cta-headline {
  font-size: 18pt; font-weight: 900; line-height: 1.1; letter-spacing: -0.4px;
  color: var(--paper); margin-bottom: 14px; text-transform: uppercase;
}
.back-cover .bc-cta .cta-body {
  font-size: 9.5pt; line-height: 1.5; color: rgba(245,243,239,0.85);
  margin-bottom: 16px;
}
.back-cover .bc-cta .cta-contact {
  font-size: 11pt; font-weight: 700; color: var(--paper); letter-spacing: -0.2px;
  border-top: 1px solid rgba(245,243,239,0.3); padding-top: 12px;
}
.back-cover .bc-credits {
  font-size: 7.5pt; line-height: 1.6; color: var(--ink-soft); letter-spacing: 0.3px;
}
.back-cover .bc-credits strong { color: var(--ink); display: block; margin-bottom: 4px; font-size: 8pt; letter-spacing: 1.5px; text-transform: uppercase; }
.back-cover .bc-bottom {
  padding: 12mm 16mm;
  background: var(--ink); color: var(--paper);
  display: flex; justify-content: space-between; align-items: center;
}
.back-cover .bc-bottom .bc-wordmark { font-size: 24pt; font-weight: 900; letter-spacing: 2px; position: relative; z-index: 2; }
.back-cover .bc-bottom .bc-wordmark img { height: 32px; width: auto; display: block; }
.back-cover .bc-bottom { position: relative; overflow: hidden; }
.back-cover .bc-bottom-forma {
  position: absolute; right: -40px; bottom: -60px;
  width: 180px; height: 180px;
  opacity: 0.12; pointer-events: none; z-index: 0;
}
.back-cover .bc-bottom-forma img { width: 100%; height: 100%; object-fit: contain; filter: invert(1); }
.back-cover .bc-bottom .bc-meta { position: relative; z-index: 2; }
.back-cover .bc-bottom .bc-meta {
  font-size: 7.5pt; letter-spacing: 1.8px; text-transform: uppercase;
  color: rgba(245,243,239,0.7); text-align: right; line-height: 1.6;
}
.back-cover .bc-b-anchor {
  position: absolute; right: -100px; top: 65%; width: 400px; height: 400px;
  opacity: 0.06; pointer-events: none;
}
.back-cover .bc-b-anchor img { width: 100%; height: 100%; object-fit: contain; }

/* ==========================================================================
   UTILITY HELPERS
   ========================================================================== */
.spacer-s { height: 8px; }
.spacer-m { height: 16px; }
.spacer-l { height: 24px; }
.rule { height: 2px; background: var(--ink); margin: 12px 0; }
.rule-thin { height: 0.5px; background: var(--rule-soft); margin: 12px 0; }

.kicker {
  font-size: 8pt; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 12px;
}
.kicker.dark { color: var(--paper); }
.eyebrow {
  font-size: 8pt; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
  color: var(--ink); display: flex; align-items: center; gap: 10px;
}
.eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--ink); }

.section-title {
  font-size: 36px; font-weight: 900; line-height: 1.04; letter-spacing: -1px;
  text-transform: uppercase; color: var(--ink); margin: 6px 0 12px; padding-top: 4px;
}
.section-title em { font-style: normal; color: var(--ink-muted); }

.deck {
  font-size: 12pt; font-weight: 400; line-height: 1.5; color: var(--ink-soft);
  max-width: 95%;
}

/* For spreads (visual gutter between left/right pages — preview only) */
.spread { display: flex; gap: 8mm; }
.spread .page { box-shadow: 0 14px 56px rgba(0,0,0,0.4); }

/* ==========================================================================
   PRINT
   ========================================================================== */
@page { size: A4; margin: 0; }
@media print {
  html, body {
    background: white;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }
  .stage { padding: 0; gap: 0; display: block; }
  .spread { display: block; gap: 0; }
  .page, .cover, .back-cover {
    box-shadow: none !important;
    page-break-after: always;
    break-after: page;
    margin: 0;
    width: 210mm; height: 297mm;
  }
  .tweaks-panel, .tweaks-trigger, .print-btn, .page-counter { display: none !important; }
}


/* === Issue ementa: garante legibilidade em .page-dark ===
   Editorial.css cobria so alguns elementos. Esta regra forca todos
   os textos a usar paper (cream) quando estao em .page-dark. */
.page-dark,
.page-dark h1, .page-dark h2, .page-dark h3, .page-dark h4, .page-dark h5, .page-dark h6,
.page-dark p, .page-dark li, .page-dark span, .page-dark strong, .page-dark em,
.page-dark .ci-num, .page-dark .ci-text, .page-dark .ci-meta,
.page-dark .toc-num, .page-dark .toc-text, .page-dark .toc-meta,
.page-dark .opener-num, .page-dark .opener-eyebrow, .page-dark .opener-title, .page-dark .opener-lead,
.page-dark .feat-eyebrow, .page-dark .feat-title, .page-dark .feat-lead,
.page-dark .meta-label, .page-dark .meta-value, .page-dark .meta-sub,
.page-dark .author-name, .page-dark .author-role, .page-dark .author-tag,
.page-dark .signature, .page-dark .signature .folio,
.page-dark .running-head, .page-dark .running-head .rh-label, .page-dark .running-head .rh-num,
.page-dark .module-title, .page-dark .module-body, .page-dark .module-meta,
.page-dark .rubric-title, .page-dark .rubric-text, .page-dark .rubric-weight,
.page-dark .body, .page-dark .body p, .page-dark .body strong, .page-dark .body em,
.page-dark .dc, .page-dark .smallquote, .page-dark .kicker,
.page-dark .letter-body, .page-dark .letter-body p,
.page-dark .eco-tag, .page-dark .eco-title, .page-dark .eco-lede, .page-dark .eco-body,
.page-dark .stat-num, .page-dark .stat-label,
.page-dark .ext-eyebrow, .page-dark .ext-title, .page-dark .ext-body,
.page-dark .col-meta .meta-block,
.page-dark .col-meta .meta-block strong,
.page-dark .quote, .page-dark .quote footer, .page-dark .quote strong, .page-dark .quote span,
.page-dark figcaption, .page-dark caption {
  color: var(--paper) !important;
}
/* Soften the secondary text (labels, captions, metas) on .page-dark */
.page-dark .ci-meta, .page-dark .toc-meta, .page-dark .opener-eyebrow,
.page-dark .meta-label, .page-dark .author-role, .page-dark .meta-sub,
.page-dark .author-tag, .page-dark .signature, .page-dark .stat-label,
.page-dark .module-meta, .page-dark .feat-eyebrow, .page-dark figcaption,
.page-dark .smallquote, .page-dark .rubric-weight, .page-dark .kicker {
  color: rgba(245,243,239,0.72) !important;
}
/* Borders/rules inside .page-dark should be light on dark */
.page-dark hr,
.page-dark .running-head,
.page-dark .meta-block,
.page-dark .ci-list li,
.page-dark .toc-list li,
.page-dark .module,
.page-dark .rubric-row,
.page-dark .signature {
  border-color: rgba(245,243,239,0.18) !important;
}
/* Page frame default uses --ink border; on dark page, lighten */
.page-dark .page-frame { border-color: rgba(245,243,239,0.18) !important; }


/* =============================================================
   FIX: classes da Ementa que vieram sem CSS no Bunker Design System
   ============================================================= */

/* ---------- MODULES (Cap 04 trilha) ---------- */
.module-row {
  display: grid;
  grid-template-columns: 56px 1fr 120px;
  gap: 18px;
  padding: 14px 0;
  border-top: 1px solid var(--rule-hair);
  align-items: start;
}
.module-row:first-child { border-top: 1px solid var(--rule-soft); }
.module-row:last-child { border-bottom: 1px solid var(--rule-soft); }
.module-num {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 24pt;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.module-num em {
  font-size: 7pt;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.module-body { display: grid; gap: 5px; padding-right: 8px; }
.module-kicker {
  font-size: 8pt;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.module-title {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 13pt;
  font-weight: 700;
  letter-spacing: -0.005em;
  line-height: 1.18;
  color: var(--ink);
  margin: 2px 0;
}
.module-text {
  font-size: 9pt;
  line-height: 1.45;
  color: var(--ink-soft);
}
.module-deliver {
  font-size: 8pt;
  line-height: 1.45;
  color: var(--ink);
  padding: 6px 0 0;
  border-top: 1px dashed var(--rule-hair);
  margin-top: 4px;
}
.module-deliver strong {
  font-weight: 700;
  margin-right: 6px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 7.5pt;
  color: var(--ink-muted);
}
.module-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  gap: 4px;
}
.module-meta-label {
  font-size: 7pt;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.module-meta-text {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 10pt;
  font-weight: 700;
  color: var(--ink);
}

/* ---------- PERFIS (Cap 02) ---------- */
.perfil-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 28px;
  margin-top: 16px;
}
.perfil-item {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid var(--rule-hair);
}
.perfil-num {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-weight: 800;
  font-size: 18pt;
  line-height: 1;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.perfil-title {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 11pt;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--ink);
  margin-bottom: 4px;
  line-height: 1.18;
}
.perfil-text {
  font-size: 9pt;
  line-height: 1.45;
  color: var(--ink-soft);
}

/* ---------- ANCHORS / ESTRUTURA (Cap 03) ---------- */
.anchor-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 18px;
}
.anchor-cell {
  padding: 14px;
  border: 1px solid var(--rule-soft);
  display: grid;
  gap: 6px;
}
.anchor-num {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 28pt;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--ink);
}
.anchor-label {
  font-size: 7.5pt;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.anchor-title {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 11pt;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--ink);
  line-height: 1.2;
}
.anchor-text {
  font-size: 8.5pt;
  line-height: 1.45;
  color: var(--ink-soft);
}

/* ---------- ECOSYSTEM (Cap 06) ---------- */
.ecosystem-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 14px;
}
.eco-card {
  padding: 18px;
  border: 1px solid var(--rule-soft);
  display: grid;
  gap: 7px;
  background: var(--paper);
}
.eco-card.eco-card--dark { background: var(--ink); color: var(--paper); border-color: rgba(245,243,239,0.18); }
.eco-card.eco-card--dark .eco-name, .eco-card.eco-card--dark .eco-text { color: var(--paper); }
.eco-card.eco-card--dark .eco-tag { color: rgba(245,243,239,0.62); }
.eco-tag {
  font-size: 7pt;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.eco-name {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 14pt;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ink);
  line-height: 1.18;
}
.eco-text {
  font-size: 9pt;
  line-height: 1.5;
  color: var(--ink-soft);
}

/* ---------- EGRESS (Cap 06) ---------- */
.egress-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}
.egress-list li {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid var(--rule-hair);
  align-items: center;
}
.egress-list li:first-child { border-top: none; padding-top: 0; }
.e-name {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 11pt;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.005em;
}
.e-meta {
  font-size: 8.5pt;
  color: var(--ink-soft);
  display: block;
  margin-top: 2px;
}
image-slot.alumni-photo,
.egress-list li image-slot {
  display: block;
}

/* ---------- RUBRIC TABLE (Cap 05) ---------- */
.rubric-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 14px;
  font-size: 9pt;
}
.rubric-table th, .rubric-table td {
  padding: 9px 10px;
  text-align: left;
  border-top: 1px solid var(--rule-hair);
  vertical-align: top;
}
.rubric-table thead th {
  font-size: 7.5pt;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-muted);
  border-top: 0;
  border-bottom: 1px solid var(--rule-soft);
  background: var(--paper-2);
}
.r-dim { font-weight: 700; color: var(--ink); }
.r-peso { font-family: 'Schibsted Grotesk', sans-serif; font-weight: 800; color: var(--ink); }
.r-acima { color: var(--ink-soft); }
.r-esp { color: var(--ink-soft); font-style: italic; }

/* ---------- INVESTMENT / INGRESS (Cap 07) ---------- */
.ingress-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 14px;
  font-size: 9pt;
}
.ingress-table th, .ingress-table td {
  padding: 10px 12px;
  text-align: left;
  border-top: 1px solid var(--rule-hair);
  vertical-align: top;
}
.ingress-table thead th {
  font-size: 7.5pt;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-muted);
  border-top: 0;
  border-bottom: 1px solid var(--rule-soft);
  background: var(--paper-2);
}
.investment-card {
  padding: 20px;
  border: 1px solid var(--rule-soft);
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.inv-kicker {
  font-size: 7.5pt;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.inv-tier {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 13pt;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.005em;
}
.inv-price {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 22pt;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1;
}
.inv-text {
  font-size: 9pt;
  line-height: 1.5;
  color: var(--ink-soft);
}

/* ---------- STATS TRIO ---------- */
.stats-trio {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--rule-soft);
  margin-top: 18px;
}
.st-cell {
  padding: 18px 14px;
  border-left: 1px solid var(--rule-hair);
  display: grid;
  gap: 6px;
}
.st-cell:first-child { border-left: 0; }
.st-num {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 26pt;
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1;
  color: var(--ink);
}
.st-label {
  font-size: 8pt;
  line-height: 1.4;
  color: var(--ink-soft);
}

/* ---------- TESTIMONIAL ---------- */
.testimonial-block {
  padding: 18px;
  border-left: 3px solid var(--ink);
  background: var(--paper-2);
  margin-top: 16px;
  display: grid;
  gap: 10px;
}
.t-quote {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 12pt;
  line-height: 1.45;
  color: var(--ink);
  font-style: italic;
}
.t-attr {
  font-size: 8pt;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-muted);
  font-weight: 700;
}

/* ---------- LETTER BODY (Carta) ---------- */
.editor-letter h1 {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 26pt;
  font-weight: 800;
  letter-spacing: -0.015em;
  line-height: 1.05;
  color: var(--ink);
  margin-bottom: 16px;
}
.editor-letter h1 em {
  font-style: italic;
  color: var(--ink-soft);
  font-weight: 800;
}
.letter-body {
  display: grid;
  gap: 10px;
}
.letter-body p {
  font-size: 9.5pt;
  line-height: 1.55;
  color: var(--ink);
  margin-bottom: 6px;
}
.dc {
  float: left;
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 40pt;
  font-weight: 800;
  line-height: 0.85;
  letter-spacing: -0.03em;
  color: var(--ink);
  margin: 4px 8px 0 0;
}

/* ---------- TOC (Sumario) ---------- */
.toc h1 {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 22pt;
  font-weight: 800;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin-bottom: 14px;
}
.toc-list {
  list-style: none;
  padding: 0;
  margin-top: 8px;
  display: grid;
  gap: 0;
}
/* Note: .toc-list li ja tem regra definitiva acima com minmax(150px, 240px) */

/* ---------- i-action / i-perfil (info actions) ---------- */
.i-action, .i-perfil {
  display: inline-block;
  font-size: 8pt;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-muted);
  font-weight: 700;
  padding: 4px 10px;
  border: 1px solid var(--rule-soft);
  margin-right: 6px;
}

/* ---------- Author stats (used in Carta meta) ---------- */
.author-stats {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  display: grid;
  gap: 8px;
}
.author-stats li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: baseline;
  padding: 6px 0;
  border-top: 1px solid var(--rule-hair);
}
.author-stats li:first-child { border-top: 0; }
.author-stats strong {
  font-family: 'Schibsted Grotesk', sans-serif;
  font-weight: 800;
  font-size: 11pt;
  color: var(--ink);
}
.author-stats span {
  font-size: 8.5pt;
  line-height: 1.4;
  color: var(--ink-soft);
}

/* ---------- Dark mode overrides for these new classes ---------- */
.page-dark .module-row,
.page-dark .module-row:first-child,
.page-dark .module-row:last-child,
.page-dark .perfil-item,
.page-dark .egress-list li,
.page-dark .toc-list li,
.page-dark .anchor-cell,
.page-dark .eco-card,
.page-dark .investment-card,
.page-dark .stats-trio,
.page-dark .st-cell,
.page-dark .ingress-table th,
.page-dark .ingress-table td,
.page-dark .rubric-table th,
.page-dark .rubric-table td {
  border-color: rgba(245,243,239,0.18) !important;
}
.page-dark .module-num,
.page-dark .module-title,
.page-dark .module-text,
.page-dark .module-deliver,
.page-dark .module-deliver strong,
.page-dark .module-kicker,
.page-dark .module-meta-label,
.page-dark .module-meta-text,
.page-dark .module-num em,
.page-dark .perfil-num,
.page-dark .perfil-title,
.page-dark .perfil-text,
.page-dark .anchor-num,
.page-dark .anchor-label,
.page-dark .anchor-title,
.page-dark .anchor-text,
.page-dark .eco-name,
.page-dark .eco-text,
.page-dark .eco-tag,
.page-dark .e-name,
.page-dark .e-meta,
.page-dark .st-num,
.page-dark .st-label,
.page-dark .r-dim, .page-dark .r-peso, .page-dark .r-acima, .page-dark .r-esp,
.page-dark .inv-kicker, .page-dark .inv-tier, .page-dark .inv-price, .page-dark .inv-text,
.page-dark .ingress-table th, .page-dark .ingress-table td,
.page-dark .rubric-table th, .page-dark .rubric-table td,
.page-dark .letter-body, .page-dark .letter-body p,
.page-dark .dc, .page-dark .toc h1,
.page-dark .t-quote, .page-dark .t-attr,
.page-dark .author-stats strong, .page-dark .author-stats span {
  color: var(--paper) !important;
}
.page-dark .testimonial-block { background: rgba(245,243,239,0.06); border-left-color: var(--paper); }
.page-dark .rubric-table thead th, .page-dark .ingress-table thead th {
  background: rgba(245,243,239,0.06) !important;
  color: rgba(245,243,239,0.62) !important;
}
.page-dark .eco-card { background: rgba(245,243,239,0.04); }


/* =============================================================
   RELAX FOR WEB (mobile + desktop)
   User: 'quero divisao clara entre secoes, mas nao quebras de pagina'
   Override do PAGE PRIMITIVE A4 pra fluid web responsivo.
   ============================================================= */

/* Stage: sem padding excessivo, gap 0 e cada section toma o espaco */
.stage {
  padding: 0 !important;
  align-items: stretch !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: none !important;
}

/* Page primitive: full width, sem altura fixa, sem shadow A4 */
.page,
.cover,
.back-cover {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  box-shadow: none !important;
  position: relative !important;
  overflow: visible !important;
  padding: clamp(48px, 7vw, 96px) 0 !important;
  /* divisao clara entre secoes via hairline */
  border-top: 1px solid var(--rule-soft);
}
.page:first-of-type { border-top: 0; }
.page-dark {
  border-top-color: rgba(245,243,239,0.18);
}

/* Running head: relative, dentro do fluxo, no topo da secao */
.page .running-head,
.cover .running-head,
.back-cover .running-head {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  max-width: 880px;
  margin: 0 auto clamp(28px, 4vw, 56px);
  padding: 0 clamp(20px, 4vw, 48px) 12px;
}

/* Signature: relative, embaixo, dentro do fluxo */
.page .signature,
.cover .signature,
.back-cover .signature {
  position: relative !important;
  bottom: auto !important;
  left: auto !important;
  right: auto !important;
  max-width: 880px;
  margin: clamp(40px, 5vw, 72px) auto 0;
  padding: 14px clamp(20px, 4vw, 48px) 0;
}

/* Page frame: sem position absolute, vira wrapper centrado */
.education-page .page-frame, .page-frame {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  max-width: 880px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 48px);
  display: block;
}

/* Legibilidade web: tipografia originalmente A4 (9.5pt) era pequena demais.
   Sobe pra patamar legivel em tela mantendo column-count 2 quando houver espaco. */
.education-page .body-2col {
  font-size: clamp(1rem, 1.05vw, 1.08rem);
  line-height: 1.65;
  column-gap: clamp(20px, 3vw, 36px);
}
.education-page .body-2col p { margin-bottom: 14px; }
.education-page .body-2col h3 { font-size: 1.18rem; margin: 8px 0 8px; }
.education-page .body-2col h3.kicker { font-size: 0.78rem; letter-spacing: 2.5px; margin-bottom: 6px; }
.education-page .body-2col .dc {
  font-size: clamp(2.2rem, 4vw, 2.8rem);
  line-height: 0.85;
}

.education-page .pullquote { padding: 24px 0 18px; margin: 22px 0; }
.education-page .pullquote .q-text {
  font-size: clamp(1.45rem, 3.2vw, 2rem);
  line-height: 1.18;
  letter-spacing: -0.01em;
  margin-bottom: 14px;
}
.education-page .pullquote .q-attr {
  font-size: 0.78rem;
  letter-spacing: 2px;
}

/* Testimonials: o tamanho original (12pt) ficava pequeno em tela.
   Sobe pra patamar de leitura legivel mantendo o tom editorial. */
.education-page .testimonial-block { padding: 26px 28px; gap: 14px; }
.education-page .t-quote {
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  line-height: 1.55;
}
.education-page .t-attr {
  font-size: 0.78rem;
  letter-spacing: 0.14em;
}

/* Mobile: ajusta margens internas e gaps */
@media (max-width: 740px) {
  .page,
  .cover,
  .back-cover {
    padding: clamp(40px, 8vw, 64px) clamp(16px, 5vw, 24px) !important;
  }
  /* Grids 2-col viram 1-col em mobile */
  .ecosystem-grid,
  .perfil-grid,
  .anchor-grid,
  .stats-trio {
    grid-template-columns: 1fr !important;
  }
  .stats-trio .st-cell { border-left: 0 !important; border-top: 1px solid var(--rule-hair); }
  .stats-trio .st-cell:first-child { border-top: 0; }
  /* Module rows: stack vertical em mobile */
  .module-row {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  .module-meta {
    flex-direction: row !important;
    align-items: baseline !important;
    text-align: left !important;
    gap: 8px;
    padding-top: 6px;
    border-top: 1px dashed var(--rule-hair);
  }
  /* TOC list em 2 linhas no mobile */
  .toc-list li {
    grid-template-columns: auto 1fr !important;
    gap: 12px !important;
  }
  .toc-list li .toc-folio {
    grid-column: 1 / -1;
    text-align: right;
  }
  /* Carta: meta column desce abaixo do body */
  .ed-letter,
  [style*="grid-template-columns: 1fr 65mm"] {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  /* Tabela rubric/ingress: scroll horizontal se nao couber */
  .rubric-table, .ingress-table { display: block; overflow-x: auto; }
  /* H1/h2 grandes nao quebram horizontal */
  .page h1, .page h2, .page-dark h1, .page-dark h2 {
    word-wrap: break-word;
    overflow-wrap: break-word;
  }
}

/* Body 2-col cai pra 1-col em viewports menores */
@media (max-width: 900px) {
  .body-2col, .body-3col,
  .ed-letter > div[style*="grid-template-columns"] {
    display: block !important;
    column-count: 1 !important;
  }
}

/* Garante que nada vaza horizontal */
html, body { overflow-x: hidden; }
.education-page main, .education-page .stage, .education-page .page {
  max-width: 100vw;
  box-sizing: border-box;
}

/* Wide content adapta - apenas garante box-sizing, sem max-width pra nao sobrescrever .page-frame */
.education-page .page > *,
.education-page .cover > *,
.education-page .back-cover > * {
  box-sizing: border-box;
}


/* User pediu: remover rodapes das secoes (.signature 'Bunker Education · Junho de 2026 · 02')
   - faz sentido em PDF impresso, nao em pagina web */
.education-page .signature,
.education-page .page .signature,
.education-page .cover .signature,
.education-page .back-cover .signature,
.education-page .running-head,
.education-page .page .running-head,
.education-page .cover .running-head,
.education-page .back-cover .running-head {
  display: none !important;
}


/* TOC link: substitui o folio 'pagina NN' por um link 'ir ->' pra secao real */
.toc-link {
  text-decoration: none;
  color: var(--ink) !important;
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-family: 'Schibsted Grotesk', sans-serif;
  font-size: 18pt;
  font-weight: 700;
  transition: color 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}
.toc-link:hover {
  color: var(--ink-soft) !important;
  transform: translateX(4px);
}
.toc-link .folio-label {
  display: block;
  font-size: 7pt;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-family: inherit;
}


/* CTA strip intercalado entre capitulos editoriais */
.edu-cta-strip {
  background: var(--deep);
  color: var(--paper);
  padding: clamp(48px, 6vw, 88px) clamp(20px, 5vw, 64px);
  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.edu-cta-strip-inner {
  max-width: 880px;
  margin: 0 auto;
  display: grid;
  gap: 14px;
  text-align: left;
}
.edu-cta-strip-eyebrow {
  font-family: var(--font-tech, 'Schibsted Grotesk'), sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  margin: 0;
}
.edu-cta-strip-body {
  font-size: clamp(1.15rem, 2.2vw, 1.55rem);
  line-height: 1.35;
  color: #fff;
  margin: 0;
  max-width: 32ch;
  font-weight: 400;
  letter-spacing: -0.005em;
}
.edu-cta-strip-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 12px;
}
@media (max-width: 640px){
  .edu-cta-strip-actions .edu-btn { width: 100%; text-align: center; justify-content: center; }
}
