/* ============================================================================
   ADFIC 3.0 — Design System
   Reusable slide stylesheet for the ADFIC deck suite (Iroko Climat / V-015 bis).
   Reproduces the finished "Document de Vision Souveraine" (Deck 1) visual language.
   Canvas: 16:9 = 1280 × 720 px. One .slide = one printed page.
   Author: Prism / RV C-Suite — 2026-06-20.
   ----------------------------------------------------------------------------
   USAGE
   - Each deck links this file:  <link rel="stylesheet" href="../../00 — ADFIC 3.0 Design System/adfic3.css">
   - Render to PDF (16:9):
       "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
         --headless --disable-gpu --no-pdf-header-footer \
         --print-to-pdf="out.pdf" "file:///abs/path/deck.html"
   - HARD RULE: solid-navy cards (.card--solid) on light slides — never a
     semi-transparent fill (it renders white-on-light and the text vanishes).
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,800;0,900;1,400;1,500;1,600&family=Inter:wght@300;400;500;600;700&display=swap');

:root{
  /* — Core palette (extracted from Deck 1) — */
  --navy:        #0D1B2A;   /* dark slide bg + headings on light */
  --navy-2:      #102338;   /* slightly raised navy for cards/panels */
  --steel:       #1B3A5C;
  --forest:      #15332C;   /* transition / pull-quote slides */
  --forest-2:    #1B3F35;
  --parchment:   #F4F1EC;   /* light slide bg */
  --parchment-2: #EDE7DC;   /* warm card fill on parchment */
  --paper-line:  #D8D0C2;   /* hairlines on parchment */

  /* — Accents — */
  --orange:      #C2612E;   /* primary accent: rules, numerals, key figures */
  --orange-soft: #D98A5B;
  --earth:       #B8956A;   /* secondary warm (Delta/“conversion” motifs) */
  --bronze:      #9A7A55;
  --teal:        #2A6A75;   /* tertiary cool accent / “engagements climat” */
  --flag-green:  #2FA36F;   /* CIV flag square + “ancrages” */

  /* — Ink — */
  --ink:         #1A1A1A;   /* body on parchment */
  --ink-soft:    #54504A;   /* dek / secondary on parchment */
  --label:       #6B7280;   /* eyebrow / muted labels on parchment */
  --cream:       #F4F1EC;   /* body on navy/forest */
  --cream-soft:  #B9C3CC;   /* secondary on navy/forest */
  --cream-mute:  #7E8B97;   /* rails / footnotes on navy */

  /* — Type — */
  --serif: 'Playfair Display', Georgia, serif;
  --sans:  'Inter', 'Helvetica Neue', Arial, sans-serif;

  /* — Geometry — */
  --pad: 64px;             /* slide content inset */
  --rail-top: 40px;
  --rail-bot: 40px;
}

/* ----------------------------------------------------------------------------
   RESET / PAGE
   -------------------------------------------------------------------------- */
*{ box-sizing:border-box; margin:0; padding:0; }
html,body{ background:#3a3a3a; }
body{ font-family:var(--sans); color:var(--ink); -webkit-font-smoothing:antialiased; }

@page{ size:1280px 720px; margin:0; }

.slide{
  position:relative;
  width:1280px; height:720px;
  overflow:hidden;
  background:var(--parchment);
  color:var(--ink);
  padding:var(--rail-top) var(--pad) var(--rail-bot);
  page-break-after:always;
  display:flex; flex-direction:column;
}
.slide:last-child{ page-break-after:auto; }
/* On-screen preview separation (ignored in print) */
@media screen{ .slide{ margin:0 auto 22px; box-shadow:0 10px 40px rgba(0,0,0,.45); } }

/* ----------------------------------------------------------------------------
   SLIDE MODES
   -------------------------------------------------------------------------- */
.slide.is-navy{   background:var(--navy);   color:var(--cream); }
.slide.is-forest{ background:var(--forest); color:var(--cream); }
.slide.is-parch{  background:var(--parchment); color:var(--ink); }

/* faint engineering grid (en-un-regard / quote slides) */
.slide.has-grid::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(to right, rgba(140,120,90,.07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(140,120,90,.07) 1px, transparent 1px);
  background-size:46px 46px;
}
.slide.is-navy.has-grid::before,
.slide.is-forest.has-grid::before{
  background-image:
    linear-gradient(to right, rgba(180,200,210,.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(180,200,210,.05) 1px, transparent 1px);
}

/* corner ticks (+) */
.slide.has-ticks .tick{ position:absolute; width:18px; height:18px; opacity:.7;
  background-image:
    linear-gradient(var(--orange),var(--orange)),
    linear-gradient(var(--orange),var(--orange));
  background-size:18px 1px, 1px 18px; background-position:center; background-repeat:no-repeat; }
.tick.tl{ top:24px; left:24px; } .tick.tr{ top:24px; right:24px; }
.tick.bl{ bottom:24px; left:24px; } .tick.br{ bottom:24px; right:24px; }

/* ----------------------------------------------------------------------------
   RAILS (header / footer)
   -------------------------------------------------------------------------- */
.rail{ display:flex; justify-content:space-between; align-items:center;
  font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--label); flex:0 0 auto; }
.slide.is-navy .rail, .slide.is-forest .rail{ color:var(--cream-mute); }

.rail--top{ padding-bottom:10px; border-bottom:1px solid var(--paper-line); }
.rail--bot{ margin-top:auto; padding-top:10px; border-top:1px solid var(--paper-line);
  letter-spacing:.1em; }
.slide.is-navy .rail--top, .slide.is-navy .rail--bot,
.slide.is-forest .rail--top, .slide.is-forest .rail--bot{ border-color:rgba(255,255,255,.14); }

.rail .r-left{ display:flex; align-items:center; gap:10px; }
.rail .r-right{ text-align:right; font-style:normal; }
.rail .r-right .desc{ font-family:var(--serif); font-style:italic; text-transform:none;
  letter-spacing:.01em; font-size:12px; color:var(--ink-soft); }
.slide.is-navy .rail .desc, .slide.is-forest .rail .desc{ color:var(--cream-soft); }
.rail b{ color:var(--orange); font-weight:600; }

/* flag motif — three squares */
.flag{ display:inline-flex; gap:3px; }
.flag i{ width:9px; height:9px; display:block; }
.flag i:nth-child(1){ background:var(--orange); }
.flag i:nth-child(2){ background:#F4F1EC; box-shadow:inset 0 0 0 1px rgba(0,0,0,.12); }
.flag i:nth-child(3){ background:var(--flag-green); }
.slide.is-navy .flag i:nth-child(2), .slide.is-forest .flag i:nth-child(2){ box-shadow:none; }

/* ----------------------------------------------------------------------------
   BODY AREA
   -------------------------------------------------------------------------- */
.body{ flex:1 1 auto; display:flex; flex-direction:column; justify-content:center;
  padding:18px 0; min-height:0; }
.body.top{ justify-content:flex-start; padding-top:26px; }

/* eyebrow + rules + headings */
.eyebrow{ font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--orange); }
.eyebrow.muted{ color:var(--label); }
.slide.is-navy .eyebrow.muted, .slide.is-forest .eyebrow.muted{ color:var(--cream-mute); }

.rule{ width:54px; height:2px; background:var(--orange); border:0; margin:14px 0; }
.rule.center{ margin-left:auto; margin-right:auto; }

h1,h2,h3{ font-family:var(--serif); font-weight:700; color:var(--navy); line-height:1.08; }
.slide.is-navy h1, .slide.is-navy h2, .slide.is-navy h3,
.slide.is-forest h1, .slide.is-forest h2, .slide.is-forest h3{ color:var(--cream); }

h2.title{ font-size:40px; letter-spacing:-.01em; max-width:1040px; }
h2.title.lg{ font-size:48px; }
.dek{ font-family:var(--serif); font-style:italic; font-size:19px; color:var(--ink-soft);
  margin-top:12px; max-width:980px; line-height:1.4; }
.slide.is-navy .dek, .slide.is-forest .dek{ color:var(--cream-soft); }

/* ----------------------------------------------------------------------------
   COVER
   -------------------------------------------------------------------------- */
.cover-wordmark{ font-family:var(--serif); font-weight:900; font-size:200px; line-height:.9;
  letter-spacing:.01em; color:var(--cream); text-align:center; }
.cover-sub{ text-align:center; margin-top:8px; font-family:var(--sans); font-weight:600;
  letter-spacing:.26em; text-transform:uppercase; font-size:15px; color:var(--orange); }
.cover-sub .sep{ color:var(--cream-mute); margin:0 10px; }
.cover-tag{ text-align:center; font-family:var(--serif); font-style:italic; font-size:30px;
  color:var(--cream); margin-top:26px; }
.cover .flag{ justify-content:center; }
.cover-flag{ display:flex; justify-content:center; margin-top:30px; }
.cover-flag i{ width:14px; height:14px; }

/* ----------------------------------------------------------------------------
   SECTION DIVIDER
   -------------------------------------------------------------------------- */
.divider{ display:grid; grid-template-columns:340px 1fr; align-items:center; gap:30px;
  flex:1 1 auto; }
.divider .numeral{ font-family:var(--serif); font-style:italic; font-weight:800;
  font-size:300px; line-height:.8; color:var(--orange); text-align:center; }
.divider h2{ font-size:64px; }
.divider .lead{ font-family:var(--serif); font-style:italic; font-size:20px;
  color:var(--cream-soft); max-width:680px; margin-top:8px; }

/* ----------------------------------------------------------------------------
   BIG NUMBERS / STATS
   -------------------------------------------------------------------------- */
.bignum{ font-family:var(--serif); font-weight:800; color:var(--navy);
  font-size:150px; line-height:.92; letter-spacing:-.02em; }
.slide.is-navy .bignum, .slide.is-forest .bignum{ color:var(--cream); }
.bignum .u{ color:var(--orange); font-size:.5em; }
.bignum.orange{ color:var(--orange); }
.bignum.green{ color:var(--flag-green); }
.bignum-label{ font-family:var(--sans); font-size:13px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--label); margin-top:8px; }
.bignum-label .hi{ color:var(--orange); }

.stat-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; align-items:start; }
.stat-cols .col .eyebrow{ margin-bottom:6px; }
.stat-cols .bignum{ font-size:104px; }
.stat-cols .sub{ font-size:14px; color:var(--ink-soft); line-height:1.45; margin-top:14px; }
.stat-cols .col + .col{ border-left:1px solid var(--paper-line); padding-left:30px; }

/* ----------------------------------------------------------------------------
   COLUMNS / CARDS
   -------------------------------------------------------------------------- */
.cols{ display:grid; gap:34px; }
.cols.c2{ grid-template-columns:1fr 1fr; }
.cols.c3{ grid-template-columns:repeat(3,1fr); }
.cols.c4{ grid-template-columns:repeat(4,1fr); }
.col .head{ font-family:var(--sans); font-weight:700; font-size:12px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--orange); padding-top:10px;
  border-top:2px solid var(--orange); display:inline-block; }
.col .head.green{ color:var(--flag-green); border-color:var(--flag-green); }
.col p{ font-size:14px; line-height:1.5; color:var(--ink-soft); margin-top:10px; }
.slide.is-navy .col p{ color:var(--cream-soft); }

.card{ border:1px solid var(--paper-line); border-radius:4px; padding:20px 22px; background:transparent; }
.card .kicker{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--label); }
.card h3{ font-size:22px; margin-top:6px; }
.card p{ font-size:13.5px; line-height:1.5; color:var(--ink-soft); margin-top:8px; }
.card .top-accent{ height:3px; width:60px; background:var(--orange); margin-bottom:14px; }

/* SOLID navy card on light slide — the contrast-safe pattern */
.card--solid{ background:var(--navy); border-color:var(--navy); color:var(--cream); }
.card--solid .kicker{ color:var(--orange); }
.card--solid h3{ color:var(--cream); }
.card--solid p{ color:var(--cream-soft); }
.card--forest{ background:var(--forest); border-color:var(--forest); color:var(--cream); }
.card--forest .kicker{ color:var(--orange); } .card--forest h3{ color:var(--cream); }
.card--forest p{ color:var(--cream-soft); }

/* numbered / bulleted lists */
.items{ display:flex; flex-direction:column; gap:16px; }
.item{ display:grid; grid-template-columns:34px 1fr; gap:14px; align-items:start; }
.item .n{ font-family:var(--serif); font-style:italic; font-weight:600; color:var(--orange); font-size:20px; }
.item .t b{ color:var(--ink); } .slide.is-navy .item .t b{ color:var(--cream); }
.item .t{ font-size:14.5px; line-height:1.5; color:var(--ink-soft); }
.slide.is-navy .item .t{ color:var(--cream-soft); }

/* ----------------------------------------------------------------------------
   MATRIX / TABLE
   -------------------------------------------------------------------------- */
table.matrix{ width:100%; border-collapse:collapse; font-size:14px; }
table.matrix th{ text-align:left; font-family:var(--sans); font-weight:600; font-size:11px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--label);
  padding:0 14px 10px; border-bottom:1.5px solid var(--ink); }
table.matrix th.hi{ color:var(--orange); }
table.matrix td{ padding:12px 14px; border-bottom:1px solid var(--paper-line); color:var(--ink-soft); }
table.matrix td.yes{ color:var(--orange); font-weight:700; }
table.matrix td.no{ color:var(--label); }
table.matrix tr td:first-child{ color:var(--ink); font-weight:500; }

/* ----------------------------------------------------------------------------
   TIMELINE / PROCESS
   -------------------------------------------------------------------------- */
.timeline{ position:relative; display:grid; grid-auto-flow:column; grid-auto-columns:1fr;
  gap:0; padding-top:30px; }
.timeline::before{ content:""; position:absolute; top:38px; left:4%; right:4%; height:1px;
  background:var(--paper-line); }
.slide.is-navy .timeline::before{ background:rgba(255,255,255,.2); }
.tstep{ text-align:left; padding:0 14px; position:relative; }
.tstep .dot{ width:11px; height:11px; border-radius:50%; background:var(--orange);
  position:relative; margin:34px 0 14px; }
.tstep .when{ font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--orange); }
.tstep h3{ font-size:19px; margin:4px 0 6px; }
.tstep p{ font-size:12.5px; line-height:1.45; color:var(--ink-soft); }
.slide.is-navy .tstep p{ color:var(--cream-soft); }

/* pillars */
.pillars{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:22px; align-items:end;
  padding-top:10px; }
.pillar{ text-align:center; }
.pillar .cap{ background:var(--orange); color:#fff; font-family:var(--sans); font-weight:700;
  font-size:11px; letter-spacing:.16em; text-transform:uppercase; padding:10px; }
.pillar .shaft{ background:linear-gradient(to right,#e9e2d4,#fbf8f2,#e2dac9);
  border:1px solid var(--paper-line); border-top:0; height:120px; }
.pillar .name{ font-family:var(--serif); font-weight:700; font-size:15px; margin-top:10px; color:var(--navy); }
.slide.is-navy .pillar .name{ color:var(--cream); }

/* ----------------------------------------------------------------------------
   PULL-QUOTE
   -------------------------------------------------------------------------- */
.quote{ flex:1 1 auto; display:flex; flex-direction:column; justify-content:center;
  align-items:center; text-align:center; }
.quote .q{ font-family:var(--serif); font-style:italic; font-size:42px; line-height:1.3;
  color:var(--cream); max-width:1000px; position:relative; }
.quote .q b{ color:var(--orange); font-weight:600; font-style:italic; }
.quote .guill{ color:var(--earth); font-size:46px; font-family:var(--serif); }
.quote .attr{ font-family:var(--sans); font-size:12px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--cream-mute); margin-top:30px; }

/* ----------------------------------------------------------------------------
   IMAGE + TEXT
   -------------------------------------------------------------------------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; flex:1 1 auto; }
.split.left{ grid-template-columns:1fr 1.05fr; }
.split img{ width:100%; height:auto; border-radius:4px; display:block; }
.figcap{ font-family:var(--serif); font-style:italic; font-size:12.5px; color:var(--ink-soft); margin-top:8px; }

/* full-bleed illustration slide */
.illus-full{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.illus-full img{ max-height:62%; width:auto; }
.illus-cap{ position:absolute; bottom:74px; left:0; right:0; text-align:center;
  font-family:var(--serif); font-style:italic; font-size:14px; color:var(--cream-soft); }

/* ----------------------------------------------------------------------------
   CITATIONS / SOURCES
   -------------------------------------------------------------------------- */
.ref{ color:var(--orange); font-size:.72em; vertical-align:.3em; font-weight:600;
  font-family:var(--sans); white-space:nowrap; }
.sources{ font-family:var(--sans); font-style:normal; font-size:10.5px; letter-spacing:.04em;
  text-transform:none; color:var(--label); }
.slide.is-navy .sources, .slide.is-forest .sources{ color:var(--cream-mute); }

/* bibliography */
.biblio{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px 28px; font-size:11px;
  line-height:1.45; }
.biblio .group h4{ font-family:var(--sans); font-weight:700; font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--orange); margin-bottom:8px; }
.biblio .group p{ color:var(--ink-soft); margin-bottom:7px; }
.biblio .group p b{ color:var(--ink); }

/* ----------------------------------------------------------------------------
   CONFIDENTIALITY BADGE
   -------------------------------------------------------------------------- */
.badge{ display:inline-block; font-family:var(--sans); font-weight:700; font-size:9.5px;
  letter-spacing:.16em; text-transform:uppercase; padding:4px 9px; border-radius:2px; }
.badge.conf{ background:#7a2418; color:#fff; }
.badge.share{ background:var(--flag-green); color:#fff; }
.badge.minhas{ background:var(--steel); color:#fff; }

/* utilities */
.mt-auto{ margin-top:auto; } .center{ text-align:center; } .nowrap{ white-space:nowrap; }
.kbar{ background:var(--navy); color:var(--cream); padding:14px 22px; border-radius:4px;
  font-family:var(--serif); font-style:italic; font-size:17px; }
.kbar b{ color:var(--orange); font-weight:600; }
.lede-strip{ background:var(--parchment-2); border-left:3px solid var(--orange);
  padding:14px 20px; font-family:var(--serif); font-style:italic; font-size:16px; color:var(--ink); }

/* ============================================================================
   v1.1 — BUSINESS-PLAN COMPONENTS (added 2026-06-20 for Deck 2a/2b)
   Charts hand-built in CSS — no external libs.
   ========================================================================== */

/* --- dense data table (financial projection / fiscal / register) --- */
table.data{ width:100%; border-collapse:collapse; font-size:11.5px; }
table.data caption{ text-align:left; font-family:var(--sans); font-weight:700; font-size:11px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--orange); padding-bottom:8px; }
table.data th{ text-align:right; font-family:var(--sans); font-weight:600; font-size:10px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--label); padding:0 10px 8px; border-bottom:1.5px solid var(--ink); }
table.data th:first-child{ text-align:left; }
table.data td{ text-align:right; padding:7px 10px; border-bottom:1px solid var(--paper-line); color:var(--ink-soft); font-variant-numeric:tabular-nums; }
table.data td:first-child{ text-align:left; color:var(--ink); font-weight:500; }
table.data tr.total td{ font-weight:700; color:var(--ink); border-top:1.5px solid var(--ink); border-bottom:none; }
table.data tr.total td.hi{ color:var(--orange); }
table.data tr.sub td{ color:var(--label); font-size:11px; }
table.data td.hi{ color:var(--orange); font-weight:700; }
table.data td.neg{ color:#9a3a28; }
table.data.compact td, table.data.compact th{ padding:5px 8px; font-size:10.5px; }

/* --- TAM/SAM/SOM funnel --- */
.funnel{ display:flex; flex-direction:column; align-items:center; gap:8px; margin-top:10px; }
.funnel .band{ color:var(--cream); text-align:center; padding:16px 22px; border-radius:4px; }
.funnel .band .lbl{ font-family:var(--sans); font-weight:700; font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
.funnel .band .val{ font-family:var(--serif); font-weight:800; font-size:28px; line-height:1.1; margin-top:2px; }
.funnel .band .nt{ font-size:11px; opacity:.85; margin-top:3px; }
.funnel .band.tam{ width:100%;  background:var(--navy); }
.funnel .band.sam{ width:72%;   background:var(--steel); }
.funnel .band.som{ width:46%;   background:var(--orange); }
.funnel .band.tam .lbl{ color:var(--orange); }

/* --- waterfall (bars rising/falling to a total) --- */
.waterfall{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:10px; align-items:end;
  height:230px; padding-top:10px; border-bottom:1px solid var(--paper-line); }
.wf{ display:flex; flex-direction:column; justify-content:flex-end; height:100%; text-align:center; }
.wf .bar{ border-radius:3px 3px 0 0; }
.wf .bar.pos{ background:var(--flag-green); } .wf .bar.neg{ background:var(--earth); }
.wf .bar.base{ background:var(--navy); } .wf .bar.net{ background:var(--orange); }
.wf .v{ font-family:var(--serif); font-weight:700; font-size:13px; color:var(--ink); margin-bottom:4px; }
.wf .k{ font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--label); margin-top:6px; line-height:1.25; }

/* --- simple column chart (5-yr revenue) --- */
.colchart{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:16px; align-items:end; height:200px;
  border-bottom:1px solid var(--paper-line); padding:0 6px; }
.cc{ display:flex; flex-direction:column; justify-content:flex-end; height:100%; text-align:center; }
.cc .stack{ display:flex; flex-direction:column-reverse; border-radius:3px 3px 0 0; overflow:hidden; }
.cc .seg{ width:100%; }
.cc .v{ font-family:var(--serif); font-weight:700; font-size:13px; color:var(--navy); margin-bottom:5px; }
.cc .k{ font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--label); margin-top:6px; }
.legend{ display:flex; flex-wrap:wrap; gap:14px; margin-top:12px; font-size:11px; color:var(--ink-soft); }
.legend span{ display:inline-flex; align-items:center; gap:6px; }
.legend i{ width:11px; height:11px; border-radius:2px; display:inline-block; }

/* --- org chart / relationship map --- */
.orgchart{ display:flex; flex-direction:column; align-items:center; gap:0; }
.orgchart .node{ border:1px solid var(--paper-line); border-radius:5px; padding:10px 16px; text-align:center; background:#fff; }
.orgchart .node.sov{ background:var(--navy); color:var(--cream); border-color:var(--navy); }
.orgchart .node .nt{ font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--label); }
.orgchart .node.sov .nt{ color:var(--orange); }
.orgchart .node h4{ font-family:var(--serif); font-size:15px; margin-top:2px; color:var(--navy); }
.orgchart .node.sov h4{ color:var(--cream); }
.orgchart .connector{ width:1px; height:18px; background:var(--paper-line); }
.orgchart .row{ display:flex; gap:14px; justify-content:center; }

/* --- 3-layer technology stack --- */
.techstack{ display:flex; flex-direction:column; gap:10px; }
.layer{ border-radius:5px; padding:14px 18px; display:grid; grid-template-columns:140px 1fr; gap:16px; align-items:center; }
.layer.macro{ background:var(--navy); color:var(--cream); }
.layer.meso{ background:var(--steel); color:var(--cream); }
.layer.micro{ background:var(--forest); color:var(--cream); }
.layer .ltag{ font-family:var(--sans); font-weight:700; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--orange); }
.layer .ldesc h4{ font-family:var(--serif); font-size:16px; color:var(--cream); margin-bottom:3px; }
.layer .ldesc p{ font-size:11.5px; color:var(--cream-soft); line-height:1.4; }
.layer .chips{ margin-top:6px; }
.layer .chips span{ display:inline-block; font-size:10px; color:var(--cream); background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22); border-radius:12px; padding:2px 8px; margin:2px 4px 0 0; }

/* --- appendix divider / marker --- */
.slide.is-appendix{ background:#ECE6DA; }
.appendix-tag{ display:inline-block; font-family:var(--sans); font-weight:700; font-size:10px;
  letter-spacing:.18em; text-transform:uppercase; color:#fff; background:var(--bronze); padding:4px 10px; border-radius:2px; }
.xref{ font-family:var(--sans); font-size:10.5px; color:var(--orange); font-weight:600; }

/* --- two-column dense layout helper for BP slides --- */
.split6040{ display:grid; grid-template-columns:1.4fr 1fr; gap:30px; align-items:start; }
.split4060{ display:grid; grid-template-columns:1fr 1.4fr; gap:30px; align-items:start; }
.note{ font-size:11px; color:var(--label); font-style:italic; margin-top:8px; }
.tag-row{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.tag-row .t{ font-size:10.5px; color:var(--navy); background:var(--parchment-2); border:1px solid var(--paper-line);
  border-radius:12px; padding:3px 10px; }

/* ============================================================================
   v1.2 — SOMMAIRE / TABLE OF CONTENTS (Deck-1 style, added 2026-06-20)
   2-col grid of section cards: italic serif Roman numeral + eyebrow + title
   + italic dek + page-jump list (orange page numbers). Use on parchment.
   ========================================================================== */
.toc{ display:grid; grid-template-columns:1fr 1fr; gap:16px 34px; margin-top:16px; }
.toc.c3{ grid-template-columns:repeat(3,1fr); }
.toc-item{ background:var(--parchment-2); border-top:2px solid var(--orange);
  border-bottom:1px solid var(--ink); padding:14px 20px 15px; }
.toc-item .th{ display:flex; align-items:flex-start; gap:14px; }
.toc-num{ font-family:var(--serif); font-style:italic; font-weight:800; font-size:48px; line-height:.74;
  color:var(--orange); flex:0 0 auto; }
.toc-eyebrow{ font-family:var(--sans); font-weight:700; font-size:10px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--orange); }
.toc-title{ font-family:var(--serif); font-weight:700; font-size:20px; color:var(--navy);
  line-height:1.08; margin-top:2px; }
.toc-dek{ font-family:var(--serif); font-style:italic; font-size:12.5px; color:var(--ink-soft);
  margin-top:9px; line-height:1.4; }
.toc-jump{ font-family:var(--sans); font-size:10.5px; color:var(--label); margin-top:8px; line-height:1.65; }
.toc-jump b{ color:var(--orange); font-weight:700; }

/* ============================================================================
   v2.0 — WEB LAYER (added 2026-06-22 for the ADFIC distribution website)
   Single shared web-document layer on top of the slide design system.
   Powers: site nav + FR/EN switch · tier gate · doc landings · DFI MD→web
   reader · inline visual layer · video hero. Used by every site page.
   No per-page divergence — pages link only this file + js/{i18n,gate,site}.js.
   ========================================================================== */

/* reset to web-document mode (overrides slide-mode body bg) */
body.web{ background:var(--parchment); color:var(--ink); font-family:var(--sans);
  margin:0; padding:0; -webkit-font-smoothing:antialiased; }

/* ── SITE NAV (shared) ─────────────────────────────────────────────────────── */
.site-nav{ position:sticky; top:0; z-index:100; background:var(--navy); min-height:48px;
  display:flex; align-items:center; justify-content:space-between; padding:0 28px;
  border-bottom:1px solid rgba(255,255,255,.08); gap:18px; flex-wrap:wrap; }
.site-nav .nav-wordmark{ display:flex; align-items:center; gap:10px; font-family:var(--serif);
  font-size:15px; font-weight:700; color:var(--cream); text-decoration:none; letter-spacing:.02em; flex-shrink:0; }
.site-nav .nav-wordmark .nav-dot{ width:5px; height:5px; background:var(--orange); border-radius:50%; display:inline-block; }
.site-nav .nav-wordmark .nav-section{ font-family:var(--sans); font-size:11px; font-weight:400;
  color:var(--cream-mute); letter-spacing:.08em; }
.site-nav .nav-links{ display:flex; align-items:center; gap:18px; list-style:none; margin:0; padding:0; flex-wrap:wrap; }
.site-nav .nav-links li a{ font-family:var(--sans); font-size:11px; color:var(--cream-mute);
  text-decoration:none; letter-spacing:.06em; transition:color .15s; }
.site-nav .nav-links li a:hover{ color:var(--cream); }
.site-nav .nav-links li a.active{ color:var(--cream); font-weight:600; }
.nav-back{ font-size:11px; color:var(--cream-mute); text-decoration:none; letter-spacing:.04em; }
.nav-back:hover{ color:var(--cream); } .nav-back-arrow{ color:var(--orange); margin-right:4px; }
.nav-badge{ display:inline-block; font-family:var(--sans); font-weight:700; font-size:8px;
  letter-spacing:.12em; text-transform:uppercase; background:var(--flag-green); color:#fff;
  padding:2px 6px; border-radius:2px; margin-left:6px; vertical-align:middle; }
.nav-badge.t2{ background:var(--steel); } .nav-badge.t3{ background:var(--bronze); } .nav-badge.t4{ background:#7a2418; }

/* nav right cluster: tier note + FR/EN switch */
.nav-right{ display:flex; align-items:center; gap:14px; flex-shrink:0; }
.lang-switch{ display:inline-flex; border:1px solid rgba(255,255,255,.22); border-radius:3px; overflow:hidden; }
.lang-switch button{ font-family:var(--sans); font-size:10px; font-weight:700; letter-spacing:.08em;
  background:transparent; color:var(--cream-mute); border:0; padding:4px 9px; cursor:pointer; transition:.15s; }
.lang-switch button.active{ background:var(--orange); color:#fff; }
.lang-switch button:not(.active):hover{ color:var(--cream); }

/* tier badges (shared — used on cards, doc landings, nav) */
.tier-badge{ display:inline-block; font-family:var(--sans); font-weight:700; font-size:8px;
  letter-spacing:.12em; text-transform:uppercase; padding:2px 7px; border-radius:2px; color:#fff; vertical-align:middle; }
.tier-badge.t1{ background:var(--flag-green); } .tier-badge.t2{ background:var(--steel); }
.tier-badge.t3{ background:var(--bronze); } .tier-badge.t4{ background:#7a2418; }

/* ── SUB-NAV (within-tier navigation, injected by site.js) ─────────────────── */
.sub-nav{ display:flex; align-items:center; gap:2px; background:var(--parchment-2);
  border-bottom:1px solid var(--paper-line); padding:0 18px; overflow-x:auto; white-space:nowrap; }
.sub-nav .sn-label{ font-family:var(--sans); font-size:9px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--label); padding-right:12px; flex-shrink:0; }
.sub-nav a{ font-family:var(--sans); font-size:11.5px; color:var(--ink-soft); text-decoration:none;
  padding:9px 10px; border-bottom:2px solid transparent; flex-shrink:0; transition:.12s; }
.sub-nav a:hover{ color:var(--navy); }
.sub-nav a.active{ color:var(--navy); font-weight:700; border-bottom-color:var(--orange); }
@media (min-width:861px){ .sub-nav{ position:sticky; top:48px; z-index:90; } }

/* ── GENERIC CONTENT WRAP ──────────────────────────────────────────────────── */
.content-wrap{ max-width:980px; margin:0 auto; padding:40px 28px 64px; }
.content-wrap.narrow{ max-width:820px; }
.page-eyebrow{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--orange); margin-bottom:10px; }
.page-h1{ font-family:var(--serif); font-weight:800; font-size:34px; line-height:1.06; color:var(--navy); margin:0 0 8px; }
.page-lede{ font-family:var(--serif); font-style:italic; font-size:18px; color:var(--ink-soft);
  line-height:1.5; max-width:760px; margin:6px 0 0; }
.section-intro{ font-family:var(--sans); font-size:13.5px; line-height:1.7; color:var(--ink-soft); max-width:760px; }
.web-rule{ width:54px; height:2px; background:var(--orange); border:0; margin:16px 0; }

/* ── DOC LANDING (framed slide-deck PDF downloadable) ──────────────────────── */
.doc-landing{ display:grid; grid-template-columns:1fr; gap:22px; }
.doc-card{ background:var(--parchment-2); border:1px solid var(--paper-line); border-top:3px solid var(--orange);
  border-radius:5px; padding:24px 26px; }
.doc-card .dc-meta{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.doc-card .dc-kicker{ font-family:var(--sans); font-size:9.5px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--orange); }
.doc-card h3{ font-family:var(--serif); font-size:23px; color:var(--navy); margin:2px 0 6px; }
.doc-card .dc-frame{ font-family:var(--sans); font-size:13px; line-height:1.65; color:var(--ink-soft); max-width:680px; }
.doc-card .dc-aud{ font-family:var(--serif); font-style:italic; font-size:12.5px; color:var(--ink-soft);
  border-left:3px solid var(--paper-line); padding-left:12px; margin:12px 0; }
.btn-dl{ display:inline-flex; align-items:center; gap:8px; font-family:var(--sans); font-size:12px;
  font-weight:600; letter-spacing:.04em; background:var(--navy); color:var(--cream); text-decoration:none;
  padding:10px 18px; border-radius:3px; margin-top:6px; transition:.15s; }
.btn-dl:hover{ background:var(--steel); }
.btn-dl.orange{ background:var(--orange); color:#fff; } .btn-dl.orange:hover{ background:var(--orange-soft); }
.btn-ghost{ display:inline-flex; align-items:center; gap:6px; font-family:var(--sans); font-size:12px;
  font-weight:600; color:var(--orange); text-decoration:none; padding:10px 14px; border:1px solid var(--paper-line);
  border-radius:3px; margin-top:6px; transition:.15s; }
.btn-ghost:hover{ border-color:var(--orange); }
.doc-embed{ width:100%; height:560px; border:1px solid var(--paper-line); border-radius:5px; margin-top:14px; background:#3a3a3a; }
.embed-frame{ width:100%; height:82vh; min-height:620px; border:1px solid var(--paper-line); border-radius:5px; background:#fff; }

/* ── INLINE VISUAL LAYER ───────────────────────────────────────────────────── */
.viz{ background:var(--parchment-2); border:1px solid var(--paper-line); border-radius:6px;
  padding:22px 24px 18px; margin:26px 0; }
.viz.dark{ background:var(--navy); border-color:var(--navy); }
.viz-kicker{ font-family:var(--sans); font-size:9.5px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--orange); margin-bottom:4px; }
.viz-title{ font-family:var(--serif); font-weight:700; font-size:18px; color:var(--navy); margin-bottom:14px; }
.viz.dark .viz-title{ color:var(--cream); }
.viz svg{ width:100%; height:auto; display:block; overflow:visible; }
.viz-cap{ font-family:var(--serif); font-style:italic; font-size:12px; color:var(--ink-soft); margin-top:12px;
  padding-top:10px; border-top:1px solid var(--paper-line); }
.viz.dark .viz-cap{ color:var(--cream-soft); border-color:rgba(255,255,255,.14); }
.viz-cap .src{ font-style:normal; font-family:var(--sans); font-size:10px; color:var(--label); letter-spacing:.02em; }
.viz.dark .viz-cap .src{ color:var(--cream-mute); }
/* svg primitives on brand tokens */
.svg-navy{ fill:var(--navy); } .svg-orange{ fill:var(--orange); } .svg-teal{ fill:var(--teal); }
.svg-earth{ fill:var(--earth); } .svg-green{ fill:var(--flag-green); } .svg-parch{ fill:var(--parchment-2); }
.svg-line{ stroke:var(--paper-line); stroke-width:1; fill:none; } .svg-line-o{ stroke:var(--orange); stroke-width:1.5; fill:none; }
text.svg-t{ font-family:var(--sans); fill:var(--ink); } text.svg-t.lab{ fill:var(--label); font-size:10px; letter-spacing:.04em; }
text.svg-t.cream{ fill:var(--cream); } text.svg-t.o{ fill:var(--orange); } text.svg-t.serif{ font-family:var(--serif); }

/* ── VIDEO HERO (T1) ───────────────────────────────────────────────────────── */
.video-hero{ position:relative; background:var(--navy); border-radius:6px; overflow:hidden;
  aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; margin-top:8px; }
.video-hero video{ width:100%; height:100%; object-fit:cover; display:block; }
.video-ph{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:14px; text-align:center; padding:24px;
  background:linear-gradient(135deg, var(--navy), var(--steel)); }
.video-ph .vp-flag{ display:flex; gap:5px; } .video-ph .vp-flag i{ width:13px; height:13px; display:block; }
.video-ph .vp-flag i:nth-child(1){ background:var(--orange); } .video-ph .vp-flag i:nth-child(2){ background:var(--parchment); }
.video-ph .vp-flag i:nth-child(3){ background:var(--flag-green); }
.video-ph .vp-eyebrow{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--orange); }
.video-ph .vp-title{ font-family:var(--serif); font-style:italic; font-size:24px; color:var(--cream); }
.video-ph .vp-note{ font-family:var(--sans); font-size:11px; color:var(--cream-mute); letter-spacing:.06em; }
.video-tools{ display:flex; align-items:center; gap:14px; margin-top:12px; flex-wrap:wrap; }

/* transcript modal */
.modal-back{ position:fixed; inset:0; z-index:1100; background:rgba(13,27,42,.72);
  display:none; align-items:flex-start; justify-content:center; padding:40px 18px; overflow:auto; }
.modal-back.open{ display:flex; }
.modal-box{ background:var(--parchment); border-radius:6px; max-width:760px; width:100%; padding:30px 34px;
  position:relative; box-shadow:0 20px 60px rgba(0,0,0,.4); }
.modal-box h3{ font-family:var(--serif); font-size:22px; color:var(--navy); margin-bottom:4px; }
.modal-box .mx-close{ position:absolute; top:16px; right:18px; font-size:22px; color:var(--label);
  background:none; border:0; cursor:pointer; line-height:1; }
.transcript-body{ font-family:var(--sans); font-size:13px; line-height:1.7; color:var(--ink-soft); margin-top:14px; }

/* ── DFI MD→WEB READER (T3) ────────────────────────────────────────────────── */
.dfi-reader{ display:grid; grid-template-columns:268px 1fr; gap:0; align-items:start; max-width:1180px;
  margin:0 auto; min-height:calc(100vh - 48px); }
.dfi-sidebar{ position:sticky; top:48px; align-self:start; max-height:calc(100vh - 48px); overflow:auto;
  background:var(--parchment-2); border-right:1px solid var(--paper-line); padding:24px 18px 40px; }
.dfi-sidebar .ds-doc{ font-family:var(--sans); font-size:9px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--orange); margin-bottom:4px; }
.dfi-sidebar .ds-title{ font-family:var(--serif); font-size:16px; color:var(--navy); line-height:1.2; margin-bottom:14px; }
.dfi-toc{ list-style:none; margin:0; padding:0; }
.dfi-toc a{ display:block; font-family:var(--sans); font-size:11.5px; line-height:1.4; color:var(--ink-soft);
  text-decoration:none; padding:4px 0 4px 10px; border-left:2px solid transparent; }
.dfi-toc a:hover{ color:var(--navy); border-left-color:var(--paper-line); }
.dfi-toc a.h2{ padding-left:10px; } .dfi-toc a.h3{ padding-left:22px; font-size:10.5px; color:var(--label); }
.dfi-toc a.h1{ font-weight:700; color:var(--navy); margin-top:10px; }
.dfi-toc a.active{ border-left-color:var(--orange); color:var(--navy); }
.dfi-body{ padding:28px 40px 80px; max-width:820px; min-width:0; }
.dfi-body h1{ font-family:var(--serif); font-size:30px; color:var(--navy); margin:34px 0 10px; line-height:1.1; }
.dfi-body h2{ font-family:var(--serif); font-size:22px; color:var(--navy); margin:28px 0 8px; padding-top:10px; border-top:1px solid var(--paper-line); }
.dfi-body h3{ font-family:var(--sans); font-weight:700; font-size:15px; color:var(--steel); margin:18px 0 6px; letter-spacing:.01em; }
.dfi-body h4{ font-family:var(--sans); font-weight:700; font-size:12.5px; color:var(--label); text-transform:uppercase; letter-spacing:.08em; margin:14px 0 4px; }
.dfi-body p, .dfi-body li{ font-family:var(--sans); font-size:13.5px; line-height:1.7; color:var(--ink); }
.dfi-body ul, .dfi-body ol{ padding-left:22px; margin:8px 0; }
.dfi-body blockquote{ border-left:3px solid var(--orange); background:var(--parchment-2); margin:14px 0;
  padding:10px 16px; font-style:italic; color:var(--ink-soft); }
.dfi-body strong{ color:var(--navy); }
.dfi-body table{ width:100%; border-collapse:collapse; font-size:11.5px; margin:16px 0; display:block; overflow-x:auto; }
.dfi-body th{ text-align:left; font-family:var(--sans); font-weight:600; font-size:10px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--label); padding:8px 12px; border-bottom:1.5px solid var(--ink); white-space:nowrap; }
.dfi-body td{ padding:8px 12px; border-bottom:1px solid var(--paper-line); color:var(--ink-soft); vertical-align:top; }
.dfi-body tr td:first-child{ color:var(--ink); font-weight:500; }
.dfi-body hr{ border:0; border-top:1px solid var(--paper-line); margin:22px 0; }
.dfi-body code{ font-family:var(--mono,'JetBrains Mono',monospace); font-size:12px; background:var(--parchment-2); padding:1px 5px; border-radius:3px; }
/* T3 staging banner + caveat callout */
.stage-banner{ background:#7a2418; color:#fff; font-family:var(--sans); font-size:11px; font-weight:600;
  letter-spacing:.06em; padding:9px 18px; text-align:center; }
.stage-banner.dark-flag{ background:var(--bronze); }
.caveat{ background:#fbf3e8; border:1px solid var(--earth); border-left:3px solid var(--bronze);
  border-radius:4px; padding:10px 14px; margin:12px 0; font-family:var(--sans); font-size:12px; color:var(--ink-soft); }
.caveat b{ color:var(--bronze); text-transform:uppercase; letter-spacing:.08em; font-size:10px; }

/* ── GATE OVERLAY (client-side, ported from v6) ────────────────────────────── */
body.vb-gated{ overflow:hidden; }
body.vb-gated .gate-shroud{ filter:blur(14px) saturate(.7); pointer-events:none; user-select:none; }
.gate-overlay{ position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center;
  background:rgba(13,27,42,.55); padding:24px; }
.gate-overlay.open{ display:flex; }
.gate-modal{ background:var(--parchment); border-radius:8px; max-width:460px; width:100%; padding:34px 32px;
  box-shadow:0 24px 70px rgba(0,0,0,.45); border-top:4px solid var(--orange); }
.gate-modal .gm-flag{ display:flex; gap:5px; margin-bottom:14px; } .gate-modal .gm-flag i{ width:11px; height:11px; display:block; }
.gate-modal .gm-flag i:nth-child(1){ background:var(--orange); } .gate-modal .gm-flag i:nth-child(2){ background:#ede7dc; }
.gate-modal .gm-flag i:nth-child(3){ background:var(--flag-green); }
.gate-modal .gm-tier{ font-family:var(--sans); font-size:9.5px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--orange); }
.gate-modal h2{ font-family:var(--serif); font-size:24px; color:var(--navy); margin:4px 0 6px; }
.gate-modal p{ font-family:var(--sans); font-size:12.5px; line-height:1.6; color:var(--ink-soft); margin-bottom:16px; }
.gate-field{ margin-bottom:12px; } .gate-field label{ display:block; font-family:var(--sans); font-size:10px;
  font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--label); margin-bottom:5px; }
.gate-field input{ width:100%; font-family:var(--sans); font-size:13px; padding:9px 11px; border:1px solid var(--paper-line);
  border-radius:4px; background:#fff; color:var(--ink); }
.gate-field input:focus{ outline:none; border-color:var(--teal); box-shadow:0 0 0 2px rgba(42,106,117,.18); }
.gate-nda{ display:flex; gap:8px; align-items:flex-start; font-family:var(--sans); font-size:11.5px;
  color:var(--ink-soft); line-height:1.5; margin:8px 0 16px; }
.gate-nda input{ accent-color:var(--teal); margin-top:2px; }
.gate-cta{ width:100%; font-family:var(--sans); font-size:13px; font-weight:700; letter-spacing:.04em;
  background:var(--navy); color:var(--cream); border:0; border-radius:4px; padding:12px; cursor:pointer; transition:.15s; }
.gate-cta:hover{ background:var(--steel); }
.gate-error{ display:none; font-family:var(--sans); font-size:11.5px; color:#9a3a28; background:#fdecea;
  border:1px solid #f3c2ba; border-radius:4px; padding:8px 11px; margin-top:12px; }
.gate-error.active{ display:block; }
.gate-note{ font-family:var(--sans); font-size:10.5px; color:var(--label); margin-top:14px; line-height:1.5; }
/* dark-staged notice (T3 publish-off) */
.dark-notice{ max-width:560px; margin:80px auto; text-align:center; padding:0 24px; }
.dark-notice .dn-badge{ display:inline-block; background:var(--bronze); color:#fff; font-family:var(--sans);
  font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; padding:5px 12px; border-radius:2px; }
.dark-notice h2{ font-family:var(--serif); font-size:28px; color:var(--navy); margin:18px 0 10px; }
.dark-notice p{ font-family:var(--sans); font-size:13px; line-height:1.7; color:var(--ink-soft); }

/* ── SITE FOOTER (shared) ──────────────────────────────────────────────────── */
.site-footer{ background:var(--navy); padding:20px 28px; display:flex; justify-content:space-between;
  align-items:center; border-top:1px solid rgba(255,255,255,.08); gap:14px; flex-wrap:wrap; }
.site-footer .ft-left{ font-family:var(--sans); font-size:10px; color:var(--cream-mute); letter-spacing:.06em; }
.site-footer .ft-right{ font-family:var(--sans); font-size:10px; color:var(--orange); letter-spacing:.06em; text-align:right; }

/* ── i18n visibility (driven by html[data-lang]) ───────────────────────────────
   Hide ONLY the inactive language (attribute selectors) so each shown element
   keeps its NATURAL display (span→inline, div/p→block). FR is default and
   <html data-lang="fr"> is hardcoded, so EN is hidden pre-JS (no FOUC). Authored
   EN elements may carry an inline `style="display:none"` fallback for the no-JS
   case — i18n.js strips that inline style on load so it never blocks EN mode. */
html[data-lang="fr"] [data-i18n-lang="en"]{ display:none; }
html[data-lang="en"] [data-i18n-lang="fr"]{ display:none; }

/* ── RESPONSIVE ────────────────────────────────────────────────────────────── */
@media (max-width:860px){
  .site-nav{ padding:8px 16px; } .site-nav .nav-links{ gap:12px; }
  .content-wrap{ padding:28px 18px 48px; } .page-h1{ font-size:27px; } .page-lede{ font-size:16px; }
  .dfi-reader{ grid-template-columns:1fr; }
  .dfi-sidebar{ position:static; max-height:none; border-right:0; border-bottom:1px solid var(--paper-line); }
  .dfi-body{ padding:22px 18px 60px; }
  .stat-cols{ grid-template-columns:1fr; gap:18px; } .stat-cols .col + .col{ border-left:0; padding-left:0; }
  .video-hero .vp-title{ font-size:18px; }
}
@media print{ .site-nav, .gate-overlay, .lang-switch, .modal-back{ display:none !important; } body.vb-gated .gate-shroud{ filter:none; } }
