/* ============================================================
   Commerce Agentique — styles.css
   Palette : ivoire froid / encre / cobalt / vert machine
   Type    : Archivo (display) / Inter (corps) / IBM Plex Mono (agent)
   ============================================================ */

:root{
  --ivoire:#F6F7F4;
  --encre:#12151A;
  --encre-2:#3C424D;
  --cobalt:#2645E0;
  --cobalt-fonce:#1B34BB;
  --cobalt-pale:#EEF1FD;
  --machine:#157A5B;
  --machine-fond:#0D1F19;
  --machine-clair:#3ADFA5;
  --ligne:#D9DCD6;
  --carte:#FFFFFF;
  --radius:10px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--ivoire);
  color:var(--encre);
  font-family:'Inter',system-ui,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--cobalt);outline-offset:3px;border-radius:2px}
.conteneur{max-width:1120px;margin:0 auto;padding:0 24px}

/* ---------- Header ---------- */
header{
  border-bottom:1px solid var(--ligne);
  position:sticky;top:0;background:rgba(246,247,244,.92);
  backdrop-filter:blur(8px);z-index:50;
}
.barre{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{font-family:'Archivo',sans-serif;font-weight:800;font-size:17px;letter-spacing:-.02em;display:flex;align-items:center;gap:9px}
.logo .puce{width:10px;height:10px;background:var(--cobalt);display:inline-block}
.logo .agent{color:var(--machine);font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:13px}
nav ul{display:flex;gap:28px;list-style:none}
nav a{font-size:14px;font-weight:500;color:var(--encre-2)}
nav a:hover{color:var(--encre)}
nav a[aria-current="page"]{color:var(--cobalt);font-weight:600}
.nav-cta{background:var(--encre);color:#fff !important;padding:8px 16px;border-radius:6px;font-weight:600}
.nav-cta:hover{background:var(--cobalt)}
@media (max-width:820px){nav ul{display:none}}

/* ---------- Boutons ---------- */
.btn{display:inline-block;padding:13px 22px;border-radius:8px;font-weight:600;font-size:15px;transition:transform .15s ease, background .15s ease}
.btn-plein{background:var(--cobalt);color:#fff}
.btn-plein:hover{background:var(--cobalt-fonce);transform:translateY(-1px)}
.btn-ligne{border:1.5px solid var(--encre);color:var(--encre)}
.btn-ligne:hover{background:var(--encre);color:#fff}

/* ---------- Hero (accueil) ---------- */
.hero{padding:72px 0 56px}
.hero-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--machine);
  letter-spacing:.04em;margin-bottom:18px;display:inline-block;
}
h1{
  font-family:'Archivo',sans-serif;font-weight:800;
  font-size:clamp(34px,5.2vw,58px);line-height:1.04;letter-spacing:-.03em;
  max-width:17ch;
}
h1 .accent{color:var(--cobalt)}
.hero-sous{max-width:52ch;color:var(--encre-2);font-size:17.5px;margin:22px 0 30px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}

/* ---------- Double lecture (signature) ---------- */
.double-lecture{
  margin-top:64px;
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border:1px solid var(--ligne);border-radius:var(--radius);overflow:hidden;
  background:var(--carte);
  box-shadow:0 24px 60px -32px rgba(18,21,26,.25);
}
.lecture-etiquette{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.06em;
  padding:10px 20px;border-bottom:1px solid var(--ligne);
  display:flex;align-items:center;gap:8px;
}
.pastille{width:7px;height:7px;border-radius:50%}
.cote-humain .pastille{background:var(--cobalt)}
.cote-agent .pastille{background:var(--machine-clair)}
.cote-humain{border-right:1px solid var(--ligne)}
.cote-humain .corps{padding:26px 28px}
.produit-nom{font-family:'Archivo',sans-serif;font-weight:700;font-size:20px;letter-spacing:-.01em}
.produit-ref{font-size:13px;color:var(--encre-2);margin-top:2px}
.produit-prix{font-family:'Archivo',sans-serif;font-weight:800;font-size:26px;margin:16px 0 4px}
.produit-prix small{font-size:13px;font-weight:500;color:var(--encre-2)}
.produit-stock{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:500;color:var(--machine);margin:10px 0 18px}
.produit-stock::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--machine)}
.lignes{border-top:1px dashed var(--ligne);padding-top:14px;font-size:13.5px;color:var(--encre-2);display:grid;gap:6px}
.lignes b{color:var(--encre);font-weight:600}
.faux-btn{margin-top:20px;background:var(--encre);color:#fff;text-align:center;padding:11px;border-radius:7px;font-weight:600;font-size:14px}
.cote-agent{background:var(--machine-fond);color:#C9E8DC}
.cote-agent .lecture-etiquette{border-bottom-color:rgba(255,255,255,.12);color:#7BC7AA}
.cote-agent pre{
  padding:22px 24px;font-family:'IBM Plex Mono',monospace;
  font-size:12.5px;line-height:1.75;overflow-x:auto;
}
.j-cle{color:#7BC7AA}
.j-val{color:#E8F5EE}
.j-num{color:#8FD3FE}
.curseur{display:inline-block;width:8px;height:15px;background:var(--machine-clair);vertical-align:-2px;animation:clignote 1.1s steps(1) infinite}
@keyframes clignote{50%{opacity:0}}
@media (max-width:820px){
  .double-lecture{grid-template-columns:1fr}
  .cote-humain{border-right:none;border-bottom:1px solid var(--ligne)}
}

/* ---------- Sections génériques ---------- */
section{padding:76px 0}
.sec-tete{margin-bottom:40px;max-width:640px}
.sec-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--cobalt);letter-spacing:.05em;display:block;margin-bottom:12px}
h2{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(26px,3.4vw,36px);letter-spacing:-.02em;line-height:1.1}
.sec-tete p{color:var(--encre-2);margin-top:14px}

/* ---------- Définition (accueil) ---------- */
.definition{border-top:1px solid var(--ligne)}
.def-bloc{
  background:var(--carte);border:1px solid var(--ligne);border-left:4px solid var(--cobalt);
  border-radius:var(--radius);padding:30px 34px;max-width:820px;
}
.def-bloc p{font-size:18px;line-height:1.65}
.def-bloc .terme{font-family:'Archivo',sans-serif;font-weight:700}
.def-suite{margin-top:16px;font-size:14.5px;font-weight:600;color:var(--cobalt);display:inline-block}
.def-suite:hover{text-decoration:underline}

/* ---------- Protocoles (accueil) ---------- */
.protocoles{background:var(--encre);color:#EDEFEA}
.protocoles .sec-eyebrow{color:var(--machine-clair)}
.protocoles h2{color:#fff}
.protocoles .sec-tete p{color:#A8AEB8}
.grille-proto{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.carte-proto{
  background:#1B1F27;border:1px solid #2A2F3A;border-radius:var(--radius);
  padding:24px 22px;transition:border-color .15s ease, transform .15s ease;
}
.carte-proto:hover{border-color:var(--machine-clair);transform:translateY(-3px)}
.proto-sigle{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--machine-clair);margin-bottom:12px;display:block}
.carte-proto h3{font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;letter-spacing:-.01em;color:#fff;line-height:1.25}
.carte-proto p{font-size:13.5px;color:#A8AEB8;margin-top:10px;line-height:1.55}
.proto-editeur{font-size:12px;color:#6B7280;margin-top:14px;display:block;font-family:'IBM Plex Mono',monospace}
@media (max-width:960px){.grille-proto{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.grille-proto{grid-template-columns:1fr}}

/* ---------- Guides (accueil) ---------- */
.liste-guides{display:grid;gap:0;border-top:1px solid var(--ligne)}
.guide{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;
  padding:22px 6px;border-bottom:1px solid var(--ligne);
}
.guide h3{font-family:'Archivo',sans-serif;font-weight:700;font-size:18px;letter-spacing:-.01em}
.guide p{font-size:14px;color:var(--encre-2);margin-top:4px}
.guide .fleche{font-family:'IBM Plex Mono',monospace;color:var(--cobalt);font-size:18px;transition:transform .15s ease}
.guide:hover .fleche{transform:translateX(5px)}
.guide:hover h3{color:var(--cobalt)}

/* ---------- Glossaire (accueil) ---------- */
.glossaire{border-top:1px solid var(--ligne)}
.nuage{display:flex;flex-wrap:wrap;gap:10px;max-width:860px}
.terme-puce{
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  border:1px solid var(--ligne);background:var(--carte);
  padding:8px 14px;border-radius:999px;color:var(--encre-2);
  transition:all .15s ease;
}
.terme-puce:hover{border-color:var(--cobalt);color:var(--cobalt);background:var(--cobalt-pale)}

/* ---------- CTA final ---------- */
.cta-final{padding:84px 0}
.cta-boite{
  background:var(--carte);border:1px solid var(--ligne);border-radius:14px;
  padding:52px 48px;display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center;
}
.cta-boite h2{max-width:16ch}
.cta-boite .note{font-size:13px;color:var(--encre-2);margin-top:14px}
.champ-mail{display:flex;gap:10px;flex-wrap:wrap}
.champ-mail input{
  flex:1;min-width:200px;padding:13px 16px;border:1.5px solid var(--ligne);
  border-radius:8px;font-family:inherit;font-size:15px;background:var(--ivoire);
}
.champ-mail input:focus{outline:2px solid var(--cobalt);outline-offset:1px;border-color:transparent}
@media (max-width:820px){.cta-boite{grid-template-columns:1fr;padding:36px 28px}}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--ligne);padding:44px 0;font-size:13.5px;color:var(--encre-2)}
.pied{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.pied a:hover{color:var(--encre)}
.pied-liens{display:flex;gap:22px;flex-wrap:wrap}

/* ============================================================
   PAGES ARTICLE (pilier, protocoles, guides, glossaire)
   ============================================================ */

.fil-ariane{
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--encre-2);
  padding:20px 0 0;
}
.fil-ariane ol{list-style:none;display:flex;gap:8px;flex-wrap:wrap}
.fil-ariane li:not(:last-child)::after{content:"/";margin-left:8px;color:var(--ligne)}
.fil-ariane a:hover{color:var(--cobalt)}
.fil-ariane [aria-current]{color:var(--encre)}

.article-tete{padding:36px 0 8px;max-width:760px}
.article-tete .hero-eyebrow{margin-bottom:14px}
.article-tete h1{font-size:clamp(30px,4.4vw,46px);max-width:22ch}
.article-meta{
  display:flex;gap:18px;flex-wrap:wrap;margin-top:20px;
  font-size:13px;color:var(--encre-2);
  font-family:'IBM Plex Mono',monospace;
}
.article-chapo{font-size:18.5px;color:var(--encre-2);line-height:1.65;margin-top:22px;max-width:62ch}

/* Layout article + sommaire */
.article-corps{
  display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:64px;
  padding:44px 0 80px;align-items:start;
}
@media (max-width:960px){.article-corps{grid-template-columns:1fr}}

.sommaire{
  position:sticky;top:88px;
  border-left:1px solid var(--ligne);padding-left:22px;
  font-size:13.5px;order:2;
}
.sommaire .som-titre{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.06em;
  color:var(--encre-2);margin-bottom:14px;
}
.sommaire ol{list-style:none;display:grid;gap:10px}
.sommaire a{color:var(--encre-2)}
.sommaire a:hover{color:var(--cobalt)}
@media (max-width:960px){
  .sommaire{position:static;order:0;border-left:none;border:1px solid var(--ligne);
    border-radius:var(--radius);padding:20px 22px;background:var(--carte)}
}

/* Prose */
.prose{max-width:680px}
.prose h2{font-size:clamp(22px,2.8vw,29px);margin:52px 0 18px;scroll-margin-top:88px}
.prose h2:first-child{margin-top:0}
.prose h3{font-family:'Archivo',sans-serif;font-weight:700;font-size:18.5px;letter-spacing:-.01em;margin:34px 0 12px}
.prose p{margin-bottom:18px;color:#22262E}
.prose p a, .prose li a{color:var(--cobalt);font-weight:500}
.prose p a:hover, .prose li a:hover{text-decoration:underline}
.prose ul,.prose ol{margin:0 0 18px 22px}
.prose li{margin-bottom:8px}
.prose strong{font-weight:600}
.prose blockquote{
  border-left:3px solid var(--cobalt);padding:4px 0 4px 20px;margin:26px 0;
  color:var(--encre-2);font-size:17px;
}

/* Encadré définition (réutilisable, cible GEO) */
.encadre-def{
  background:var(--carte);border:1px solid var(--ligne);border-left:4px solid var(--cobalt);
  border-radius:var(--radius);padding:24px 28px;margin:28px 0;
}
.encadre-def .etiquette{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.06em;
  color:var(--cobalt);display:block;margin-bottom:10px;
}
.encadre-def p{margin:0;font-size:16.5px}

/* Encadré "vu par l'agent" */
.encadre-agent{
  background:var(--machine-fond);border-radius:var(--radius);
  margin:28px 0;overflow:hidden;
}
.encadre-agent .etiquette{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.06em;
  color:#7BC7AA;padding:12px 22px;border-bottom:1px solid rgba(255,255,255,.12);
  display:flex;align-items:center;gap:8px;
}
.encadre-agent .etiquette::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--machine-clair)}
.encadre-agent pre{
  padding:20px 22px;font-family:'IBM Plex Mono',monospace;
  font-size:12.5px;line-height:1.75;color:#C9E8DC;overflow-x:auto;
}

/* Points clés */
.points-cles{
  background:var(--cobalt-pale);border-radius:var(--radius);
  padding:24px 28px;margin:28px 0;
}
.points-cles .etiquette{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.06em;
  color:var(--cobalt);display:block;margin-bottom:12px;
}
.points-cles ul{margin:0 0 0 20px}
.points-cles li{margin-bottom:8px;font-size:15px}
.points-cles li:last-child{margin-bottom:0}

/* Tableaux */
.prose table{width:100%;border-collapse:collapse;margin:28px 0;font-size:14px}
.prose th{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.05em;
  text-align:left;color:var(--encre-2);font-weight:500;
  border-bottom:2px solid var(--encre);padding:10px 12px 10px 0;
}
.prose td{border-bottom:1px solid var(--ligne);padding:12px 12px 12px 0;vertical-align:top}
.prose td:first-child{font-weight:600;white-space:nowrap}

/* FAQ */
.faq details{
  border-bottom:1px solid var(--ligne);padding:4px 0;
}
.faq summary{
  cursor:pointer;font-family:'Archivo',sans-serif;font-weight:700;font-size:16.5px;
  padding:16px 0;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:'IBM Plex Mono',monospace;color:var(--cobalt);font-size:20px;font-weight:400}
.faq details[open] summary::after{content:"−"}
.faq details p{padding:0 0 18px;color:var(--encre-2)}

/* Navigation bas d'article */
.article-suivant{
  border:1px solid var(--ligne);border-radius:var(--radius);background:var(--carte);
  padding:24px 28px;margin-top:48px;display:flex;justify-content:space-between;
  align-items:center;gap:20px;transition:border-color .15s ease;
}
.article-suivant:hover{border-color:var(--cobalt)}
.article-suivant .etiquette{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--encre-2);display:block;margin-bottom:6px}
.article-suivant .titre{font-family:'Archivo',sans-serif;font-weight:700;font-size:17px}
.article-suivant .fleche{font-family:'IBM Plex Mono',monospace;color:var(--cobalt);font-size:20px}

/* ---------- Accessibilité mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .curseur{animation:none}
  .btn-plein:hover,.carte-proto:hover{transform:none}
  .guide:hover .fleche{transform:none}
}

/* ---------- Glossaire ---------- */
.grille-glossaire{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:36px 0}
@media (max-width:720px){.grille-glossaire{grid-template-columns:1fr}}
.carte-terme{
  background:var(--carte);border:1px solid var(--ligne);border-radius:var(--radius);
  padding:22px 24px;transition:border-color .15s ease;display:block;
}
.carte-terme:hover{border-color:var(--cobalt)}
.carte-terme dfn{font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;font-style:normal;letter-spacing:-.01em;display:block}
.carte-terme .terme-en{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--machine);margin-top:2px;display:block}
.carte-terme p{font-size:14px;color:var(--encre-2);margin-top:10px;line-height:1.55}
.carte-terme .lien{font-size:13px;font-weight:600;color:var(--cobalt);margin-top:12px;display:inline-block}

/* ---------- Pile des couches (comparatif) ---------- */
.pile-couches{display:grid;gap:8px;margin:28px 0;max-width:560px}
.couche{
  border:1px solid var(--ligne);border-radius:8px;background:var(--carte);
  padding:14px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;
}
.couche .role{font-size:13px;color:var(--encre-2)}
.couche .protos{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--cobalt);font-weight:500;white-space:nowrap}
.couche--agent{background:var(--machine-fond);border-color:var(--machine-fond)}
.couche--agent .role{color:#C9E8DC}
.couche--agent .protos{color:var(--machine-clair)}

/* ---------- Checklist ---------- */
.checklist{list-style:none;margin:20px 0 28px !important;display:grid;gap:0;border-top:1px solid var(--ligne)}
.checklist li{
  margin:0 !important;padding:14px 4px 14px 40px;border-bottom:1px solid var(--ligne);
  position:relative;font-size:15px;
}
.checklist li::before{
  content:"";position:absolute;left:4px;top:16px;width:18px;height:18px;
  border:2px solid var(--cobalt);border-radius:4px;background:var(--carte);
}
.checklist li b{font-weight:600}
.checklist li .detail{display:block;font-size:13.5px;color:var(--encre-2);margin-top:3px}

/* ---------- Encadré partenaire (transparence) ---------- */
.encadre-partenaire{
  border:1px solid var(--ligne);border-radius:var(--radius);background:var(--carte);
  padding:26px 30px;margin:40px 0 8px;
}
.encadre-partenaire .etiquette{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.07em;
  color:var(--encre-2);display:block;margin-bottom:12px;
}
.encadre-partenaire p{margin:0 0 14px;font-size:15px;color:#22262E}
.encadre-partenaire .btn{font-size:14px;padding:11px 18px}

/* ---------- Placeholders à compléter ---------- */
mark.a-completer{
  background:#FFE9A8;color:#5C4A00;padding:1px 6px;border-radius:4px;
  font-family:'IBM Plex Mono',monospace;font-size:.85em;
}

/* ---------- Liste d'articles (actualités) ---------- */
.article-date{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--encre-2);white-space:nowrap}
.liste-guides .guide{grid-template-columns:auto minmax(0,1fr) auto}

/* ---------- Sélecteur de langue ---------- */
.selecteur-langue{display:flex;gap:2px;align-items:center;margin-left:18px}
.selecteur-langue a{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;padding:4px 7px;
  border-radius:5px;color:var(--encre-2);
}
.selecteur-langue a:hover{color:var(--cobalt);background:var(--cobalt-pale)}
.selecteur-langue a[aria-current="true"]{color:var(--encre);font-weight:500;background:var(--ivoire);border:1px solid var(--ligne)}
@media (max-width:820px){.selecteur-langue{margin-left:auto}}

/* ---------- Note langue (pages non traduites) ---------- */
.note-langue{
  border:1px dashed var(--ligne);border-radius:var(--radius);
  padding:16px 22px;margin:32px 0;font-size:14px;color:var(--encre-2);
}
.note-langue a{color:var(--cobalt);font-weight:500}

/* ---------- Schémas ---------- */
.schema{margin:32px 0}
.schema img{display:block;width:100%;height:auto;background:var(--carte);border:1px solid var(--ligne);border-radius:var(--radius);padding:10px 8px}
.schema figcaption{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--encre-2);margin-top:10px;letter-spacing:.02em}

/* ---------- Sous-menus ---------- */
nav ul li{position:relative}
.sous-menu{
  display:none;position:absolute;top:100%;left:-14px;z-index:60;
  min-width:230px;background:var(--carte);border:1px solid var(--ligne);
  border-radius:10px;padding:8px;margin:0;
  box-shadow:0 16px 40px -18px rgba(18,21,26,.28);
  flex-direction:column;gap:0;
}
nav ul li:hover > .sous-menu,
nav ul li:focus-within > .sous-menu{display:flex}
.sous-menu li{width:100%}
.sous-menu a{
  display:block;padding:9px 12px;border-radius:7px;font-size:13.5px;white-space:nowrap;
}
.sous-menu a:hover{background:var(--cobalt-pale);color:var(--cobalt)}
nav ul > li > a{display:inline-block;padding:20px 0}
.sous-menu a{padding:9px 12px}

/* ---------- Marque (header) ---------- */
.puce-logo{width:24px;height:24px;display:block;image-rendering:pixelated}

/* ============================================================
   RESPONSIVE — menu mobile (CSS pur) et corrections
   ============================================================ */

img{max-width:100%}
.grille-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:960px){.grille-3{grid-template-columns:1fr}}

/* Bouton burger (masqué sur desktop) */
.menu-case{display:none}
.menu-bouton{display:none;margin-left:auto;cursor:pointer;padding:10px;border-radius:8px}
.selecteur-langue ~ .menu-bouton{margin-left:6px}
.menu-bouton span{display:block;width:22px;height:2.5px;background:var(--encre);border-radius:2px;margin:5px 0;transition:transform .2s ease,opacity .2s ease}
.menu-bouton:hover{background:var(--cobalt-pale)}

@media (max-width:820px){
  .menu-bouton{display:block}
  .menu-case:checked ~ .menu-bouton span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .menu-case:checked ~ .menu-bouton span:nth-child(2){opacity:0}
  .menu-case:checked ~ .menu-bouton span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

  nav{
    display:none;position:absolute;top:100%;left:0;right:0;
    background:var(--ivoire);border-bottom:1px solid var(--ligne);
    max-height:calc(100vh - 64px);overflow-y:auto;
    box-shadow:0 24px 40px -20px rgba(18,21,26,.25);
  }
  .menu-case:checked ~ nav{display:block}
  nav ul{display:flex;flex-direction:column;gap:0;padding:10px 24px 18px}
  nav ul > li > a{display:block;padding:13px 0;font-size:16px;border-bottom:1px solid var(--ligne)}
  nav ul > li:last-child > a{border-bottom:none}
  .nav-cta{margin-top:12px;text-align:center;border-bottom:none !important}

  /* Sous-menus : dépliés en permanence (le survol n'existe pas au tactile) */
  .sous-menu{
    display:flex !important;position:static;flex-direction:column;
    min-width:0;border:none;box-shadow:none;background:transparent;
    padding:0 0 6px 16px;margin:0;
  }
  .sous-menu a{padding:8px 0;font-size:14px;color:var(--encre-2);white-space:normal}

  /* Tableaux larges : défilement horizontal */
  .prose table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .prose td:first-child{white-space:normal}

  /* Confort de lecture */
  .conteneur{padding:0 18px}
  section{padding:52px 0}
  .hero{padding:48px 0 40px}
  .article-corps{padding:32px 0 56px;gap:36px}
  .cta-final{padding:56px 0}
  .article-meta{gap:12px}
}
@media (max-width:400px){
  .logo{font-size:15px}
  .selecteur-langue a{padding:4px 5px;font-size:11px}
}
@media (prefers-reduced-motion:reduce){
  .menu-bouton span{transition:none}
}

/* ---------- Hero avec vidéo ---------- */
.hero-grille{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
@media (max-width:960px){.hero-grille{grid-template-columns:1fr;gap:32px}}
.hero-video{
  aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--ligne);background:var(--encre);
  box-shadow:0 24px 60px -32px rgba(18,21,26,.35);
}
.hero-video iframe{width:100%;height:100%;border:0;display:block}

/* ---------- Page 404 : robot animé ---------- */
.robot-404{width:180px;margin:0 auto 8px}
.robot-404 svg{display:block;width:100%;height:auto}
.p404{text-align:center;padding:64px 0 84px}
.p404 h1{margin:18px auto 10px;max-width:none}
.p404 .code{font-family:'IBM Plex Mono',monospace;font-size:15px;color:var(--machine);letter-spacing:.08em}
.p404 p{color:var(--encre-2);max-width:52ch;margin:0 auto 26px}
.p404 .hero-actions{justify-content:center}
@keyframes clignement{0%,91%,100%{transform:scaleY(1)}94%,97%{transform:scaleY(.08)}}
@keyframes pulse-antenne{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes flottement{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.robot-404 .corps-anim{animation:flottement 3.2s ease-in-out infinite}
.robot-404 .oeil{transform-box:fill-box;transform-origin:center;animation:clignement 4.6s infinite}
.robot-404 .antenne{animation:pulse-antenne 1.4s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){
  .robot-404 .corps-anim,.robot-404 .oeil,.robot-404 .antenne{animation:none}
}

/* ---------- Formulaire de contact ---------- */
.formulaire{display:grid;gap:18px;max-width:560px;margin:8px 0 12px}
.formulaire label{font-weight:600;font-size:14px;display:block;margin-bottom:6px}
.formulaire input,.formulaire select,.formulaire textarea{
  width:100%;padding:12px 14px;border:1.5px solid var(--ligne);border-radius:8px;
  font-family:inherit;font-size:15px;background:var(--carte);color:var(--encre);
}
.formulaire textarea{min-height:150px;resize:vertical}
.formulaire input:focus,.formulaire select:focus,.formulaire textarea:focus{
  outline:2px solid var(--cobalt);outline-offset:1px;border-color:transparent}
.formulaire .consentement{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--encre-2)}
.formulaire .consentement input{width:auto;margin-top:3px}
.champ-hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* ---------- Menu déroulant des langues (toutes pages) ---------- */
.menu-langue{position:relative;margin-left:18px}
.menu-langue summary{
  list-style:none;cursor:pointer;font-family:'IBM Plex Mono',monospace;font-size:11.5px;
  padding:5px 9px;border:1px solid var(--ligne);border-radius:6px;color:var(--encre);
  display:flex;align-items:center;gap:6px;background:var(--ivoire);
}
.menu-langue summary::-webkit-details-marker{display:none}
.menu-langue summary::after{content:"▾";font-size:9px;color:var(--encre-2)}
.menu-langue[open] summary::after{content:"▴"}
.menu-langue summary:hover{border-color:var(--cobalt);color:var(--cobalt)}
.menu-langue ul{
  position:absolute;right:0;top:calc(100% + 6px);z-index:70;list-style:none;
  background:var(--carte);border:1px solid var(--ligne);border-radius:10px;
  padding:6px;min-width:120px;box-shadow:0 16px 40px -18px rgba(18,21,26,.28);
}
.menu-langue li a{
  display:flex;justify-content:space-between;gap:10px;align-items:baseline;
  padding:8px 10px;border-radius:7px;font-size:13px;
}
.menu-langue li a .code-l{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--encre-2)}
.menu-langue li a:hover{background:var(--cobalt-pale);color:var(--cobalt)}
.menu-langue li a[aria-current="true"]{background:var(--ivoire);font-weight:600}
@media (max-width:820px){.menu-langue{margin-left:auto}.menu-langue ~ .menu-bouton{margin-left:6px}}

/* ---------- Logo de solution (fiches annuaire) ---------- */
.titre-solution{display:flex;align-items:center;gap:16px}
.logo-solution{
  width:44px;height:44px;flex:none;border-radius:10px;
  background:var(--carte);border:1px solid var(--ligne);padding:6px;
  object-fit:contain;
}
@media (max-width:560px){.titre-solution{gap:12px}.logo-solution{width:36px;height:36px}}

/* Logos dans le listing de l'annuaire */
.carte-terme dfn{display:flex;align-items:center;gap:10px}
.logo-solution--carte{width:28px;height:28px;border-radius:7px;padding:4px}

/* ---------- Hero sur fond blanc (accueil) ---------- */
.hero-fond{background:var(--carte);border-bottom:1px solid var(--ligne)}
.hero-fond .hero{padding-top:64px}
