/*
 * public/v2/css/chrome.css — l'en-tête et le pied de page uniques (views/v2/partials/header.ejs et footer.ejs)
 * affichés aussi sur les pages v1 (views/partials/navbar.ejs et footer.ejs les appellent).
 * Contient seulement ce que base.css apporte à ces deux blocs, sans les règles globales (titres, liens, corps de page)
 * qui changeraient la mise en forme des pages v1. Couleurs : uniquement les jetons de tokens.css.
 */
.v2-header, .v2-header *, .v2-footer, .v2-footer *, .v2-footer::before { box-sizing: border-box; }
.v2-container { width: 100%; max-width: var(--size-content); margin-inline: auto; padding-inline: var(--space-4); }
.v2-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.v2-skip-link { position: absolute; left: var(--space-2); top: -100px; z-index: 1000; background: var(--color-surface); color: var(--color-text); padding: var(--space-3); }
.v2-skip-link:focus { top: var(--space-2); }
.v2-header :focus-visible, .v2-footer :focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; border-radius: var(--radius-sm); }
/* Les pages v1 réservaient 64 px pour l'ancien menu fixe : l'en-tête v2 est dans le flux, plus de bande vide. */
body:has(> .v2-header), body:has(.v2-header) { padding-top: 0; }
.v2-header, .v2-footer { font-family: var(--font-family); font-size: var(--font-size-base); line-height: var(--font-line-height); color: var(--color-text); text-align: left; }
/* :where() = spécificité nulle : ces remises à zéro ne passent jamais devant les classes de components.css */
:where(.v2-header, .v2-footer) :where(h2, p, ul) { margin: 0; }
:where(.v2-header, .v2-footer) ul { list-style: none; padding: 0; }
:where(.v2-header, .v2-footer) a { text-underline-offset: 0.15em; }
