/*
 * Point d'entrée CSS. Les styles globaux sont une TRANSCRIPTION du proto
 * evolv-ia (baseline/design/globals.css) — règle 0-R-W : chaque valeur cite
 * sa source. Les styles de composants/pages arrivent lot par lot.
 */
@import url("reset-K1P4l29.css");
@import url("tokens-M8hSk_q.css");
@import url("fonts-EMHMY6c.css");
@import url("utilities-nh9-2CN.css");
@import url("reveal-FciAWI5.css");
@import url("navbar-hiWaejh.css");
@import url("footer-47zhEsq.css");
@import url("marque-6Tzc-fU.css");
@import url("theme-switcher-WhJj_HJ.css");
@import url("inscription-tab-1jVo6Lu.css");
@import url("home-hero-8rihhSw.css");
@import url("home-mid-k7pdayM.css");
@import url("home-bottom-w3MOvTW.css");
@import url("catalogue-yir9ghx.css");
@import url("fiche-b-LPBHe.css");
@import url("univers-ZLvX4ll.css");
@import url("auth-44vmnsd.css");
@import url("institutionnel-FUQKXit.css");
@import url("metiers-cHTLUYS.css");
@import url("contact-ZIwsLgq.css");
@import url("faq-5dMk-TL.css");
@import url("entreprises-f0Gm1lN.css");
@import url("tarifs-jp0glkm.css");
@import url("sprint-adoption-E_Ql2ha.css");
@import url("telecharger-YeLeGtK.css");
@import url("financement-8tpXjo-.css");
@import url("ressources-ggnQr9N.css");
@import url("a-propos-NwgbCFq.css");
@import url("certifications-LOgqyij.css");
@import url("communaute-4H0hdMN.css");
@import url("erreur-WQuHowD.css");
@import url("espace-9Fl8u3f.css");
@import url("espace-tableau-aMYjKCB.css");
@import url("espace-cours-iux3bBM.css");
@import url("espace-lecteur-6N-ORDF.css");
@import url("espace-lecteur-onglets-FFT0uWI.css");
@import url("espace-progression-3Xcjhhb.css");
@import url("espace-documents-nCoEYjX.css");
@import url("espace-devoirs-e8dbNEX.css");
@import url("formateur-n6eniCR.css");
@import url("rail-Cd3AtY9.css");
@import url("composants-DCw1Qp3.css");
@import url("styleguide-CFlgHRk.css");

/* ── Reset & base — source : globals.css:57-73 ── */
* { box-sizing: border-box; padding: 0; margin: 0; }
html, body { width: 100%; background-color: var(--bg); }
main { width: 100%; display: block; }
html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  background-color: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* ── Titres — source : globals.css:75-78 ── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  letter-spacing: -0.02em;
}

/* ── Scrollbar — source : globals.css:80-86 ── */
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--surface-2); }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--muted); }
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
.scrollbar-hide::-webkit-scrollbar { display: none; }

/* ── Transition globale de changement de thème — source : globals.css:132-142 ── */
*, *::before, *::after {
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
svg, img, video, button { transition: none; }
button {
  transition: background-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, color 0.18s ease;
}

/* ── Anti-débordement & médias — source : globals.css:389-396 ── */
img, video { max-width: 100%; height: auto; }
* { min-width: 0; }
html, body { overflow-x: hidden; }

/* ── Lien d'évitement (section 10) — complément 0-R-V « compléter n'est pas
   trahir » : invisible hors focus clavier, tokens de la charte. ── */
.skip-link {
  position: absolute;
  left: -9999px;
  z-index: 1000;
  background: var(--text);
  color: var(--bg);
  padding: 12px 20px;
  border-radius: 0 0 12px 0;
  font-family: var(--font-body);
  text-decoration: none;
}
.skip-link:focus { left: 0; top: 0; }

/* ── Respect de prefers-reduced-motion — arbitrage 0-R-V n°3 (3e voie) :
   animations par défaut inchangées, désactivées pour qui le demande. ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto; }
}

/* ── Libellé réservé aux lecteurs d'écran (§10 : chaque champ a un label) ── */
.visuellement-cache {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
