/* Valeurs relevées sur wwws.airfrance.fr, système Aero, le 09/11/2026. */
@font-face { font-family: 'Excellence In Motion Text'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/ExcellenceInMotionText-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Excellence In Motion Text'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/ExcellenceInMotionText-Medium.woff2') format('woff2'); }
@font-face { font-family: 'Excellence In Motion Text'; font-style: normal; font-weight: 600 900; font-display: swap; src: url('assets/fonts/ExcellenceInMotionText-Bold.woff2') format('woff2'); }
@font-face { font-family: 'Excellence In Motion Display'; font-style: normal; font-weight: 600 900; font-display: swap; src: url('assets/fonts/ExcellenceInMotionDisplay-Bold.woff2') format('woff2'); }
:root {
  --navy: #051039;
  --blue: #0045b6;
  --red: #e31837;
  --ink: #051039;
  --muted: #646774;
  --pale: #ebf0f9;
  --orange: #e31837;
  --line: #d3d4d7;
  --bg: #f6f6f7;
  font-family: 'Excellence In Motion Text', 'Helvetica Neue', Arial, sans-serif;
}
body, button, input, select, textarea { font-family: 'Excellence In Motion Text', 'Helvetica Neue', Arial, sans-serif; }
h1, h2, h3, .brand { font-family: 'Excellence In Motion Display', 'Helvetica Neue', Arial, sans-serif; font-weight: 700; letter-spacing: normal; }
.question-title { font-family: 'Excellence In Motion Text', 'Helvetica Neue', Arial, sans-serif; }
body { background: var(--bg); }
.welcome { background: var(--bg); }
.welcome-card { border-radius: 0; border: 1px solid var(--line); box-shadow: none; }
.intro { background: white; color: var(--ink); position: relative; }
.intro::before { content: none; }
.intro h1 { color: var(--navy); }
.intro > p { color: var(--muted); }
.eyebrow { color: var(--navy); }
.intro .eyebrow { color: var(--navy); }
.eyebrow::before { background: var(--red); }
.info { background: var(--bg); border: 1px solid var(--line); border-radius: 2px; color: var(--ink); }
.intro .home-release { background: var(--bg); border-color: var(--line); border-radius: 2px; color: var(--navy); }
.intro .home-release span { color: var(--muted); }
.selection { background: white; border-color: var(--line); }
.mode { border-color: var(--line); border-radius: 2px; background: white; }
.mode:hover { border-color: #8b95af; }
.mode:has(input:checked) { border: 1px solid var(--blue); background: var(--pale); box-shadow: inset 0 0 0 1px var(--blue); }
.mode-head { color: var(--navy); }
.mode p { color: #555f74; }
input { accent-color: var(--navy); }
button.primary { background: var(--blue); border-radius: 2px; color: white; }
button.primary:hover { background: #023897; }
button.primary:active { background: #062d78; }
button.secondary { border-color: var(--line); border-radius: 2px; color: var(--navy); }
button.secondary:hover { border-color: var(--navy); background: #f9f9fa; }
button:focus-visible, a:focus-visible, input:focus-visible { outline-color: var(--red); }
.sidebar { background: var(--navy); border-top: 4px solid var(--red); }
.brand span, .side-title, .side-bottom { color: #c6cde0; }
.side-domain-title .percent { color: #d1d8e8; }
button.side-domain.active { background: #ffffff14; box-shadow: inset 3px 0 0 var(--red); }
.side-track div { background: var(--red); }
.track > div { background: var(--red); }
.training-categories [aria-current="step"] { border-color: var(--blue); background: var(--pale); box-shadow: inset 0 0 0 1px var(--blue); }
.question-meta { color: var(--navy); }
.pill { background: var(--pale); color: var(--navy); }
.instruction { color: #535e74; }
.choice:hover { background: #f5f6fa; border-color: #8b95af; }
.choice:has(input:checked) { background: var(--pale); border-color: var(--blue); }
.feedback { background: var(--pale); border-left-color: var(--navy); }
.feedback p { color: #43516c; }
.results-note { background: var(--pale); color: #43516c; }
.question-card, .summary-card { border: 1px solid var(--line); border-radius: 2px; box-shadow: none; }
.choice, .metrics, .results-note, .feedback, .pill, .mobile-home { border-radius: 2px; }
.fixed-actions { border-color: var(--line); box-shadow: none; }
.mobile-tools #mobile-clock { color: var(--navy); }
.mobile-home { border-color: var(--line); background: white; color: var(--navy); }
.release-meta { background: var(--pale); color: var(--navy); border-color: var(--line); }
.mode-speed { border-color: var(--line); background: var(--pale); }
.mode-speed .mode-head { color: var(--navy); }
.mode-speed:has(input:checked) { border-color: var(--navy); background: var(--pale); box-shadow: inset 4px 0 0 var(--red); }
.mode-speed input { accent-color: var(--navy); }
.speed-notice { background: var(--pale); color: var(--navy); border-color: var(--line); }
/* Conserver un contraste lisible sur les surfaces sombres, y compris au survol. */
.sidebar .sidebar-actions button.secondary {
  color: #ffffff;
  background: transparent;
  border-color: #aab4ce;
  min-height: 44px;
  font-size: 14px;
  line-height: 1.5;
}
.sidebar .sidebar-actions button.secondary:hover,
.sidebar .sidebar-actions button.secondary:active {
  color: var(--navy);
  background: #ffffff;
  border-color: #ffffff;
}
.sidebar .discovery-note, .sidebar .discovery-note span { color: #d0d5e3; }
button:focus-visible, a:focus-visible, input:focus-visible {
  outline: 3px solid var(--navy);
  outline-offset: 4px;
}
.sidebar button:focus-visible, .intro a:focus-visible { outline-color: #ffffff; }
.sidebar .sidebar-actions button.secondary:focus-visible { outline-color: #ffffff; }
/* La typographie et les cibles restent lisibles sur les petits écrans. */
.intro > p, .info, .domain-list li, .mode p, .selection > p {
  font-size: 14px;
  line-height: 1.6;
}
.info strong, .mode-head { font-size: 15px; line-height: 1.5; }
.domain-list li { align-items: flex-start; }
.domain-list li > span { flex-shrink: 0; }
.selection button.primary, .selection button.secondary,
.training-categories button.secondary, .mobile-home { min-height: 44px; }
.mobile-home { min-width: 44px; }
.selection .small, .private-note, .release-meta { font-size: 13px; line-height: 1.6; }
.choice.correct:has(input:checked) { color: #267958; background: #eef8f3; border-color: #70b698; }
.choice.incorrect:has(input:checked) { color: #a74e38; background: #fff3f0; border-color: #dd907b; }
@media print {
  .intro { background: white; color: var(--navy); }
  .intro h1, .intro > p, .intro .eyebrow, .info { color: var(--navy); }
}
