/* Michel Bourgeois — site vitrine, v2
   Direction : encre et papier. Bleu et rouge tirés des couvertures Société des Écrivains.
   Tokens repris du design system « Michel Bourgeois — Design System » (dérivé de la v1). */

/* ===== Polices ===== */
@font-face {
  font-family: "EB Garamond";
  src: url("../fonts/ebgaramond.woff2") format("woff2");
  font-weight: 400 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "EB Garamond";
  src: url("../fonts/ebgaramond-italic.woff2") format("woff2");
  font-weight: 400 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Archivo";
  src: url("../fonts/archivo.woff2") format("woff2");
  font-weight: 400 600;
  font-style: normal;
  font-display: swap;
}

/* ===== Tokens ===== */
:root {
  /* Couleurs */
  --papier: #FAF9F5;
  --velin: #FFFEFB;
  --lavis: #EFF1F6;
  --encre: #141B39;
  --nuit: #101A45;
  --bleu: #24338F;
  --rouge: #BC3A2E;
  --gris: #5B6178;
  --ligne: #DCDDE4;
  --sur-nuit-fort: #F3F5FC;
  --sur-nuit: #D9DEF0;
  --sur-nuit-doux: #C6CCE4;
  --sur-nuit-faible: #8A93BC;
  --rouge-clair: #E8B7B0;
  --ligne-nuit: #24306B;
  --ligne-nuit-douce: rgba(243, 245, 252, .25);
  --ligne-nuit-faible: rgba(243, 245, 252, .18);
  --graphite: #A9AFC9;

  /* Typographie */
  --serif: "EB Garamond", Georgia, serif;
  --sans: "Archivo", "Segoe UI", Arial, sans-serif;
  --t-nano: 0.68rem;
  --t-micro: 0.72rem;
  --t-mini: 0.78rem;
  --t-petit: 0.82rem;
  --t-note: 0.85rem;
  --t-ui: 0.92rem;
  --t-bouton: 0.95rem;
  --t-lecture: 1.05rem;
  --t-corps: 1.125rem;
  --t-corps-plus: 1.15rem;
  --t-texte-large: 1.22rem;
  --t-citation: 1.3rem;
  --t-lede: 1.4rem;
  --t-h3: 1.55rem;
  --t-h2: clamp(1.9rem, 3.4vw, 2.7rem);
  --t-h2-fort: clamp(2.1rem, 4vw, 3.2rem);
  --t-h1: clamp(2.7rem, 6vw, 4.6rem);
  --t-punch: clamp(1.5rem, 2.6vw, 2.1rem);
  --lh-titre: 1.12;
  --lh-citation: 1.45;
  --lh-corps: 1.65;
  --lh-lecture: 1.8;
  --ls-etiquette: 0.1em;
  --ls-marge: 0.14em;
  --ls-surtitre: 0.16em;
  --mesure: 38em;
  --mesure-courte: 22em;
  --mesure-contact: 30em;

  /* Espacement */
  --larg: 74rem;
  --marge-page: 1.5rem;
  --gap-grille: 1.8rem;
  --gap-colonnes: 4rem;
  --gap-modules: 2rem;
  --gap-services: 3rem;
  --sticky-offset: 5.5rem;

  /* Relief */
  --rayon: 2px;
  --ombre-couverture: 0 12px 24px -12px rgba(16, 26, 69, .4);
  --ombre-portrait: 0 20px 40px -16px rgba(16, 26, 69, .35), 0 3px 10px rgba(16, 26, 69, .1);
  --ombre-carte: 0 10px 24px -16px rgba(16, 26, 69, .2), 0 2px 5px rgba(16, 26, 69, .04);
  --ombre-page: 0 14px 30px -18px rgba(16, 26, 69, .25), 0 2px 6px rgba(16, 26, 69, .05);
  --ombre-carte-bleue: 0 14px 28px -16px rgba(36, 51, 143, .5);
  --voile-lecture: linear-gradient(to bottom, rgba(255, 254, 251, 0), #FFFEFB 85%);

  /* Mouvement */
  --duree-etat: 0.2s;
  --duree-transform: 0.25s;
  --duree-apparition: 0.6s;
  --duree-bord: 0.3s;
}

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

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  font-family: var(--serif);
  font-size: var(--t-corps);
  line-height: var(--lh-corps);
  color: var(--encre);
  background: var(--papier);
  -webkit-font-smoothing: antialiased;
}

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

a { color: var(--bleu); }
a:focus-visible,
.btn:focus-visible,
.filtre:focus-visible {
  outline: 2px solid var(--bleu);
  outline-offset: 3px;
}

h1, h2, h3 {
  font-family: var(--serif);
  font-weight: 500;
  line-height: var(--lh-titre);
  letter-spacing: -0.01em;
}

.eyebrow {
  font-family: var(--sans);
  font-size: var(--t-mini);
  font-weight: 600;
  letter-spacing: var(--ls-surtitre);
  text-transform: uppercase;
  color: var(--rouge);
}
.eyebrow-trait { display: inline-flex; align-items: center; gap: 0.6rem; }
.trait-mini { width: 2.2rem; height: 0.55rem; flex: none; }
.eyebrow-clair { color: var(--rouge-clair); }

.section-int {
  max-width: var(--larg);
  margin: 0 auto;
  padding: 6.5rem var(--marge-page);
}
.section-intro {
  max-width: var(--mesure);
  margin-top: 1.2rem;
  color: var(--gris);
}
.section-intro strong,
.hero-sous strong {
  font-weight: 600;
  color: var(--encre);
}
.tete-section h2 { font-size: var(--t-h2); margin-top: 1rem; }

.fond-lavis { background: var(--lavis); }

.souligne { position: relative; display: inline-block; font-style: italic; }
.souligne-droit { font-style: normal; }
.trait {
  position: absolute;
  left: -2%;
  bottom: -0.18em;
  width: 104%;
  height: 0.22em;
}

/* ===== Boutons ===== */
.btn {
  display: inline-block;
  font-family: var(--sans);
  font-size: var(--t-bouton);
  font-weight: 500;
  text-decoration: none;
  padding: 0.85rem 1.6rem;
  border-radius: var(--rayon);
  cursor: pointer;
  transition: background-color var(--duree-etat), color var(--duree-etat), border-color var(--duree-etat);
}
.btn-encre { background: var(--encre); color: var(--papier); border: 1px solid var(--encre); }
.btn-encre:hover { background: var(--bleu); border-color: var(--bleu); }
.btn-ligne { background: transparent; color: var(--encre); border: 1px solid var(--encre); }
.btn-ligne:hover { border-color: var(--rouge); color: var(--rouge); }
.btn-papier { background: var(--papier); color: var(--nuit); border: 1px solid var(--papier); }
.btn-papier:hover { background: transparent; color: var(--papier); }

/* ===== En-tête ===== */
.entete {
  position: sticky;
  top: 0;
  z-index: 10;
  background: color-mix(in srgb, var(--papier) 92%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid transparent;
  transition: border-color var(--duree-bord);
}
.entete.ombre { border-bottom-color: var(--ligne); }
.entete-int {
  max-width: var(--larg);
  margin: 0 auto;
  padding: 0.9rem var(--marge-page);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.marque {
  font-family: var(--serif);
  font-size: 1.3rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--encre);
}
.nav { display: flex; align-items: center; gap: 1.6rem; }
.nav a:not(.btn):not(.nav-livre) {
  font-family: var(--sans);
  font-size: var(--t-ui);
  font-weight: 500;
  text-decoration: none;
  color: var(--encre);
}
.nav a:not(.btn):not(.nav-livre):hover { color: var(--rouge); }
.nav a[aria-current="page"]:not(.btn):not(.nav-livre) { color: var(--rouge); }
.nav-livre {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1rem;
  white-space: nowrap;
  text-decoration: none;
  color: var(--bleu);
  border: 1px solid var(--bleu);
  border-radius: var(--rayon);
  padding: 0.45rem 0.95rem;
  transition: background-color var(--duree-etat), color var(--duree-etat);
}
.nav-livre:hover,
.nav-livre[aria-current="page"] { background: var(--bleu); color: var(--papier); }
.nav .btn { padding: 0.55rem 1.1rem; }

/* ===== Hero (accueil et page du livre) ===== */
.hero-int {
  max-width: var(--larg);
  margin: 0 auto;
  padding: 5.5rem var(--marge-page) 4.5rem;
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: var(--gap-colonnes);
  align-items: center;
}
.hero h1 { font-size: var(--t-h1); margin: 0 0 1.2rem; }
.hero-livre {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: var(--gap-colonnes);
  align-items: center;
}
.hero-livre h1 { font-size: var(--t-h1); margin: 1rem 0 1.2rem; }
.hero-tag {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.35rem;
  color: var(--rouge);
  margin-bottom: 1.2rem;
}
.hero-sous {
  max-width: 34em;
  font-size: var(--t-texte-large);
  color: var(--gris);
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 2.2rem;
}
.hero-note {
  font-family: var(--sans);
  font-size: var(--t-petit);
  color: var(--gris);
  margin-top: 1.1rem;
}
.hero-liens {
  font-family: var(--sans);
  font-size: var(--t-note);
  margin-top: 1.5rem;
}
.hero-liens a {
  color: var(--gris);
  text-decoration: none;
  border-bottom: 1px solid var(--ligne);
  padding-bottom: 1px;
}
.hero-liens a:hover { color: var(--rouge); border-color: var(--rouge); }
.hero-figure { justify-self: center; max-width: 300px; }
.figure-cadre img { box-shadow: var(--ombre-portrait); }
.devise {
  max-width: var(--larg);
  margin: 0 auto;
  padding: 0 var(--marge-page) 3.5rem;
  text-align: center;
}
.devise p {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1.25rem, 2.2vw, 1.55rem);
  line-height: var(--lh-citation);
  color: var(--bleu);
  max-width: 30em;
  margin: 0 auto;
}
.devise span {
  display: block;
  font-family: var(--sans);
  font-style: normal;
  font-size: var(--t-mini);
  font-weight: 500;
  letter-spacing: var(--ls-etiquette);
  text-transform: uppercase;
  color: var(--gris);
  margin-top: 0.7rem;
}
.refs { border-top: 1px solid var(--ligne); border-bottom: 1px solid var(--ligne); }
.refs p {
  max-width: var(--larg);
  margin: 0 auto;
  padding: 1.1rem var(--marge-page);
  font-family: var(--sans);
  font-size: var(--t-petit);
  font-weight: 500;
  letter-spacing: var(--ls-etiquette);
  text-transform: uppercase;
  color: var(--gris);
  text-align: center;
}

/* ===== Parcours / page auteur ===== */
.auteur-grille {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--gap-colonnes);
}
.accueil-auteur {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 6fr);
  gap: var(--gap-colonnes);
  margin-top: 3rem;
  align-items: center;
}
.accueil-auteur .figure-cadre,
.auteur-portrait { max-width: 300px; }
.auteur-portrait { margin-top: 2.4rem; }
.citation { margin-top: 1.8rem; max-width: var(--mesure-courte); }
.citation p {
  font-style: italic;
  font-size: 1.25rem;
  color: var(--bleu);
}
.citation cite,
.epigraphe cite {
  display: block;
  font-family: var(--sans);
  font-style: normal;
  font-size: var(--t-mini);
  font-weight: 500;
  letter-spacing: var(--ls-etiquette);
  text-transform: uppercase;
  color: var(--gris);
  margin-top: 0.8rem;
}
.chrono {
  list-style: none;
  border-left: 1px solid var(--ligne);
  padding-left: 1.8rem;
  margin-left: 4px;
}
.chrono li { position: relative; }
.chrono li + li { margin-top: 2.2rem; }
.chrono li::before {
  content: "";
  position: absolute;
  left: calc(-1.8rem - 9px);
  top: 3px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--bleu);
  border: 2px solid var(--papier);
}
.chrono li:last-child::before { background: var(--rouge); }
.marge {
  display: block;
  font-family: var(--sans);
  font-size: var(--t-mini);
  font-weight: 600;
  letter-spacing: var(--ls-marge);
  text-transform: uppercase;
  color: var(--bleu);
  margin-bottom: 0.35rem;
}
.chrono li:last-child .marge { color: var(--rouge); }

/* ===== Punchline de fin de section ===== */
.extrait-final {
  font-family: var(--serif);
  font-style: italic;
  font-size: var(--t-punch);
  color: var(--bleu);
  text-align: center;
  margin-top: 4rem;
}
.extrait-final-src {
  display: block;
  font-family: var(--sans);
  font-style: normal;
  font-size: var(--t-mini);
  font-weight: 500;
  letter-spacing: var(--ls-etiquette);
  text-transform: uppercase;
  color: var(--gris);
  margin-top: 0.9rem;
}

/* ===== Page de livre (extrait) ===== */
.extrait-corps {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: 3rem;
  margin-top: 3rem;
  align-items: start;
}
.page-livre {
  position: relative;
  background: var(--velin);
  border: 1px solid var(--ligne);
  border-radius: var(--rayon);
  padding: 2.4rem 3.4rem 3.6rem;
  box-shadow: var(--ombre-page);
}
.page-entete {
  font-family: var(--sans);
  font-size: var(--t-micro);
  font-weight: 500;
  letter-spacing: var(--ls-surtitre);
  text-transform: uppercase;
  color: var(--gris);
  text-align: center;
  padding-bottom: 1rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--ligne);
}
.page-texte {
  position: relative;
  font-size: var(--t-corps-plus);
  line-height: var(--lh-lecture);
}
.page-texte .lede { font-size: var(--t-lede); line-height: 1.55; }
.page-texte .lede::first-letter {
  font-size: 3.4rem;
  font-weight: 500;
  float: left;
  line-height: 0.85;
  padding: 0.06em 0.12em 0 0;
  color: var(--bleu);
}
.page-texte p + p { margin-top: 1.3rem; }
.page-plus { display: none; }
.page-livre:not(.ouvert) .page-texte::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 5.5rem;
  background: var(--voile-lecture);
  pointer-events: none;
}
.page-action { text-align: center; margin-top: 1.6rem; }
.page-livre.ouvert .page-plus { display: block; }
.page-livre.ouvert .page-action { display: none; }
.page-folio {
  position: absolute;
  bottom: 1.1rem;
  left: 0;
  right: 0;
  text-align: center;
  font-family: var(--sans);
  font-size: var(--t-petit);
  color: var(--graphite);
}
.extrait-cote { position: sticky; top: var(--sticky-offset); }
.epigraphe p {
  font-style: italic;
  font-size: var(--t-citation);
  line-height: var(--lh-citation);
  color: var(--encre);
}
.epigraphe cite { margin-top: 0.9rem; }
.faits {
  font-family: var(--sans);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bleu);
  margin-top: 2rem;
}
.extrait-cote .btn { margin-top: 2.2rem; }

/* ===== Modules (cartes de contenu) ===== */
.modules {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap-modules);
  margin-top: 3rem;
}
.module {
  background: var(--velin);
  border: 1px solid var(--ligne);
  border-radius: var(--rayon);
  padding: 1.8rem 2rem 2rem;
  box-shadow: var(--ombre-carte);
}
.module-trait { display: block; margin: 0 auto 0.9rem; }
.module-titre {
  font-family: var(--sans);
  font-size: var(--t-micro);
  font-weight: 500;
  letter-spacing: var(--ls-surtitre);
  text-transform: uppercase;
  color: var(--gris);
  text-align: center;
  padding-bottom: 0.9rem;
  margin-bottom: 1.4rem;
  border-bottom: 1px solid var(--ligne);
}
.module-note {
  font-style: italic;
  color: var(--gris);
  font-size: 1rem;
  margin-top: 1.2rem;
}
.module-accent {
  background: var(--bleu);
  border-color: var(--bleu);
  color: var(--sur-nuit-fort);
  box-shadow: var(--ombre-carte-bleue);
}
.module-accent .module-titre {
  color: var(--sur-nuit-doux);
  border-bottom-color: var(--ligne-nuit-douce);
}
.module-accent .module-note { color: var(--sur-nuit-doux); }
.module-accent .module-note a {
  color: var(--sur-nuit-fort);
  text-decoration: none;
  border-bottom: 1px solid var(--ligne-nuit-douce);
  transition: color var(--duree-etat), border-color var(--duree-etat);
}
.module-accent .module-note a:hover { color: var(--rouge-clair); border-color: var(--rouge-clair); }
.module-accent .manifeste li { border-bottom-color: var(--ligne-nuit-faible); }
.sujets {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 1.4rem;
}
.sujets li {
  font-family: var(--serif);
  font-size: var(--t-texte-large);
  font-weight: 500;
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--ligne);
}
.modules-deux { grid-template-columns: repeat(2, 1fr); }
.manifeste { list-style: none; }
.manifeste li {
  font-family: var(--serif);
  font-size: 1.08rem;
  line-height: var(--lh-citation);
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--ligne);
}
.manifeste li:last-child { border-bottom: none; padding-bottom: 0; }
.manifeste li:first-child { padding-top: 0; }
.toc { list-style: none; }
.toc li {
  display: flex;
  align-items: baseline;
  gap: 0.55rem;
  padding: 0.45rem 0;
}
.toc span { font-family: var(--serif); font-size: var(--t-lecture); }
.toc i { flex: 1; border-bottom: 1px dotted var(--graphite); transform: translateY(-4px); }
.toc b {
  font-family: var(--sans);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--gris);
}
.sommaire-note {
  font-style: italic;
  color: var(--bleu);
  font-size: 1rem;
  margin-top: 1.2rem;
}

/* ===== Livres ===== */
.livre-meta {
  font-family: var(--sans);
  font-size: var(--t-mini);
  font-weight: 500;
  letter-spacing: var(--ls-etiquette);
  text-transform: uppercase;
  color: var(--gris);
}
.grille-livres {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: var(--gap-grille);
  margin-top: 3rem;
  align-items: start;
}
.livre h3 { font-size: 1.25rem; margin: 0.15rem 0 0.3rem; }
.livre .livre-meta { margin-top: 0.9rem; }
.livre-hook {
  font-style: italic;
  font-size: 0.95rem;
  color: var(--gris);
  margin-bottom: 0.55rem;
}
.couv {
  display: block;
  box-shadow: var(--ombre-couverture);
  transition: transform var(--duree-transform);
}
.couv:hover { transform: translateY(-4px); }
.couv img {
  width: 100%;
  aspect-ratio: 0.69;
  object-fit: cover;
}
.couv-ph {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  aspect-ratio: 0.654;
  background: var(--bleu);
  color: var(--papier);
  text-decoration: none;
  padding: 1.2rem 1rem;
  text-align: center;
  border: 1px solid var(--nuit);
  box-shadow: var(--ombre-couverture);
  transition: transform var(--duree-transform);
}
a.couv-ph:hover { transform: translateY(-4px); }
.couv-titre { font-family: var(--serif); font-size: var(--t-citation); line-height: 1.2; }
.couv-suite { background: var(--encre); justify-content: center; padding: 1.4rem 1.2rem; }
.couv-suite .couv-titre {
  font-style: italic;
  font-size: 1.12rem;
  line-height: 1.5;
  color: var(--sur-nuit);
}
.lien-titre { color: inherit; text-decoration: none; }
.lien-titre:hover { color: var(--rouge); }
.lien-achat {
  font-family: var(--sans);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--bleu);
  text-decoration: none;
  border-bottom: 1px solid var(--ligne);
  padding-bottom: 2px;
  transition: color var(--duree-etat), border-color var(--duree-etat);
}
.lien-achat:hover { color: var(--rouge); border-color: var(--rouge); }
.grille-suite { margin-top: 2.8rem; }

/* ===== Filtres de bibliographie ===== */
.filtres {
  display: flex;
  gap: 1.6rem;
  flex-wrap: wrap;
  margin-top: 2.4rem;
  border-top: 1px solid var(--ligne);
  border-bottom: 1px solid var(--ligne);
  padding: 1.1rem 0;
}
.filtre {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0 0 3px;
  font-family: var(--sans);
  font-size: var(--t-petit);
  font-weight: 500;
  letter-spacing: var(--ls-etiquette);
  text-transform: uppercase;
  color: var(--gris);
  border-bottom: 2px solid transparent;
  transition: color var(--duree-etat), border-color var(--duree-etat);
}
.filtre:hover { color: var(--rouge); }
.filtre.actif { color: var(--rouge); border-bottom-color: var(--rouge); }
.filtres-etiquette {
  font-family: var(--sans);
  font-size: var(--t-petit);
  font-weight: 600;
  letter-spacing: var(--ls-etiquette);
  text-transform: uppercase;
  color: var(--encre);
  margin-right: 0.8rem;
}

/* ===== Lignes d'achat ===== */
.lignes-achat {
  display: flex;
  gap: 2.4rem;
  flex-wrap: wrap;
  margin-top: 2.4rem;
  border-top: 1px solid var(--ligne);
  padding-top: 2rem;
}
.lignes-achat .lien-achat { font-size: var(--t-bouton); }

/* ===== Services ===== */
.services-liste {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap-services);
  margin-top: 3rem;
  border-top: 1px solid var(--ligne);
  padding-top: 2.8rem;
}
.service::before {
  content: "";
  display: block;
  width: 2.2rem;
  height: 3px;
  background: var(--bleu);
  margin-bottom: 1.1rem;
}
.service:last-child::before { background: var(--rouge); }
.service h3 { font-size: var(--t-h3); }
.service p { color: var(--gris); margin-top: 0.7rem; }
.services-cta { margin-top: 3.2rem; text-align: center; }

/* ===== Bande nuit (teaser interventions, contact) ===== */
.bande-nuit { background: var(--nuit); color: var(--papier); }
.bande-nuit .section-int { text-align: center; }
.bande-nuit h2 { font-size: var(--t-h2-fort); margin-top: 1rem; }
.bande-texte {
  max-width: var(--mesure-contact);
  margin: 1.4rem auto 0;
  color: var(--sur-nuit-doux);
  font-size: 1.2rem;
}
.bande-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 2.4rem;
}
.bande-note {
  font-family: var(--sans);
  font-size: var(--t-note);
  color: var(--sur-nuit-faible);
  margin-top: 2.4rem;
}
.bande-points {
  list-style: none;
  max-width: 27em;
  margin: 2rem auto 0;
  text-align: left;
}
.bande-points li {
  font-family: var(--serif);
  font-size: 1.05rem;
  line-height: var(--lh-citation);
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--ligne-nuit-faible);
  color: var(--sur-nuit);
}
.bande-points li:last-child { border-bottom: none; }
.bande-points strong { font-weight: 600; color: var(--sur-nuit-fort); }
.bande-haute .section-int { padding-top: 7rem; padding-bottom: 7rem; }

/* ===== Mentions légales ===== */
.legal h3 { font-size: 1.25rem; margin-top: 2.2rem; }
.legal p { color: var(--gris); max-width: var(--mesure); margin-top: 0.5rem; }
.legal .a-completer { font-style: italic; color: var(--graphite); }

/* ===== Pied ===== */
.pied { background: var(--nuit); border-top: 1px solid var(--ligne-nuit); }
.pied-int {
  max-width: var(--larg);
  margin: 0 auto;
  padding: 1.6rem var(--marge-page);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.pied p { font-family: var(--sans); font-size: var(--t-note); color: var(--sur-nuit-faible); }
.pied nav { display: flex; gap: 1.4rem; flex-wrap: wrap; }
.pied a {
  font-family: var(--sans);
  font-size: var(--t-note);
  color: var(--sur-nuit-doux);
  text-decoration: none;
}
.pied a:hover { color: var(--papier); }

/* ===== Apparitions au défilement ===== */
.reveal { opacity: 0; transform: translateY(14px); transition: opacity var(--duree-apparition) ease, transform var(--duree-apparition) ease; }
.reveal.vis { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .couv, .couv-ph { transition: none; }
  .couv:hover, a.couv-ph:hover { transform: none; }
}

/* ===== Responsive ===== */
@media (max-width: 900px) {
  .hero-int { grid-template-columns: 1fr; gap: 3rem; padding-top: 4rem; }
  .hero-livre { grid-template-columns: 1fr; gap: 3rem; }
  .hero-figure { max-width: 240px; }
  .accueil-auteur { grid-template-columns: 1fr; gap: 2.5rem; }
  .auteur-grille { grid-template-columns: 1fr; gap: 2.5rem; }
  .auteur-portrait, .accueil-auteur .figure-cadre { max-width: 240px; }
  .extrait-corps { grid-template-columns: 1fr; gap: 2.5rem; }
  .extrait-cote { position: static; }
  .modules, .modules-deux { grid-template-columns: 1fr; gap: 1.6rem; }
  .page-livre { padding: 1.8rem 1.4rem 3.2rem; }
  .services-liste { grid-template-columns: 1fr; gap: 2.2rem; }
  .section-int { padding: 4.5rem 1.25rem; }
}
@media (max-width: 620px) {
  /* En-tête sur deux rangs : marque, puis navigation complète centrée */
  .entete-int { flex-wrap: wrap; row-gap: 0.5rem; padding-top: 0.7rem; padding-bottom: 0.7rem; }
  .nav { width: 100%; justify-content: center; flex-wrap: wrap; gap: 0.9rem 1.1rem; }
  .nav a:not(.btn):not(.nav-livre) { font-size: 0.8rem; }
  .nav-livre { font-size: 0.88rem; padding: 0.3rem 0.6rem; }
  .nav .btn { padding: 0.4rem 0.85rem; font-size: 0.85rem; }
  .grille-livres { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
  .couv-titre { font-size: 1.05rem; }
}
