/* La carte de consentement et d'information (Gate A six, bandeau 1), les pages légales et le lien « Accès pro » de amorce.dev (30/09/2026).
   Ne définit aucun jeton : lit ceux du site (--bg --fg --body --soft --mut --line --line-2 --violet --acc --surface-2 --e),
   donc suit le thème clair / foncé tout seul. Mise en page seulement : la direction artistique de la carte reste à valider (Gate B). */

/* ============ LA CARTE ============ */
.cb{position:fixed;left:16px;bottom:16px;z-index:9000;box-sizing:border-box;width:min(22.5rem,calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);
  overflow:auto;overscroll-behavior:contain;display:grid;gap:12px;padding:16px;background:var(--surface-2);color:var(--fg);
  border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(20,20,16,.16);font-family:'Barlow',sans-serif;font-weight:300;font-size:14px;line-height:1.45}
.cb-large{width:min(32rem,calc(100vw - 32px))}
html[data-theme=ink] .cb{box-shadow:0 14px 40px rgba(0,0,0,.5)}
.cb:focus{outline:none}
.cb:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
@media(prefers-reduced-motion:no-preference){.cb{animation:cb-in .35s var(--e,ease) both}}
@keyframes cb-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.cb p{margin:0}
.cb-k{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.cb-h{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:30px;line-height:1;color:var(--fg)}
.cb-pt{color:var(--violet)}
.cb-txt{color:var(--body);font-size:14px}
.cb-plus{color:var(--fg);text-decoration:underline;text-underline-offset:3px}
.cb-plus:hover{color:var(--acc)}
.cb-l{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding-top:12px;border-top:1px solid var(--line-2)}
.cb-q{font-weight:500;font-size:15px;color:var(--fg)}
.cb-d{grid-column:1 / -1;grid-row:2;color:var(--body);font-size:13px}
.cb-f{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.cb-sig{grid-column:1 / -1;color:var(--fg);font-size:13px;font-weight:500}
.cb-seg{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.cb-s{font:500 13px/1 'Barlow',sans-serif;min-width:52px;min-height:34px;padding:0 12px;background:transparent;color:var(--mut);border:0;cursor:pointer}
.cb-s+.cb-s{border-left:1px solid var(--line)}
.cb-s.cb-on{background:var(--fg);color:var(--bg)}
.cb-tab{grid-column:1 / -1;width:100%;border-collapse:collapse;margin-top:6px;font-size:12.5px;line-height:1.4}
.cb-tab th{font-family:'JetBrains Mono',monospace;font-weight:400;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);text-align:left;padding:6px 10px 6px 0;border-bottom:1px solid var(--line)}
.cb-tab td{padding:8px 10px 8px 0;color:var(--body);vertical-align:top}
.cb-btns{display:grid;gap:8px}
.cb-btns2{grid-template-columns:repeat(2,1fr)}
.cb-btns3{grid-template-columns:repeat(3,1fr)}
/* Les boutons ont EXACTEMENT le même poids : refuser n'est pas plus caché qu'accepter. */
.cb-b{font:500 13px/1.1 'Barlow',sans-serif;letter-spacing:.02em;min-height:44px;padding:0 8px;background:transparent;color:var(--fg);border:1px solid var(--line);border-radius:7px;cursor:pointer;
  transition:background .25s,color .25s,border-color .25s}
@supports(color:color-mix(in srgb,red 50%,blue)){.cb-b{border-color:color-mix(in srgb,var(--fg) 45%,transparent)}}
.cb-b:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.cb-lien{justify-self:start;font:300 13px/1.3 'Barlow',sans-serif;color:var(--mut);background:none;border:0;padding:6px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.cb-lien:hover{color:var(--acc)}
.cb button:focus-visible,.cb a:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
.cb-sanscurseur,.cb-sanscurseur *{cursor:none}
@media(hover:none){.cb-sanscurseur,.cb-sanscurseur *{cursor:pointer}}
@media(max-width:520px){
  .cb,.cb-large{left:8px;right:8px;bottom:8px;width:auto;max-height:calc(100dvh - 16px);padding:14px 14px 12px}
  .cb-btns3{grid-template-columns:1fr}
  .cb-b{min-height:46px}
  .cb-tab thead{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
  .cb-tab,.cb-tab tbody,.cb-tab tr,.cb-tab td{display:block;width:100%}
  .cb-tab td{padding:3px 0}
  .cb-tab td[data-l]::before{content:attr(data-l);display:block;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
}
@media print{.cb{display:none}}
body.menu-open .cb{visibility:hidden;pointer-events:none}   /* le menu mobile plein écran passe devant : la carte se retire le temps qu'il est ouvert */

/* ============ MENU MOBILE ============ */
/* Le menu plein écran (#mmenu, z-index 410) recouvrait l'en-tête (nav, z-index 300, qui crée son propre empilement) : le bouton Fermer était
   invisible et injoignable au toucher (constaté le 30/09/2026 sur amorce.dev en ligne, elementFromPoint renvoyait #mmenu). Les règles
   .nav-l et .nav-r{z-index:420} voulaient déjà ce résultat ; il manquait de sortir tout l'en-tête au dessus du menu tant qu'il est ouvert. */
body.menu-open nav{z-index:430}

/* ============ LIEN « ACCÈS PRO » ============ */
/* La pastille de l'en-tête (posée par _rgpd/construire.py) se range dans le menu mobile dès que le bouton Menu apparaît. */
@media(max-width:900px){.pro-sw{display:none}}

/* ============ PAGES LÉGALES ============ */
.pf-single.lg-doc{max-width:920px}
.lg-doc .kn{margin-top:46px}
.lg-doc .kn:first-child{margin-top:0}
.lg-doc .mb+.mb{margin-top:14px}
.lg-doc a{color:var(--acc);text-decoration:underline;text-underline-offset:3px}
.lg-doc .mb a:hover{color:var(--fg)}
.lg-dl{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:0;border-top:1px solid var(--line)}
.lg-dl dt,.lg-dl dd{padding:14px 0;border-bottom:1px solid var(--line-2)}
.lg-dl dt{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);padding-right:18px}
.lg-dl dd{margin:0;font-size:clamp(15px,1.2vw,17px);line-height:1.6;color:var(--soft)}
.lg-ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.lg-ul li{position:relative;padding-left:22px;font-size:clamp(15px,1.2vw,18px);line-height:1.65;color:var(--soft)}
.lg-ul li::before{content:'';position:absolute;left:0;top:.72em;width:10px;height:1px;background:var(--violet)}
.lg-wrap{margin-top:8px;overflow-x:auto}
.lg-t{width:100%;border-collapse:collapse;font-size:14px;line-height:1.5}
.lg-t th{font-family:'JetBrains Mono',monospace;font-weight:400;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);text-align:left;padding:10px 14px 10px 0;border-bottom:1px solid var(--line);vertical-align:bottom}
.lg-t td{padding:14px 14px 14px 0;border-bottom:1px solid var(--line-2);vertical-align:top;color:var(--body)}
.lg-t td:first-child{color:var(--fg);font-weight:500;min-width:150px}
.lg-doc code{font-family:"JetBrains Mono",monospace;font-size:.88em;color:var(--fg);word-break:break-all}
.lg-note{margin-top:38px;font-size:11px;color:var(--mut)}
.lg-act{margin-top:22px}
.lg-act button{font:500 14px/1 'Barlow',sans-serif;min-height:46px;padding:0 22px;background:transparent;color:var(--fg);border:1px solid var(--fg);border-radius:7px;cursor:none;transition:background .25s,color .25s}
.lg-act button:hover{background:var(--fg);color:var(--bg)}
@media(hover:none){.lg-act button{cursor:pointer}}
@media(max-width:760px){
  .lg-dl{grid-template-columns:1fr}
  .lg-dl dt{border-bottom:0;padding-bottom:0}
  .lg-dl dd{padding-top:4px}
  .lg-t thead{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
  .lg-t,.lg-t tbody,.lg-t tr,.lg-t td{display:block;width:100%}
  .lg-t tr{padding:16px 0;border-bottom:1px solid var(--line)}
  .lg-t td{border:0;padding:5px 0}
  .lg-t td:first-child{min-width:0;padding-bottom:8px;font-size:16px}
  .lg-t td[data-l]::before{content:attr(data-l);display:block;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin-bottom:2px}
}
