/* Minimal modern reset. */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
}

h1, h2, h3, h4, h5, h6, p, figure, blockquote {
  margin: 0;
}

ul[role="list"],
ol[role="list"] {
  list-style: none;
  margin: 0;
  padding: 0;
}

img, picture, svg {
  max-width: 100%;
  display: block;
}

button, input, select, textarea {
  font: inherit;
  color: inherit;
}

a {
  text-decoration: none;
}

:where(.content, main) a {
  color: var(--color-text-link);
}

/* Nav links: the canonical .nav-menu__link styling now lives in a SINGLE sheet,
   css/components/nav-link.css (FND-13), linked globally by App.razor — no longer duplicated here. */

/* ════════════════════════════════════════════════════════════════════════════
   FND-5 — GARDE-FOU MOTION UNIQUE. Neutralise toute transition/animation quand
   l'utilisateur demande moins de mouvement, y compris dans les composants à CSS
   isolé (`!important` traverse les scopes Blazor) et le CSS futur qui aurait
   oublié son propre bloc. `0.01ms` plutôt que `none` : les gestionnaires
   transitionend/animationend se déclenchent quand même, donc aucune logique JS
   ne reste bloquée. Ce bloc est l'UNIQUE `prefers-reduced-motion` du dépôt.
   ══════════════════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }

  html {
    scroll-behavior: auto !important;
  }
}

/* Défilement fluide par défaut pour les ancres (annulé ci-dessus si demandé). */
@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}

a:hover {
  text-decoration: underline;
}
