/*
 * LES PAGES QUI ENGAGENT — politique de confidentialité et CGV (point 04, D172).
 *
 * ⚠️⚠️ **UNE PAGE JURIDIQUE SE LIT SANS JAVASCRIPT, ET C'EST LA SEULE CONTRAINTE QUI A DÉCIDÉ DE
 * SA FORME.** Le patron du dépôt pour une page multilingue est une table de chaînes en JS
 * (`site/bienvenue/mots.js`), et il est **écarté ici** : si le script ne charge pas, la page est
 * VIDE. Sur un écran de bienvenue c'est un défaut ; sur la politique de confidentialité c'est le
 * relecteur du Chrome Web Store qui voit une page blanche à l'URL obligatoire du formulaire, et
 * c'est un motif de refus. Le texte est donc dans le HTML, en dur, une page par langue.
 *
 * ⚠️ **Cette feuille est le SEUL endroit qui décrit ces six pages.** Si elle ne charge pas non
 * plus, elles restent entièrement lisibles — c'est du HTML sémantique, et c'est délibéré : la
 * dégradation d'un document qui engage doit être « moins beau », jamais « moins complet ».
 *
 * ⚠️ Les jetons sont recopiés de `DESIGN.md`, comme le fait `site/connexion/index.html` : le site
 * ne partage pas la feuille du panneau (elle vit dans un Shadow DOM et pèse 400 Ko). Les valeurs
 * qui comptent ici sont peu nombreuses, et une divergence de teinte sur une page de texte ne
 * casse rien — contrairement à une divergence de RÈGLE, qui, elle, est interdite (leçon 35).
 */

:root {
  --lg-vert-50: #edf7f1;
  --lg-vert-100: #d2e9db;
  --lg-vert-500: #3e9e63;
  --lg-vert-600: #2f7f4e;
  --lg-vert-700: #24633c;
  --lg-gris-200: #dde3df;
  --lg-gris-300: #c3ccc7;
  --lg-gris-600: #6e7c73;
  --lg-gris-900: #333b36;

  /* Le papier du panneau, pas du blanc — c'est le fond de tout le produit. */
  --lg-papier: #f8f5ee;
  --lg-blanc: #fffdf8;
  --lg-texte: var(--lg-gris-900);
  --lg-texte-doux: var(--lg-gris-600);

  --lg-titre: "Bricolage Grotesque", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lg-corps: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

@font-face { font-family: "Bricolage Grotesque"; font-weight: 400; font-display: swap;
  src: url("../polices/bricolage-grotesque-v9-latin-regular.woff2") format("woff2"); }
@font-face { font-family: "Bricolage Grotesque"; font-weight: 600; font-display: swap;
  src: url("../polices/bricolage-grotesque-v9-latin-600.woff2") format("woff2"); }
@font-face { font-family: "Bricolage Grotesque"; font-weight: 800; font-display: swap;
  src: url("../polices/bricolage-grotesque-v9-latin-800.woff2") format("woff2"); }

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

body {
  background: var(--lg-papier);
  color: var(--lg-texte);
  font: 16px/1.62 var(--lg-corps);
  /*
   * ⚠️ `color-scheme: light` en dur. D139 a écarté le mode sombre de la v1 et le panneau le force
   * de la même façon : sans ça, un navigateur en thème sombre repeint les champs et les bordures
   * par-dessus une palette claire, et le document devient illisible par endroits.
   */
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
}

.page { max-width: 46rem; margin: 0 auto; padding: 32px 24px 96px; }

/* ── LE BANDEAU ───────────────────────────────────────────────────────────────────────────── */

.haut {
  display: flex; flex-wrap: wrap; gap: 16px;
  align-items: center; justify-content: space-between;
  padding-bottom: 16px; margin-bottom: 32px;
  border-bottom: 2px solid var(--lg-gris-200);
}

/*
 * ⚠️ C'est un `<a>` depuis le point 45, et ça ne l'était pas : `sert.mjs` servait
 * `terrain/index.html` à la racine, donc un lien vers `/` aurait déposé le relecteur du Chrome
 * Web Store sur une démo WebGL en plein écran. Il sert maintenant `site/index.html`.
 * ⚠️ **Chaque page pointe sur la racine de SA langue** (`/`, `/fr/`, `/es/`) — pas sur `/`, qui
 * est la page anglaise. La règle vaut pour les deux éléments : le style tient dans les deux cas.
 */
.marque {
  font-family: var(--lg-titre); font-weight: 800; font-size: 20px;
  color: var(--lg-vert-700); text-decoration: none; letter-spacing: -0.01em;
}
a.marque:hover { color: var(--lg-vert-600); }

/*
 * Le sélecteur de langue. Trois `<a>`, jamais un `<select>` : un menu déroulant a besoin de
 * JavaScript pour naviguer, et c'est exactement ce qu'on refuse ici.
 */
.langues { display: flex; gap: 4px; }
.langues a {
  font-family: var(--lg-titre); font-weight: 800; font-size: 12px;
  text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--lg-texte-doux); text-decoration: none;
  padding: 5px 10px; border-radius: 999px;
}
.langues a:hover { background: var(--lg-vert-50); color: var(--lg-vert-700); }
.langues a[aria-current="page"] {
  background: var(--lg-vert-500); color: var(--lg-blanc);
}

/* ── LE TITRE ─────────────────────────────────────────────────────────────────────────────── */

h1 {
  font-family: var(--lg-titre); font-weight: 800; font-size: 40px; line-height: 1.1;
  letter-spacing: -0.02em; margin-bottom: 8px;
}
.date { color: var(--lg-texte-doux); font-size: 14px; font-weight: 600; }

/*
 * L'encart d'ouverture. Il dit en trois phrases ce que le document met onze sections à établir,
 * parce que **presque personne ne lit une politique en entier** — et que ce qu'on a à dire tient
 * en trois phrases vraies.
 */
.chapo {
  background: var(--lg-vert-50);
  border: 2px solid var(--lg-vert-100);
  border-bottom-width: 4px;
  border-radius: 16px;
  padding: 20px 24px;
  margin: 24px 0 8px;
}
.chapo p + p { margin-top: 12px; }
.chapo strong { color: var(--lg-vert-700); }

/* ── LES SECTIONS ─────────────────────────────────────────────────────────────────────────── */

section { margin-top: 40px; }

h2 {
  font-family: var(--lg-titre); font-weight: 800; font-size: 21px;
  letter-spacing: -0.01em;
  padding-bottom: 8px; margin-bottom: 16px;
  border-bottom: 2px solid var(--lg-gris-200);
}
h3 {
  font-family: var(--lg-titre); font-weight: 800; font-size: 15px;
  margin: 24px 0 8px;
}

p + p, p + ul, ul + p, p + .bloc, .bloc + p, ul + .bloc, .bloc + .bloc, p + table,
table + p, .bloc + table, table + .bloc, h3 + table { margin-top: 12px; }

ul { padding-left: 22px; }
li { margin: 6px 0; }
li > strong, p > strong { font-weight: 700; }

a { color: var(--lg-vert-700); }
a:hover { color: var(--lg-vert-600); }

code {
  font: 600 13.5px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
  background: var(--lg-vert-50); border: 1px solid var(--lg-vert-100);
  border-radius: 6px; padding: 1px 5px;
}

/* Un bloc de faits — l'identité de l'éditeur, une adresse, une durée. */
.bloc {
  background: var(--lg-blanc);
  border: 2px solid var(--lg-gris-200);
  border-bottom-width: 4px;
  border-radius: 16px;
  padding: 16px 20px;
}
.bloc dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 20px; }
.bloc dt {
  font-family: var(--lg-titre); font-weight: 800; font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--lg-texte-doux); padding-top: 3px;
}

/*
 * L'encart qui porte une promesse. Il est vert parce que dans tout ce produit le vert veut dire
 * « acquis, tenu » (`DESIGN.md` : l'or « réservé à l'acquis » n'a jamais existé, l'acquis est
 * vert). Réservé aux phrases qu'on peut prouver dans le code.
 */
.tenu {
  background: var(--lg-vert-50);
  border: 2px solid var(--lg-vert-100);
  border-left-width: 6px;
  border-radius: 0 16px 16px 0;
  padding: 14px 20px;
}
.tenu strong { color: var(--lg-vert-700); }

/*
 * L'encart qui porte une RÉSERVE — ce qu'on ne peut pas promettre. Gris, jamais rouge : le rouge
 * est la couleur d'alerte du produit et il ne sert qu'au bouton de suppression. Une réserve
 * honnête n'est pas une alarme.
 */
.reserve {
  background: var(--lg-papier);
  border: 2px solid var(--lg-gris-300);
  border-left-width: 6px;
  border-radius: 0 16px 16px 0;
  padding: 14px 20px;
}

/* ── LES TABLEAUX DE SOUS-TRAITANTS ET DE DURÉES ──────────────────────────────────────────── */

/*
 * ⚠️ Le conteneur défile tout seul (`overflow-x: auto`) : un tableau à quatre colonnes ne rentre
 * pas dans un téléphone, et sans ça c'est la PAGE qui défile latéralement — ce qui rend le corps
 * du texte impossible à lire.
 */
.tab { overflow-x: auto; border-radius: 16px; border: 2px solid var(--lg-gris-200);
  border-bottom-width: 4px; background: var(--lg-blanc); }
table { border-collapse: collapse; width: 100%; font-size: 14.5px; }
th, td { text-align: left; padding: 10px 16px; vertical-align: top; }
th {
  font-family: var(--lg-titre); font-weight: 800; font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--lg-texte-doux); background: var(--lg-vert-50);
  white-space: nowrap;
}
tbody tr + tr td { border-top: 1px solid var(--lg-gris-200); }
td:first-child { font-weight: 700; white-space: nowrap; }

/* ── LE PIED ──────────────────────────────────────────────────────────────────────────────── */

footer {
  margin-top: 56px; padding-top: 20px;
  border-top: 2px solid var(--lg-gris-200);
  display: flex; flex-wrap: wrap; gap: 8px 24px;
  font-size: 14px; color: var(--lg-texte-doux);
}

@media (max-width: 560px) {
  .page { padding: 24px 16px 72px; }
  h1 { font-size: 30px; }
  .bloc dl { grid-template-columns: 1fr; gap: 2px; }
  .bloc dt { padding-top: 10px; }
}
