/* =========================================
   Page setup
========================================= */

@page standard {
  size: A4;
  margin: 18mm 16mm 22mm 16mm;

  @bottom-right {
    content: "Page " counter(page);
    font-size: 8pt;
    color: #98a2b3;
  }
}

@page full-bleed {
  size: A4;
  margin: 0;
}

@page cover-primary-page {
  size: A4;
  margin: 0;
}

/* =========================================
   Base document rules
========================================= */

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

/* =========================================
   Core page classes
========================================= */

.page {
  break-before: page;
  position: relative;
}

.page:first-of-type {
  break-before: auto;
}

.page-body {
  page: standard;
  min-height: 257mm;
}

.page-full-bleed {
  page: full-bleed;
  width: 210mm;
  height: 297mm;
  overflow: hidden;
}

/* =========================================
   Useful document controls
========================================= */

.page-break {
  break-before: page;
}

.end-page {
  break-after: page;
}

.keep-together {
  break-inside: avoid;
}

/* =========================================
   Paged.js browser preview styling
   This makes pages white and centred.
========================================= */

@media screen, pagedjs-ignore {

  :root {
    --preview-bg: #e5e7eb;
    --preview-paper: #ffffff;
    --preview-shadow: rgba(15, 23, 42, 0.22);
  }

  html,
  body {
    margin: 0;
    padding: 0;
    background: var(--preview-bg);
  }

  body {
    background: var(--preview-bg);
  }

  .pagedjs_pages {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    margin: 0 auto;
    padding: 40px 0;
  }

  .pagedjs_page {
    background: var(--preview-paper);
    margin: 0 auto 32px auto !important;
    box-shadow: 0 12px 40px var(--preview-shadow);
    flex-shrink: 0;
    flex-grow: 0;
    left: auto !important;
    right: auto !important;
  }

  .pagedjs_left_page,
  .pagedjs_right_page,
  .pagedjs_first_page {
    left: auto !important;
    right: auto !important;
  }

  .pagedjs_pagebox,
  .pagedjs_area,
  .pagedjs_sheet {
    background: var(--preview-paper);
  }

  .pagedjs_page[class*="cover-primary"] .pagedjs_sheet,
  .pagedjs_page[class*="cover-primary"] .pagedjs_pagebox,
  .pagedjs_page[class*="cover-primary"] .pagedjs_area {
    background: #101828 !important;
  }
}

/* =========================================
   Primary Cover Page
========================================= */

section.cover-primary {
  page: cover-primary-page;
  width: 210mm;
  height: 297mm;
  overflow: visible !important;
  break-before: page;
  break-after: page;
}

/* Background layer */

.cover-bg {
  position: absolute;
  top: -8mm;
  left: -8mm;
  width: 226mm;
  height: 350mm;
  z-index: 0;
  overflow: hidden;
  background: #101828;
}

.cover-bg > img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  max-width: none !important;
  max-height: none !important;
}

.cover-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(16, 24, 40, 0.82);
}

/* Content layer */

.cover-primary-frame {
  position: absolute;
  inset: 0;
  z-index: 2;
  border: none;
}

/* Preview-only guides */

.cover-guides {
  display: none;
}

@media screen, pagedjs-ignore {
  .cover-guides {
    display: block;
    position: absolute;
    inset: 9mm 3mm 27mm 9mm;
    z-index: 99;
    pointer-events: none;
  }
}

/* =========================================
   Page Group: Document Control / TOC Start
========================================= */

@page doc-control-page {
  size: A4;
  margin: 0;
}

.doc-control-page {
  page: doc-control-page;
  width: 210mm;
  height: 297mm;
  overflow: hidden;
  break-before: page;
  break-after: page;
}

/* page number inside custom footer */
.doc-page-number::after {
  content: counter(page);
}

/* Document control table */

.doc-control-table {
  border-collapse: collapse;
  break-inside: avoid;
}

.doc-control-table th,
.doc-control-table td {
  border: 1px solid #e4e7ec;
  padding: 5mm 4mm;
  vertical-align: top;
  text-align: left;
}

.doc-control-table th {
  width: 38%;
  background: #f3f4f7;
  color: #667085;
  font-weight: 700;
}

.doc-control-table td {
  background: #ffffff;
  color: #101828;
  font-weight: 600;
}

/* Table of contents */

.doc-toc-table {
  border-collapse: collapse;
  table-layout: fixed;
}

.doc-toc-table th,
.doc-toc-table td {
  border: 1px solid #e4e7ec;
  padding: 2.1mm 3mm;
  vertical-align: top;
  text-align: left;
}

.doc-toc-table th {
  background: #f3f4f7;
  color: #667085;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 6.5pt;
  font-weight: 800;
}

.doc-toc-table td {
  background: #ffffff;
  color: #101828;
}

.doc-toc-table th:nth-child(1),
.doc-toc-table td:nth-child(1) {
  width: 41%;
}

.doc-toc-table th:nth-child(2),
.doc-toc-table td:nth-child(2) {
  width: 51%;
}

.doc-toc-table th:nth-child(3),
.doc-toc-table td:nth-child(3) {
  width: 8%;
  text-align: right;
  color: #667085;
}

/* =========================================
   Shared document meta header/footer
========================================= */

.doc-meta-header,
.doc-meta-footer {
  position: absolute;
  left: 14mm;
  right: 14mm;
  display: flex;
  justify-content: space-between;
  font-family: "Plus Jakarta Sans", Arial, sans-serif;
  font-size: 7.5pt;
  line-height: 1;
  color: #667085;
  z-index: 50;
}

.doc-meta-header {
  top: 8mm;
}

.doc-meta-footer {
  bottom: 24mm;
}

.doc-page-number {
  font-weight: 700;
  color: #101828;
}

.doc-page-number::after {
  content: counter(page);
}

/* =========================================
   Page Group: Table of Contents
========================================= */

@page toc-page {
  size: A4;
  margin: 0;
}

.toc-page {
  page: toc-page;
  width: 210mm;
  height: 297mm;
  overflow: hidden;
  break-before: page;
  break-after: page;
}

.toc-table-full {
  border-collapse: collapse;
  table-layout: fixed;
}

.toc-table-full th,
.toc-table-full td {
  border: 1px solid #e4e7ec;
  padding: 2.35mm 3mm;
  vertical-align: top;
  text-align: left;
}

.toc-table-full th {
  background: #f3f4f7;
  color: #667085;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 6.5pt;
  font-weight: 800;
}

.toc-table-full td {
  background: #ffffff;
  color: #101828;
}

.toc-table-full th:nth-child(1),
.toc-table-full td:nth-child(1) {
  width: 41%;
}

.toc-table-full th:nth-child(2),
.toc-table-full td:nth-child(2) {
  width: 51%;
}

.toc-table-full th:nth-child(3),
.toc-table-full td:nth-child(3) {
  width: 8%;
  text-align: right;
  color: #667085;
}

/* =========================================
   Page Group: Body Content Page
========================================= */

@page body-content-page {
  size: A4;
  margin: 0;
}

.body-content-page {
  page: body-content-page;
  width: 210mm;
  height: 297mm;
  overflow: hidden;
  break-before: page;
  break-after: page;
}

/* Body copy styling */

.content-prose p {
  margin: 0 0 4mm;
  font-size: 8.7pt;
  line-height: 1.85;
  color: #172033;
}

.content-prose .lead {
  font-size: 9.5pt;
  line-height: 1.65;
  font-weight: 700;
  color: #101828;
}

.content-prose h2,
.content-h2 {
  margin: 0 0 4mm;
  font-size: 17pt;
  line-height: 1.12;
  font-weight: 700;
  letter-spacing: -0.04em;
  color: #101828;
}

/* Optional reusable body elements */

.content-callout {
  border-left: 1.5mm solid #F1FF67;
  background: #f3f4f7;
  padding: 5mm;
  break-inside: avoid;
}

.content-dark-strip {
  background: #101828;
  color: #ffffff;
  border-radius: 3mm;
  padding: 5mm 6mm;
  break-inside: avoid;
}

/* =========================================
   Page Group: Editorial Body Content
========================================= */

@page editorial-body-page {
  size: A4;
  margin: 0;
}

.editorial-body-page {
  page: editorial-body-page;
  width: 210mm;
  height: 297mm;
  overflow: hidden;
  break-before: page;
  break-after: page;
}

.editorial-main {
  position: absolute;
  top: 18mm;
  left: 14mm;
  right: 14mm;
  bottom: 18mm;
}

.editorial-prose p {
  margin: 0 0 4mm;
  font-size: 8.6pt;
  line-height: 1.78;
  color: #172033;
}

.editorial-prose strong {
  font-weight: 700;
  color: #101828;
}

.editorial-prose h2 {
  margin: 0 0 5mm;
  font-size: 17pt;
  line-height: 1.12;
  font-weight: 700;
  letter-spacing: -0.04em;
  color: #101828;
}

.editorial-section-label {
  display: inline-block;
  margin-bottom: 5mm;
  padding: 1mm 2mm;
  background: #101828;
  color: #ffffff;
  font-size: 7pt;
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
}

.editorial-title {
  margin: 0 0 9mm;
  max-width: 155mm;
  font-size: 30pt;
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -0.045em;
  color: #101828;
}

.editorial-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11mm;
}

.editorial-note {
  margin-top: 5mm;
  padding: 5mm;
  border-left: 1.5mm solid #F1FF67;
  background: #f3f4f7;
  break-inside: avoid;
}

.editorial-note p {
  margin: 0;
  font-size: 9pt;
  line-height: 1.65;
  color: #172033;
}

.workflow-list {
  margin-top: 6mm;
  display: grid;
  grid-template-columns: 1fr;
  gap: 3mm;
}

.workflow-row {
  padding: 4mm 5mm;
  border-radius: 3mm;
  background: #f9fafb;
  break-inside: avoid;
}

.workflow-row h3 {
  margin: 0 0 1.5mm;
  font-size: 8.5pt;
  line-height: 1;
  font-weight: 800;
  color: #101828;
}

.workflow-row p {
  margin: 0;
  font-size: 8.3pt;
  line-height: 1.45;
  color: #344054;
}

.editorial-highlight {
  background: #F1FF67;
  padding: 0 1mm;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

/* =========================================
   Page Group: Market Context
========================================= */

.market-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4mm;
  margin: 0mm 0mm 4mm 0mm;
  break-inside: avoid;
}

.market-stat-card {
  min-height: 34mm;
  border-radius: 4mm;
  padding: 5mm;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  break-inside: avoid;
}

.market-stat-value {
  font-size: 20pt;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.055em;
}

.market-stat-label {
  margin-top: 4mm;
  font-size: 6.8pt;
  line-height: 1.35;
  font-weight: 600;
}

.market-chain-card {
  margin-top: 6mm;
  border: 1px solid #e4e7ec;
  border-radius: 4mm;
  padding: 5mm;
  background: #f8f9fb;
  break-inside: avoid;
}

.market-chain-card p {
  margin: 0;
  font-size: 8pt;
  line-height: 1.65;
}

/* =========================================
   Page Group: Engagement Routing Problem
========================================= */

.engagement-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  break-inside: avoid;
}

.engagement-table th,
.engagement-table td {
  border: 1px solid #e4e7ec;
  padding: 2.4mm 3mm;
  vertical-align: top;
  text-align: left;
}

.engagement-table thead th {
  background: #101828 !important;
  color: #ffffff !important;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 6.5pt;
  line-height: 1.25;
  font-weight: 800;
}

.engagement-table tbody td {
  background: #ffffff;
  color: #172033;
  font-size: 7.2pt;
  line-height: 1.4;
}

.engagement-table tbody td:first-child {
  width: 48mm;
  min-width: 48mm;
  max-width: 48mm;
  font-weight: 800;
  color: #101828;
  background: #f3f4f7;
}

.engagement-table tbody td:last-child {
  width: auto;
}

.engagement-highlight {
  padding: 5mm;
  border-radius: 4mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.engagement-highlight p {
  margin: 0;
  font-size: 8.4pt;
  line-height: 1.65;
  color: #ffffff;
}

.engagement-highlight strong {
  color: #F1FF67;
}

.pressure-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3mm;
  break-inside: avoid;
}

.pressure-card {
  min-height: 12mm;
  padding: 3.2mm 4mm;
  border-radius: 3mm;
  background: #f8f9fb;
  break-inside: avoid;
}

.pressure-card h3 {
  margin: 0 0 1.5mm;
  font-size: 8pt;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #101828;
}

.pressure-card p {
  margin: 0;
  font-size: 7pt;
  line-height: 1.35;
  color: #475467;
}

/* =========================================
   Page Group: Route Risk Analysis
========================================= */

.route-risk-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3mm;
  break-inside: avoid;
}

.route-risk-card {
  border: 1px solid #e4e7ec;
  border-radius: 3mm;
  padding: 3.2mm 4mm;
  background: #f8f9fb;
  break-inside: avoid;
}

.route-risk-card h3 {
  margin: 0 0 1.5mm;
  font-size: 7.2pt;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #101828;
}

.route-risk-card p {
  margin: 0;
  font-size: 6.8pt;
  line-height: 1.38;
  color: #475467;
}

.route-question-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5mm;
  margin-top: 7mm;
  break-inside: avoid;
}

.route-question-card {
  min-height: 38mm;
  border-radius: 4mm;
  padding: 6mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.route-question-card .mark {
  font-size: 18pt;
  line-height: 1;
  color: #F1FF67;
  margin-bottom: 5mm;
}

.route-question-card p {
  margin: 0;
  font-size: 11pt;
  line-height: 1.35;
  font-weight: 700;
  letter-spacing: -0.035em;
  color: #ffffff;
}

.route-risk-summary {
  border-left: 1.5mm solid #F1FF67;
  padding: 4.5mm 5mm;
  background: #f3f4f7;
  break-inside: avoid;
}

.route-risk-summary p {
  margin: 0;
  font-size: 8.2pt;
  line-height: 1.65;
  color: #172033;
}

.route-risk-table-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8mm;
  break-inside: avoid;
}

.route-risk-table-col {
  break-inside: avoid;
}

.route-risk-table-head {
  display: grid;
  grid-template-columns: 34mm 1fr;
  background: #101828;
  color: #ffffff;
  border: 1px solid #101828;
  margin-bottom: 3mm;
}

.route-risk-table-head span {
  padding: 2.4mm 2.8mm;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 6.2pt;
  line-height: 1.25;
  font-weight: 800;
}

.route-risk-row {
  display: grid;
  grid-template-columns: 34mm 1fr;
  border-left: 1px solid #e4e7ec;
  border-right: 1px solid #e4e7ec;
  border-bottom: 1px solid #e4e7ec;
  break-inside: avoid;
  page-break-inside: avoid;
}

.route-risk-row:first-of-type {
  border-top: 1px solid #e4e7ec;
}

.route-risk-row h3 {
  margin: 0;
  padding: 4.2mm 2.6mm;
  background: #f3f4f7;
  border-right: 1px solid #e4e7ec;
  font-size: 6.8pt;
  line-height: 1.25;
  font-weight: 800;
  color: #101828;
}

.route-risk-row p {
  margin: 0;
  padding: 4.2mm 2.8mm;
  background: #ffffff;
  font-size: 6.8pt;
  line-height: 1.38;
  color: #475467;
}

.route-question-comparison {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: 6mm;
  margin-top: 8mm;
  align-items: stretch;
  break-inside: avoid;
}

.route-question-small,
.route-question-large {
  border-radius: 4mm;
  break-inside: avoid;
  padding-top: 6.5mm;
}

.route-question-small {
  min-height: 42mm;
  padding: 6.5mm 7mm;
  background: #f3f4f7;
  color: #101828;
}

.route-question-large {
  min-height: 58mm;
  padding: 6.5mm 7mm;
  background: #F1FF67;
  color: #101828;
}

.route-question-label {
  display: inline-block;
  align-self: flex-start;
  margin-bottom: 5mm;
  padding: 1mm 1.6mm;
  background: #101828;
  color: #ffffff;
  font-size: 6.5pt;
  line-height: 1;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

.route-question-small p {
  margin: 0 0 10mm;
  font-size: 14pt;
  line-height: 1.42;
  font-weight: 700;
  letter-spacing: -0.035em;
  color: #101828;
}

.route-question-large p {
  margin: 0 0 10mm;
  font-size: 14pt;
  line-height: 1.22;
  font-weight: 700;
  letter-spacing: -0.035em;
  color: #101828;
}

.route-question-large ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.route-question-large li {
  margin: 0 0 2.2mm;
  padding-left: 5mm;
  position: relative;
  font-size: 10pt;
  line-height: 1.35;
  font-weight: 700;
  color: #101828;
}

.route-question-large li::before {
  content: "→";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 800;
}

/* =========================================
   Page Group: Route Risk Heatmap
========================================= */

.heatmap-band-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  margin-top: 6mm;
  break-inside: avoid;
}

.heatmap-band {
  border: 1px solid #e4e7ec;
  border-radius: 4mm;
  overflow: hidden;
  background: #ffffff;
  break-inside: avoid;
}

.heatmap-band-head {
  padding: 3.5mm 4mm;
  border-bottom: 1px solid #e4e7ec;
  border-left: 1.5mm solid #101828;
  background: #f8f9fb;
}

.heatmap-band-head h3 {
  margin: 0;
  font-size: 8pt;
  line-height: 1;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #101828;
}

.heatmap-band-head p {
  margin: 1.5mm 0 0;
  font-size: 8pt;
  line-height: 1.3;
  color: #667085;
}

.heatmap-band-body {
  display: grid;
  gap: 2.5mm;
  padding: 3.5mm;
}

.heatmap-route-card {
  border-radius: 3mm;
  padding: 3mm;
  background: #f3f4f7;
  break-inside: avoid;
}

.heatmap-route-card h4 {
  margin: 0 0 1.5mm;
  font-size: 8pt;
  line-height: 1.15;
  font-weight: 800;
  color: #101828;
}

.heatmap-route-card p {
  margin: 0;
  font-size: 8pt;
  line-height: 1.35;
  color: #475467;
}

/* Risk colour variants */

.heatmap-low .heatmap-band-head {
  border-left-color: #34d399;
}

.heatmap-low .heatmap-route-card {
  background: rgba(52, 211, 153, 0.16);
}

.heatmap-low-medium .heatmap-band-head {
  border-left-color: #a3e635;
}

.heatmap-low-medium .heatmap-route-card {
  background: rgba(163, 230, 53, 0.18);
}

.heatmap-medium .heatmap-band-head {
  border-left-color: #facc15;
}

.heatmap-medium .heatmap-route-card {
  background: rgba(250, 204, 21, 0.18);
}

.heatmap-medium-high .heatmap-band-head {
  border-left-color: #fb923c;
}

.heatmap-medium-high .heatmap-route-card {
  background: rgba(251, 146, 60, 0.18);
}

.heatmap-high .heatmap-band-head {
  border-left-color: #f97316;
}

.heatmap-high .heatmap-route-card {
  background: rgba(249, 115, 22, 0.16);
}

.heatmap-very-high .heatmap-band-head {
  border-left-color: #f43f5e;
}

.heatmap-very-high .heatmap-route-card {
  background: rgba(244, 63, 94, 0.14);
}

.heatmap-summary-strip {
  margin-top: 7mm;
  padding: 5mm;
  border-radius: 4mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.heatmap-summary-strip p {
  margin: 0;
  font-size: 8.5pt;
  line-height: 1.65;
  color: #ffffff;
}

.heatmap-summary-strip strong {
  color: #F1FF67;
}

/* =========================================
   Page Group: ICCE Operating Model
========================================= */

.operating-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  break-inside: avoid;
}

.operating-table th,
.operating-table td {
  border: 1px solid #e4e7ec;
  padding: 2.7mm 3mm;
  vertical-align: top;
  text-align: left;
}

.operating-table thead th {
  background: #101828;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 8pt;
  line-height: 1.25;
  font-weight: 800;
}

.operating-table tbody td {
  background: #ffffff;
  color: #172033;
  font-size: 8pt;
  line-height: 1.42;
}

.operating-table tbody td:first-child {
  width: 42mm;
  min-width: 42mm;
  max-width: 42mm;
  background: #f3f4f7;
  color: #101828;
  font-weight: 600;
}

.operating-table-compact th,
.operating-table-compact td {
  padding: 2.2mm 2.6mm;
}

.operating-table-compact tbody td {
  font-size: 8pt;
  line-height: 1.35;
}

.operating-table-wide-left tbody td:first-child {
  width: 56mm;
  min-width: 56mm;
  max-width: 56mm;
}

.operating-table-stage tbody td:first-child {
  width: 35mm;
  min-width: 35mm;
  max-width: 35mm;
}

.operating-table-stage tbody td:nth-child(3) {
  width: 32mm;
  min-width: 32mm;
  max-width: 32mm;
  font-weight: 700;
  color: #101828;
}

.operating-model-strip {
  margin-top: 7mm;
  padding: 5mm;
  border-radius: 4mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.operating-model-strip p {
  margin: 0;
  font-size: 8.4pt;
  line-height: 1.65;
  color: #ffffff;
}

.operating-model-strip strong {
  color: #F1FF67;
}

.route-identity-card {
  display: grid;
  grid-template-columns: 1fr 38mm;
  overflow: hidden;
  border: 1px solid #e4e7ec;
  border-radius: 4mm;
  background: #ffffff;
  break-inside: avoid;
}

.route-identity-main {
  position: relative;
  padding: 5mm;
}

.route-identity-accent {
  position: absolute;
  inset: 0 auto 0 0;
  width: 1.5mm;
  background: #34d399;
}

.route-identity-label {
  margin: 0 0 3mm;
  font-size: 5.8pt;
  line-height: 1;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: #667085;
}

.route-identity-title-row {
  display: flex;
  align-items: flex-start;
  gap: 3mm;
}

.route-identity-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 8mm;
  height: 8mm;
  flex: none;
  border-radius: 999px;
  background: rgba(52, 211, 153, 0.12);
  border: 1px solid rgba(52, 211, 153, 0.38);
  color: #047857;
  font-size: 9pt;
  line-height: 1;
  font-weight: 800;
}

.route-identity-title {
  margin: 0;
  font-size: 12pt;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.020em;
  color: #101828;
}

.route-identity-subtitle {
  margin: 1.5mm 0 0;
  font-size: 7pt;
  line-height: 1.35;
  font-weight: 600;
  color: #475467;
}

.route-identity-status {
  padding: 5mm;
  border-left: 1px solid #e4e7ec;
  background: #f8f9fb;
}

.route-identity-pill {
  display: inline-flex;
  align-items: center;
  gap: 1.8mm;
  padding: 1.4mm 2.4mm;
  border-radius: 999px;
  background: rgba(52, 211, 153, 0.16);
  border: 1px solid rgba(52, 211, 153, 0.38);
  color: #047857;
  font-size: 6.8pt;
  line-height: 1;
  font-weight: 800;
  white-space: nowrap;
}

.route-identity-pill span {
  width: 2.5mm;
  height: 2.5mm;
  border-radius: 999px;
  background: #10b981;
  box-shadow: 0 0 0 1.5mm rgba(16, 185, 129, 0.18);
}

.excluded-routes-table tbody td {
  line-height: 1.7;
}

/* =========================================
   Page Group: Platform Activity Lifecycle
========================================= */

.lifecycle-rail {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2mm;
  margin: 7mm 0;
  break-inside: avoid;
}

.lifecycle-step {
  position: relative;
  min-height: 28mm;
  padding: 3.2mm 2.4mm;
  border-radius: 3mm;
  background: #f3f4f7;
}

.lifecycle-step.is-key {
  background: #101828;
  color: #ffffff;
}

.lifecycle-step.is-accent {
  background: #F1FF67;
  color: #101828;
  border-color: #F1FF67;
}

.lifecycle-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 5.5mm;
  height: 5.5mm;
  margin-bottom: 3mm;
  border-radius: 999px;
  background: #ffffff;
  color: #101828;
  font-size: 6.2pt;
  line-height: 1;
  font-weight: 800;
}

.lifecycle-step.is-key .lifecycle-step-number {
  background: #F1FF67;
}

.lifecycle-step-title {
  margin: 0;
  font-size: 7pt;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.lifecycle-simple-chain {
  margin-top: 7mm;
  padding: 5mm;
  border-radius: 4mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.lifecycle-simple-chain p {
  margin: 0;
  font-size: 9pt;
  line-height: 1.85;
  font-weight: 700;
  color: #ffffff;
}

.lifecycle-simple-chain strong {
  color: #F1FF67;
}

.lifecycle-proof-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  margin-top: 7mm;
  break-inside: avoid;
}

.lifecycle-proof-card {
  min-height: 32mm;
  padding: 5mm;
  border-radius: 4mm;
  border: 1px solid #e4e7ec;
  background: #f8f9fb;
}

.lifecycle-proof-card h3 {
  margin: 0 0 3mm;
  font-size: 8pt;
  line-height: 1.1;
  font-weight: 800;
  color: #101828;
}

.lifecycle-proof-card p {
  margin: 0;
  font-size: 7.2pt;
  line-height: 1.5;
  color: #475467;
}

/* Lifecycle table tweaks */

.lifecycle-table tbody td {
  line-height: 1.55;
}

.lifecycle-table tbody td:first-child {
  width: 38mm;
  min-width: 38mm;
  max-width: 38mm;
}

.lifecycle-table tbody td:nth-child(3) {
  width: 34mm;
  min-width: 34mm;
  max-width: 34mm;
  font-weight: 700;
  color: #101828;
}

.lifecycle-rail {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3mm;
  margin: 7mm 0;
  break-inside: avoid;
}

.lifecycle-rail-4-3 .lifecycle-step:nth-child(5) {
  grid-column: 1 / 2;
}

.lifecycle-rail-4-3 .lifecycle-step:nth-child(6) {
  grid-column: 2 / 3;
}

.lifecycle-rail-4-3 .lifecycle-step:nth-child(7) {
  grid-column: 3 / 5;
}

.lifecycle-step {
  min-height: 29mm;
  padding: 5mm;
  border-radius: 3mm;
  background: #f3f4f7;
  break-inside: avoid;
  margin-bottom: 3mm;
}

.lifecycle-step.is-key {
  background: #101828;
  color: #ffffff;
}

.lifecycle-step.is-accent {
  background: #F1FF67;
  color: #101828;
  border-color: #F1FF67;
}

.lifecycle-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 8mm;
  height: 8mm;
  margin-bottom: 12mm;
  border-radius: 999px;
  background: #FFFFFF;
  color: #101828;
  font-size: 8pt;
  line-height: 1;
  font-weight: 800;
}

.lifecycle-step.is-key .lifecycle-step-number {
  background: #F1FF67;
  color: #101828;
}

.lifecycle-step.is-accent .lifecycle-step-number {
  background: #101828;
  color: #ffffff;
}

.lifecycle-step-title {
  margin: 0;
  font-size: 12pt;
  line-height: 1.45;
  font-weight: 600;
  letter-spacing: -0.025em;
  color: inherit;
}

.image-side-fade {
  position: relative;
  overflow: hidden;
}

.image-side-fade img {
  display: block;
  width: 100%;
}

.image-side-fade::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(to right, #ffffff 0%, rgba(255,255,255,0) 12%),
    linear-gradient(to left, #ffffff 0%, rgba(255,255,255,0) 12%);
}

.image-bottom-boundary {
  position: absolute;
  left: 14mm;
  right: 14mm;
  bottom: 16mm;
  padding-top: 0;
}

.image-bottom-boundary img {
  width: 130%;
  max-width: none;
  display: block;
  margin-left: -15%;
}

.editorial-image-overlay {
  position: relative;
  overflow: hidden;
  border-radius: 4mm;
  line-height: 0;
}

.editorial-image-overlay img {
  display: block;
  width: 100%;
  margin: 0;
  border-radius: 0;
}

.editorial-image-overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: rgba(16, 24, 40, 0.70);
}

/* =========================================
   Page Group: Social Value and Worker Outcomes
========================================= */

.social-principle-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  margin-top: 7mm;
  break-inside: avoid;
}

.social-principle-card {
  min-height: 34mm;
  padding: 5mm;
  border-radius: 4mm;
  background: #f8f9fb;
  break-inside: avoid;
}

.social-principle-card.is-dark {
  background: #101828;
  color: #ffffff;
}

.social-principle-card.is-accent {
  background: #F1FF67;
  border-color: #F1FF67;
  color: #101828;
}

.social-principle-card h3 {
  margin: 0 0 3mm;
  font-size: 12pt;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: inherit;
}

.social-principle-card p {
  margin: 0;
  font-size: 8.5pt;
  line-height: 1.5;
  color: inherit;
}

/* Evidence / outcome tables */

.social-evidence-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  break-inside: avoid;
}

.social-evidence-table th,
.social-evidence-table td {
  border: 1px solid #e4e7ec;
  padding: 2.3mm 2.6mm;
  vertical-align: top;
  text-align: left;
}

.social-evidence-table thead th {
  background: #101828;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 6pt;
  line-height: 1.25;
  font-weight: 800;
}

.social-evidence-table tbody td {
  background: #ffffff;
  color: #172033;
  font-size: 7.2pt;
  line-height: 1.65;
}

.social-evidence-table tbody td:first-child {
  width: 54mm;
  min-width: 54mm;
  max-width: 54mm;
  background: #f3f4f7;
  color: #101828;
  font-weight: 600;
}

.social-evidence-table tbody td:nth-child(3) {
  width: 34mm;
  min-width: 34mm;
  max-width: 34mm;
  font-weight: 700;
  color: #101828;
}

/* Outcome table variation */

.social-outcome-table tbody td {
  font-size: 7.1pt;
  line-height: 1.65;
  padding-top: 3mm;
  padding-bottom: 3mm;
}

.social-outcome-table tbody td:first-child {
  width: 36mm;
  min-width: 36mm;
  max-width: 36mm;
  font-weight: 600;
}

.social-outcome-table tbody td:nth-child(2) {
  width: auto;
}

.social-outcome-table tbody td:nth-child(3) {
  width: 56mm;
  min-width: 56mm;
  max-width: 56mm;
}

/* Simple statement / quote section */

.social-quote-block {
  position: relative;
  margin-top: 2mm;
  min-height: 112mm;
  background: #ffffff;
  break-inside: avoid;
  overflow: hidden;
}

.social-quote-mark {
  position: absolute;
  top: -18mm;
  left: -4mm;
  z-index: 0;
  font-size: 250pt;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.08em;
  color: #f3f4f7;
  pointer-events: none;
}

.social-quote-content {
  position: relative;
  z-index: 1;
  padding: 18mm 0 0 14mm;
  max-width: 162mm;
}

.social-quote-content p {
  margin: 0 0 6mm;
  font-size: 14pt;
  line-height: 1.60;
  font-weight: 500;
  letter-spacing: -0.000em;
  color: #31394a;
}

.social-quote-content p:last-child {
  margin-bottom: 0;
}

/* Worker route feature callouts */

.social-worker-route,
.social-worker-route-feature {
  margin-top: 7mm;
  padding: 5mm;
  border-radius: 4mm;
  background: rgba(241, 255, 103, 0.35);
  border: 1px solid rgba(16, 24, 40, 0.12);
  break-inside: avoid;
}

.social-worker-route p,
.social-worker-route-feature p {
  margin: 0;
  font-size: 8.2pt;
  line-height: 1.7;
  color: #101828;
}

/* Closing strip */

.social-closing-strip {
  margin-top: 7mm;
  padding: 5mm;
  border-radius: 4mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.social-closing-strip p {
  margin: 0;
  font-size: 9pt;
  line-height: 1.7;
  font-weight: 700;
  color: #ffffff;
}

.social-closing-strip strong {
  color: #F1FF67;
}

/* =========================================
   Page Group: Frameworks, Controls and Project Attribution
========================================= */

.framework-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  break-inside: avoid;
}

.framework-table th,
.framework-table td {
  border: 1px solid #e4e7ec;
  padding: 2.8mm 3mm;
  vertical-align: top;
  text-align: left;
}

.framework-table thead th {
  background: #101828;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 6.2pt;
  line-height: 1.25;
  font-weight: 800;
}

.framework-table tbody td {
  background: #ffffff;
  color: #172033;
  font-size: 7pt;
  line-height: 1.55;
}

.framework-table tbody td:first-child {
  width: 42mm;
  min-width: 42mm;
  max-width: 42mm;
  background: #f3f4f7;
  color: #101828;
  font-weight: 700;
}

.framework-table-wide-left tbody td:first-child {
  width: 50mm;
  min-width: 50mm;
  max-width: 50mm;
}

.framework-scope-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3mm;
  margin-top: 6mm;
  break-inside: avoid;
}

.framework-scope-pill {
  min-height: 17mm;
  padding: 3mm;
  border-radius: 3mm;
  border: 1px solid #e4e7ec;
  background: #f8f9fb;
  font-size: 7pt;
  line-height: 1.35;
  font-weight: 700;
  color: #101828;
}

.framework-scope-pill.is-accent {
  background: #F1FF67;
  border-color: #F1FF67;
}

.framework-control-strip {
  margin-top: 3mm;
  padding: 5mm;
  border-radius: 4mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.framework-control-strip p {
  margin: 0;
  font-size: 9pt;
  line-height: 1.65;
  font-weight: 700;
  color: #ffffff;
}

.framework-control-strip strong {
  color: #F1FF67;
}

.framework-attribution-line {
  margin-top: 7mm;
  padding: 5mm;
  border-left: 1.5mm solid #F1FF67;
  background: #f8f9fb;
  break-inside: avoid;
}

.framework-attribution-line p {
  margin: 0;
  font-size: 9pt;
  line-height: 1.7;
  color: #172033;
}

.framework-attribution-table tbody td {
  font-size: 7.4pt;
  line-height: 1.65;
  padding-top: 3mm;
  padding-bottom: 3mm;
}

.framework-attribution-table tbody td:first-child {
  width: 58mm;
  min-width: 58mm;
  max-width: 58mm;
  font-weight: 600;
}

.framework-attribution-table tbody td:nth-child(2) {
  font-weight: 500;
}

.framework-commercial-value-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  margin-top: 8mm;
  break-inside: avoid;
}

.framework-value-card {
  min-height: 35mm;
  padding: 5mm;
  border-radius: 4mm;
  border: 1px solid #e4e7ec;
  background: #f8f9fb;
  break-inside: avoid;
}

.framework-value-card.is-dark {
  background: #101828;
  color: #ffffff;
}

.framework-value-card.is-accent {
  background: #F1FF67;
  border-color: #F1FF67;
  color: #101828;
}

.framework-value-card h3 {
  margin: 0 0 3mm;
  font-size: 11pt;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -0.035em;
  color: inherit;
}

.framework-value-card p {
  margin: 0;
  font-size: 7.6pt;
  line-height: 1.55;
  color: inherit;
}

.framework-commercial-table tbody td {
  font-size: 7.4pt;
  line-height: 1.65;
  padding-top: 3mm;
  padding-bottom: 3mm;
}

.framework-commercial-table tbody td:first-child {
  width: 68mm;
  min-width: 68mm;
  max-width: 68mm;
  font-weight: 600;
}

.framework-commercial-table tbody td:nth-child(2) {
  font-weight: 500;
}

/* =========================================
   Page Group: Reporting and Evidence Outputs
========================================= */

.reporting-chain {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3mm;
  margin-top: 7mm;
  break-inside: avoid;
}

.reporting-chain-item {
  min-height: 23mm;
  padding: 3.5mm;
  border-radius: 3mm;
  border: 1px solid #e4e7ec;
  background: #f8f9fb;
  break-inside: avoid;
}

.reporting-chain-item.is-dark {
  background: #101828;
  color: #ffffff;
}

.reporting-chain-item.is-accent {
  background: #F1FF67;
  border-color: #F1FF67;
  color: #101828;
}

.reporting-chain-item h3 {
  margin: 0 0 2mm;
  font-size: 7.8pt;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: inherit;
}

.reporting-chain-item p {
  margin: 0;
  font-size: 6.8pt;
  line-height: 1.45;
  font-weight: 500;
  color: inherit;
}

.reporting-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  break-inside: avoid;
}

.reporting-table th,
.reporting-table td {
  border: 1px solid #e4e7ec;
  padding: 2.7mm 3mm;
  vertical-align: top;
  text-align: left;
}

.reporting-table thead th {
  background: #101828;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 6.2pt;
  line-height: 1.25;
  font-weight: 800;
}

.reporting-table tbody td {
  background: #ffffff;
  color: #172033;
  font-size: 7.2pt;
  line-height: 1.6;
}

.reporting-table tbody td:first-child {
  width: 48mm;
  min-width: 48mm;
  max-width: 48mm;
  background: #f3f4f7;
  color: #101828;
  font-weight: 600;
}

.reporting-truth-block {
  margin-top: 8mm;
  break-inside: avoid;
}

.reporting-truth-mark {
  font-size: 7pt;
  line-height: 1;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: #667085;
  margin: 0 0 5mm;
}

.reporting-truth-title {
  margin: 0;
  max-width: 160mm;
  font-size: 24pt;
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.06em;
  color: #101828;
}

.reporting-truth-title span {
  background: #F1FF67;
  padding: 0 1.5mm;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.reporting-final-strip {
  margin-top: 8mm;
  padding: 5mm;
  border-radius: 4mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.reporting-final-strip p {
  margin: 0;
  font-size: 9pt;
  line-height: 1.7;
  font-weight: 700;
  color: #ffffff;
}

.reporting-final-strip strong {
  color: #F1FF67;
}

/* =========================================
   Page Group: Multi-Party Infrastructure
========================================= */

.multi-party-layer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  margin: 6mm 0mm 12mm 0mm;
  break-inside: avoid;
}

.multi-party-layer-card {
  min-height: 38mm;
  padding: 5mm;
  border-radius: 4mm;
  background: #f8f9fb;
  break-inside: avoid;
}

.multi-party-layer-card.is-dark {
  background: #101828;
  color: #ffffff;
}

.multi-party-layer-card.is-accent {
  background: #F1FF67;
  border-color: #F1FF67;
  color: #101828;
}

.multi-party-layer-card h3 {
  margin: 0 0 3mm;
  font-size: 12pt;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: inherit;
}

.multi-party-layer-card p {
  margin: 0;
  font-size: 7.8pt;
  line-height: 1.55;
  color: inherit;
}

.multi-party-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  break-inside: avoid;
}

.multi-party-table th,
.multi-party-table td {
  border: 1px solid #e4e7ec;
  padding: 2.7mm 3mm;
  vertical-align: top;
  text-align: left;
}

.multi-party-table thead th {
  background: #101828;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 6.1pt;
  line-height: 1.25;
  font-weight: 800;
}

.multi-party-table tbody td {
  background: #ffffff;
  color: #172033;
  font-size: 7pt;
  line-height: 1.55;
}

.multi-party-table tbody td:first-child {
  width: 34mm;
  min-width: 34mm;
  max-width: 34mm;
  background: #f3f4f7;
  color: #101828;
  font-weight: 700;
}

.multi-party-strip {
  margin-top: 7mm;
  padding: 5mm;
  border-radius: 4mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.multi-party-strip p {
  margin: 0;
  font-size: 9pt;
  line-height: 1.65;
  font-weight: 700;
  color: #ffffff;
}

.multi-party-strip strong {
  color: #F1FF67;
}

.participant-compare-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5mm;
  margin-top: 7mm;
  break-inside: avoid;
}

.participant-compare-card {
  padding: 6mm;
  border-radius: 4mm;
  border: 1px solid #e4e7ec;
  background: #f8f9fb;
  break-inside: avoid;
}

.participant-compare-card.is-accent {
  background: #F1FF67;
  border-color: #F1FF67;
}

.participant-compare-card h3 {
  margin: 0 0 4mm;
  font-size: 15pt;
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.05em;
  color: #101828;
}

.participant-compare-card p {
  margin: 0;
  font-size: 8.3pt;
  line-height: 1.65;
  color: #344054;
}

.commercial-model-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  margin-top: 7mm;
  break-inside: avoid;
}

.commercial-model-card {
  min-height: 34mm;
  padding: 5mm;
  border-radius: 4mm;
  border: 1px solid #e4e7ec;
  background: #f8f9fb;
  break-inside: avoid;
}

.commercial-model-card.is-dark {
  background: #101828;
  color: #ffffff;
}

.commercial-model-card.is-accent {
  background: #F1FF67;
  border-color: #F1FF67;
  color: #101828;
}

.commercial-model-card h3 {
  margin: 0 0 3mm;
  font-size: 11pt;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: inherit;
}

.commercial-model-card p {
  margin: 0;
  font-size: 7.6pt;
  line-height: 1.55;
  color: inherit;
}

.commercial-closing-lines {
  margin-top: 8mm;
  break-inside: avoid;
}

.commercial-closing-lines p {
  margin: 0 0 3mm;
  font-size: 18pt;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.055em;
  color: #101828;
}

.commercial-closing-lines p:nth-child(2) {
  color: #667085;
}

.commercial-closing-lines p:nth-child(3) {
  display: inline;
  background: #F1FF67;
  padding: 0 1.5mm;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.editorial-image-rounded {
  display: block;
  width: 100%;
  border-radius: 4mm;
  margin-top: 6mm;
}

/* =========================================
   Page Group: Deploying ICCE
========================================= */

.deploy-start-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  margin-top: 7mm;
  break-inside: avoid;
}

.deploy-start-card {
  min-height: 34mm;
  padding: 5mm;
  border-radius: 4mm;
  border: 1px solid #e4e7ec;
  background: #f8f9fb;
  break-inside: avoid;
}

.deploy-start-card.is-dark {
  background: #101828;
  color: #ffffff;
}

.deploy-start-card.is-accent {
  background: #F1FF67;
  border-color: #F1FF67;
  color: #101828;
}

.deploy-start-card h3 {
  margin: 0 0 3mm;
  font-size: 12pt;
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: -0.04em;
  color: inherit;
}

.deploy-start-card p {
  margin: 0;
  font-size: 10pt;
  line-height: 1.55;
  color: inherit;
}

.deploy-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  break-inside: avoid;
}

.deploy-table th,
.deploy-table td {
  border: 1px solid #e4e7ec;
  padding: 2.7mm 3mm;
  vertical-align: top;
  text-align: left;
}

.deploy-table thead th {
  background: #101828;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 6.1pt;
  line-height: 1.25;
  font-weight: 800;
}

.deploy-table tbody td {
  background: #ffffff;
  color: #172033;
  font-size: 7.1pt;
  line-height: 1.6;
}

.deploy-table tbody td:first-child {
  width: 48mm;
  min-width: 48mm;
  max-width: 48mm;
  background: #f3f4f7;
  color: #101828;
  font-weight: 600;
}

.deploy-step-table tbody td:first-child {
  width: 11mm;
  min-width: 11mm;
  max-width: 11mm;
  text-align: center;
  font-weight: 800;
}

.deploy-step-table tbody td:nth-child(2) {
  width: 55mm;
  min-width: 55mm;
  max-width: 55mm;
  background: #f3f4f7;
  color: #101828;
  font-weight: 600;
}

.deploy-step-table tbody td:nth-child(3) {
  font-weight: 500;
}

.deploy-note {
  margin-top: 7mm;
  padding: 5mm;
  border-left: 1.5mm solid #F1FF67;
  background: #f8f9fb;
  break-inside: avoid;
}

.deploy-note p {
  margin: 0;
  font-size: 8.4pt;
  line-height: 1.7;
  color: #172033;
}

.deploy-closing-title {
  margin-top: 8mm;
  max-width: 160mm;
  font-size: 24pt;
  line-height: 1.12;
  font-weight: 800;
  letter-spacing: -0.055em;
  color: #101828;
}

/* =========================================
   Page Group: Launch Window Opportunity
========================================= */

.launch-opportunity-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  margin-top: 7mm;
  break-inside: avoid;
}

.launch-opportunity-card {
  min-height: 36mm;
  padding: 5mm;
  border-radius: 4mm;
  border: 1px solid #e4e7ec;
  background: #f8f9fb;
  break-inside: avoid;
}

.launch-opportunity-card.is-dark {
  background: #101828;
  color: #ffffff;
}

.launch-opportunity-card.is-accent {
  background: #F1FF67;
  border-color: #F1FF67;
  color: #101828;
}

.launch-opportunity-card h3 {
  margin: 0 0 3mm;
  font-size: 11.5pt;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: inherit;
}

.launch-opportunity-card p {
  margin: 0;
  font-size: 7.6pt;
  line-height: 1.55;
  color: inherit;
}

/* Launch scale chart */

.launch-scale-chart {
  margin-top: 6mm;
  padding: 6mm;
  border-radius: 5mm;
  border: 1px solid #e4e7ec;
  background: #f8f9fb;
  break-inside: avoid;
}

.launch-scale-kicker {
  margin: 0 0 4mm;
  font-size: 7pt;
  line-height: 1;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: #667085;
}

.launch-scale-row {
  display: grid;
  grid-template-columns: 38mm 1fr 42mm;
  gap: 5mm;
  align-items: center;
  margin-bottom: 5mm;
}

.launch-scale-row:last-child {
  margin-bottom: 0;
}

.launch-scale-label h3 {
  margin: 0;
  font-size: 18pt;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.055em;
  color: #101828;
}

.launch-scale-label p {
  margin: 1.5mm 0 0;
  font-size: 7pt;
  line-height: 1.35;
  font-weight: 600;
  color: #667085;
}

.launch-scale-track {
  height: 9mm;
  border-radius: 999px;
  background: #e4e7ec;
  overflow: hidden;
}

.launch-scale-fill {
  height: 100%;
  border-radius: 999px;
  background: #101828;
}

.launch-scale-fill.launch-current {
  width: 12%;
  background: #F1FF67;
}

.launch-scale-fill.launch-future {
  width: 100%;
  background: #101828;
}

.launch-scale-note {
  font-size: 7pt;
  line-height: 1.45;
  color: #475467;
}

.launch-scale-note strong {
  color: #101828;
}

.launch-scale-arrow {
  margin: 6mm 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 4mm;
  align-items: center;
  color: #667085;
  font-size: 7pt;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

.launch-scale-arrow::before,
.launch-scale-arrow::after {
  content: "";
  height: 1px;
  background: #d0d5dd;
}

/* Launch tables */

.launch-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  break-inside: avoid;
}

.launch-table th,
.launch-table td {
  border: 1px solid #e4e7ec;
  padding: 2.7mm 3mm;
  vertical-align: top;
  text-align: left;
}

.launch-table thead th {
  background: #101828;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 6.1pt;
  line-height: 1.25;
  font-weight: 800;
}

.launch-table tbody td {
  background: #ffffff;
  color: #172033;
  font-size: 7.2pt;
  line-height: 1.6;
}

.launch-table tbody td:first-child {
  width: 52mm;
  min-width: 52mm;
  max-width: 52mm;
  background: #f3f4f7;
  color: #101828;
  font-weight: 600;
}

/* EOI */

.eoi-callout {
  margin-top: 7mm;
  padding: 6mm;
  border-radius: 5mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.eoi-callout p {
  margin: 0;
  font-size: 10pt;
  line-height: 1.65;
  font-weight: 700;
  color: #ffffff;
}

.eoi-callout strong {
  color: #F1FF67;
}

.eoi-stakeholder-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3mm;
  margin-top: 7mm;
  break-inside: avoid;
}

.eoi-stakeholder-pill {
  min-height: 15mm;
  padding: 3mm;
  border-radius: 3mm;
  border: 1px solid #e4e7ec;
  background: #f8f9fb;
  font-size: 7pt;
  line-height: 1.35;
  font-weight: 700;
  color: #101828;
}

.eoi-stakeholder-pill.is-accent {
  background: #F1FF67;
  border-color: #F1FF67;
}

.launch-final-statement {
  margin-top: 8mm;
  break-inside: avoid;
}

.launch-final-statement p {
  margin: 0 0 3mm;
  max-width: 165mm;
  font-size: 22pt;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.055em;
  color: #101828;
}

/* =========================================
   Page Group: Review Materials / Technical
========================================= */

.tech-section-label {
  margin: 0 0 7mm;
  font-size: 7pt;
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #667085;
}

.tech-title {
  margin: 0 0 7mm;
  font-size: 14pt;
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: -0.035em;
  color: #101828;
}

.tech-prose {
  max-width: 165mm;
  margin-bottom: 4mm;
}

.tech-prose p {
  margin: 0 0 4mm;
  font-size: 7.5pt;
  line-height: 1.55;
  color: #667085;
}

.tech-table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  break-inside: avoid;
}

.tech-table th,
.tech-table td {
  border: 1px solid #d0d5dd;
  padding: 2.6mm 3mm;
  vertical-align: top;
  text-align: left;
  overflow-wrap: break-word;
  word-break: normal;
}

.tech-table thead th {
  background: #344054;
  color: #FFFFFF;
  font-size: 6.5pt;
  line-height: 1.25;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.tech-table tbody td {
  background: #ffffff;
  color: #344054;
  font-size: 7.4pt;
  line-height: 1.55;
}

.tech-table th:first-child,
.tech-table td:first-child {
  width: 38%;
  font-weight: 600;
}

.tech-table th:nth-child(2),
.tech-table td:nth-child(2) {
  width: 62%;
}

.tech-note {
  margin-top: 4mm;
}

.tech-note p {
  margin: 0;
  font-size: 7.5pt;
  line-height: 1.55;
  color: #667085;
}

/* =========================================
   Page Group: Boundary Statement / Technical
========================================= */

.boundary-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10mm;
  break-inside: avoid;
}

.boundary-block {
  margin-bottom: 7mm;
  break-inside: avoid;
}

.boundary-block h2 {
  margin: 0 0 3mm;
  padding-bottom: 2mm;
  border-bottom: 1px solid #d0d5dd;
  font-size: 8pt;
  line-height: 1.2;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #344054;
}

.boundary-block p {
  margin: 0 0 3.5mm;
  font-size: 7.7pt;
  line-height: 1.65;
  color: #344054;
}

.boundary-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid #d0d5dd;
}

.boundary-list li {
  margin: 0;
  padding: 2mm 0;
  border-bottom: 1px solid #e4e7ec;
  font-size: 7.4pt;
  line-height: 1.45;
  color: #344054;
}

.boundary-list li strong {
  color: #101828;
  font-weight: 700;
}

.boundary-technical-note {
  margin-top: 6mm;
  padding: 4mm;
  border: 1px solid #d0d5dd;
  background: #f8f9fb;
  break-inside: avoid;
}

.boundary-technical-note p {
  margin: 0;
  font-size: 7.5pt;
  line-height: 1.6;
  color: #344054;
}

.boundary-final-line {
  margin-top: 6mm;
  padding-top: 4mm;
  border-top: 1px solid #d0d5dd;
}

.boundary-final-line p {
  margin: 0;
  font-size: 8pt;
  line-height: 1.65;
  font-weight: 600;
  color: #101828;
}

/* =========================================
   Page Group: Appendix Source Basis / Technical
========================================= */

.source-subtitle {
  margin: 0 0 4mm;
  padding-bottom: 2mm;
  border-bottom: 1px solid #d0d5dd;
  font-size: 8pt;
  line-height: 1.2;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #344054;
}

.source-table {
  margin-bottom: 7mm;
}

.source-table th:first-child,
.source-table td:first-child {
  width: 42%;
}

.source-table th:nth-child(2),
.source-table td:nth-child(2) {
  width: 58%;
}

.source-table tbody td {
  font-size: 7.1pt;
  line-height: 1.55;
}

.source-interpretation p {
  margin: 0 0 3.5mm;
  font-size: 7.6pt;
  line-height: 1.65;
  color: #344054;
}

.source-interpretation p:last-child {
  margin-bottom: 0;
}

/* =========================================
   Page Group: Legal Notice / Technical
========================================= */

.legal-notice-page {
  min-height: 238mm;
  display: flex;
  flex-direction: column;
}

.legal-notice {
  max-width: 168mm;
  min-height: 100%;
  display: flex;
  flex-direction: column;
}

.legal-notice h2 {
  margin: 0 0 5mm;
  padding-bottom: 2.5mm;
  border-bottom: 1px solid #d0d5dd;
  font-size: 8pt;
  line-height: 1.2;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #344054;
}

.legal-notice p {
  margin: 0;
  font-size: 8pt;
  line-height: 1.75;
  color: #344054;
}

.legal-notice strong {
  color: #101828;
  font-weight: 700;
}

.legal-section {
  margin-bottom: 13mm;
}

.legal-company-block {
  margin: 8mm 0 13mm;
  padding: 5mm 0;
  border-top: 1px solid #d0d5dd;
  border-bottom: 1px solid #d0d5dd;
}

.legal-company-block p + p {
  margin-top: 2.5mm;
}

.legal-copyright {
  margin-top: auto;
  padding-top: 5mm;
  border-top: 1px solid #d0d5dd;
}

.legal-copyright p {
  margin: 0;
  font-size: 8pt;
  line-height: 1.55;
  font-weight: 700;
  color: #101828;
}

.legal-mini-block {
  margin-top: 8mm;
  max-width: 100%;
}

.legal-mini-block .legal-section {
  margin-bottom: 0;
}

.legal-mini-block h2 {
  margin: 0 0 5mm;
  padding-bottom: 2.5mm;
  border-bottom: 1px solid #d0d5dd;
  font-size: 8pt;
  line-height: 1.2;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #344054;
}

.legal-mini-block p {
  margin: 0 0 4mm;
  font-size: 8pt;
  line-height: 1.75;
  color: #344054;
}

.legal-mini-block p:last-child {
  margin-bottom: 0;
}

.legal-mini-block strong {
  color: #101828;
  font-weight: 700;
}

/* =========================================
   Page Group: ICCE Teaser Compact
========================================= */

.teaser-compact-title {
  margin: 0 0 6mm;
  max-width: 170mm;
  font-size: 18pt;
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.055em;
  color: #101828;
}

.teaser-compact-prose p {
  margin: 0 0 3.5mm;
  font-size: 8.4pt;
  line-height: 1.6;
  color: #172033;
}

.teaser-compact-prose strong {
  color: #101828;
  font-weight: 700;
}

.teaser-compact-prose h2 {
  margin: 0 0 4mm;
  padding-bottom: 2mm;
  border-bottom: 1px solid #d0d5dd;
  font-size: 10pt;
  line-height: 1.2;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  color: #344054;
}

.teaser-basic-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 3.5mm; /* was 2mm */
  table-layout: fixed;
  margin-top: 5mm;
  break-inside: avoid;
}

.teaser-basic-table th {
  padding: 0 3mm 1.8mm;
  text-align: left;
  font-size: 6.6pt;
  line-height: 1.25;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #667085;
  border-bottom: 1px solid #e4e7ec;
}

.teaser-basic-table td {
  padding: 4.4mm 3.2mm;
  vertical-align: top;
  background: #f8f9fb;
  border-top: 1px solid #e4e7ec;
  border-bottom: 1px solid #e4e7ec;
  font-size: 8.3pt;
  line-height: 1.6;
  color: #475467;
}

.teaser-basic-table tbody tr td:first-child {
  width: auto;
  border-left: 1.3mm solid #F1FF67;
  border-radius: 2mm 0 0 3mm;
  background: #ffffff;
  color: #101828;
  font-size: 8.6pt;
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.teaser-basic-table tbody tr td:last-child {
  width: auto;
  border-right: 1px solid #e4e7ec;
  border-radius: 0 3mm 3mm 0;
}

.teaser-simple-list {
  margin:  3mm 0 0 0;
  padding: 0;
  list-style: none;
  columns: 2;
  column-gap: 10mm;
}

.teaser-simple-list li {
  margin: 0 0 2.4mm;
  padding-top: 2.2mm;
  border-top: 1px solid #e4e7ec;
  font-size: 8.2pt;
  line-height: 1.45;
  color: #344054;
  break-inside: avoid;
}

.teaser-simple-list strong {
  color: #101828;
  font-weight: 800;
}

.teaser-muted-note {
  margin-top: 0mm;
  padding-top: 4mm;
}

.teaser-muted-note p {
  margin: 0 0 3.5mm;
  font-size: 8pt;
  line-height: 1.6;
  color: #667085;
}

.teaser-final-statement {
  margin-top: 6mm;
  font-size: 15pt;
  line-height: 1.22;
  font-weight: 800;
  letter-spacing: -0.045em;
  color: #101828;
}

.teaser-compact-prose h2.teaser-inline-heading {
  margin-top: 3mm;
}
.teaser-connected-grid {
  column-gap: 11mm;
  row-gap: 9mm;
  align-items: start;
}

.teaser-callout {
  padding-left: 3.5mm;
  border-left: 1.4mm solid #101828;
  break-inside: avoid;
}

.teaser-callout p {
  margin: 0 !important;
  font-size: 8.4pt;
  line-height: 1.62;
  color: #344054;
}

.teaser-callout strong {
  display: block;
  margin-bottom: 1.3mm;
  font-size: 10pt; /* was 8pt */
  line-height: 1.15;
  color: #101828;
  font-weight: 700;
  letter-spacing: -0.025em;
}

.teaser-callout-navy {
  border-left-color: #101828;
}

.teaser-callout-yellow {
  border-left-color: #F1FF67;
}

.teaser-callout-blue {
  border-left-color: #2E90FA;
}

.teaser-callout-green {
  border-left-color: #12B76A;
}

.teaser-not-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5mm 5mm;
  margin: 0;
  padding: 0;
  list-style: none;
}

.teaser-not-grid li {
  min-height: 12mm;
  margin: 0;
  padding: 2.5mm 0;
  border-top: 1px solid #e4e7ec;
  font-size: 8.2pt;
  line-height: 1.45;
  color: #344054;
}

.teaser-not-grid strong {
  color: #101828;
  font-weight: 800;
}

/* =========================================
   Teaser Research / Source Review Block
========================================= */

.teaser-research-block {
  margin: 0 0 6mm;
  padding: 0 0 7mm;
  break-inside: avoid;
}

.teaser-research-block h2 {
  margin: 0 0 4mm;
  padding-bottom: 2mm;
  border-bottom: 1px solid #d0d5dd;
  font-size: 8pt;
  line-height: 1.2;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #344054;
}

.teaser-research-intro {
  margin: 0 0 5mm;
  max-width: 165mm;
  font-size: 8pt;
  line-height: 1.62;
  color: #172033;
}

.teaser-research-stack {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid #e4e7ec;
}

.teaser-research-row {
  display: grid;
  grid-template-columns: 48mm 1fr;
  gap: 6mm;
  padding: 4mm 0;
  border-bottom: 1px solid #e4e7ec;
  break-inside: avoid;
}

.teaser-research-row h3 {
  margin: 0;
  font-size: 8.4pt;
  line-height: 1.35;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: #344054;
}

.teaser-research-row p {
  margin: 0;
  font-size: 8pt;
  line-height: 1.6;
  color: #475467;
}

/* =========================================
   Teaser Evidence Block
========================================= */

.teaser-evidence-block {
  margin-top: 6mm;
  padding-top: 5mm;
  break-inside: avoid;
}

.teaser-evidence-block h2 {
  margin: 0 0 3.2mm;
  padding-bottom: 2mm;
  border-bottom: 1px solid #d0d5dd;
  font-size: 8pt;
  line-height: 1.2;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #344054;
}

.teaser-evidence-intro {
  margin: 0 0 8mm;
  max-width: 155mm;
  font-size: 8.4pt;
  line-height: 1.62;
  color: #172033;
}

.teaser-evidence-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 9mm;
  row-gap: 6mm;
}

.teaser-evidence-item {
  padding-left: 3.5mm;
  border-left: 1.1mm solid #d0d5dd;
  break-inside: avoid;
}

.teaser-evidence-item h3 {
  margin: 0 0 1.3mm;
  font-size: 9.2pt;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -0.025em;
  color: #101828;
}

.teaser-evidence-item p {
  margin: 0;
  font-size: 8pt;
  line-height: 1.6;
  color: #475467;
}

/* =========================================
   Teaser Gradient Backgrounds
   Paged.js edge-safe version
========================================= */

/* Restore normal page dimensions */
.editorial-body-page.teaser-gradient-soft {
  position: relative;
  width: 210mm;
  height: 297mm;
  overflow: hidden;
  background: var(--teaser-page-gradient) !important;
}

/* Option 1: top-right blue / bottom-left yellow */
.teaser-gradient-corner-a {
  page: teaser-gradient-corner-a-page;

  --teaser-page-gradient:
    radial-gradient(circle at 92% 8%,
      rgba(46, 144, 250, 0.075) 0%,
      rgba(46, 144, 250, 0.035) 22%,
      rgba(46, 144, 250, 0) 46%
    ),
    radial-gradient(circle at 8% 92%,
      rgba(241, 255, 103, 0.20) 0%,
      rgba(241, 255, 103, 0.08) 24%,
      rgba(241, 255, 103, 0) 48%
    ),
    #ffffff;
}

/* Option 2: top-left grey-blue / bottom-right yellow */
.teaser-gradient-corner-b {
  page: teaser-gradient-corner-b-page;

  --teaser-page-gradient:
    radial-gradient(circle at 6% 10%,
      rgba(52, 64, 84, 0.065) 0%,
      rgba(52, 64, 84, 0.028) 24%,
      rgba(52, 64, 84, 0) 48%
    ),
    radial-gradient(circle at 94% 88%,
      rgba(241, 255, 103, 0.18) 0%,
      rgba(241, 255, 103, 0.07) 24%,
      rgba(241, 255, 103, 0) 50%
    ),
    #ffffff;
}

/* Option 3: diagonal soft wash */
.teaser-gradient-diagonal {
  page: teaser-gradient-diagonal-page;

  --teaser-page-gradient:
    radial-gradient(circle at 100% 0%,
      rgba(46, 144, 250, 0.065) 0%,
      rgba(46, 144, 250, 0.025) 26%,
      rgba(46, 144, 250, 0) 52%
    ),
    radial-gradient(circle at 0% 100%,
      rgba(18, 183, 106, 0.055) 0%,
      rgba(18, 183, 106, 0.022) 26%,
      rgba(18, 183, 106, 0) 52%
    ),
    linear-gradient(135deg,
      rgba(241, 255, 103, 0.08) 0%,
      rgba(241, 255, 103, 0) 38%
    ),
    #ffffff;
}

/* Print / Paged.js page backgrounds */
@page teaser-gradient-corner-a-page {
  size: A4;
  margin: 0;
  background:
    radial-gradient(circle at 92% 8%, rgba(46, 144, 250, 0.075) 0%, rgba(46, 144, 250, 0.035) 22%, rgba(46, 144, 250, 0) 46%),
    radial-gradient(circle at 8% 92%, rgba(241, 255, 103, 0.20) 0%, rgba(241, 255, 103, 0.08) 24%, rgba(241, 255, 103, 0) 48%),
    #ffffff;
}

@page teaser-gradient-corner-b-page {
  size: A4;
  margin: 0;
  background:
    radial-gradient(circle at 6% 10%, rgba(52, 64, 84, 0.065) 0%, rgba(52, 64, 84, 0.028) 24%, rgba(52, 64, 84, 0) 48%),
    radial-gradient(circle at 94% 88%, rgba(241, 255, 103, 0.18) 0%, rgba(241, 255, 103, 0.07) 24%, rgba(241, 255, 103, 0) 50%),
    #ffffff;
}

@page teaser-gradient-diagonal-page {
  size: A4;
  margin: 0;
  background:
    radial-gradient(circle at 100% 0%, rgba(46, 144, 250, 0.065) 0%, rgba(46, 144, 250, 0.025) 26%, rgba(46, 144, 250, 0) 52%),
    radial-gradient(circle at 0% 100%, rgba(18, 183, 106, 0.055) 0%, rgba(18, 183, 106, 0.022) 26%, rgba(18, 183, 106, 0) 52%),
    linear-gradient(135deg, rgba(241, 255, 103, 0.08) 0%, rgba(241, 255, 103, 0) 38%),
    #ffffff;
}

/* Browser preview: paint the Paged.js wrapper itself */
@media screen, pagedjs-ignore {
  .pagedjs_page:has(.teaser-gradient-corner-a) .pagedjs_sheet,
  .pagedjs_page:has(.teaser-gradient-corner-a) .pagedjs_pagebox,
  .pagedjs_page:has(.teaser-gradient-corner-a) .pagedjs_area {
    background:
      radial-gradient(circle at 92% 8%, rgba(46, 144, 250, 0.075) 0%, rgba(46, 144, 250, 0.035) 22%, rgba(46, 144, 250, 0) 46%),
      radial-gradient(circle at 8% 92%, rgba(241, 255, 103, 0.20) 0%, rgba(241, 255, 103, 0.08) 24%, rgba(241, 255, 103, 0) 48%),
      #ffffff !important;
  }

  .pagedjs_page:has(.teaser-gradient-corner-b) .pagedjs_sheet,
  .pagedjs_page:has(.teaser-gradient-corner-b) .pagedjs_pagebox,
  .pagedjs_page:has(.teaser-gradient-corner-b) .pagedjs_area {
    background:
      radial-gradient(circle at 6% 10%, rgba(52, 64, 84, 0.065) 0%, rgba(52, 64, 84, 0.028) 24%, rgba(52, 64, 84, 0) 48%),
      radial-gradient(circle at 94% 88%, rgba(241, 255, 103, 0.18) 0%, rgba(241, 255, 103, 0.07) 24%, rgba(241, 255, 103, 0) 50%),
      #ffffff !important;
  }

  .pagedjs_page:has(.teaser-gradient-diagonal) .pagedjs_sheet,
  .pagedjs_page:has(.teaser-gradient-diagonal) .pagedjs_pagebox,
  .pagedjs_page:has(.teaser-gradient-diagonal) .pagedjs_area {
    background:
      radial-gradient(circle at 100% 0%, rgba(46, 144, 250, 0.065) 0%, rgba(46, 144, 250, 0.025) 26%, rgba(46, 144, 250, 0) 52%),
      radial-gradient(circle at 0% 100%, rgba(18, 183, 106, 0.055) 0%, rgba(18, 183, 106, 0.022) 26%, rgba(18, 183, 106, 0) 52%),
      linear-gradient(135deg, rgba(241, 255, 103, 0.08) 0%, rgba(241, 255, 103, 0) 38%),
      #ffffff !important;
  }
}

.cover-title-highlight {
  background: #F1FF67;
  color: #101828;
  padding: 0 1.4mm 0.6mm;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

/* =========================================
   Teaser Opening Problem Spread
========================================= */

.teaser-problem-label {
  display: inline-block;
  margin-bottom: 5mm;
  padding: 1mm 2mm;
  background: #101828;
  color: #ffffff;
  font-size: 7pt;
  line-height: 1;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
}

.teaser-problem-title {
  margin: 0 0 8mm;
  max-width: 178mm;
  font-size: 20pt;
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.06em;
  color: #101828;
}

.teaser-problem-prose p {
  margin: 0 0 3.1mm;
  font-size: 8.1pt;
  line-height: 1.68;
  color: #172033;
}

.teaser-problem-prose .lead {
  font-size: 9.4pt;
  line-height: 1.55;
  font-weight: 400;
  color: #101828;
}

.teaser-problem-prose .impact {
  font-weight: 800;
  color: #101828;
}

.teaser-problem-prose h2 {
  margin: 0 0 3.2mm;
  padding-bottom: 2mm;
  border-bottom: 1px solid #d0d5dd;
  font-size: 8pt;
  line-height: 1.2;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #344054;
}

.teaser-problem-question-block {
  margin-top: 6mm;
  padding: 5mm;
  border: 1px solid #e4e7ec;
  background: rgba(248, 249, 251, 0.88);
  break-inside: avoid;
}

.teaser-problem-question-block h2 {
  margin: 0 0 4mm;
  font-size: 8pt;
  line-height: 1.2;
  font-weight: 800;
  /* text-transform: uppercase; */
  letter-spacing: 0.12em;
  color: #344054;
}

.teaser-problem-question-grid {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 3.8mm;
}

.teaser-problem-question-grid span {
  display: block;
  padding-left: 3mm;
  border-left: 1mm solid #F1FF67;
  font-size: 7.4pt;
  line-height: 1.35;
  font-weight: 600;
  color: #344054;
}

.teaser-governance-intro {
  margin: 0 0 3mm;
  font-size: 8.1pt;
  line-height: 1.58;
  color: #344054;
}

.teaser-governance-shift-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 8mm;
  row-gap: 3.8mm;
}

.teaser-governance-shift-list {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 3.8mm;
}

.teaser-governance-shift-list span {
  display: block;
  padding-left: 3mm;
  border-left: 1mm solid #F1FF67;
  font-size: 7.4pt;
  line-height: 1.35;
  font-weight: 600;
  color: #344054;
}

.teaser-problem-closing {
  margin-top: 6mm;
  padding: 4.5mm 5mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.teaser-problem-closing p {
  margin: 0;
  font-size: 8.8pt;
  line-height: 1.6;
  font-weight: 700;
  color: #ffffff;
}

.teaser-problem-wide-statement p {
  margin: 0;
  font-size: 9.2pt;
  line-height: 1.64;
  font-weight: 500;
  letter-spacing: -0.020em;
  color: #ffffff;
}

.teaser-problem-wide-statement {
  margin-top: 5mm;
  margin-bottom: 4mm;
  padding: 6mm;
  background: #101828;
  color: #ffffff;
  break-inside: avoid;
}

.teaser-shift-statement-single {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 2.8mm;
}

.teaser-shift-row {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  column-gap: 6mm;
  align-items: start;
  padding-left: 3mm;
  border-left: 1mm solid #F1FF67;
}

.teaser-shift-row span {
  display: block;
  font-size: 7.2pt;
  line-height: 1.25;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.68);
}

.teaser-shift-row strong {
  display: block;
  font-size: 8.6pt;
  line-height: 1.25;
  font-weight: 600;
  color: #ffffff;
}

.teaser-problem-lower {
  margin-top: 6mm;
}

.teaser-problem-final {
  margin-top: 6mm;
  padding: 5mm;
  border-left: 1.5mm solid #F1FF67;
  background: rgba(248, 249, 251, 0.92);
  break-inside: avoid;
}

.teaser-problem-final h2 {
  margin: 0 0 3mm;
  font-size: 8pt;
  line-height: 1.2;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #344054;
}

.teaser-problem-final p {
  margin: 0 0 3mm;
  font-size: 8.5pt;
  line-height: 1.6;
  color: #172033;
}

.teaser-problem-final p:last-child {
  margin-bottom: 0;
}

.teaser-problem-final strong {
  color: #101828;
  font-weight: 800;
}

.italic-underline {
  font-style: italic;
  font-weight: 500;
  color: #1f2937;
  letter-spacing: 0.01em;
  text-decoration-line: underline;
  text-decoration-color: rgba(152, 162, 179, 0.7);
  text-decoration-thickness: 0.7px;
  text-underline-offset: 2.5px;
  transition: color 160ms ease, text-decoration-color 160ms ease;
}

.italic-underline:hover {
  color: #101828;
  text-decoration-color: #F1FF67;
}

.text-highlight-yellow {
  display: inline;
  background: #F1FF67;
  color: #101828;
  padding: 0.5mm 2mm 1.5mm;
  line-height: 1.6;
  font-weight: 800;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.text-highlight-yellow-tight {
  display: inline;
  background: #F1FF67;
  color: #101828;
  padding: 0.2mm 1.2mm 0.6mm;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.teaser-inline-route-emphasis {
  font-weight: 600;
  color: #344054;
}

/* =========================================
   Large-number contractor options
========================================= */

.teaser-option-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 1mm 0 1mm 0;
}

.teaser-option-item {
  position: relative;
  min-height: 18mm;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 2mm 5mm 2mm 14mm;
  break-inside: avoid;
}

.teaser-option-item::before {
  content: attr(data-number);
  position: absolute;
  left: 1mm;
  top: 50%;
  transform: translateY(-53%);
  z-index: 0;
  font-size: 26pt;
  line-height: 0.8;
  font-weight: 800;
  letter-spacing: -0.08em;
  color: rgba(16, 24, 40, 0.09);
  pointer-events: none;
}

.teaser-option-item::after {
  content: "";
  position: absolute;
  left: 9mm;
  top: 5mm;
  bottom: 5mm;
  width: 1mm;
  background: #F1FF67;
}

.teaser-option-item p {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 8.1pt;
  line-height: 1.55;
  font-weight: 500;
  color: #172033;
}

.teaser-option-item + .teaser-option-item {
  border-top: 1px solid #d0d5dd;
}

.teaser-option-item-plain {
  position: relative;
  min-height: 18mm;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 2mm 5mm 2mm 12mm;
  break-inside: avoid;
  border-bottom: 1px solid #d0d5dd;
}

.teaser-option-item-plain::before {
  content: attr(data-number);
  position: absolute;
  left: 1mm;
  top: 50%;
  transform: translateY(-53%);
  z-index: 0;
  font-size: 26pt;
  line-height: 0.8;
  font-weight: 800;
  letter-spacing: -0.08em;
  color: rgba(16, 24, 40, 0.09);
  pointer-events: none;
}

.teaser-option-item-plain p {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 8.1pt;
  line-height: 1.55;
  font-weight: 500;
  color: #172033;
}

.teaser-option-item-plain + .teaser-option-item -plain{
  border-top: 1px solid #d0d5dd;
}

.teaser-option-item-roomy p {
  padding: 2mm 0;
}

.teaser-heading-gap {
  display: block;
  width: 100%;
  height: 2mm;
  flex: none;
}
