/* SoukPilot Lot E — couche accessibilité partagée (WCAG 2.2 AA), pages publiques.
 * N'altère pas l'identité visuelle : ajoute uniquement des états
 * (focus, mouvement réduit) et des utilitaires (sr-only, cibles tactiles).
 */

/* Texte réservé aux technologies d'assistance (zones aria-live, libellés
   supplémentaires) : invisible visuellement, lisible par un lecteur d'écran. */
.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;
}
.sr-only-focusable:focus,.sr-only-focusable:focus-visible{
 position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal;
}

/* Filet de sécurité pour la visibilité du focus clavier (SC 2.4.7 / 2.4.11).
   Ne retire aucun style existant : renforce uniquement les éléments qui
   n'ont pas déjà un indicateur de focus visible propre. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
summary:focus-visible{
 outline:3px solid #1B2A4A;
 outline-offset:2px;
 border-radius:4px;
}
[dir="rtl"] a:focus-visible,
[dir="rtl"] button:focus-visible{outline-color:#1B2A4A}

/* Cibles tactiles : au moins 24x24px (WCAG 2.2 SC 2.5.8) et 44x44px visé
   pour les actions principales, sur les composants publics qui n'avaient pas
   de taille minimale explicite. */
.sp-language-switcher button,
[data-sp-lang],
[data-product-lang],
.sp-lang,
.gallery-nav button{
 min-width:44px;min-height:44px;
}

/* Mouvement réduit : redondant avec brand-tokens.css par prudence, si une
   page ne le charge pas. */
@media (prefers-reduced-motion: reduce){
 *,*::before,*::after{
  animation-duration:0.001ms!important;
  animation-iteration-count:1!important;
  transition-duration:0s!important;
  scroll-behavior:auto!important;
 }
}

/* Lien d'évitement générique pour les pages qui n'ont pas encore de style
   dédié (le lien existant .sp-skip-link est conservé tel quel). */
.a11y-skip-link{
 position:absolute;left:1rem;top:-3rem;z-index:9999;background:#111827;color:#fff;
 padding:.7rem 1rem;border-radius:.75rem;font-weight:800;text-decoration:none;
 transition:top .18s ease;
}
.a11y-skip-link:focus{top:.75rem}
[dir="rtl"] .a11y-skip-link{left:auto;right:1rem}

/* Messages d'erreur de formulaire : contraste et repère visuel non basé sur
   la seule couleur (icône + texte, jamais couleur seule). */
.field-error{
 color:#B3261E;font-size:12px;margin-top:4px;display:flex;align-items:center;gap:6px;
}
.field-error::before{content:"⚠";flex:0 0 auto}
[aria-invalid="true"]{border-color:#B3261E!important}
