/* Feuille de style commune aux pages légales.
   Reprend les jetons de design de index.html. */

:root{
  --encre:#14171C;
  --encre-2:#20252D;
  --violet:#513263;
  --violet-clair:#6B4482;
  --jaune:#FEB712;
  --rouge:#ED4A43;
  --plaque:#E9E7E2;
  --plaque-2:#F3F1ED;
  --blanc:#FFFFFF;
  --texte:#14171C;
  --texte-doux:#565E6B;
  --texte-inverse:#E9E7E2;
  --texte-inverse-doux:#A4ABB6;
  --ligne:#D4D0C8;
  --r-s:3px;
  --r-m:6px;
  --max:820px;
  --gouttiere:clamp(20px, 5vw, 48px);
  --ombre-nette:4px 4px 0 var(--encre);
  --t:200ms cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--plaque-2);
  color:var(--texte);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}

.enveloppe{max-width:var(--max);margin:0 auto;padding-inline:var(--gouttiere)}

/* ---------- En-tête ---------- */
.entete{
  background:var(--encre);
  color:var(--texte-inverse);
  border-bottom:3px solid var(--jaune);
}
.entete__interieur{
  max-width:var(--max);margin:0 auto;padding:18px var(--gouttiere);
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
.marque{
  font-family:'Archivo',system-ui,sans-serif;
  font-weight:900;font-size:19px;letter-spacing:-.01em;
  color:var(--plaque);text-decoration:none;line-height:1.1;
}
.marque span{
  display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10px;font-weight:500;letter-spacing:.13em;
  color:var(--texte-inverse-doux);text-transform:uppercase;margin-top:3px;
}
.retour{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--texte-inverse-doux);text-decoration:none;
  border-bottom:1px solid transparent;transition:color var(--t),border-color var(--t);
}
.retour:hover{color:var(--jaune);border-bottom-color:var(--jaune)}

/* ---------- Corps ---------- */
main{padding:clamp(40px,7vw,72px) 0 clamp(56px,8vw,96px)}

.chapeau{margin-bottom:44px}
.surtitre{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--violet);margin:0 0 14px;
}
h1{
  font-family:'Archivo',system-ui,sans-serif;
  font-weight:900;font-size:clamp(30px,5.2vw,46px);line-height:1.08;
  letter-spacing:-.02em;margin:0 0 18px;
}
.chapeau p{color:var(--texte-doux);margin:0;max-width:60ch}
.maj{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12.5px;color:var(--texte-doux);
  margin-top:22px;padding-top:16px;border-top:1px solid var(--ligne);
}

h2{
  font-family:'Archivo',system-ui,sans-serif;
  font-weight:800;font-size:clamp(21px,3vw,26px);line-height:1.2;
  letter-spacing:-.01em;margin:52px 0 16px;padding-top:8px;
  border-top:2px solid var(--encre);
}
h2 .num{
  display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12px;font-weight:600;letter-spacing:.1em;color:var(--violet);
  margin-bottom:6px;
}
h3{
  font-family:'Archivo',system-ui,sans-serif;
  font-weight:700;font-size:18px;margin:30px 0 10px;letter-spacing:-.005em;
}

p{margin:0 0 16px}
ul,ol{margin:0 0 18px;padding-left:22px}
li{margin-bottom:9px}
li::marker{color:var(--violet)}
strong{font-weight:600}
a{color:var(--violet);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
a:hover{color:var(--violet-clair)}

/* ---------- Blocs ---------- */
.fiche{
  background:var(--blanc);
  border:2px solid var(--encre);
  border-radius:var(--r-m);
  box-shadow:var(--ombre-nette);
  padding:clamp(22px,3.5vw,32px);
  margin:0 0 28px;
}
.fiche > :last-child{margin-bottom:0}

dl.champs{margin:0;display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:10px 24px}
dl.champs dt{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--texte-doux);padding-top:3px;
}
dl.champs dd{margin:0}
@media (max-width:600px){
  dl.champs{grid-template-columns:1fr;gap:2px}
  dl.champs dt{margin-top:14px}
  dl.champs dd{padding-bottom:2px}
}

.encart{
  background:var(--plaque);
  border-left:4px solid var(--violet);
  border-radius:0 var(--r-s) var(--r-s) 0;
  padding:18px 22px;margin:0 0 24px;
}
.encart > :last-child{margin-bottom:0}
.encart__titre{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--violet);margin:0 0 8px;
}
.encart--alerte{border-left-color:var(--rouge)}
.encart--alerte .encart__titre{color:var(--rouge)}

/* Champ que l'éditeur doit renseigner avant mise en ligne. */
.tbd{
  background:var(--jaune);
  color:var(--encre);
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:.86em;font-weight:600;
  padding:1px 7px;border-radius:var(--r-s);
  white-space:nowrap;
}

/* Sommaire */
.sommaire{
  background:var(--blanc);border:2px solid var(--encre);border-radius:var(--r-m);
  padding:24px clamp(20px,3vw,28px);margin:0 0 44px;
}
.sommaire h2{
  margin:0 0 14px;border:0;padding:0;font-size:14px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--texte-doux);
}
.sommaire ol{
  margin:0;padding:0;list-style:none;
  columns:2;column-gap:32px;
}
@media (max-width:620px){.sommaire ol{columns:1}}
.sommaire li{
  margin-bottom:7px;break-inside:avoid;
  font-size:15px;
}
.sommaire a{text-decoration:none;color:var(--texte)}
.sommaire a:hover{color:var(--violet);text-decoration:underline}
.sommaire .num{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12px;color:var(--violet);margin-right:8px;
}

/* Tableau */
.tableau{overflow-x:auto;margin:0 0 24px;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;min-width:460px;font-size:15.5px;background:var(--blanc)}
th,td{border:1px solid var(--ligne);padding:11px 14px;text-align:left;vertical-align:top}
thead th{
  background:var(--encre);color:var(--texte-inverse);
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  border-color:var(--encre);
}

/* ---------- Pied ---------- */
.pied{
  background:var(--encre);color:var(--texte-inverse-doux);
  padding:36px 0;font-size:14.5px;margin-top:60px;
}
.pied__interieur{
  max-width:var(--max);margin:0 auto;padding-inline:var(--gouttiere);
  display:flex;justify-content:space-between;gap:16px 28px;flex-wrap:wrap;align-items:center;
}
.pied a{color:var(--texte-inverse);text-decoration:none;border-bottom:1px solid rgba(233,231,226,.3)}
.pied a:hover{color:var(--jaune);border-bottom-color:var(--jaune)}
.pied nav{display:flex;gap:22px;flex-wrap:wrap}

:target{scroll-margin-top:24px}
a:focus-visible,.retour:focus-visible{outline:3px solid var(--violet);outline-offset:3px;border-radius:2px}
@media print{
  .entete,.pied,.retour{display:none}
  body{background:#fff;font-size:11pt}
  .fiche{box-shadow:none}
}

/* Libellé réservé aux lecteurs d écran */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
caption{text-align:left}

/* Bouton presente comme un lien : retrait du consentement. */
.lien-bouton{
  font:inherit;color:var(--violet);background:none;border:0;padding:0;
  text-decoration:underline;text-underline-offset:2px;cursor:pointer;
}
.lien-bouton:hover{color:var(--violet-clair)}
.lien-bouton:focus-visible{outline:2px solid var(--jaune);outline-offset:2px}
