/* www/assets/css/pages-legales.css
   Typographie de lecture longue pour les mentions légales, la politique de
   confidentialité et les CGV. Chargée uniquement par ces trois pages :
   l'accueil ne la voit pas et ne peut donc pas en être affecté.

   Tout est dérivé des jetons de styles.css — couleurs, familles, échelle
   d'espacement. Aucune couleur ni famille n'est réintroduite ici. Le
   vocabulaire visuel est celui de l'accueil : titres en Barlow Condensed
   600 capitalisées par text-transform, filets de séparation en
   --color-divider, chapeaux de section en accent-700 espacés.
   ══════════════════════════════════════════════════════════════════════ */

.doc {
  /* Justification visée : 65-75 caractères par ligne.
     Attention, 1ch n'est PAS un caractère : c'est la largeur du chiffre « 0 »,
     nettement plus large que le caractère moyen en Barlow. Mesure faite sur
     le rendu réel : 68ch donnait 85 caractères de médiane. Le rapport observé
     est de 1,25 caractère par ch, d'où la valeur ci-dessous. */
  --doc-mesure: 55ch;
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(40px, 5vw, 72px) clamp(20px, 5vw, 72px) clamp(48px, 6vw, 88px);
}

/* — en-tête de document — */
.doc-kicker {
  display: block;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-accent-700);
  margin: 0;
}
.doc-tete > hr {
  height: 1px;
  border: 0;
  background: var(--color-divider);
  margin: 12px 0 40px;
}
.doc h1 {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: clamp(32px, 4.4vw, 56px);
  line-height: 1.06;
  letter-spacing: .01em;
  text-transform: uppercase;
  margin: 0 0 20px;
  max-width: 26ch;
}
.doc-chapo {
  font-size: 18px;
  line-height: 1.5;
  max-width: 56ch;
  margin: 0 0 8px;
}

/* — sommaire ancré — */
.doc-sommaire {
  border: 1px solid var(--color-divider);
  padding: 20px 24px;
  margin: 40px 0 8px;
  max-width: var(--doc-mesure);
}
.doc-sommaire h2 {
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-accent-700);
  margin: 0 0 14px;
}
.doc-sommaire ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 9px;
  counter-reset: sommaire;
  font-size: 15px;
}
/* Même principe que pour les listes du corps : puce positionnée, contenu du
   <li> laissé en flux inline. Ces entrées ne contiennent qu'un lien
   aujourd'hui, mais la grille se briserait dès qu'on y ajouterait du texte. */
.doc-sommaire li {
  position: relative;
  padding-left: 2.9em;
  counter-increment: sommaire;
}
.doc-sommaire li::before {
  content: counter(sommaire, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--font-heading);
  font-weight: 600;
  color: var(--color-accent-700);
  font-feature-settings: 'tnum' 1;
}
.doc-sommaire a { color: var(--color-text); text-decoration: none; }
.doc-sommaire a:hover { color: var(--color-accent); text-decoration: underline; }

/* — sections — */
.doc section { margin-top: clamp(36px, 4vw, 52px); }
.doc h2 {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.1;
  letter-spacing: .01em;
  text-transform: uppercase;
  margin: 0 0 6px;
  max-width: 34ch;
  padding-top: 18px;
  border-top: 1px solid var(--color-divider);
  /* compense la barre de navigation collante lors d'un saut d'ancre */
  scroll-margin-top: 84px;
}
.doc h3 {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 19px;
  line-height: 1.2;
  text-transform: uppercase;
  margin: 26px 0 8px;
  max-width: 40ch;
}
.doc p,
.doc li { max-width: var(--doc-mesure); }
.doc p {
  font-size: 17px;
  line-height: 1.65;
  margin: 0 0 16px;
}
.doc a { color: var(--color-accent-700); text-underline-offset: 3px; }
.doc strong { font-weight: 600; }

.doc ul,
.doc ol.doc-liste {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  display: grid;
  gap: 11px;
  font-size: 17px;
  line-height: 1.6;
}
/* Puces positionnées, et NON en grille.
   Un <li> en display:grid transforme chacun de ses enfants en item de
   grille — y compris chaque suite de texte. Un item « <strong>Téléphone</strong>
   — facultatif, pour… » produisait donc deux items : le <strong> en
   colonne 2, puis le texte retombant en colonne 1, large de 14 px, soit un
   mot par ligne. Le positionnement absolu laisse le contenu du <li> en flux
   inline normal, quel que soit le balisage qu'il contient. */
.doc ul > li { position: relative; padding-left: 26px; }
.doc ul > li::before {
  content: "+";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-accent-700);
}
.doc ol.doc-liste { counter-reset: puce; }
.doc ol.doc-liste > li {
  position: relative;
  padding-left: 2.9em;
  counter-increment: puce;
}
.doc ol.doc-liste > li::before {
  content: counter(puce, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--font-heading);
  font-weight: 600;
  color: var(--color-accent-700);
  font-feature-settings: 'tnum' 1;
}

/* — bloc d'identité (éditeur, hébergeur, responsable de traitement) — */
.doc-fiche {
  margin: 0 0 16px;
  max-width: var(--doc-mesure);
  display: grid;
  grid-template-columns: minmax(9em, auto) 1fr;
  gap: 10px 24px;
  font-size: 16px;
  line-height: 1.55;
}
.doc-fiche dt {
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--color-text) 65%, transparent);
  padding-top: 3px;
}
.doc-fiche dd { margin: 0; }

/* — marqueur de champ non renseigné : délibérément voyant, pour qu'aucune
     page ne parte en ligne avec un gabarit non rempli — */
.a-completer {
  background: var(--color-accent-200);
  color: var(--color-accent-900);
  border: 1px dashed var(--color-accent-600);
  padding: 1px 7px;
  font-size: .92em;
}

/* — encadré d'avertissement, dans le vocabulaire « blueprint » du système — */
.doc-avis {
  position: relative;
  border: 1px solid var(--color-divider);
  padding: 22px 24px;
  margin: clamp(36px, 4vw, 52px) 0 0;
  max-width: var(--doc-mesure);
  background: var(--color-surface);
}
.doc-avis h2 {
  border-top: 0;
  padding-top: 0;
  font-size: 17px;
  margin-bottom: 10px;
  max-width: none;
}
.doc-avis p { font-size: 15px; margin-bottom: 0; }
.doc-avis p + p { margin-top: 10px; }

/* — pied de document — */
.doc-pied {
  margin-top: clamp(40px, 5vw, 64px);
  padding-top: 18px;
  border-top: 1px solid var(--color-divider);
  max-width: var(--doc-mesure);
  font-size: 14px;
  color: color-mix(in srgb, var(--color-text) 65%, transparent);
}
.doc-pied p { font-size: 14px; margin: 0 0 6px; }
.doc-pied p:last-child { margin-bottom: 0; }
