/* ============================================================
   PAGES LEGALES — feuille commune
   Mentions legales, politique de confidentialite, cookies.
   Les trois documents partagent cette feuille plutot que de la
   repeter : ils seront relus et modifies ensemble, et une regle
   corrigee sur l'un doit l'etre sur les trois.
   Les jetons sont ceux de la page d'accueil, aux memes valeurs :
   une page legale qui arrive dans une autre couleur se lit comme
   un site tiers, ce qui est exactement l'inverse du but.
   ============================================================ */
:root{
  --bleu:#5542FD;
  --bleu-fonce:#3B27D9;
  --bleu-pale:#EFEDFF;
  --encre:#0C0C1B;
  --gris:#5B5B6E;
  --gris-clair:#9797A8;
  --trait:#E9E9EF;
  --fond:#FFFFFF;
  --ardoise:#F7F7FA;
  --ambre:#8A6100;
  --ambre-pale:#FFF6E0;
  --r-carte:14px;
  --sortie:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:92px;}
body{font-family:'Onest',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--fond);color:var(--gris);
  font-size:16.5px;line-height:1.68;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;}
h1,h2,h3{color:var(--encre);font-weight:700;line-height:1.14;
  letter-spacing:-.03em;text-wrap:balance;}
a{color:inherit;text-decoration:none;}
img{display:block;}
.wrap{width:min(1180px,calc(100% - 2*clamp(20px,4vw,44px)));margin-inline:auto;}

/* ---------- l'en-tete, identique a celui du site ---------- */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--trait);}
.nav{display:flex;align-items:center;gap:20px;height:68px;}
.logo{display:flex;align-items:center;gap:8px;}
.logo .mark{height:28px;width:auto;}
.logo .mot{height:21px;width:auto;margin-bottom:5px;}
.nav-droite{margin-left:auto;display:flex;align-items:center;gap:18px;}
.retour{font-size:14.5px;font-weight:500;color:#40404F;
  display:inline-flex;align-items:center;gap:7px;
  transition:color .2s ease;}
.retour:hover{color:var(--bleu);}
.retour svg{width:15px;height:15px;stroke:currentColor;stroke-width:2;fill:none;
  stroke-linecap:round;stroke-linejoin:round;}
.btn{display:inline-flex;align-items:center;gap:9px;background:var(--bleu);
  color:#fff;font-weight:600;font-size:14.5px;border-radius:11px;
  padding:11px 18px;white-space:nowrap;
  transition:background .2s ease,transform .2s var(--sortie);}
.btn:hover{background:var(--bleu-fonce);transform:translateY(-1px);}
.btn svg{width:16px;height:16px;stroke:#fff;stroke-width:2;fill:none;}
@media(max-width:620px){
  .retour span{display:none;}
  .btn{padding:10px 14px;}
}
/* Sur les tres petits ecrans, le logo ramene deja a l'accueil : la fleche
   de retour fait double emploi, et c'est elle qui faisait sortir le bouton
   du cadre. */
@media(max-width:460px){
  .retour{display:none;}
  .nav{gap:12px;}
  .btn{font-size:13.5px;padding:9px 13px;gap:7px;}
}

/* ---------- le titre du document ---------- */
.doc-tete{padding:clamp(38px,5.4vw,72px) 0 clamp(22px,2.6vw,34px);
  border-bottom:1px solid var(--trait);margin-bottom:clamp(28px,3.4vw,46px);}
.sur-titre{display:block;font-size:11.5px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--bleu);margin-bottom:15px;
  font-family:'League Spartan',sans-serif;}
.doc-tete h1{font-size:clamp(30px,4.2vw,50px);letter-spacing:-.04em;
  margin-bottom:16px;}
.doc-chapeau{font-size:17px;line-height:1.62;max-width:62ch;}
.doc-date{margin-top:18px;font-size:13.5px;color:var(--gris-clair);
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;}
.doc-date b{color:var(--gris);font-weight:600;}

/* ---------- la mise en page a deux colonnes ---------- */
.doc-corps{display:grid;grid-template-columns:232px minmax(0,1fr);
  gap:clamp(30px,4vw,70px);align-items:start;
  padding-bottom:clamp(50px,6vw,96px);}
@media(max-width:940px){
  .doc-corps{grid-template-columns:minmax(0,1fr);gap:26px;}
}

/* ---------- le sommaire ---------- */
.doc-sommaire{position:sticky;top:92px;font-size:14px;line-height:1.5;}
.doc-sommaire h2{font-size:11.5px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--gris-clair);margin-bottom:14px;
  font-family:'League Spartan',sans-serif;}
.doc-sommaire ol{list-style:none;counter-reset:som;
  border-left:1px solid var(--trait);}
.doc-sommaire li{counter-increment:som;}
.doc-sommaire a{display:flex;gap:9px;padding:7px 0 7px 14px;margin-left:-1px;
  border-left:1px solid transparent;color:var(--gris);
  transition:color .2s ease,border-color .2s ease;}
.doc-sommaire a::before{content:counter(som) ".";color:var(--gris-clair);
  font-variant-numeric:tabular-nums;flex-shrink:0;
  transition:color .2s ease;}
.doc-sommaire a:hover{color:var(--encre);border-left-color:var(--trait);}
.doc-sommaire a:hover::before{color:var(--bleu);}
@media(max-width:940px){
  .doc-sommaire{position:static;background:var(--ardoise);
    border:1px solid var(--trait);border-radius:var(--r-carte);
    padding:20px 22px;}
  .doc-sommaire ol{columns:2;column-gap:26px;border-left:0;}
  .doc-sommaire a{padding-left:0;border-left:0;}
}
@media(max-width:560px){ .doc-sommaire ol{columns:1;} }

/* ---------- le corps du texte ---------- */
.doc-texte{max-width:72ch;counter-reset:sec;}
.doc-texte section{counter-increment:sec;}
.doc-texte section + section{margin-top:clamp(34px,3.6vw,52px);}
.doc-texte h2{font-size:clamp(20px,1.9vw,25px);margin-bottom:16px;
  display:flex;gap:12px;align-items:baseline;scroll-margin-top:92px;}
.doc-texte h2::before{content:counter(sec) ".";color:var(--bleu);
  font-variant-numeric:tabular-nums;flex-shrink:0;}
.doc-texte h3{font-size:16.5px;margin:26px 0 10px;letter-spacing:-.015em;}
.doc-texte p + p{margin-top:13px;}
.doc-texte ul,.doc-texte ol{margin:13px 0 0;padding-left:0;list-style:none;}
.doc-texte li + li{margin-top:9px;}
.doc-texte ul > li{position:relative;padding-left:20px;}
.doc-texte ul > li::before{content:'';position:absolute;left:4px;top:.72em;
  width:5px;height:5px;border-radius:50%;background:var(--bleu);opacity:.5;}
.doc-texte ol{counter-reset:pt;}
.doc-texte ol > li{position:relative;padding-left:26px;counter-increment:pt;}
.doc-texte ol > li::before{content:counter(pt) ".";position:absolute;left:0;
  color:var(--gris-clair);font-variant-numeric:tabular-nums;}
.doc-texte strong{color:var(--encre);font-weight:600;}
.doc-texte a:not(.btn){color:var(--bleu);text-decoration:underline;
  text-underline-offset:3px;text-decoration-thickness:1px;
  text-decoration-color:rgba(85,66,253,.35);
  transition:text-decoration-color .2s ease;}
.doc-texte a:not(.btn):hover{text-decoration-color:var(--bleu);}
.doc-texte abbr{text-decoration:none;border-bottom:1px dotted var(--gris-clair);
  cursor:help;}

/* ---------- le bloc d'identite et les tableaux ---------- */
.fiche{background:var(--ardoise);border:1px solid var(--trait);
  border-radius:var(--r-carte);padding:clamp(18px,2vw,26px);margin-top:16px;}
.fiche dl{display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:10px 20px;font-size:15px;}
.fiche dt{color:var(--gris-clair);white-space:nowrap;}
.fiche dd{color:var(--encre);min-width:0;overflow-wrap:anywhere;}
@media(max-width:560px){
  .fiche dl{grid-template-columns:minmax(0,1fr);gap:2px;}
  .fiche dd + dt{margin-top:12px;}
}

.tableau{margin-top:16px;overflow-x:auto;
  border:1px solid var(--trait);border-radius:var(--r-carte);}
.tableau table{width:100%;border-collapse:collapse;font-size:14.5px;
  min-width:520px;}
.tableau th,.tableau td{text-align:left;padding:12px 16px;
  vertical-align:top;border-bottom:1px solid var(--trait);}
.tableau thead th{background:var(--ardoise);color:var(--encre);
  font-weight:600;font-size:13px;letter-spacing:.01em;white-space:nowrap;}
.tableau tbody tr:last-child td{border-bottom:0;}
.tableau td:first-child{color:var(--encre);font-weight:500;}

/* ---------- l'encadre de rappel ---------- */
.encart{margin-top:18px;border:1px solid var(--trait);border-left:3px solid var(--bleu);
  border-radius:0 var(--r-carte) var(--r-carte) 0;
  background:var(--bleu-pale);padding:16px 20px;font-size:15px;}
.encart p + p{margin-top:10px;}
.encart strong{color:var(--encre);}

/* ---------- ce qui reste a completer ----------
   Volontairement voyant : ces champs ne peuvent pas etre devines, et
   une page legale mise en ligne avec un trou se remarque. Un seul
   « a-completer » dans le fichier suffit a les retrouver tous. */
.a-completer{background:var(--ambre-pale);color:var(--ambre);
  border:1px dashed rgba(138,97,0,.4);border-radius:6px;
  padding:1px 7px;font-size:.92em;font-weight:600;
  white-space:normal;}

/* ---------- le pied de page ---------- */
footer{border-top:1px solid var(--trait);background:#fff;padding:36px 0;}
.pied{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.pied .logo .mark{height:26px;}
.pied .logo .mot{height:19px;}
.pied .baseline{font-size:14px;color:var(--gris-clair);}
.pied-liens{margin-left:auto;display:flex;align-items:center;gap:24px;
  flex-wrap:wrap;font-size:14.5px;color:var(--gris-clair);}
.pied-liens a{transition:color .2s ease;}
.pied-liens a:hover{color:var(--bleu);}
.pied-liens a[aria-current]{color:var(--encre);font-weight:600;}
@media(max-width:700px){
  .pied-liens{margin-left:0;gap:16px;font-size:14px;}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition:none !important;animation:none !important;}
}
