/*
Theme Name: Examen VTC Genève — Child
Theme URI: https://examentvtc.getdriver.ch
Description: Thème enfant d'Astra pour la plateforme de préparation aux épreuves E1 et E2 du diplôme de chauffeur taxi/VTC du canton de Genève. Porte le design system (jetons CSS) consommé par le plugin examenvtc-core.
Author: GetDriver
Author URI: https://getdriver.ch
Template: astra
Version: 0.1.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: examenvtc-child
Tags: education, e-learning
*/

/* ==========================================================================
   DESIGN SYSTEM — jetons
   Source unique de vérité pour la couleur, la typographie et l'espacement.
   Les composants du plugin (classes .evtc-) ne consomment QUE ces jetons :
   ajuster l'identité du site = modifier ce bloc, rien d'autre.
   ========================================================================== */

:root {
  /* --- Signature GetDriver (lien de marque avec getdriver.ch) --- */
  --evtc-brand:        #E2001A;
  --evtc-brand-dark:   #B00014;

  /* --- Surfaces : claires et calmes, pour des heures de lecture --- */
  --evtc-paper:        #FFFFFF;
  --evtc-surface:      #F6F7F9;
  --evtc-sunk:         #ECEFF3;
  --evtc-ink:          #0F1113;
  --evtc-muted:        #5B6470;
  --evtc-faint:        #8A93A0;
  --evtc-rule:         #E2E6EB;

  /* --- Couleurs sémantiques des deux épreuves ---
     E1 hérite du rouge de marque (le juridique), E2 prend le bleu
     cartographique (la topographie). Cette paire structure tout le site. */
  --evtc-e1:           #C2103A;
  --evtc-e1-soft:      #FCEEF1;
  --evtc-e2:           #0E6E8C;
  --evtc-e2-soft:      #EAF4F8;

  /* --- États : distincts de l'accent, jamais porteurs seuls du sens --- */
  --evtc-good:         #14794A;
  --evtc-good-soft:    #E9F5EE;
  --evtc-warn:         #B26A00;
  --evtc-warn-soft:    #FDF3E3;
  --evtc-bad:          #C2103A;
  --evtc-bad-soft:     #FCEEF1;

  /* --- Typographie --- */
  --evtc-font-display: 'Sora', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --evtc-font-body:    'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --evtc-font-mono:    'Cascadia Mono', Consolas, ui-monospace, monospace;
  /* Texte de loi : une serif améliore la lecture des articles longs */
  --evtc-font-legal:   Constantia, Charter, 'Iowan Old Style', Georgia, serif;

  --evtc-fs-xs:        0.8125rem;
  --evtc-fs-sm:        0.9375rem;
  --evtc-fs-base:      1.0625rem;
  --evtc-fs-lg:        1.1875rem;
  --evtc-fs-xl:        1.4375rem;
  --evtc-fs-2xl:       1.875rem;
  --evtc-fs-3xl:       2.4375rem;

  --evtc-lh-tight:     1.16;
  --evtc-lh-normal:    1.6;
  --evtc-lh-loose:     1.75;
  --evtc-measure:      68ch;

  /* --- Espacement (échelle unique, pas de valeurs arbitraires) --- */
  --evtc-s1:           0.25rem;
  --evtc-s2:           0.5rem;
  --evtc-s3:           0.75rem;
  --evtc-s4:           1rem;
  --evtc-s5:           1.5rem;
  --evtc-s6:           2rem;
  --evtc-s7:           3rem;
  --evtc-s8:           4rem;

  /* --- Formes --- */
  --evtc-radius-sm:    3px;
  --evtc-radius:       6px;
  --evtc-radius-lg:    10px;
  --evtc-shadow-sm:    0 1px 2px rgba(15, 17, 19, .06);
  --evtc-shadow:       0 2px 8px rgba(15, 17, 19, .08);

  /* --- Cibles tactiles : 44px minimum (WCAG 2.2 AA) --- */
  --evtc-tap:          44px;
}

/* Mode sombre — révision du soir. Ne s'applique qu'aux composants .evtc-,
   Astra gardant ses propres réglages. */
@media (prefers-color-scheme: dark) {
  :root {
    --evtc-paper:      #12151A;
    --evtc-surface:    #191D24;
    --evtc-sunk:       #212630;
    --evtc-ink:        #E8EBEF;
    --evtc-muted:      #A0A9B6;
    --evtc-faint:      #77808D;
    --evtc-rule:       #2A3138;
    --evtc-e1:         #F2879C;
    --evtc-e1-soft:    #2A171C;
    --evtc-e2:         #6FC0D8;
    --evtc-e2-soft:    #14252C;
    --evtc-good:       #6FC894;
    --evtc-good-soft:  #15241C;
    --evtc-warn:       #E0AC55;
    --evtc-warn-soft:  #261D0F;
    --evtc-bad:        #F2879C;
    --evtc-bad-soft:   #2A171C;
    --evtc-shadow-sm:  0 1px 2px rgba(0, 0, 0, .4);
    --evtc-shadow:     0 2px 8px rgba(0, 0, 0, .5);
  }
}

/* ==========================================================================
   BASES PARTAGÉES
   ========================================================================== */

/* Focus toujours visible — non négociable pour un site utilisé au clavier
   (quiz, flashcards, jeux). */
.evtc-root :focus-visible,
.evtc-root:focus-visible {
  outline: 2px solid var(--evtc-brand);
  outline-offset: 2px;
  border-radius: var(--evtc-radius-sm);
}

/* Zone de lecture confortable pour les cours et les textes de loi. */
.evtc-prose {
  max-width: var(--evtc-measure);
  font-family: var(--evtc-font-body);
  font-size: var(--evtc-fs-base);
  line-height: var(--evtc-lh-normal);
  color: var(--evtc-ink);
}

.evtc-legal-text {
  font-family: var(--evtc-font-legal);
  line-height: var(--evtc-lh-loose);
  max-width: var(--evtc-measure);
}

/* Un article de loi cité : toujours identifiable d'un coup d'œil. */
.evtc-citation {
  font-family: var(--evtc-font-mono);
  font-size: var(--evtc-fs-xs);
  color: var(--evtc-e1);
  border-left: 2px solid var(--evtc-e1);
  padding-left: var(--evtc-s2);
}

/* Chiffres alignés partout où ils se comparent (scores, notes, tableaux). */
.evtc-num {
  font-variant-numeric: tabular-nums;
}

/* Réservé aux lecteurs d'écran. */
.evtc-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;
}

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