/* ==========================================================================
   base.css — reset léger, normalisation, fondations de document.
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

* { margin: 0; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
/* Lissage natif RÉSERVÉ au fonctionnement sans JavaScript. Avec JS (html.js),
   l'animation est pilotée en JS (scroll-behavior:auto forcé pendant le défilement). */
html:not(.js) { scroll-behavior: smooth; }

body {
  min-height: 100vh;
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  transition: background-color var(--transition), color var(--transition);
}

/* Médias fluides, sans débordement */
img, picture, svg, video {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Éléments de formulaire héritent de la typo (préparation lot 11) */
input, button, textarea, select { font: inherit; color: inherit; }

/* Liens : couleurs par défaut définies ici (jamais de bleu navigateur) */
a {
  color: var(--primary);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
  transition: color var(--transition);
}
a:hover { color: var(--primary-hover); }
a:active { color: var(--primary-hover); }

/* Focus clavier visible (≥ 2px, contraste ≥ 3:1) sur tous les thèmes */
:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
  border-radius: 2px;
}
/* Pas de double indicateur à la souris quand :focus-visible est géré */
:focus:not(:focus-visible) { outline: none; }

/* Respect de la réduction de mouvement : neutralise la transition partagée */
@media (prefers-reduced-motion: reduce) {
  :root { --transition: 0s; }
  * { animation: none; scroll-behavior: auto; }
}

/* Impression : couleurs de fond conservées si l'utilisateur le demande */
@media print {
  body { background: #fff; color: #000; }
}
