/* ===========================================================================
   BatAO — feuille de style du site public
   Indice B, 19/09/2026. Reprend le système visuel de la v3 validée le 11/09 :
   planches nuit, bande ocre, Syne 800, écrans superposés, champs soulignés.
   Corrections du 19/09 : fontes auto-hébergées (aucune requête tierce, donc
   aucun transfert d'adresse IP hors du serveur), contrastes portés au niveau
   AA, grilles qui savent rétrécir sur mobile.
   Régénérer les fontes : npm i @fontsource/{syne,spectral,ibm-plex-mono}
   =========================================================================== */

@font-face{font-family:"Syne";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/syne-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Syne";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/syne-latin-ext-500-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Syne";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/syne-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Syne";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/syne-latin-ext-600-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Syne";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/syne-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Syne";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/syne-latin-ext-700-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Syne";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/syne-latin-800-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Syne";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/syne-latin-ext-800-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Spectral";font-style:normal;font-weight:300;font-display:swap;src:url("/fonts/spectral-latin-300-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Spectral";font-style:normal;font-weight:300;font-display:swap;src:url("/fonts/spectral-latin-ext-300-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Spectral";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/spectral-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Spectral";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/spectral-latin-ext-400-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Spectral";font-style:italic;font-weight:400;font-display:swap;src:url("/fonts/spectral-latin-400-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Spectral";font-style:italic;font-weight:400;font-display:swap;src:url("/fonts/spectral-latin-ext-400-italic.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Spectral";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/spectral-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Spectral";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/spectral-latin-ext-600-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-latin-ext-400-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-mono-latin-ext-500-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex-mono-latin-ext-600-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

:root{
  --papier:#FAF7F2;
  --papier-clair:#FFFFFF;
  --papier-creux:#F1EBE1;
  --encre:#191510;
  --encre-60:rgba(25,21,16,.74);
  --encre-40:rgba(25,21,16,.62);
  --filet:rgba(25,21,16,.14);
  --filet-fort:rgba(25,21,16,.30);
  --bleu:#1D4FD7;
  --bleu-profond:#132A75;
  --bleu-pale:#E3E8FB;
  --ocre:#B45309;
    --ocre-texte:#964307;
  --ocre-vif:#D97706;
  --ocre-pale:#FAEBD4;
  --vert:#1F7A4D;
  --nuit:#132A75;

  --dp:"Syne","Helvetica Neue",Arial,sans-serif;
  --tx:"Spectral",Georgia,"Times New Roman",serif;
  --mo:"IBM Plex Mono",ui-monospace,Menlo,monospace;

  --marge:clamp(20px,4.5vw,64px);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--papier);
  color:var(--encre);
  font-family:var(--tx);
  font-size:17px;
  font-weight:400;
  line-height:1.58;
  font-synthesis-weight:none;
}
img{max-width:100%;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--bleu);outline-offset:3px;}
::selection{background:var(--bleu);color:#fff;}

.feuille{padding-inline:var(--marge);}
.mono{font-family:var(--mo);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:500;}

/* ---------- CARTOUCHE ---------- */
.cartouche{
  border-bottom:1px solid var(--filet-fort);
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:24px;
  padding-block:14px;
}
.sceau{font-family:var(--dp);font-weight:800;font-size:22px;letter-spacing:-.04em;}
.sceau em{font-style:normal;font-weight:600;color:var(--encre-40);}
.cartouche-lignes{display:flex;gap:clamp(14px,3vw,40px);flex-wrap:wrap;color:var(--encre-40);}
.cartouche nav{display:flex;gap:clamp(14px,2.4vw,30px);flex-wrap:wrap;}
.cartouche nav a{text-decoration:none;color:var(--encre-60);}
.cartouche nav a:hover{color:var(--bleu);}

/* ---------- ARTICLE ---------- */
.art{
  border-bottom:1px solid var(--filet);
  display:grid;
  grid-template-columns:132px minmax(0,1fr);
  gap:0 40px;
  padding-block:clamp(56px,7vw,104px);
}
.art--nu{border-bottom:0;}
.art-num{
  position:sticky;top:24px;align-self:start;
  color:var(--encre-40);
  line-height:1.5;
}
.art-num b{display:block;color:var(--bleu);font-weight:600;}
.art-corps{min-width:0;}
  .art>*,.aveu>*,.accroche>*,.duo-entreprise>*{min-width:0;}

h1,h2,h3{font-family:var(--dp);margin:0;}
  h2,h3{text-wrap:balance;}
h1{
  font-size:clamp(38px,6.2vw,80px);
  line-height:.96;
  font-weight:800;
  letter-spacing:-.045em;
}
h2{
  font-size:clamp(27px,4vw,46px);
  line-height:1.02;
  font-weight:700;
  letter-spacing:-.035em;
  max-width:16ch;
}
h2.long{max-width:22ch;}
h3{font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.2;}
p{margin:0 0 18px;max-width:62ch;}
.intro{font-size:clamp(18px,1.55vw,21px);line-height:1.5;color:var(--encre-60);font-weight:300;}
.apres-titre{margin-top:26px;}

/* ---------- OUVERTURE ---------- */
.ouverture{padding-block:clamp(46px,6vw,76px) 0;border-bottom:1px solid var(--filet);}
.ouverture h1{max-width:17ch;}
.accroche{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);
  gap:clamp(28px,5vw,56px);align-items:end;
}
.pile{position:relative;}
.pile>.ecran:last-child{position:relative;z-index:2;width:94%;}
.accroche-texte{padding-bottom:8px;}
.ouverture .intro{margin-top:30px;max-width:46ch;}
.boutons{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px;}
.bt{
  font-family:var(--dp);font-weight:700;font-size:14.5px;letter-spacing:-.01em;
  padding:13px 24px;text-decoration:none;border:1px solid var(--encre);border-radius:4px;
  display:inline-block;transition:background .14s,color .14s;
}
.bt--plein{background:var(--encre);color:var(--papier);}
.bt--plein:hover{background:var(--bleu);border-color:var(--bleu);color:#fff;}
.bt--creux:hover{background:var(--encre);color:var(--papier);}
.laius{margin-top:22px;color:var(--encre-40);font-family:var(--mo);font-size:11.5px;letter-spacing:.02em;line-height:1.7;text-transform:none;}

/* bandeau de mesures, comme une échelle de plan */
.echelle{
  display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--filet-fort);margin-top:clamp(40px,5vw,66px);
}
.echelle div{
  flex:1 1 180px;padding:16px 24px 18px;border-left:1px solid var(--filet);
}
.echelle div:first-child{padding-left:0;border-left:0;}
.echelle b{display:block;font-family:var(--dp);font-size:clamp(22px,2.4vw,30px);font-weight:800;letter-spacing:-.035em;margin-bottom:3px;color:var(--bleu-profond);}
.echelle span{color:var(--encre-40);font-family:var(--mo);font-size:11px;letter-spacing:.1em;text-transform:uppercase;}

/* ---------- MAQUETTE PORTAIL ---------- */
.ecran{background:#fff;border-radius:7px;overflow:hidden;box-shadow:0 1px 2px rgba(25,21,16,.06),0 18px 44px -16px rgba(19,42,117,.30);}
.ecran--arriere{width:86%;margin-left:14%;margin-bottom:-30px;box-shadow:0 12px 30px -16px rgba(19,42,117,.30);}
.ecran-tete{background:var(--nuit);display:flex;align-items:center;gap:10px;padding:11px 14px;}
.ecran-marque{width:26px;height:26px;background:#fff;color:var(--nuit);display:flex;align-items:center;justify-content:center;font-family:var(--dp);font-weight:800;font-size:11px;}
.ecran-tete b{font-family:var(--dp);font-size:12px;font-weight:700;color:#fff;letter-spacing:.04em;}
.ecran-tete i{margin-left:auto;font-style:normal;font-family:var(--mo);font-size:10.5px;color:rgba(255,255,255,.5);}
.ecran-corps{padding:18px 16px 20px;}
.ecran-corps>h4{font-family:var(--dp);font-size:17px;font-weight:700;letter-spacing:-.025em;margin:0 0 3px;line-height:1.15;}
.ecran-lieu{font-family:var(--mo);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--encre-40);margin:0 0 16px;}
.ecran-paire{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ecran-case{border:1px solid var(--filet);padding:12px;}
.ecran-case--delai{background:var(--ocre-pale);border-color:#E0C79E;}
.ecran-case p{margin:0 0 5px;font-size:11.5px;color:var(--encre-60);}
.compte{font-family:var(--dp);font-size:31px;font-weight:800;color:var(--ocre);line-height:1;letter-spacing:-.04em;}
.compte+span{font-family:var(--dp);font-size:13px;font-weight:700;color:var(--ocre);margin-left:3px;}
.jusqu{font-family:var(--mo);font-size:9.5px;color:#8A6431;margin:8px 0 0;line-height:1.5;letter-spacing:.01em;}
.etapes{list-style:none;margin:0;padding:0;font-size:12px;}
.etapes li{display:flex;gap:8px;align-items:center;padding:4px 0;}
.pt{width:14px;height:14px;border-radius:50%;flex:none;}
.pt--ok{background:var(--vert);}
.pt--cours{border:2px solid var(--ocre);}
.pt--tard{border:2px solid var(--filet-fort);}
.etapes .cours{color:var(--ocre);font-weight:600;}
.etapes .tard{color:var(--encre-40);}

table.mini{width:100%;border-collapse:collapse;min-width:0;}
table.mini td{padding:11px 14px;border-bottom:1px solid var(--filet);font-size:13px;text-align:left;}
table.mini tr:last-child td{border-bottom:0;}
table.mini td.m{text-align:right;font-family:var(--mo);font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap;}
table.mini td.e{text-align:right;font-family:var(--mo);font-size:11px;color:var(--encre-40);white-space:nowrap;}
table.mini td.e--bas{color:var(--vert);font-weight:600;}

/* ---------- RESPIRATION ---------- */
.respiration{
  margin-inline:calc(var(--marge)*-1);
  padding:clamp(52px,6.5vw,90px) var(--marge);
  background:var(--ocre-pale);
  border-block:1px solid rgba(180,83,9,.22);
}
.respiration blockquote{
  margin:0;font-family:var(--dp);font-weight:700;
  font-size:clamp(24px,3.6vw,42px);line-height:1.06;letter-spacing:-.035em;
  max-width:20ch;color:#6B3A05;
}
.respiration p{margin:22px 0 0;color:#8A5A22;max-width:48ch;font-size:17px;}

/* ---------- DEUX COLONNES DE CONSTAT ---------- */
.constat{display:grid;grid-template-columns:1fr 1fr;gap:0 44px;margin-top:34px;}
.constat>div{border-top:2px solid var(--filet-fort);padding-top:16px;}
.constat h3{margin-bottom:12px;color:var(--encre-40);}
.constat h3.oui{color:var(--bleu);}
.constat ul{list-style:none;margin:0;padding:0;}
.constat li{padding:8px 0 8px 22px;position:relative;font-size:16px;line-height:1.45;}
.constat li::before{position:absolute;left:0;top:8px;font-family:var(--mo);font-size:13px;}
.non li::before{content:"—";color:var(--encre-40);}
.non li{color:var(--encre-60);}
.oui-l li::before{content:"→";color:var(--bleu);}

/* ---------- DÉROULEMENT ---------- */
.deroule{list-style:none;margin:32px 0 0;padding:0;counter-reset:d;}
.deroule li{
  counter-increment:d;
  display:grid;grid-template-columns:46px minmax(0,210px) minmax(0,1fr);gap:20px;
  padding:15px 0;border-top:1px solid var(--filet);align-items:baseline;
}
.deroule li:last-child{border-bottom:1px solid var(--filet);}
.deroule li::before{
  content:counter(d,decimal-leading-zero);
  font-family:var(--mo);font-size:11.5px;font-weight:600;color:var(--bleu);letter-spacing:.08em;
}
.deroule b{font-family:var(--dp);font-size:16px;font-weight:700;letter-spacing:-.02em;}
.deroule span{color:var(--encre-60);font-size:15.5px;line-height:1.5;}

/* ---------- PLANCHE SOMBRE (LA PREUVE) ---------- */
.planche{background:var(--nuit);color:#EDEDE9;margin-inline:calc(var(--marge)*-1);padding:clamp(56px,7vw,100px) var(--marge);}
.planche h2{color:#fff;}
.planche .intro{color:rgba(237,237,233,.62);}
.planche .art-num{color:rgba(237,237,233,.58);}
.planche .art-num b{color:#7D9BF0;}
.planche .art{border-bottom:0;padding-block:0;}
.chaine{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-top:40px;border-top:1px solid rgba(237,237,233,.22);}
.noeud{padding:20px 24px;position:relative;border-left:1px solid rgba(237,237,233,.14);}
.noeud:first-child{padding-left:0;border-left:0;}
.noeud::before{content:"";position:absolute;top:-4px;left:24px;width:7px;height:7px;background:#7D9BF0;}
.noeud:first-child::before{left:0;}
.noeud time{display:block;font-family:var(--mo);font-size:10.5px;letter-spacing:.06em;color:rgba(237,237,233,.5);margin-bottom:8px;}
.noeud strong{display:block;font-family:var(--dp);font-size:14px;font-weight:700;line-height:1.25;letter-spacing:-.015em;color:#fff;margin-bottom:14px;}
.noeud code{font-family:var(--mo);font-size:10.5px;letter-spacing:.08em;color:#8E9EC4;display:block;padding-top:10px;border-top:1px solid rgba(237,237,233,.14);}
.constat-preuve{margin-top:36px;padding-top:18px;border-top:1px solid rgba(237,237,233,.22);font-size:17px;color:rgba(237,237,233,.75);max-width:64ch;}
.constat-preuve b{color:#fff;font-weight:600;}

/* ---------- COURRIEL ---------- */
.duo-entreprise{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:clamp(28px,5vw,56px);margin-top:36px;align-items:start;}
.courriel{background:#fff;border-radius:7px;overflow:hidden;box-shadow:0 1px 2px rgba(25,21,16,.06),0 16px 40px -18px rgba(19,42,117,.28);}
.courriel-objet{padding:10px 14px;border-bottom:1px solid var(--filet);font-family:var(--mo);font-size:10.5px;color:var(--encre-60);line-height:1.5;}
.courriel-corps{padding:18px 16px 20px;}
.courriel-marque{display:flex;align-items:center;gap:9px;margin-bottom:14px;}
.courriel-marque i{width:28px;height:28px;background:var(--nuit);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--dp);font-weight:800;font-size:11px;font-style:normal;}
.courriel-marque b{font-family:var(--mo);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;}
.courriel h4{font-family:var(--dp);font-size:15.5px;font-weight:700;letter-spacing:-.02em;margin:0 0 9px;line-height:1.2;}
.courriel p{font-size:14px;margin-bottom:12px;max-width:none;}
.faux-bt{display:inline-block;background:var(--bleu);color:#fff;font-family:var(--dp);font-weight:700;font-size:12.5px;padding:9px 16px;border-radius:4px;}
.courriel-pied{font-family:var(--mo);font-size:9.5px;color:var(--encre-40);margin:16px 0 0;padding-top:11px;border-top:1px solid var(--filet);line-height:1.7;letter-spacing:.01em;}

.fleches{list-style:none;margin:0;padding:0;}
.fleches li{padding:12px 0 12px 26px;position:relative;border-top:1px solid var(--filet);font-size:16px;line-height:1.45;}
.fleches li:last-child{border-bottom:1px solid var(--filet);}
.fleches li::before{content:"→";position:absolute;left:0;top:12px;font-family:var(--mo);color:var(--bleu);font-size:13px;}
.fleches b{font-weight:600;}

/* ---------- BORDEREAU DES CONDITIONS ---------- */
.defile{overflow-x:auto;margin-top:36px;}
table{width:100%;border-collapse:collapse;min-width:640px;}
caption{text-align:left;padding-bottom:12px;color:var(--encre-40);}
th,td{padding:13px 14px 13px 0;border-bottom:1px solid var(--filet);text-align:left;vertical-align:baseline;font-size:15.5px;}
thead th{border-bottom:1px solid var(--filet-fort);vertical-align:bottom;padding-bottom:14px;}
.col-offre{font-family:var(--dp);font-size:19px;font-weight:700;letter-spacing:-.03em;display:block;}
.col-prix{font-family:var(--dp);font-size:25px;font-weight:800;letter-spacing:-.035em;display:block;margin-top:8px;font-variant-numeric:tabular-nums;}
.col-prix small{font-size:12px;font-weight:600;color:var(--encre-40);letter-spacing:0;}
.col-mois{font-family:var(--mo);font-size:10.5px;color:var(--encre-40);display:block;margin-top:3px;letter-spacing:.03em;}
.col-tag{font-family:var(--mo);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--bleu);display:block;margin-bottom:6px;min-height:13px;}
th.phare{background:var(--bleu-pale);}
td.phare{background:rgba(221,228,250,.45);}
.ligne-titre td{font-family:var(--mo);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--encre-40);padding-top:26px;border-bottom:1px solid var(--filet-fort);}
td.oui-c{color:var(--bleu);font-family:var(--mo);font-size:14px;}
tbody td:first-child{color:var(--encre-60);}
.rang-action td{padding-top:22px;border-bottom:0;}

.comparatif td,.comparatif th{text-align:right;font-variant-numeric:tabular-nums;padding-right:0;}
.comparatif td:first-child,.comparatif th:first-child{text-align:left;}
.comparatif thead th{font-family:var(--mo);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--encre-40);font-weight:500;}
.comparatif .nous td{background:var(--bleu-pale);font-weight:600;}
.comparatif .nous td:first-child{color:var(--bleu);}

.aveu{
  margin-top:34px;padding-top:18px;border-top:1px solid var(--filet-fort);
  display:grid;grid-template-columns:132px minmax(0,1fr);gap:0 40px;
}
.aveu .mono{color:var(--ocre);}
.aveu p{margin:0;}
.aveu p+p{margin-top:12px;}

/* ---------- FRANCHISE ---------- */
.franchise{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 40px;margin-top:34px;}
.franchise div{border-top:1px solid rgba(237,237,233,.22);padding:18px 0 20px;}
.franchise h3{color:#fff;margin-bottom:7px;}
.franchise p{color:rgba(237,237,233,.58);font-size:15px;margin:0;line-height:1.5;}

/* ---------- DEMANDE ---------- */
.champs{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;margin-top:34px;}
.champ{display:flex;flex-direction:column;gap:7px;}
.champ--large{grid-column:1 / -1;}
label{font-family:var(--mo);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--encre-60);}
input,select,textarea{
  font-family:var(--tx);font-size:16.5px;color:var(--encre);width:100%;
  padding:9px 0;border:0;border-bottom:1px solid var(--filet-fort);background:transparent;border-radius:0;
}
input:focus,select:focus,textarea:focus{outline:0;border-bottom-color:var(--bleu);}
textarea{resize:vertical;min-height:70px;font-size:16px;}
select{padding-left:0;}
form .bt{margin-top:30px;border:0;cursor:pointer;font-size:15px;}
.mention{margin-top:20px;color:var(--encre-40);font-family:var(--mo);font-size:10.5px;letter-spacing:.02em;line-height:1.9;text-transform:none;max-width:none;}
.merci{display:none;margin-top:34px;border-top:1px solid var(--filet-fort);padding-top:22px;}
.merci b{font-family:var(--dp);font-size:22px;font-weight:700;letter-spacing:-.03em;display:block;margin-bottom:8px;}
.envoye form{display:none;}
.envoye .merci{display:block;}

/* ---------- PIED ---------- */
.pied-cartouche{
  border-top:1px solid var(--filet-fort);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0;
}
.pied-cartouche div{padding:18px 24px 22px;border-left:1px solid var(--filet);}
.pied-cartouche div:first-child{padding-left:0;border-left:0;}
.pied-cartouche dt{color:var(--encre-40);margin-bottom:6px;}
.pied-cartouche dd{margin:0;font-size:15px;}
.pied-cartouche a{color:var(--bleu);text-decoration:none;}

@media (max-width:900px){
  .art,.aveu{grid-template-columns:1fr;gap:0;}
  .art-num{position:static;margin-bottom:20px;}
  .aveu .mono{margin-bottom:10px;}
  .accroche,.duo-entreprise,.constat{grid-template-columns:1fr;}
  .constat{gap:0;}
  .constat>div+div{margin-top:26px;}
  .champs{grid-template-columns:1fr;}
  .deroule li{grid-template-columns:34px 1fr;gap:12px;}
  .deroule li b,.deroule li span{grid-column:2;}
  .cartouche{grid-template-columns:1fr;gap:12px;}
  .cartouche-lignes{display:none;}
  .ecran{margin-top:32px;}
}
.art-corps,.echelle,.respiration>*{animation:monte .7s cubic-bezier(.2,.7,.3,1) both;}
@keyframes monte{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.deroule li{transition:background .16s ease;}
.deroule li:hover{background:var(--papier-creux);}
tbody tr{transition:background .16s ease;}
.comparatif tbody tr:hover td{background:var(--papier-creux);}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}

/* ===========================================================================
   COMPOSANTS AJOUTÉS EN INDICE B
   =========================================================================== */

/* --- Rappel d'action, posé après chaque objection levée ------------------- */
.relance{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;
  margin-top:38px;padding-top:22px;border-top:1px solid var(--filet-fort);
}
.relance p{margin:0;font-size:15.5px;color:var(--encre-60);max-width:38ch;}
.relance .bt{margin-left:auto;}
.planche .relance{border-top-color:rgba(237,237,233,.3);}
.planche .relance p{color:rgba(237,237,233,.72);}
.planche .relance .bt{border-color:#fff;color:#fff;}
.planche .relance .bt--plein{background:#fff;color:var(--nuit);}
.planche .relance .bt--plein:hover{background:var(--bleu-pale);color:var(--nuit);}
.planche .relance .bt--creux:hover{background:#fff;color:var(--nuit);}
@media (max-width:640px){.relance .bt{margin-left:0;}}

/* --- À qui ça s'adresse --------------------------------------------------- */
.pourqui{
  display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 0;padding:0;list-style:none;
}
.pourqui li{
  font-family:var(--mo);font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  border:1px solid var(--filet-fort);padding:6px 11px;color:var(--encre-60);
}

/* --- Accordéon des réserves ---------------------------------------------- */
.reserve{border-top:1px solid rgba(237,237,233,.22);}
.reserve:last-of-type{border-bottom:1px solid rgba(237,237,233,.22);}
.reserve>summary{
  list-style:none;cursor:pointer;padding:16px 34px 16px 0;position:relative;
  font-family:var(--dp);font-size:17px;font-weight:700;letter-spacing:-.02em;color:#fff;
}
.reserve>summary::-webkit-details-marker{display:none;}
.reserve>summary::after{
  content:"+";position:absolute;right:4px;top:15px;
  font-family:var(--mo);font-size:19px;font-weight:400;color:#7D9BF0;line-height:1;
}
.reserve[open]>summary::after{content:"–";}
.reserve>summary:hover{color:#BFD0FA;}
.reserve>summary:focus-visible{outline:2px solid #7D9BF0;outline-offset:2px;}
.reserve p{
  margin:0 0 18px;padding-right:34px;color:rgba(237,237,233,.72);
  font-size:15.5px;line-height:1.55;max-width:66ch;
}
.reserve p b{color:#fff;font-weight:600;}

/* --- Ce que vous pouvez vérifier ----------------------------------------- */
.verifiable{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));
  gap:0 40px;margin-top:34px;
}
.verifiable div{border-top:2px solid var(--bleu);padding:16px 0 22px;}
.verifiable h3{margin-bottom:7px;}
.verifiable p{margin:0;font-size:15px;line-height:1.5;color:var(--encre-60);max-width:none;}
.verifiable .fait{
  display:block;margin-top:9px;font-family:var(--mo);font-size:11.5px;
  letter-spacing:.04em;color:var(--bleu-profond);
}
.verifiable .fait--attente{color:var(--ocre-texte);}

/* --- Étiquettes de statut de source --------------------------------------- */
.src{
  font-family:var(--mo);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--encre-40);white-space:nowrap;display:inline-block;
}
.src--nous{color:var(--bleu);}
.src--public{color:var(--vert);}
.src--absent{color:var(--ocre-texte);}

/* --- Grille tarifaire en cartes ------------------------------------------- */
.offres{
  display:grid;border:1px solid var(--filet-fort);background:#fff;margin-top:32px;
  grid-template-columns:repeat(auto-fit,minmax(238px,1fr));
}
.offre{padding:24px 22px;border-right:1px solid var(--filet);display:flex;flex-direction:column;align-items:flex-start;}
.offre>*{width:100%;}
.offre:last-child{border-right:0;}
.offre--phare{background:var(--bleu-pale);}
.offre .tag{
  width:auto;font-family:var(--mo);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;background:var(--ocre);padding:4px 8px;margin-bottom:12px;display:inline-block;
}
.offre .tag--calme{background:transparent;color:var(--encre-60);border:1px solid var(--filet-fort);}
.offre .tag--bleu{background:var(--bleu);}
.offre h3{font-size:19px;margin-bottom:4px;}
.offre .quoi{font-size:13.5px;color:var(--encre-60);margin:0 0 18px;min-height:40px;line-height:1.45;}
.offre .montant{
  font-family:var(--dp);font-size:28px;font-weight:800;letter-spacing:-.04em;
  color:var(--bleu-profond);line-height:1;font-variant-numeric:tabular-nums;margin:0;
}
.offre .unite{display:block;font-family:var(--mo);font-size:10.5px;color:var(--encre-40);margin-top:9px;letter-spacing:.03em;line-height:1.6;}
.offre .alt{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--filet);font-size:13.5px;color:var(--encre-60);}
.offre .alt b{font-family:var(--mo);font-size:12.5px;}
.offre ul{list-style:none;margin:16px 0 0;padding:0;font-size:14px;}
.offre ul li{padding:4px 0 4px 15px;position:relative;line-height:1.45;}
.offre ul li::before{content:"·";position:absolute;left:3px;color:var(--bleu);font-weight:700;}

/* --- Tableaux de la page tarifs ------------------------------------------ */
table.grille{width:100%;border-collapse:collapse;min-width:560px;}
table.grille caption{text-align:left;padding-bottom:12px;color:var(--encre-40);}
table.grille th,table.grille td{
  padding:12px 14px 12px 0;border-bottom:1px solid var(--filet);
  text-align:left;vertical-align:top;font-size:15px;
}
table.grille thead th{
  border-bottom:1px solid var(--filet-fort);
  font-family:var(--mo);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--encre-40);font-weight:500;vertical-align:bottom;
}
table.grille td.m,table.grille th.m{
  text-align:right;font-family:var(--mo);font-size:13.5px;
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
table.grille tr.nous td,table.grille tr.nous th{background:var(--bleu-pale);font-weight:600;}
table.grille td.nous{background:var(--bleu-pale);font-weight:600;}
table.grille tr.seuil th::after{
  content:" ← bascule";font-family:var(--mo);font-size:10px;font-weight:500;
  color:var(--bleu);letter-spacing:.04em;white-space:nowrap;
}
table.grille tr:last-child td,table.grille tr:last-child th{border-bottom:0;}

/* --- Bloc RGPD sous le formulaire ---------------------------------------- */
.rgpd{
  margin-top:22px;padding-top:16px;border-top:1px solid var(--filet);
  font-size:12.5px;line-height:1.65;color:var(--encre-40);max-width:62ch;
}
.rgpd a{color:var(--bleu);}

/* --- Retour du formulaire ------------------------------------------------- */
.retour{display:none;margin-top:20px;padding:13px 16px;font-size:15px;line-height:1.5;}
.retour.ok{display:block;background:#E9F3EC;border-left:2px solid var(--vert);}
.retour.ko{display:block;background:var(--ocre-pale);border-left:2px solid var(--ocre);}

/* --- Page juridique ------------------------------------------------------- */
.juridique{max-width:74ch;padding-block:clamp(40px,6vw,72px);}
.juridique h2{margin-top:44px;margin-bottom:14px;}
.juridique h2:first-of-type{margin-top:26px;}
.juridique h3{margin:26px 0 8px;}
.juridique dl{margin:0 0 18px;}
.juridique dt{font-family:var(--mo);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--encre-40);margin-top:14px;}
.juridique dd{margin:3px 0 0;}
.juridique .acompleter{background:var(--ocre-pale);padding:1px 6px;font-family:var(--mo);font-size:12px;color:#6B3A05;}

/* --- Divers --------------------------------------------------------------- */
.evitement{position:absolute;left:0;top:0;transform:translateY(-140%);background:var(--nuit);color:#fff;padding:11px 18px;z-index:200;font-family:var(--dp);font-size:14px;text-decoration:none;}
.evitement:focus{transform:translateY(0);margin:8px;}
[hidden]{display:none !important;}
@media print{.cartouche,.relance,form,.respiration{display:none;}body{background:#fff;}}

/* --- Ajustements de rendu, 19/09 ----------------------------------------- */
.echelle b .infini{font-size:1.5em;line-height:.6;vertical-align:-.04em;}
.art-corps > h3{margin-top:44px;margin-bottom:10px;}
.art-corps > h3:first-child{margin-top:0;}
.art-corps > h3 + p{margin-top:0;}
.repere{
  margin-top:14px;padding:12px 14px;background:var(--papier-creux);
  border-left:2px solid var(--filet-fort);font-size:13.5px;line-height:1.6;
  color:var(--encre-60);max-width:70ch;
}
.repere b{font-family:var(--mo);font-size:12.5px;color:var(--encre);}

/* Sous 1000 px, quatre colonnes sont trop étroites pour la graisse du chiffre :
   l'échelle passe à deux. */
@media (max-width:1000px){
  .echelle div{flex:1 1 44%;padding:16px 20px 18px;}
  .echelle div:nth-child(odd){padding-left:0;border-left:0;}
  .echelle div:nth-child(-n+2){border-bottom:1px solid var(--filet);}
}
@media (max-width:560px){
  .echelle div{padding:16px 16px 18px;}
  .echelle b{font-size:18px;letter-spacing:-.035em;}
  .echelle span{font-size:10px;letter-spacing:.08em;}
  .pied-cartouche div{padding:16px 14px 18px;}
  .pied-cartouche div:first-child{padding-left:0;}
}

/* Le titre ne tient en deux lignes que si la colonne de gauche est assez large.
   En dessous de 1400 px elle ne l'est pas : on laisse revenir à la ligne. */
@media (min-width:1400px){.nw{white-space:nowrap;}}

/* --- Très petits écrans (320 px) ----------------------------------------- */
@media (max-width:400px){
  table.mini{table-layout:fixed;}
  table.mini td{padding:9px 8px;font-size:12px;word-break:break-word;}
  table.mini td.m{font-size:11.5px;}
  table.mini td.e{font-size:10px;}
  .ecran-tete b{font-size:10px;}
}
.juridique{overflow-wrap:anywhere;}
.juridique dd,.juridique p{overflow-wrap:anywhere;}

@media (min-width:1080px){ .offres--cinq{grid-template-columns:repeat(5,1fr);} }
@media (min-width:660px) and (max-width:1079px){
  .offres--cinq{grid-template-columns:repeat(2,1fr);}
  .offres--cinq .offre:nth-child(2n){border-right:0;}
  .offres--cinq .offre{border-bottom:1px solid var(--filet);}
  .offres--cinq .offre:last-child{border-bottom:0;}
}
@media (max-width:659px){
  .offres .offre{border-right:0;border-bottom:1px solid var(--filet);}
  .offres .offre:last-child{border-bottom:0;}
}

/* Sous 380 px, l'échelle passe en une seule colonne : à deux, « 0 compte » se coupe. */
@media (max-width:380px){
  .echelle div{flex:1 1 100%;padding:14px 0 15px;border-left:0;border-bottom:1px solid var(--filet);}
  .echelle div:last-child{border-bottom:0;}
  .echelle b{font-size:21px;}
}
