/* ==========================================================================
   SpeakPro Academy — identités des espaces d'apprentissage des offres (31/10/2026)
   --------------------------------------------------------------------------
   Chargée APRÈS premium-v3.css : même architecture (en-tête, tableau de bord,
   programme, page module, feuilles de contenu), une identité par offre.
   body.pv.ac[data-offer="…"] fixe les couleurs, la typographie et le motif.
   Toutes les offres sont claires ; seule SpeakPro Premium reste sombre.
   ========================================================================== */
body.pv.ac {
  --pv-bg: #f5f6f8; --pv-bg-2: #eef0f3; --pv-surface: #ffffff; --pv-surface-2: #ffffff; --pv-surface-3: #eef1f5;
  --pv-line: rgba(16, 35, 63, 0.10); --pv-line-2: rgba(16, 35, 63, 0.18);
  --pv-gold: #10233f; --pv-gold-2: #0b1a30; --pv-gold-3: #1d3a63; --pv-gold-soft: rgba(16, 35, 63, 0.08); --pv-gold-line: rgba(16, 35, 63, 0.28);
  --pv-ivory: #12161d; --pv-text: #1f2633; --pv-text-2: #4b5565; --pv-text-3: #6b7484;
  --pv-ok: #1f8a55; --pv-ok-soft: rgba(31, 138, 85, 0.10); --pv-warn: #b7791f; --pv-err: #c0392b;
  --pv-paper: #ffffff; --pv-paper-ink: #12161d; --pv-paper-mute: #5b6473; --pv-paper-line: #dfe3ea;
  --ac-on: #ffffff; --ac-top: rgba(255, 255, 255, 0.92); --ac-top-ink: #12161d; --ac-accent-2: #c8683f;
  --ac-hero: none;
  --pv-serif: 'Inter', system-ui, sans-serif;
  background: var(--pv-bg); background-image: var(--ac-hero); background-attachment: scroll; background-repeat: no-repeat; color: var(--pv-text);
}
body.pv.ac ::selection { background: var(--pv-gold-soft); color: inherit; }
body.pv.ac .pv-top { background: var(--ac-top); box-shadow: 0 1px 0 var(--pv-line); }
body.pv.ac .pv-brand-t b { color: var(--ac-top-ink); }
body.pv.ac .pv-brand-t span { color: var(--ac-accent-2); letter-spacing: 0.14em; font-size: 10.5px; max-width: 46vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.pv.ac .pv-mark { border-color: var(--ac-accent-2); }
body.pv.ac .pv-mark::after { background: var(--ac-accent-2); }
body.pv.ac .pv-nav a { color: var(--ac-top-ink); opacity: .72; }
body.pv.ac .pv-nav a:hover, body.pv.ac .pv-nav a[aria-current="page"] { opacity: 1; color: var(--ac-top-ink); }
body.pv.ac .pv-nav a[aria-current="page"]::after { background: var(--ac-accent-2); }
body.pv.ac .pv-account { color: var(--ac-top-ink); border-color: currentColor; opacity: .8; }
body.pv.ac .pv-tabbar { background: rgba(255, 255, 255, 0.97); border-top: 1px solid var(--pv-line); grid-template-columns: repeat(3, 1fr); }
body.pv.ac .pv-tabbar a[aria-current="page"] { color: var(--pv-gold); }
body.pv.ac .pv-card { background: var(--pv-surface); box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04); }
body.pv.ac .pv-card-gold { border-color: var(--pv-gold-line); box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), inset 4px 0 0 var(--pv-gold); }
body.pv.ac .pv-btn { background: var(--pv-gold); color: var(--ac-on); }
body.pv.ac .pv-btn:hover { background: var(--pv-gold-3); }
body.pv.ac .pv-btn-ghost { background: transparent; color: var(--pv-ivory); border-color: var(--pv-line-2); }
body.pv.ac .pv-btn-ghost:hover { background: var(--pv-gold-soft); border-color: var(--pv-gold-line); }
body.pv.ac .pv-bar { background: rgba(16, 24, 40, 0.08); }
body.pv.ac .pv-bar > i { background: linear-gradient(90deg, var(--pv-gold), var(--pv-gold-3)); }
body.pv.ac .pv-ring { background: conic-gradient(var(--pv-gold) calc(var(--p) * 1%), rgba(16, 24, 40, 0.08) 0); }
body.pv.ac .pv-lesson.is-current .pv-lesson-n, body.pv.ac .pv-step[aria-current="step"] .pv-step-i { color: var(--ac-on); background: var(--pv-gold); border-color: var(--pv-gold); }
body.pv.ac .pv-steps { background: rgba(255, 255, 255, 0.95); }
@media (min-width: 980px) { body.pv.ac .pv-steps { background: none; } }
body.pv.ac .pv-step[aria-current="step"] { background: var(--pv-surface); box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06); }
body.pv.ac .pv-sheet { box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05), 0 8px 24px rgba(16, 24, 40, 0.05); border: 1px solid var(--pv-paper-line); }
body.pv.ac .pv-sheet a:not(.btn):not(.pv-btn) { color: var(--pv-gold); }
body.pv.ac .pv-paper-btn { background: var(--pv-gold); color: var(--ac-on); }
body.pv.ac .pv-paper-btn:hover { background: var(--pv-gold-3); }
body.pv.ac .pv-sheet .pv-paper-btn { color: var(--ac-on); }
body.pv.ac .pv-paper-btn.is-ghost, body.pv.ac .pv-sheet .pv-paper-btn.is-ghost { background: transparent; color: var(--pv-paper-ink); border: 1.5px solid var(--pv-paper-line); }
body.pv.ac .pv-opt:hover:not([disabled]), body.pv.ac .pv-say:hover { border-color: var(--pv-gold); }
body.pv.ac .pv-input:focus { outline-color: var(--pv-gold); }
body.pv.ac .pv-lines strong { color: var(--pv-gold); }
body.pv.ac .pv-lines li.is-now, body.pv.ac .pv-text .pv-seg.is-now { background: var(--pv-gold-soft); color: inherit; }
body.pv.ac .pv-line-built { background: #fbfcfd; border-color: var(--pv-paper-line); }
body.pv.ac .pv-explain.neutral { background: var(--pv-surface-3); }
body.pv.ac .pv-play { background: var(--pv-gold); color: var(--ac-on); }
body.pv.ac .pv-help-fab { background: var(--pv-surface); color: var(--pv-ivory); border-color: var(--pv-line-2); box-shadow: 0 10px 28px rgba(16, 24, 40, 0.16); text-decoration: none; }
body.pv.ac .pv-help-dot.is-on { background: #25d366; box-shadow: 0 0 0 3px rgba(37, 211, 102, .18); }
body.pv.ac .pv-bar-paper { background: #e7eaef; }
body.pv.ac .pv-foot { background: transparent; color: var(--pv-text-3); }
body.pv.ac .pv-sheet { --m1-cream: #fbfcfd; --m1-sand: var(--pv-surface-3); --m1-line: var(--pv-paper-line); --m1-terra: var(--pv-gold); --m1-terra-dark: var(--pv-gold-2); }

/* ---------------------------------------------------------------- composants des espaces */
.pv-hero { padding: 6px 0 4px; }
.pv-strong { color: var(--pv-ivory); }
.pv-linkbtn { background: none; border: 0; padding: 0; color: var(--pv-gold); font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.pv-card-note { border-style: dashed; }
.pv-facts { display: flex; gap: 22px; flex-wrap: wrap; }
.pv-facts div { display: flex; flex-direction: column; }
.pv-facts b { font-family: var(--pv-serif); font-size: 26px; color: var(--pv-ivory); line-height: 1.1; }
.pv-facts span { font-size: 12.5px; color: var(--pv-text-3); }
.pv-howto { margin: 0; padding-left: 18px; color: var(--pv-text-2); font-size: 14px; line-height: 1.6; display: grid; gap: 6px; }
.pv-skillgrid { display: grid; gap: 12px; }
@media (min-width: 560px) { .pv-skillgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 22px; } }
.pv-skill-top { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; color: var(--pv-ivory); margin-bottom: 6px; }
.pv-act { display: flex; justify-content: space-between; gap: 12px; text-decoration: none; padding: 11px 0; border-bottom: 1px solid var(--pv-line); }
.pv-act:last-child { border-bottom: 0; }
.pv-act-t { display: block; color: var(--pv-ivory); font-size: 14.5px; }
.pv-units { display: grid; gap: 12px; }
@media (min-width: 760px) { .pv-units { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pv-unit { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; align-items: start; padding: 18px; background: var(--pv-surface); border: 1px solid var(--pv-line); border-radius: 14px; text-decoration: none; color: inherit; transition: border-color .2s, transform .2s, box-shadow .2s; }
a.pv-unit:hover { border-color: var(--pv-gold-line); box-shadow: 0 6px 18px rgba(16, 24, 40, 0.07); }
.pv-unit-n { display: grid; place-items: center; align-content: center; width: 64px; height: 64px; border-radius: 12px; background: var(--pv-gold-soft); color: var(--pv-gold); font-family: var(--pv-serif); font-size: 26px; font-weight: 600; line-height: 1; }
.pv-unit-n small { font-family: var(--pv-sans); font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; margin-bottom: 4px; }
.pv-unit.is-done .pv-unit-n { background: var(--pv-ok-soft); color: var(--pv-ok); }
.pv-unit.is-locked { opacity: .62; }
.pv-unit-b { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pv-unit-top { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.pv-unit h3 { font-size: 17px; margin: 0; line-height: 1.3; }
.pv-unit-c { font-size: 13px; color: var(--pv-text-2); }
.pv-track { text-align: left; cursor: pointer; font: inherit; color: inherit; }
.pv-track:hover { border-color: var(--pv-gold-line); }
.pv-cando { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pv-cando label { display: flex; gap: 10px; align-items: flex-start; line-height: 1.5; cursor: pointer; }
.pv-cando input { margin-top: 4px; accent-color: var(--pv-gold); }
.pv-notes-part { margin-bottom: 20px; }
.pv-notes-part h4 { margin: 0 0 8px; font-size: 16px; }
.pv-examples { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.pv-examples li { display: flex; gap: 10px; align-items: flex-start; }
.pv-notes .pv-say { flex: none; padding: 5px 7px; margin: 0; }

/* 01/11/2026 — les thèmes propres à chaque offre (couleurs, polices, formes) sont retirés :
   une seule identité SpeakPro Academy, définie dans assets/css/sp-identity.css. */
