/* Page d'accueil du Cab-Club : sobre, blanc, bleu seul, Archivo. Rien d'autre que le titre, deux choix, la scène et la suite. */
:root{--bleu:#1452d8;--bleu-fonce:#0d3aa6;--encre:#0d1b2a;--gris:#5b6675;--filet:#d9dfe8;--fond:#fff;--rayon:10px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fond);color:var(--encre);font-family:'Archivo',system-ui,sans-serif;font-size:18px;line-height:1.5}
.skip{position:absolute;left:-999px;top:8px;background:var(--bleu);color:#fff;padding:8px 14px;border-radius:6px;z-index:10}
.skip:focus{left:8px}
a{color:var(--bleu)}
:focus-visible{outline:3px solid var(--bleu);outline-offset:3px}

.ca-haut{display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:980px;margin:0 auto;padding:22px 24px 0}
.ca-ident{display:inline-flex;align-items:center;gap:10px;color:var(--bleu);text-decoration:none;font-weight:700;font-size:22px;letter-spacing:-.02em}
.ca-ident .cl-signe{width:30px;height:30px}
.ca-init{font-size:14px;color:var(--gris);letter-spacing:.02em}

.ca{max-width:980px;margin:0 auto;padding:clamp(40px,9vh,96px) 24px 56px}
.ca-h1{margin:0;font-weight:700;font-size:clamp(40px,7.4vw,84px);line-height:1;letter-spacing:-.045em;text-wrap:balance}
.ca-lead{margin:22px 0 0;max-width:34em;font-size:clamp(19px,2.3vw,24px);line-height:1.4;color:var(--gris);text-wrap:pretty}

.ca-deja{margin-top:28px;padding:16px 18px;border:1.5px solid var(--bleu);border-radius:var(--rayon);display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.ca-deja p{margin:0;font-weight:600}

.ca-choix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:40px}
.ca-carte{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:22px 22px 24px;border:1.5px solid var(--filet);border-radius:var(--rayon);transition:border-color .15s,background .15s}
.ca-carte:hover{border-color:var(--bleu)}
.ca-carte:focus-visible{outline:3px solid var(--bleu);outline-offset:3px}
.ca-carte[aria-pressed=true]{border-color:var(--bleu);background:var(--bleu);color:#fff}
.ca-carte__t{font-weight:700;font-size:24px;letter-spacing:-.02em}
.ca-carte__p{font-size:16px;opacity:.8}

.ca-scene{margin-top:28px}
.ca-scene[hidden],.ca-fin[hidden],.ca-deja[hidden]{display:none}
.ca-scene video{display:block;width:100%;aspect-ratio:16/9;background:#06152f;border-radius:var(--rayon)}
.ca-nota{margin:10px 0 0;font-size:14px;color:var(--gris)}

.ca-piste{position:relative;display:grid;min-height:clamp(340px,52vw,540px);border-radius:var(--rayon);background:var(--bleu);color:#fff;overflow:hidden}
.ca-diapo{display:flex;flex-direction:column;justify-content:center;gap:16px;padding:clamp(56px,7vw,72px) clamp(24px,6vw,72px) clamp(28px,6vw,72px)}
.ca-diapo[hidden]{display:none}
.ca-diapo__n{position:absolute;top:20px;left:clamp(24px,6vw,72px);margin:0;font-family:'JetBrains Mono',monospace;font-size:14px;letter-spacing:.12em;opacity:.7}
.ca-bientot{align-self:flex-start;padding:4px 14px;border:1.5px solid #fff;border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.ca-diapo__t{margin:0;font-weight:700;font-size:clamp(28px,5.4vw,64px);line-height:1.02;letter-spacing:-.04em;text-wrap:balance;max-width:16em}
.ca-diapo__p{margin:0;font-size:clamp(17px,2.2vw,26px);line-height:1.4;max-width:30em;opacity:.92;text-wrap:pretty}

.ca-barre{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;margin-top:14px}
.ca-prog{height:4px;border-radius:2px;background:var(--filet)}
.ca-prog span{display:block;height:100%;border-radius:2px;background:var(--bleu);transition:width .25s}

.ca-btn{appearance:none;font:inherit;font-weight:600;cursor:pointer;display:inline-block;text-decoration:none;text-align:center;padding:11px 22px;border-radius:999px;border:1.5px solid var(--bleu);background:var(--bleu);color:#fff}
.ca-btn:hover{background:var(--bleu-fonce);border-color:var(--bleu-fonce)}
.ca-btn--filet{background:transparent;color:var(--bleu)}
.ca-btn--filet:hover{background:var(--bleu);color:#fff}
.ca-btn--grand{padding:15px 34px;font-size:20px}
.ca-btn:disabled{cursor:not-allowed;background:#eef1f6;border-color:var(--filet);color:#8a94a3}
.ca-btn[hidden]{display:none}

.ca-fin{margin-top:32px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.ca-note{margin:0;font-size:14px;color:var(--gris)}
.ca-lien{all:unset;cursor:pointer;color:var(--gris);font-size:15px;text-decoration:underline;text-underline-offset:3px}
.ca-lien:hover{color:var(--bleu)}
.ca-lien:focus-visible{outline:3px solid var(--bleu);outline-offset:3px}
.ca-retour{margin:44px 0 0;font-size:15px}

.ca-dialogue{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:28px;border:0;border-radius:14px;color:var(--encre);background:#fff;box-shadow:0 20px 60px rgba(13,27,42,.35)}
.ca-dialogue::backdrop{background:rgba(6,21,47,.62)}
.ca-dialogue h2{margin:0;font-size:28px;letter-spacing:-.03em;line-height:1.1}
.ca-d-p{margin:10px 0 18px;color:var(--gris);font-size:16px}
.ca-champ{margin-bottom:14px}
.ca-champ label{display:block;font-weight:600;font-size:15px;margin-bottom:4px}
.ca-fac{font-weight:400;color:var(--gris)}
.ca-champ input{width:100%;font:inherit;padding:11px 12px;border:1.5px solid var(--filet);border-radius:8px;background:#fff;color:var(--encre)}
.ca-champ input:focus-visible{outline:3px solid var(--bleu);outline-offset:1px;border-color:var(--bleu)}
.ca-champ[data-etat=erreur] input{border-color:#b3261e}
.ca-erreur{margin:4px 0 0;font-size:14px;color:#b3261e;min-height:0}
.ca-erreur:empty{display:none}
.ca-case{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;align-items:start;margin:6px 0 8px}
.ca-case input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--bleu)}
.ca-case label{font-size:15px;line-height:1.45}
.ca-case .ca-erreur{grid-column:2}
.ca-droits{margin:6px 0 0;font-size:13.5px;color:var(--gris)}
.ca-statut{margin:10px 0 0;font-size:15px;min-height:1.4em}
.ca-statut[data-etat=erreur]{color:#b3261e}
.ca-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:14px;flex-wrap:wrap}
.ca-piege{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

@media (max-width:640px){
  .ca-choix{grid-template-columns:minmax(0,1fr)}
  .ca-btn--grand{width:100%}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* documentation pour agents */
.ca-doc h2{margin:40px 0 8px;font-size:26px;letter-spacing:-.03em;line-height:1.15}
.ca-doc p,.ca-doc li{max-width:42em}
.ca-doc ul{padding-left:1.2em}
.ca-doc li{margin:6px 0}
.ca-doc code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.88em}
.ca-code{display:inline-block;padding:10px 14px;border:1.5px solid var(--filet);border-radius:8px;text-decoration:none;overflow-wrap:anywhere}
.ca-table{overflow-x:auto;margin-top:12px;border:1.5px solid var(--filet);border-radius:var(--rayon)}
.ca-table table{border-collapse:collapse;width:100%;min-width:560px;font-size:15px}
.ca-table th,.ca-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--filet);vertical-align:top}
.ca-table thead th{background:#f4f7fc;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--gris)}
.ca-table tbody tr:last-child th,.ca-table tbody tr:last-child td{border-bottom:0}
