/* Accessibilité transversale de la vitrine. Chargé après les styles de composants. */
:root {
  --focus-ring: #005fcc;
  --focus-ring-gap: #fff;
  --text-secondary-light: #595959;
  --text-secondary-dark: #cbd2d6;
}

:is(
  a,
  button,
  input,
  textarea,
  select,
  summary,
  [tabindex]:not([tabindex="-1"])
):focus-visible {
  outline: 3px solid var(--focus-ring) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 2px var(--focus-ring-gap) !important;
}

/* L'anneau intérieur évite que les contrôles placés en bord de fenêtre soient rognés. */
.navbar-toggler:focus-visible,
.slick-prev:focus-visible,
.slick-next:focus-visible,
.slick-dots button:focus-visible {
  outline-offset: -5px !important;
}

/* Les champs conservent également leur changement de bordure propre au composant. */
.contact_form :is(input, textarea):focus-visible {
  border-bottom-color: var(--focus-ring);
}

/* Textes secondaires : ratios 7:1 sur blanc et 8,68:1 sur #293133. */
:is(
  .compteur_label,
  .societe_connecte_titre,
  .societe_aside_titre,
  .actu_card_dept,
  .produit_badge,
  .clients h2,
  footer .footer_sep
) {
  color: var(--text-secondary-light);
}

.supervision_form .form-control::placeholder {
  color: var(--text-secondary-light);
}

:is(
  .challenge_strip_mois,
  .challenge_strip_stats,
  .newsletter_band .lien_desabonnement,
  .actualites_hero .actualites_subtitle,
  .section_band--dark .compteur_label,
  .contact_subtitle,
  .contact_adresse_titre
) {
  color: var(--text-secondary-dark);
}

.newsletter_band #newsletter_email::placeholder {
  color: var(--text-secondary-dark);
  opacity: 1;
}

footer a:not(.appulz):not(.france) {
  color: var(--text-secondary-light);
  opacity: 1;
}
