/* Feuille commune aux pages légales de la vitrine (adr-0031).
 *
 * Séparée du HTML, contrairement à `index.html` qui garde son style en ligne :
 * la landing est une page unique et travaillée, les pages légales sont quatre
 * documents au même gabarit. Dupliquer 4 Ko de CSS quatre fois garantit qu'une
 * correction n'en atteint que trois.
 *
 * Même origine, donc aucun appel externe : la règle « rien de distant » est
 * tenue. Si le fichier manquait, le texte resterait lisible — c'est ce qui
 * compte pour un document légal.
 *
 * ## La palette ne vit plus ici
 *
 * Elle est dans `/theme.css`, généré depuis `couleurs.ts` par
 * `tools/couleurs/exporter_vitrine.py`. Elle était recopiée ici ET dans la
 * landing : deux copies d'une même palette, qui avaient fini par diverger de
 * deux générations (Lina violette, Sinan ambre). Ne remettre aucune valeur de
 * couleur en dur dans ce fichier.
 *
 * Cette feuille suppose donc `/theme.css` chargé AVANT elle. C'est le cas dans
 * les quatre pages légales et la 404.
 *
 * ## Le thème suit désormais le lecteur
 *
 * L'ancienne version imposait le sombre en permanence, au motif qu'« un
 * document légal qui change de couleur suggère deux versions du texte ».
 * L'argument ne tient pas : le TEXTE est le même, seul le contraste change, et
 * imposer un fond noir à qui lit un contrat en plein soleil est une gêne
 * réelle. La bascule de la landing vaut ici aussi — même clé de stockage, donc
 * un choix fait sur la page d'accueil est déjà appliqué en arrivant.
 */
:root {
  --r: 16px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--fond); color: var(--encre);
  font: 17px/1.65 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--lina); }

/* ── Barre de retour ──────────────────────────────────────────────────────
   Quelqu'un qui arrive ici depuis une fiche de boutique n'a AUCUN autre moyen
   de découvrir le produit : c'est souvent la première page vue du site. */
header.retour {
  border-bottom: 1px solid var(--trait);
  /* La couleur de la PAGE, pas celle des cartes.
     `var(--papier)` marchait tant que le site était sombre : #191614 sur
     #100e0c, deux presque-noirs, l'écart se lisait comme un relief. En clair
     c'est du blanc pur sur du crème — une bande qui ne raccorde pas, et un
     en-tête qui n'a plus rien à voir avec celui de la landing (laquelle prend
     déjà la couleur du fond). Le filet du dessous suffit à séparer. */
  background: var(--fond);
}
header.retour .dedans {
  max-width: 760px; margin: 0 auto; padding: 14px 22px;
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
}
header.retour .marque {
  font-weight: 700; letter-spacing: -.02em; font-size: 19px;
  color: var(--encre); text-decoration: none;
  display: inline-flex; align-items: center; gap: 9px;
}
/* Meme jeton que la landing : c'est le logo decoupe en rond, servi depuis
   `/favicon.svg`. Le lien de retour doit se reconnaitre d'un coup d'oeil. */
header.retour .marque::before {
  content: ""; width: 32px; height: 32px; border-radius: 50%; flex: none;
  background: url(/favicon.svg) center / cover no-repeat;
}
header.retour nav { margin-left: auto; display: flex; gap: 16px; flex-wrap: wrap;
                    align-items: center; }
header.retour nav a { color: var(--gris); text-decoration: none; font-size: 14.5px; }
header.retour nav a:hover, header.retour nav a[aria-current="page"] { color: var(--lina); }

/* ── Bascule clair / sombre ───────────────────────────────────────────────
   Le bouton est fabriqué par `/theme.js` et inséré dans le `<nav>` marqué
   `data-bascule`. Mêmes règles que la landing : l'icône montre le thème vers
   lequel on VA, et le choix se fait en CSS avec exactement les trois blocs de
   `theme.css` — un second mécanisme de thème finirait par en dire autre chose. */
.bascule {
  display: grid; place-items: center; width: 34px; height: 34px; flex: none;
  border-radius: 50%; cursor: pointer; padding: 0; background: none;
  color: var(--gris); border: 1px solid var(--trait);
  transition: color .2s, border-color .2s;
}
.bascule:hover { color: var(--encre); border-color: var(--gris-clair); }
.bascule:focus-visible { outline: 2px solid var(--lina); outline-offset: 2px; }
.bascule svg { width: 17px; height: 17px; display: block; }
.bascule .soleil { display: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="clair"]) .bascule .lune { display: none; }
  :root:not([data-theme="clair"]) .bascule .soleil { display: block; }
}
:root[data-theme="sombre"] .bascule .lune { display: none; }
:root[data-theme="sombre"] .bascule .soleil { display: block; }

main { max-width: 760px; margin: 0 auto; padding: 34px 22px 90px; }

h1 { font-size: 30px; line-height: 1.2; margin: 0 0 8px; letter-spacing: -.02em; }
h2 {
  font-size: 22px; margin: 42px 0 14px; padding-top: 22px;
  border-top: 1px solid var(--trait); letter-spacing: -.01em;
  /* Une ancre visée depuis l'application ne doit pas se coller sous l'encoche :
     le titre visé serait le seul élément invisible de l'écran. */
  scroll-margin-top: 16px;
}
h3 { font-size: 17px; margin: 26px 0 6px; }
p { margin: 0 0 12px; color: var(--gris); }
h2 + p, h3 + p { margin-top: 0; }
ul { margin: 0 0 12px; padding-left: 22px; color: var(--gris); }
li { margin-bottom: 5px; }
strong { color: var(--encre); }

.chapeau { color: var(--gris); margin-bottom: 4px; }
.maj { font-size: 14px; color: var(--gris-clair); }

.carte {
  background: var(--papier); border: 1px solid var(--trait);
  border-radius: var(--r); padding: 18px 20px; margin: 0 0 14px;
}
.carte p:last-child, .carte ul:last-child, .carte dl:last-child { margin-bottom: 0; }

dl { margin: 0; }
dt { font-weight: 700; margin-top: 12px; color: var(--encre); }
dt:first-child { margin-top: 0; }
dd { margin: 2px 0 0; color: var(--gris); }

/* Un tableau large ne doit JAMAIS faire défiler la page entière à
   l'horizontale : il défile dans son propre cadre. */
.tableau { overflow-x: auto; margin: 0 0 14px; }
table { border-collapse: collapse; width: 100%; min-width: 460px; font-size: 15px; }
th, td {
  text-align: left; vertical-align: top; padding: 9px 12px;
  border-bottom: 1px solid var(--trait); color: var(--gris);
}
th { color: var(--encre); font-weight: 700; }

footer {
  border-top: 1px solid var(--trait); margin-top: 48px; padding-top: 18px;
  font-size: 14px; color: var(--gris-clair);
}
footer a { color: var(--gris); }
footer .liens { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 12px; }
