/* ---------------------------------------------------------
   Dossier de presse "Derrière chaque porte" (dossier-de-presse.html).
   Identité graphique PROPRE au livre (noir profond / crème / or,
   Oswald + Source Serif 4), volontairement distincte de la charte
   du site (navy/sable/cuivre, Fraunces + Inter dans main.css).

   Deux modes de lecture :
   - empilé (défaut, sans JS ou petit écran) : les 10 pages A4 à la suite ;
   - livre (body.mode-book, posé par js/presse.js sur grand écran) :
     livre A4 ouvert à plat, pages tournées en 3D.

   Accessibilité : comme dans main.css (cuivre décoratif vs cuivre texte),
   l'or #BE8B2C reste DÉCORATIF sur fond clair (filets, numéros ornementaux
   exclus) ; le TEXTE or sur crème utilise --presse-gold-text (4.62:1, AA)
   et le taupe clair du design d'origine (#A3987F, 2.67:1) est remonté à
   --presse-faint (4.84:1) partout où il porte de l'information.
   --------------------------------------------------------- */

/* --- Fontes self-hostées (fonts/), même approche que main.css --- */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-weight: 400 700; /* fonte variable */
  font-display: swap;
  src: url("../fonts/oswald-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/oswald-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 200 900; /* fonte variable */
  font-display: swap;
  src: url("../fonts/source-serif-4-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("../fonts/source-serif-4-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: italic;
  font-weight: 400; /* instance statique (axe opsz uniquement) */
  font-display: swap;
  src: url("../fonts/source-serif-4-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/source-serif-4-italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter : uniquement pour la bannière de consentement (var(--font-body)). */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* Palette du livre */
  --presse-night: #010305; /* pages sombres (couverture, citation, 4e) : noir
                              aligné sur le fond de l'image de couverture pour
                              que celle-ci se fonde sans liseré visible */
  --presse-cream: #faf7f1; /* pages claires */
  --presse-ink: #1c1913; /* texte principal sur crème */
  --presse-ivory: #f5f1e8; /* texte principal sur nuit */
  --presse-gold: #be8b2c; /* DÉCORATIF sur crème (filets) ; texte OK sur nuit (6.36:1) */
  --presse-gold-text: #8f6a1e; /* TEXTE or sur crème, contraste AA (4.62:1) */
  --presse-body: #4a4335; /* corps secondaire sur crème (9.15:1) */
  --presse-muted: #6e6552; /* notes sur crème (5.39:1) */
  --presse-faint: #776c54; /* libellés discrets sur crème, AA (4.84:1) */
  --presse-line: #e2dcce; /* filets horizontaux */
  --presse-serif: "Source Serif 4", Georgia, serif;
  --presse-display: "Oswald", "Arial Narrow", sans-serif;

  /* Tokens consommés par css/consent.css (déclarés dans main.css, que cette
     page ne charge pas : recopiés à l'identique pour que la bannière RGPD
     garde son habillage navy/sable/cuivre partout). */
  --navy: #0f2a3f;
  --sand: #f4efe7;
  --copper: #b87333;
  --copper-deep: #9f6128;
  --copper-light: #d48e50;
  --white: #ffffff;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --lh-normal: 1.55;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --container-px: clamp(1rem, 4vw, 2rem);
  --radius-full: 9999px;
  --shadow-lg: 0 12px 32px rgba(15, 42, 63, 0.14), 0 24px 48px rgba(15, 42, 63, 0.1);
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
}

/* --- Base --- */
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  padding: 0;
}
body.presse {
  background: radial-gradient(1400px 900px at 50% 40%, #2a251c 0%, #16130d 60%, #0d0b08 100%) fixed #16130d;
  font-family: var(--presse-serif);
  color: var(--presse-ivory);
  -webkit-font-smoothing: antialiased;
}
body.presse.mode-book {
  overflow: hidden;
}

/* --- Chrome de la page (retour, surtitre, navigation) --- */
.presse-retour {
  position: fixed;
  top: 16px;
  left: 18px;
  z-index: 400;
  font-family: var(--presse-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--presse-gold);
  text-decoration: none;
  padding: 9px 14px;
  border: 1px solid rgba(190, 139, 44, 0.4);
  border-radius: 999px;
  background: rgba(15, 14, 11, 0.55);
  backdrop-filter: blur(4px);
  transition: border-color 0.3s, background 0.3s;
}
.presse-retour:hover,
.presse-retour:focus-visible {
  border-color: var(--presse-gold);
  background: rgba(190, 139, 44, 0.14);
}
.presse-pdf {
  position: fixed;
  top: 16px;
  right: 18px;
  z-index: 400;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--presse-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--presse-night);
  text-decoration: none;
  padding: 9px 14px;
  border: 1px solid var(--presse-gold);
  border-radius: 999px;
  background: var(--presse-gold);
  transition: background 0.3s, border-color 0.3s;
}
.presse-pdf:hover,
.presse-pdf:focus-visible {
  background: #d29f3e;
  border-color: #d29f3e;
}
.presse-pdf-icon {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.presse-pdf-label-short {
  display: none;
}
@media (max-width: 680px) {
  .presse-pdf-label {
    display: none;
  }
  .presse-pdf-label-short {
    display: inline;
  }
}
.presse-eyebrow {
  display: none;
  margin: 0;
  position: fixed;
  top: 24px;
  left: 0;
  right: 0;
  z-index: 300;
  pointer-events: none;
  text-align: center;
  font-family: var(--presse-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.36em;
  text-indent: 0.36em;
  text-transform: uppercase;
  color: var(--presse-gold);
}
.book-nav {
  display: none;
  position: fixed;
  bottom: 20px;
  left: 0;
  right: 0;
  z-index: 300;
  align-items: center;
  justify-content: center;
  gap: 22px;
}
.nav-btn {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(190, 139, 44, 0.5);
  border-radius: 50%;
  background: transparent;
  color: var(--presse-gold);
  font-family: var(--presse-display);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  padding: 0 0 3px;
  transition: opacity 0.3s, background 0.3s;
}
.nav-btn:hover:not(:disabled),
.nav-btn:focus-visible {
  background: rgba(190, 139, 44, 0.14);
}
.nav-btn:disabled {
  opacity: 0.25;
  cursor: default;
}
.nav-label {
  margin: 0;
  font-family: var(--presse-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  text-transform: uppercase;
  color: rgba(245, 241, 232, 0.62);
  min-width: 230px;
  text-align: center;
}
.book-hint {
  display: none;
  margin: 0;
  position: fixed;
  bottom: 72px;
  left: 0;
  right: 0;
  z-index: 300;
  pointer-events: none;
  text-align: center;
  font-style: italic;
  font-size: 12px;
  color: rgba(245, 241, 232, 0.55);
}

/* =========================================================
   CONTENU DES PAGES (commun aux deux modes)
   ========================================================= */
.page {
  background: var(--presse-cream);
  color: var(--presse-ink);
  padding: 16mm 20mm;
  display: flex;
  flex-direction: column;
  font-size: 15px;
  line-height: 1.6;
}
.page--dark {
  background: var(--presse-night);
  color: var(--presse-ivory);
}
.page a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(190, 139, 44, 0.55);
  text-underline-offset: 2px;
}
.page a:hover {
  color: var(--presse-gold-text);
}
.page--dark a:hover {
  color: var(--presse-gold);
}
.page p {
  margin: 0;
}

/* Surtitres Oswald ("kickers") */
.kicker {
  font-family: var(--presse-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
}
.kicker--gold {
  color: var(--presse-gold-text);
}
.page--dark .kicker--gold {
  color: var(--presse-gold);
}
.kicker--faint {
  color: var(--presse-faint);
}

/* Bandeau d'en-tête des pages intérieures */
.page-band {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  border-bottom: 1px solid var(--presse-line);
  padding-bottom: 10px;
}

.gold-rule {
  width: 42px;
  height: 1px;
  background: var(--presse-gold);
  border: 0;
  margin: 0;
}
.gold-rule--thick {
  height: 2px;
}

.page h2 {
  font-family: var(--presse-display);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: inherit;
}
.page h3 {
  margin: 0;
  font-size: inherit;
  font-weight: 600;
}
/* Intertitres "kicker" passés en h3 pour la navigation par titres des
   lecteurs d'écran : on leur rend la graisse et le corps du kicker
   (.page h3, plus spécifique que .kicker seul, les écraserait sinon). */
.page h3.kicker {
  font-size: 11px;
  font-weight: 500;
}

/* Pied de page interne (filet + note) */
.page-foot {
  border-top: 1px solid var(--presse-line);
  padding-top: 6mm;
}
.page-fill {
  flex: 1;
}
.foot-note {
  font-style: italic;
  font-size: 12.5px;
  color: var(--presse-muted);
  line-height: 1.5;
}
.foot-note--faint {
  font-size: 12px;
  color: var(--presse-faint);
}

/* --- Page 1 : couverture --- */
.page--cover {
  align-items: center;
  padding: 16mm 20mm 14mm;
  text-align: center;
}
.cover-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.cover-top .kicker {
  font-size: 13px;
  letter-spacing: 0.42em;
  text-indent: 0.42em;
}
.cover-figure {
  flex: 1;
  display: flex;
  align-items: center;
  margin: 8mm 0;
}
.cover-figure img {
  height: 128mm;
  width: auto;
  display: block;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.75), 0 4px 14px rgba(0, 0, 0, 0.6);
}
.cover-title {
  margin: 0;
  font-family: var(--presse-display);
  font-weight: 600;
  font-size: 40px;
  line-height: 1.08;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--presse-ivory);
}
.page .cover-subtitle {
  font-style: italic;
  font-size: 16.5px;
  color: rgba(245, 241, 232, 0.75);
  max-width: 120mm;
  line-height: 1.5;
  margin: 8px auto 0;
}
.page .cover-author {
  margin-top: 18px;
  font-family: var(--presse-display);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  text-transform: uppercase;
}
.page .cover-role {
  font-size: 13px;
  color: var(--presse-gold);
  letter-spacing: 0.08em;
  margin-top: 4px;
}
.cover-dates {
  margin-top: 26px;
  display: flex;
  gap: 46px;
  align-items: stretch;
}
.cover-date .kicker {
  font-size: 11px;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  color: rgba(245, 241, 232, 0.55);
}
.cover-date p {
  margin-top: 5px;
  font-size: 15px;
}
.cover-dates-divider {
  width: 1px;
  background: rgba(245, 241, 232, 0.18);
}
.page .cover-quote {
  margin: 30px auto 0;
  font-style: italic;
  font-size: 12.5px;
  color: rgba(245, 241, 232, 0.62);
  max-width: 118mm;
  line-height: 1.6;
}

/* --- Page 2 : le livre --- */
.page h2.title-lg {
  margin: 13mm 0 4mm;
  font-size: 34px;
  max-width: 150mm;
}
.page .after-rule {
  margin-bottom: 8mm;
}
.prose {
  display: flex;
  flex-direction: column;
  gap: 13px;
  max-width: 158mm;
  line-height: 1.68;
}
.prose .lead {
  font-size: 17px;
  font-weight: 600;
}
.stats-block .kicker {
  display: block;
  margin-bottom: 6mm;
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8mm;
}
.stat-num {
  font-family: var(--presse-display);
  font-weight: 600;
  font-size: 30px;
  color: var(--presse-ink);
}
.stat-num--gold {
  color: var(--presse-gold-text);
}
.page .stat-label {
  font-size: 12.5px;
  color: var(--presse-muted);
  line-height: 1.45;
  margin-top: 2px;
}
.page .stats-note {
  font-size: 12px;
  color: var(--presse-faint);
  margin-top: 5mm;
  font-style: italic;
}

/* --- Page 3 : l'auteur --- */
.author-grid {
  display: grid;
  grid-template-columns: 62mm 1fr;
  gap: 12mm;
  margin-top: 12mm;
  align-items: start;
}
.author-side {
  display: flex;
  flex-direction: column;
  gap: 7mm;
}
.author-photo {
  width: 62mm;
  height: 74mm;
  object-fit: cover;
  display: block;
  filter: saturate(0.88);
}
.keyfigures {
  border-left: 2px solid var(--presse-gold);
  padding-left: 6mm;
  display: flex;
  flex-direction: column;
  gap: 4mm;
}
.keyfigures .kicker {
  letter-spacing: 0.28em;
}
.keyfigures ul {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 13px;
  line-height: 1.5;
  color: var(--presse-body);
  display: flex;
  flex-direction: column;
  gap: 3.5mm;
}
.author-main h2 {
  margin: 0 0 2mm;
  font-size: 32px;
  line-height: 1.1;
}
.page .author-role {
  font-size: 13.5px;
  color: var(--presse-gold-text);
  margin-bottom: 7mm;
}
.author-bio {
  font-size: 14px;
  line-height: 1.66;
  display: flex;
  flex-direction: column;
  gap: 11px;
}
.big-quote {
  font-style: italic;
  font-size: 20px;
  line-height: 1.5;
  color: var(--presse-ink);
  max-width: 160mm;
}

/* --- Page 4 : les histoires --- */
.page--stories {
  padding: 12mm 20mm;
}
.page--stories h2 {
  margin: 6mm 0 2mm;
  font-size: 24px;
  max-width: 160mm;
}
.page .stories-intro {
  font-style: italic;
  font-size: 13.5px;
  color: var(--presse-muted);
  margin-bottom: 5mm;
}
.stories-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 10mm;
  row-gap: 4mm;
}
.story {
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 8px;
}
.story-num {
  font-family: var(--presse-display);
  font-weight: 500;
  font-size: 13px;
  color: var(--presse-gold-text);
  padding-top: 2px;
}
.story h3 {
  font-size: 13.5px;
}
.story p {
  margin-top: 3px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--presse-body);
}
.page--stories .page-foot {
  padding-top: 4mm;
}

/* --- Page 5 : citation pleine page --- */
.page--quote {
  align-items: center;
  justify-content: center;
  padding: 20mm 24mm;
  text-align: center;
}
.page--quote blockquote {
  margin: 14mm 0;
  font-style: italic;
  font-size: 42px;
  line-height: 1.42;
  max-width: 152mm;
}
.page--quote .accent {
  color: var(--presse-gold);
}
.page--quote .kicker {
  color: rgba(245, 241, 232, 0.55);
  font-size: 12px;
}

/* --- Page 6 : les thèmes --- */
.page--themes h2 {
  margin: 10mm 0 3mm;
  font-size: 27px;
  max-width: 160mm;
}
.page .themes-intro {
  font-style: italic;
  font-size: 14.5px;
  color: var(--presse-muted);
  max-width: 150mm;
  line-height: 1.55;
  margin-bottom: 8mm;
}
.themes-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 12mm;
  row-gap: 8mm;
}
.theme {
  border-top: 1px solid var(--presse-line);
  padding-top: 5mm;
}
.theme h3 {
  font-family: var(--presse-display);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--presse-ink);
}
.theme p {
  margin-top: 5px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--presse-body);
}
.themes-foot {
  font-style: italic;
  font-size: 15px;
  color: var(--presse-ink);
}

/* --- Page 7 : citations --- */
.page--quotes h2 {
  margin: 10mm 0 9mm;
  font-size: 27px;
}
.quotes-list {
  display: flex;
  flex-direction: column;
  gap: 7mm;
  max-width: 158mm;
}
.quotes-list blockquote {
  margin: 0;
  font-style: italic;
  font-size: 15.5px;
  line-height: 1.55;
  border-left: 2px solid var(--presse-gold);
  padding-left: 6mm;
}

/* --- Page 8 : informations de lancement --- */
.page--infos h2 {
  margin: 8mm 0 2mm;
  font-size: 30px;
}
.page .infos-subtitle {
  font-style: italic;
  font-size: 14.5px;
  color: var(--presse-muted);
  margin-bottom: 6mm;
}
.specs {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 2.5mm;
}
.spec {
  border-top: 1px solid var(--presse-line);
  padding: 2.5mm 0 1mm;
  display: grid;
  grid-template-columns: 52mm 1fr;
  gap: 6mm;
}
.spec dt {
  font-family: var(--presse-display);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--presse-faint);
  padding-top: 3px;
}
.spec dd {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}
.spec dd.todo {
  font-style: italic;
  color: var(--presse-faint);
}
.about-block {
  margin-top: 5mm;
  border-top: 1px solid var(--presse-line);
  padding-top: 4mm;
}
.about-block .kicker {
  display: block;
  margin-bottom: 3mm;
}
.about-block p {
  font-size: 14px;
  line-height: 1.66;
  max-width: 158mm;
}
.infos-foot {
  font-style: italic;
  font-size: 16px;
  color: var(--presse-ink);
}

/* --- Page 9 : contact presse --- */
.page--contact h2 {
  margin: 12mm 0 3mm;
  font-size: 30px;
}
.page .contact-intro {
  font-style: italic;
  font-size: 14.5px;
  color: var(--presse-muted);
  margin-bottom: 10mm;
}
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 14mm;
  align-items: start;
}
.contact-id {
  display: flex;
  flex-direction: column;
  gap: 7mm;
}
.contact-name {
  font-size: 19px;
  font-weight: 600;
}
.page .contact-sub {
  font-size: 13.5px;
  color: var(--presse-muted);
  line-height: 1.6;
  margin-top: 3px;
}
.contact-rows {
  display: flex;
  flex-direction: column;
  gap: 4.5mm;
}
.crow {
  display: grid;
  grid-template-columns: 30mm 1fr;
  gap: 5mm;
}
.crow dt {
  font-family: var(--presse-display);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--presse-faint);
  padding-top: 3px;
}
.crow dd {
  margin: 0;
  font-size: 14.5px;
}
.contact-asides {
  display: flex;
  flex-direction: column;
  gap: 9mm;
}
.aside-block {
  border-left: 2px solid var(--presse-gold);
  padding-left: 6mm;
}
.aside-block .kicker {
  display: block;
  letter-spacing: 0.28em;
  margin-bottom: 4mm;
}
.aside-block ul {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 13.5px;
  line-height: 2;
  color: var(--presse-body);
}
.contact-foot {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding-top: 7mm;
}
.contact-foot .foot-note--faint {
  font-style: italic;
}

/* --- Page 10 : quatrième de couverture --- */
.page--back {
  align-items: center;
  justify-content: center;
  gap: 26px;
  text-align: center;
  padding: 60px;
}
.back-title {
  font-family: var(--presse-display);
  font-weight: 600;
  font-size: 26px;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  text-transform: uppercase;
}
.back-sub {
  font-style: italic;
  font-size: 16px;
  color: rgba(245, 241, 232, 0.7);
}
.back-links {
  font-size: 13.5px;
  color: rgba(245, 241, 232, 0.62);
  line-height: 1.9;
}
.page--back a {
  text-decoration: none;
  color: inherit;
}

/* =========================================================
   MODE EMPILÉ (défaut : sans JS, mobile, impression)
   ========================================================= */
.presse-stage {
  padding: 84px 16px 56px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
}
.book,
.book-scale {
  display: contents;
}
.sheet {
  display: contents;
}
.face {
  width: 100%;
  max-width: 794px;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.55);
}
.book-shadow,
.book-spine,
.edge {
  display: none;
}

/* =========================================================
   MODE LIVRE (body.mode-book, posé par js/presse.js dès 1000px)
   Géométrie du livre A4 ouvert : 2 pages de 794x1123px côte à
   côte, feuilles pivotant sur le dos (rotateY), transform et
   z-index pilotés par le JS.
   ========================================================= */
.mode-book .book-nav {
  display: flex;
}
.mode-book .presse-eyebrow {
  display: block;
}
.mode-book .book-hint {
  display: block;
}
.mode-book .presse-stage {
  position: fixed;
  inset: 0;
  padding: 0;
  flex-direction: row;
  justify-content: center;
  perspective: 2900px;
  user-select: none;
}
.mode-book .book-scale {
  display: block;
  transition: transform 0.35s ease;
}
.mode-book .book {
  display: block;
  position: relative;
  width: 1588px;
  height: 1123px;
  transition: transform 1.15s cubic-bezier(0.38, 0.12, 0.22, 1);
}
.mode-book .book-shadow {
  display: block;
  position: absolute;
  top: 26px;
  bottom: -16px;
  left: 10px;
  right: 10px;
  background: rgba(0, 0, 0, 0.52);
  filter: blur(30px);
  border-radius: 12px;
  transition: left 1.15s cubic-bezier(0.38, 0.12, 0.22, 1),
    right 1.15s cubic-bezier(0.38, 0.12, 0.22, 1);
}
.mode-book .sheet {
  display: block;
  position: absolute;
  top: 0;
  left: 794px;
  width: 794px;
  height: 1123px;
  transform-style: preserve-3d;
  transform-origin: left center;
  transition: transform 1.15s cubic-bezier(0.38, 0.12, 0.22, 1);
}
.mode-book .face {
  position: absolute;
  inset: 0;
  max-width: none;
  box-shadow: none;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  overflow: hidden;
  background: var(--presse-cream);
}
.mode-book .face--back {
  transform: rotateY(180deg);
}
.mode-book .page {
  width: 794px;
  height: 1123px;
}
/* Ombrage intérieur le long du dos (rendu "papier") */
.mode-book .face::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.mode-book .face--front::after {
  background: linear-gradient(
    to right,
    rgba(15, 14, 11, 0.16) 0,
    rgba(15, 14, 11, 0.04) 4%,
    rgba(15, 14, 11, 0) 10%
  );
}
.mode-book .face--back::after {
  background: linear-gradient(
    to left,
    rgba(15, 14, 11, 0.16) 0,
    rgba(15, 14, 11, 0.04) 4%,
    rgba(15, 14, 11, 0) 10%
  );
}
.mode-book .book-spine {
  display: block;
  position: absolute;
  top: 0;
  left: 754px;
  width: 80px;
  height: 1123px;
  z-index: 95;
  pointer-events: none;
  transition: opacity 0.6s;
  background: linear-gradient(
    to right,
    rgba(15, 14, 11, 0) 0%,
    rgba(15, 14, 11, 0.1) 42%,
    rgba(15, 14, 11, 0.22) 50%,
    rgba(15, 14, 11, 0.1) 58%,
    rgba(15, 14, 11, 0) 100%
  );
}
/* Zones cliquables invisibles sur les bords du livre */
.mode-book .edge {
  display: block;
  position: absolute;
  top: 0;
  width: 220px;
  height: 1123px;
  z-index: 120;
  cursor: pointer;
  background: transparent;
  border: 0;
  padding: 0;
}
.mode-book .edge--prev {
  left: -80px;
}
.mode-book .edge--next {
  right: -80px;
}

/* Animations coupées si l'utilisateur préfère (le feuilletage
   devient instantané, l'état reste correct). */
@media (prefers-reduced-motion: reduce) {
  .mode-book .book,
  .mode-book .book-scale,
  .mode-book .book-shadow,
  .mode-book .sheet {
    transition: none;
  }
}

/* =========================================================
   PETITS ÉCRANS (mode empilé uniquement : le JS n'active
   jamais le mode livre sous 1000px)
   ========================================================= */
@media (max-width: 680px) {
  .presse-stage {
    padding: 72px 10px 40px;
    gap: 18px;
  }
  .page {
    padding: 34px 22px;
  }
  .page--cover {
    padding: 38px 22px 34px;
  }
  .cover-figure img {
    height: auto;
    width: min(62vw, 240px);
  }
  .cover-title {
    font-size: 28px;
  }
  .cover-dates {
    gap: 24px;
  }
  .page h2.title-lg,
  .page--infos h2,
  .page--contact h2 {
    font-size: 24px;
  }
  .page--themes h2,
  .page--quotes h2 {
    font-size: 21px;
  }
  .stats-grid {
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }
  .author-grid,
  .stories-grid,
  .themes-grid,
  .contact-grid {
    grid-template-columns: 1fr;
  }
  .contact-grid {
    row-gap: 26px;
  }
  .author-photo {
    width: 100%;
    max-width: 260px;
    height: auto;
    aspect-ratio: 62 / 74;
  }
  .page--quote blockquote {
    font-size: 26px;
  }
  .spec {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .contact-foot {
    flex-direction: column;
    gap: 6px;
  }
}

/* =========================================================
   IMPRESSION : une page A4 par section, sans le chrome écran
   (un dossier de presse s'imprime).
   ========================================================= */
@media print {
  /* Impression / export PDF : on conserve fidèlement le design écran (dossier
     de presse numérique), une page A4 pleine par section. Les couleurs sont
     forcées "exact" pour que les pages sombres gardent leur fond noir
     (sinon les navigateurs n'impriment pas les fonds : texte ivoire sur
     blanc, illisible). */
  body.presse {
    background: #fff;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  body.presse.mode-book {
    overflow: visible;
  }
  .presse-retour,
  .presse-pdf,
  .presse-eyebrow,
  .book-nav,
  .book-hint,
  .cookie-banner {
    display: none !important;
  }
  /* Neutralise le mode livre : l'impression se fait toujours en pages
     empilées. Les !important sont nécessaires car le JS pose transform et
     z-index en styles INLINE sur les feuilles (seul !important les bat),
     et les règles .mode-book (0-2-0) priment sinon sur celles-ci. */
  .presse-stage,
  .mode-book .presse-stage {
    position: static !important;
    padding: 0;
    gap: 0;
    display: block;
    perspective: none !important;
  }
  .book-scale,
  .book,
  .sheet,
  .mode-book .book-scale,
  .mode-book .book,
  .mode-book .sheet {
    display: contents !important;
    position: static !important;
    transform: none !important;
  }
  /* Chaque face = une page A4 pleine, remplie par .page (fond compris). */
  .face,
  .mode-book .face {
    position: static !important;
    transform: none !important;
    display: block !important;
    width: 210mm;
    height: 297mm;
    max-width: none;
    box-shadow: none;
    overflow: hidden;
    break-after: page;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  /* Pas de page blanche parasite après la dernière face. */
  .sheet:last-child .face--back {
    break-after: auto;
  }
  .mode-book .face::after,
  .book-shadow,
  .book-spine,
  .edge {
    display: none !important;
  }
  .page,
  .mode-book .page {
    width: 100%;
    height: 100%;
    min-height: 0;
  }
  @page {
    size: A4;
    margin: 0;
  }
}
