/**
 * Hubmonster — accessibilité (focus, mouvement, contrastes documentés)
 * Cibles: WCAG 2.2 AA
 */

:root {
  --focus-ring-width: 3px;
  --focus-ring-offset: 2px;
  --focus-ring-color: var(--primary-400);
  --focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);

  --min-touch-target: 44px;
  --motion-duration-fast: 150ms;
  --motion-duration-base: 250ms;
  --motion-easing: cubic-bezier(0.2, 0, 0, 1);
}

/* Paires texte/fond validées AA (≥ 4.5:1 corps, ≥ 3:1 grands textes) */
:root {
  --a11y-text-on-surface-page: var(--text-body);
  --a11y-text-on-surface-action: var(--text-on-action);
  --a11y-text-on-error: var(--error-100);
  --a11y-text-on-success: var(--success-900);
}

.focus-visible:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-ring-offset);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.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;
}
