/* Police tifinagh embarquée (Noto Sans Tifinagh, licence OFL) :
   aucune dépendance CDN — fonctionne hors-ligne et dans l'aperçu. */
@font-face{
  font-family:"Noto Sans Tifinagh";
  src:url("fonts/NotoSansTifinagh-Regular.woff2") format("woff2");
  font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+2D30-2D7F,U+2D80-2DDF;
}
/* ============================================================
   AzulConcours — design « carnet de route »
   Identité PROPRE (≠ concurrent) : indigo ⵣ · or · terre cuite
   Motifs : frise zigzag, tampons, numéros serif, filets pointillés
   RTL-safe : propriétés logiques uniquement.
   ============================================================ */
:root{
  --indigo:#232653; --indigo-d:#171a3d; --indigo-l:#ecedf6; --indigo-m:#4a4e85;
  --gold:#e2a52b; --gold-d:#8a6400; --gold-l:#fdf3d9;
  --terra:#c8623f; --terra-l:#fbe9e1;
  --jade:#2f8f6b; --jade-l:#e6f4ec;
  --red:#b3423f; --red-l:#fbe9e8;
  --paper:#fbf7ef; --card:#ffffff; --ink:#22252e; --muted:#6c6a63;
  --line:#e7e0d2; --line-d:#d8cfbb;
  --radius:14px; --maxw:1080px;
  --serif:Georgia,"Iowan Old Style","Palatino Linotype","Times New Roman",serif;
  --tif:"Noto Sans Tifinagh","Ebrima",system-ui,sans-serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,Tahoma,"Noto Sans Arabic","Noto Naskh Arabic","Noto Sans Tifinagh","Ebrima",sans-serif;
  --shadow:0 2px 0 var(--line-d);
  --shadow-lg:0 10px 30px rgba(35,38,83,.10);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
/* le défilement doux ne sert QUE pour les liens d'ancre, pas pour les changements de page */
@media(prefers-reduced-motion:no-preference){html.ancre{scroll-behavior:smooth}}
body{
  margin:0;background:var(--paper);color:var(--ink);line-height:1.75;
  font-family:var(--sans);
  background-image:radial-gradient(rgba(35,38,83,.045) 1px,transparent 1px);
  background-size:22px 22px;
}
[dir="rtl"] body{line-height:1.95;font-size:1.02rem}
h1,h2,h3{font-family:var(--serif);line-height:1.3;margin:.4em 0 .5em;font-weight:700;letter-spacing:-.01em}
h1{font-size:clamp(1.5rem,3.4vw,2.15rem)}
h2{font-size:1.5rem}
h3{font-size:1.15rem}
a{color:var(--indigo);text-decoration:underline;text-decoration-color:rgba(35,38,83,.28);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--terra);text-decoration-color:var(--terra)}
img{max-width:100%}
.muted{color:var(--muted);font-size:.93rem}
.small{font-size:.85rem}
.center{text-align:center}
hr{border:none;border-top:1px dashed var(--line-d);margin:26px 0}

/* ---------- barre supérieure ---------- */
.topline{height:5px;background:linear-gradient(90deg,var(--gold) 0 25%,var(--terra) 25% 50%,var(--jade) 50% 75%,var(--indigo-m) 75% 100%)}
.topbar{position:sticky;top:0;z-index:60;background:rgba(251,247,239,.94);backdrop-filter:blur(9px);border-bottom:1px solid var(--line-d)}
.bar-in{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:8px;padding:9px 16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px;font-weight:800;color:var(--ink);font-family:var(--serif);font-size:1.06rem;text-decoration:none}
.brand:hover{text-decoration:none;color:var(--ink)}
.logo{width:42px;height:42px;border-radius:12px;background:var(--indigo);display:grid;place-items:center;flex:none;box-shadow:0 3px 0 var(--indigo-d)}
.brand small{display:block;font-weight:600;color:var(--muted);font-size:.7rem;line-height:1.25;font-family:var(--sans)}
/* La navigation s'enroule au lieu de défiler : aucune entrée n'est jamais
   cachée derrière un défilement horizontal invisible. */
nav.main{display:flex;gap:2px;flex:0 1 auto;flex-wrap:wrap;align-items:center;min-width:0}
nav.main a{padding:7px 8px;border-radius:999px;white-space:nowrap;color:var(--ink);font-weight:600;font-size:.88rem;text-decoration:none;border:1px solid transparent}
nav.main a:hover{background:var(--indigo-l);text-decoration:none}
nav.main a.active{background:var(--indigo);color:#fff;border-color:var(--indigo-d)}
.lang-btn{border:1.5px solid var(--indigo);background:#fff;color:var(--indigo);font-weight:700;border-radius:999px;padding:6px 13px;cursor:pointer;font:inherit;font-size:.87rem;flex:none}
.lang-btn:hover{background:var(--indigo);color:#fff}

/* ---------- mise en page ---------- */
main{max-width:var(--maxw);margin:0 auto;padding:24px 16px 74px}
.split{display:grid;gap:18px;grid-template-columns:1.5fr 1fr;align-items:start}
@media (max-width:840px){.split{grid-template-columns:1fr}}

/* ---------- héros « couverture de carnet » ---------- */
.hero{background:var(--indigo);color:#fff;border-radius:20px;padding:40px 34px 34px;position:relative;overflow:hidden;box-shadow:var(--shadow-lg)}
.hero::before{content:"";position:absolute;inset-inline-end:-90px;top:-90px;width:300px;height:300px;border-radius:50%;border:26px solid rgba(226,165,43,.14)}
.hero::after{content:"";position:absolute;inset-inline-start:-40px;bottom:-70px;width:210px;height:210px;border-radius:50%;border:20px solid rgba(255,255,255,.05)}
.hero .yaz{position:absolute;inset-inline-end:30px;bottom:18px;opacity:.16;font-size:5.2rem;line-height:1;pointer-events:none}
.hero h1{margin:.15em 0 .3em;color:#fff}
.hero p{opacity:.92;max-width:64ch}
.eyebrow{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(226,165,43,.5);border-radius:999px;padding:4px 13px;margin-bottom:12px}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.badge{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);padding:4px 11px;border-radius:999px;font-size:.79rem;font-weight:600}
.count{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.count .u{background:rgba(255,255,255,.09);border:1px solid rgba(226,165,43,.45);border-radius:12px;padding:9px 4px;text-align:center;min-width:74px}
.count .n{font-size:1.5rem;font-weight:800;display:block;line-height:1.1;font-family:var(--serif);color:var(--gold)}
.count .l{font-size:.72rem;opacity:.85}
.hero .cta{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap}

/* ---------- boutons ---------- */
.btn{display:inline-block;border-radius:11px;padding:10px 18px;font-weight:700;cursor:pointer;border:1.5px solid transparent;font:inherit;text-align:center;text-decoration:none!important;transition:.15s}
.btn.primary{background:var(--indigo);color:#fff;box-shadow:0 3px 0 var(--indigo-d)}
.btn.primary:hover{background:var(--indigo-d)}
.btn.amber{background:var(--gold);color:#37300f;box-shadow:0 3px 0 #a97c10}
.btn.amber:hover{background:#d19a1c}
.btn.ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.45)}
.btn.ghost:hover{background:rgba(255,255,255,.18)}
.btn.line{background:#fff;color:var(--indigo);border-color:var(--line-d);box-shadow:0 2px 0 var(--line-d)}
.btn.line:hover{background:var(--indigo-l)}
.btn.sm{padding:7px 13px;font-size:.88rem;border-radius:9px}

/* ---------- cartes ---------- */
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(248px,1fr))}
.grid.two{grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}
.card{background:var(--card);border:1px solid var(--line-d);border-radius:var(--radius);padding:19px 19px 17px;box-shadow:var(--shadow)}
.card h3{margin:.15em 0 .35em}
.card p{margin:.35em 0}
.card.link{display:block;text-decoration:none;color:inherit;transition:.18s}
.card.link:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 8px 22px rgba(35,38,83,.12)}
.tag{display:inline-block;background:var(--indigo-l);color:var(--indigo);border-radius:999px;padding:3px 11px;font-size:.75rem;font-weight:700;border:1px solid rgba(35,38,83,.14)}
.tag.amber{background:var(--gold-l);color:var(--gold-d);border-color:rgba(226,165,43,.4)}
.tag.green{background:var(--jade-l);color:#155e44;border-color:rgba(47,143,107,.35)}
.tag.red{background:var(--red-l);color:var(--red);border-color:rgba(179,66,63,.3)}
.tag.terra{background:var(--terra-l);color:var(--terra);border-color:rgba(200,98,63,.35)}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.spread{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.sectionhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:40px 0 16px;flex-wrap:wrap;border-bottom:2px solid var(--indigo);padding-bottom:8px}
.sectionhead h2{margin:0;position:relative}
.sectionhead h2::after{content:"";position:absolute;inset-inline-start:0;bottom:-10px;width:58px;height:4px;background:var(--gold)}
.sectionhead .more{font-weight:700;font-size:.9rem;white-space:nowrap}

/* ---------- frise zigzag & tampon ---------- */
.zig{height:12px;margin:30px 0 6px;
  background-image:linear-gradient(135deg,var(--line-d) 25%,transparent 25%,transparent 75%,var(--line-d) 75%),linear-gradient(45deg,var(--line-d) 25%,transparent 25%,transparent 75%,var(--line-d) 75%);
  background-size:16px 16px;background-position:0 0,0 0;opacity:.75;
}
.stamp{display:inline-block;font-family:var(--serif);font-weight:700;color:var(--terra);border:2px solid var(--terra);border-radius:8px;padding:6px 12px;transform:rotate(-3deg);font-size:.84rem;line-height:1.3;background:#fff}
.stepnum{font-family:var(--serif);font-size:2.6rem;line-height:1;color:var(--gold);font-weight:700}
.blocklabel{font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:24px 0 6px}

/* ---------- encadrés ---------- */
.alert{background:var(--gold-l);border:1px solid #edd9a6;border-inline-start:5px solid var(--gold);border-radius:12px;padding:13px 16px;margin:16px 0;font-size:.94rem}
.box{background:var(--gold-l);border:1px solid #edd9a6;border-inline-start:5px solid var(--gold);border-radius:12px;padding:13px 16px;margin:16px 0}
.box.ok{background:var(--jade-l);border-color:#bfe3d2;border-inline-start-color:var(--jade)}
.box.ko{background:var(--red-l);border-color:#ecc9c7;border-inline-start-color:var(--red)}
.box.tip{background:var(--indigo-l);border-color:#d9dbf0;border-inline-start-color:var(--indigo)}
.quote{border:none;margin:22px 0;padding:6px 0 6px 22px;border-inline-start:4px solid var(--gold);font-family:var(--serif);font-size:1.12rem;font-style:italic;color:var(--indigo)}
[dir="rtl"] .quote{font-style:normal}

/* ---------- leçons (corps riche « cours complet ») ---------- */
.lesson{max-width:74ch}
.lesson .lead{font-size:1.05rem}
.lesson h3{color:var(--indigo);margin-top:1.7em;padding-bottom:.25em;border-bottom:1px dashed var(--line-d)}
.lesson ul,.lesson ol{padding-inline-start:1.35em}
.lesson li{margin:.4em 0}
.lesson .meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.lesson-body .def{background:var(--indigo-l);border:1px solid #d9dbf0;border-radius:12px;padding:14px 17px;margin:16px 0}
.lesson-body .def b:first-child{color:var(--indigo)}
.lesson-body .note{background:#faf9f6;border:1px solid var(--line);border-radius:12px;padding:13px 17px;margin:16px 0}
.lesson-body .tip{background:var(--jade-l);border:1px solid #bfe3d2;border-radius:12px;padding:13px 17px;margin:16px 0}
.lesson-body .warn{background:var(--terra-l);border:1px solid #f0cdbf;border-radius:12px;padding:13px 17px;margin:16px 0}
.lesson-body .fkey{background:var(--gold-l);border:1.5px dashed var(--gold);border-radius:12px;padding:14px 17px;margin:18px 0}
.lesson-body .fkey b{color:var(--gold-d)}
.lesson-body .fexample{background:#fff;border:1px solid var(--line-d);border-inline-start:5px solid var(--jade);border-radius:12px;padding:14px 17px;margin:18px 0}
.lesson-body .fexample .exlabel{display:block;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--jade);margin-bottom:6px}
.lesson-body .fsteps{counter-reset:st;padding:0;list-style:none;margin:16px 0}
.lesson-body .fsteps>li{counter-increment:st;position:relative;padding-inline-start:46px;margin:12px 0}
.lesson-body .fsteps>li::before{content:counter(st,decimal-leading-zero);position:absolute;inset-inline-start:0;top:1px;font-family:var(--serif);font-weight:700;color:var(--terra);font-size:1.25rem;border-bottom:3px solid var(--gold);width:34px;text-align:center}
.lesson-body .ftable{margin:16px 0}
.lesson-body .fcheck{background:#fff;border:1px solid var(--line-d);border-radius:12px;padding:6px 16px;margin:16px 0}
.lesson-body .fmini{background:var(--indigo);color:#fff;border-radius:14px;padding:18px 19px;margin:24px 0}
.lesson-body .fmini .miniQ{font-family:var(--serif);font-size:1.06rem;margin:0 0 10px}
.lesson-body .fmini .fmini-opt{display:block;width:100%;text-align:start;background:rgba(255,255,255,.08);color:#fff;border:1.5px solid rgba(255,255,255,.35);border-radius:10px;padding:10px 14px;margin:8px 0;cursor:pointer;font:inherit;transition:.12s}
.lesson-body .fmini .fmini-opt:hover{background:rgba(255,255,255,.18)}
.lesson-body .fmini .fmini-opt.correct{background:#1f6b50;border-color:#7fd6b1;font-weight:700}
.lesson-body .fmini .fmini-opt.wrong{background:#7c2f2c;border-color:#e8a9a4}
.lesson-body .fmini .fmini-opt:disabled{cursor:default}
.lesson-body .fmini .fmini-exp{background:rgba(255,255,255,.1);border-inline-start:4px solid var(--gold);border-radius:8px;padding:10px 13px;margin-top:10px;font-size:.93rem}
.lesson hr{margin:30px 0}
.minutes{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--terra)}

/* ---------- pistes (tracks) ---------- */
.trackcard{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line-d);border-inline-start:6px solid var(--line-d);border-radius:var(--radius);padding:18px 19px;box-shadow:var(--shadow);transition:.18s;margin:12px 0}
.trackcard:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(35,38,83,.12)}
.trackcard.on{border-inline-start-color:var(--gold)}
.trackcard .tname{font-family:var(--serif);font-size:1.18rem;font-weight:700;margin:0 0 4px}
.trackcard.wip{border-inline-start-color:var(--muted);opacity:.8;cursor:default}
.trackcard.wip:hover{transform:none;box-shadow:var(--shadow)}
.pill{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:3px 11px}
.pill.live{background:var(--jade-l);color:#155e44;border:1px solid rgba(47,143,107,.4)}
.pill.soon{background:#efeeea;color:var(--muted);border:1px solid var(--line-d)}
.wip{opacity:.85}
.wipnote{background:#efeeea;border:1px dashed var(--line-d);border-radius:10px;padding:9px 13px;font-size:.86rem;color:var(--muted)}

/* ---------- QCM ---------- */
.quiz-opt{display:block;width:100%;text-align:start;background:#fff;border:1.5px solid var(--line-d);border-radius:11px;padding:12px 15px;margin:9px 0;cursor:pointer;font:inherit;line-height:1.65;transition:border-color .12s,background-color .12s,color .12s}
.quiz-opt:disabled{transition:none}
.quiz-opt:hover{border-color:var(--indigo);background:var(--indigo-l)}
.quiz-opt.correct{background:var(--jade-l);border-color:var(--jade);font-weight:700}
.quiz-opt.wrong{background:var(--red-l);border-color:var(--red)}
.quiz-opt:disabled{cursor:default}
.qtext{font-weight:700;font-size:1.06rem;font-family:var(--serif)}
.progress{height:9px;background:#e9e4d8;border-radius:99px;overflow:hidden;margin:12px 0;border:1px solid var(--line)}
.progress>i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--terra));transition:width .25s}
.scoreball{width:118px;height:118px;border-radius:50%;display:grid;place-items:center;margin:12px auto;font-weight:800;font-size:1.6rem;background:var(--indigo);color:var(--gold);border:6px solid var(--gold);font-family:var(--serif)}

/* ---------- chronologie ---------- */
.timeline{position:relative;margin:18px 0;padding-inline-start:28px}
.timeline::before{content:"";position:absolute;inset-inline-start:8px;top:6px;bottom:6px;width:0;border-inline-start:3px dashed var(--line-d)}
.tl-item{position:relative;margin:0 0 22px}
.tl-item::before{content:"";position:absolute;inset-inline-start:-25px;top:7px;width:13px;height:13px;border-radius:50%;background:#fff;border:3px solid var(--muted)}
.tl-item.past::before{border-color:var(--jade);background:var(--jade)}
.tl-item.est::before{border-color:var(--gold);background:var(--gold)}
.tl-item.next::before{border-color:var(--indigo);background:var(--indigo);box-shadow:0 0 0 5px var(--indigo-l)}
.tl-item .w{font-size:.78rem;font-weight:800;letter-spacing:.06em;color:var(--terra);text-transform:uppercase}
.tl-item h3{margin:.1em 0 .2em;font-size:1.06rem}

/* ---------- tableaux ---------- */
.tblwrap{overflow-x:auto;border-radius:12px;border:1px solid var(--line-d);margin:14px 0;background:#fff}
table.tbl{width:100%;border-collapse:collapse;min-width:520px}
.tbl th{background:var(--indigo);color:#fff;padding:10px 12px;font-size:.85rem;text-align:start;font-weight:700}
.tbl td{padding:9px 12px;border-top:1px solid var(--line);font-size:.92rem}
.tbl tr:nth-child(even) td{background:#faf8f3}
.tbl td.num{font-weight:800;white-space:nowrap;font-family:var(--serif)}
.tbl tr.total td{background:var(--gold-l);font-weight:800;color:var(--indigo)}

/* ---------- checklist ---------- */
.chk{display:flex;gap:11px;align-items:flex-start;padding:10px 13px;border:1px solid var(--line-d);border-radius:11px;margin:8px 0;background:#fff}
.chk input{margin-top:5px;width:18px;height:18px;accent-color:var(--indigo);flex:none}
.chk.done{background:var(--jade-l);border-color:#bfe3d2}
.chk.done label{text-decoration:line-through;color:var(--muted)}

/* ---------- divers ---------- */
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.94rem}
.avatar{width:36px;height:36px;border-radius:10px;background:var(--indigo);color:var(--gold);display:grid;place-items:center;font-weight:800;flex:none;font-family:var(--serif)}
.acc{background:#fff;border:1px solid var(--line-d);border-radius:12px;margin:9px 0;overflow:hidden}
.acc summary{cursor:pointer;padding:12px 15px;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:10px;align-items:center}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"＋";color:var(--terra);font-weight:800}
.acc[open] summary::after{content:"－"}
.acc .acc-body{padding:2px 15px 14px;border-top:1px dashed var(--line-d)}
.crumb{font-size:.88rem;font-weight:600}
.journal{background:#fff;border:1px solid var(--line-d);border-radius:14px;padding:18px 20px;margin:14px 0;box-shadow:var(--shadow)}
.journal .jhead{font-family:var(--serif);font-size:1.02rem;font-weight:700;color:var(--indigo);border-bottom:2px solid var(--gold);display:inline-block;padding-bottom:3px;margin-bottom:8px}

/* ---------- pied de page ---------- */
.ftr{background:var(--indigo-d);color:#c9cbe3;margin-top:56px;position:relative}
.ftr::before{content:"";display:block;height:6px;background:linear-gradient(90deg,var(--gold) 0 25%,var(--terra) 25% 50%,var(--jade) 50% 75%,var(--indigo-m) 75% 100%)}
.ftr-in{max-width:var(--maxw);margin:0 auto;padding:30px 16px 36px;font-size:.9rem;display:grid;gap:14px}
.ftr a{color:#fff;text-decoration-color:rgba(255,255,255,.4)}
.ftr a:hover{color:var(--gold)}
.ftr .cols{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.ftr h4{margin:.2em 0 .4em;color:#fff;font-size:1rem;font-family:var(--serif)}
.ftr ul{margin:0;padding-inline-start:1.1em}
.ftr li{margin:.3em 0}
.ftr .yazbig{font-family:var(--serif);font-size:1.3rem;color:var(--gold)}
.disclaimer{opacity:.72;font-size:.82rem;border-top:1px solid rgba(255,255,255,.14);padding-top:12px}

@media (max-width:640px){
  .bar-in{padding:8px 10px;gap:8px}
  main{padding:14px 10px 64px}
  .hero{padding:26px 18px 24px;border-radius:16px}
  .hero .yaz{display:none}
  .card,.trackcard{padding:15px 15px}
  .count .u{min-width:64px}
  .lang-btn{padding:6px 10px}
  .stepnum{font-size:2.1rem}
}

/* ---------- v3 : cours complets & fiches express ---------- */
.grid.three{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.lesson-card{display:block;background:#fff;border:1px solid var(--line);border-left:5px solid var(--indigo);border-radius:14px;padding:16px 18px;text-decoration:none;color:inherit;transition:transform .15s ease, box-shadow .15s ease}
.lesson-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(35,38,83,.10)}
.lesson-card h3{margin:.35em 0 .2em;color:var(--indigo);font-size:1.05rem}
.lc-badge{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.06em;background:var(--jade-l);color:#0d6b40;border-radius:999px;padding:3px 9px}
.lc-go{display:inline-block;margin-top:8px;font-weight:700;font-size:.85rem;color:var(--terra)}
.rev-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--amber);border-radius:14px;padding:14px 16px}
.rev-card h3{margin:.1em 0 .3em;font-size:.98rem;color:var(--indigo)}
.rev-card .row{margin-top:10px;gap:8px;flex-wrap:wrap}
[dir="rtl"] .lesson-card{border-left:1px solid var(--line);border-right:5px solid var(--indigo)}
[dir="rtl"] .rev-card{border-top:4px solid var(--amber)}

/* ---------- bannière Telegram ---------- */
.tg-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:linear-gradient(90deg,#eaf3fb,#f7fbff);border:1px solid #cfe2f3;border-inline-start:5px solid #2a9dd6;border-radius:16px;padding:16px 20px;margin:22px 0}
.tg-banner h3{font-family:var(--serif);color:var(--indigo)}
[dir="rtl"] .tg-banner{background:linear-gradient(270deg,#eaf3fb,#f7fbff)}

/* ---------- v4 : tamazight (ⵜⴰⵎⴰⵣⵉⵖⵜ) ---------- */
.lang-switch{display:inline-flex;gap:3px;margin-inline-start:auto;padding:3px;background:#fff;border:1px solid var(--line);border-radius:12px;flex:0 0 auto}
.lang-btn{font:inherit;font-weight:700;font-size:.8rem;line-height:1;padding:6px 10px;border:1px solid transparent;background:transparent;color:var(--indigo);border-radius:9px;cursor:pointer;white-space:nowrap}
.lang-btn.on{background:var(--indigo);color:#fff;border-color:var(--indigo)}
.lang-btn[aria-label="ⵜⴰⵎⴰⵣⵉⵖⵜ"]{font-family:var(--tif)}
.lang-btn:hover{background:var(--jade-l);color:#0d6b40}
.lang-btn.on:hover{background:var(--indigo);color:#fff}
.z-note{background:#fff8e6;border:1px solid #f0dca6;border-inline-start:5px solid var(--amber);border-radius:12px;padding:11px 14px;margin:14px 0 4px;font-size:.92rem;line-height:1.75;color:#5b4a17}
html[lang="zgh"] .lesson-card h3,html[lang="zgh"] .blocklabel{letter-spacing:0}

html[lang="zgh"] body,html[lang="zgh"] h1,html[lang="zgh"] h2,html[lang="zgh"] h3,
html[lang="zgh"] button,html[lang="zgh"] .lang-btn,html[lang="zgh"] .brand{font-family:var(--tif)}
html[lang="zgh"] .blocklabel,html[lang="zgh"] .lc-badge,html[lang="zgh"] .eyebrow{font-family:var(--tif)}

/* --- modules de la page parcours : accordéon fermé par défaut --- */
.modacc{margin:0 0 12px}
.modacc summary{padding:14px 16px;font-size:1.02rem}
.modacc .modname{font-weight:700}
.modacc .modmeta{display:flex;gap:8px;align-items:center;margin-inline-end:22px}
.modacc .acc-body ul{margin:6px 0 12px;padding-inline-start:20px}
.modacc .acc-body p.muted{margin-top:0}
@media(max-width:520px){.modacc .modmeta .tag{display:none}}


/* ============================================================
   ACCUEIL SIMPLIFIÉ (v34) : « Choisis ton parcours » d'abord
   ============================================================ */
.hero-lite{background:var(--indigo);color:#fff;border-radius:20px;padding:26px 26px 22px;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);text-align:center}
.hero-lite::before{content:"";position:absolute;inset-inline-end:-90px;top:-90px;width:250px;height:250px;border-radius:50%;border:24px solid rgba(226,165,43,.13)}
.hero-lite h1{margin:.1em 0 .25em;color:#fff}
.hero-lite p{opacity:.94;max-width:56ch;margin:0 auto}
.hero-lite .yaz{position:absolute;inset-inline-start:22px;bottom:10px;opacity:.14;font-size:4rem;line-height:1;pointer-events:none}
@media(max-width:680px){
  .hero-lite{padding:20px 16px 18px;border-radius:16px}
  .hero-lite .yaz{display:none}
}

/* ============================================================
   BARRE DÉFILANTE (v35) — texte seul, rien à cliquer
   Défile de gauche à droite en français ; en arabe, sens de lecture.
   ============================================================ */
.ticker{background:linear-gradient(90deg,var(--indigo-d),var(--indigo) 45%,var(--indigo-m));color:#fff}
.ticker-in{max-width:var(--maxw);margin:0 auto;padding:5px 16px}
.tk-view{overflow:hidden}
.tk-track{display:flex;width:max-content;animation:tk-lr 34s linear infinite;will-change:transform}
.tk-part{white-space:nowrap;padding-inline-end:70px;font-size:12.5px}
.tk-part b{color:var(--gold);letter-spacing:.06em}
@keyframes tk-lr{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@keyframes tk-rl{from{transform:translateX(0)}to{transform:translateX(-50%)}}
html[dir="rtl"] .tk-track{animation-name:tk-rl}
@media(prefers-reduced-motion:reduce){
  .tk-track{animation:none;width:auto;flex-wrap:wrap}
  .tk-part{white-space:normal;padding-inline-end:0}
}
@media(max-width:680px){.ticker-in{padding:5px 10px}.tk-part{font-size:11.5px}}

/* « Voir plus » des pages de parcours : un seul bloc replié, discret */
details.plus{margin:26px 0 0;border:1px dashed var(--line-d);border-radius:14px;background:var(--card)}
details.plus>summary{cursor:pointer;padding:13px 16px;font-weight:700;color:var(--indigo);list-style:none}
details.plus>summary::-webkit-details-marker{display:none}
details.plus>summary::after{content:" \25be";color:var(--gold-d)}
details.plus[open]>summary::after{content:" \25b4"}
details.plus .plus-body{padding:0 16px 16px}
details.plus .plus-body p{margin:.35em 0}

/* v39 — mobile : pas de flou sur le bandeau (le flou se recalcule à chaque
   changement de page : c'est ce qui faisait attendre 432 ms au clic. Sur Android
   il coûte très cher ; sur ordinateur on le garde.) */
@media(max-width:900px){
  .topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(251,247,239,.99)}
}


/* ============================================================
   v43 — MODE SPRINT
   ============================================================ */
.sp-banner{display:block;margin:16px 0 0;padding:14px 18px;border-radius:16px;
  background:linear-gradient(100deg,var(--indigo-d),var(--indigo) 60%,var(--indigo-m));
  color:#fff;text-decoration:none;box-shadow:var(--shadow-lg)}
.sp-banner:hover{filter:brightness(1.07)}
.sp-banner .sp-b-j{display:block;font-size:.78rem;letter-spacing:.14em;color:var(--gold);font-weight:700}
.sp-banner .sp-b-j b{font-size:1.5rem;letter-spacing:0;color:#fff}
.sp-banner .sp-b-t{display:block;font-size:.95rem;margin-top:4px}

.sp-hero{background:linear-gradient(135deg,var(--indigo-d),var(--indigo) 70%);color:#fff;
  border-radius:20px;padding:26px 22px 20px;margin-bottom:14px}
.sp-hero .sp-j{font-size:.75rem;letter-spacing:.16em;color:var(--gold);font-weight:700}
.sp-hero h1{margin:.25em 0 .2em;font-size:clamp(1.5rem,5vw,2.1rem);line-height:1.2}
.sp-hero .sp-date{font-size:.86rem;opacity:.85}
.sp-hero .sp-date a{color:var(--gold)}
.sp-bar{height:9px;background:rgba(255,255,255,.16);border-radius:99px;margin-top:16px;overflow:hidden}
.sp-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#f3cb63);border-radius:99px;
  transition:width .6s ease}
.sp-bar-lbl{display:flex;justify-content:space-between;font-size:.75rem;opacity:.8;margin-top:7px}
.sp-parcours{font-size:.86rem;color:var(--muted,#5a6072);margin:0 2px 16px}

.sp-today{position:relative}
.sp-tag{display:inline-block;background:var(--jade-l,#eaf6ef);color:#14663c;font-size:.68rem;
  font-weight:700;letter-spacing:.1em;padding:4px 10px;border-radius:99px;text-transform:uppercase}
.sp-today h2{margin:.45em 0 .25em;font-size:1.12rem}
.sp-tasks{margin-top:14px;display:grid;gap:9px}
.sp-task{display:flex;align-items:center;gap:11px;border:1.5px solid var(--line-d);
  border-radius:13px;padding:11px 12px;background:#fff;transition:border-color .15s,background-color .15s}
.sp-task.done{background:#f4f8f5;border-color:#bfe3d2}
.sp-check{flex:none;width:30px;height:30px;border-radius:9px;border:2px solid var(--line-d);
  background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.sp-check:hover{border-color:var(--indigo)}
.sp-case{font-size:15px;color:#fff;font-weight:700;line-height:1}
.sp-case.on{color:#fff}
.sp-task.done .sp-check{background:var(--jade,#1f8a54);border-color:var(--jade,#1f8a54)}
.sp-body{flex:1;text-decoration:none;color:inherit;display:block;min-width:0}
.sp-body b{display:block;font-size:.94rem;line-height:1.35;color:var(--indigo-d,var(--indigo))}
.sp-task.done .sp-body b{text-decoration:line-through;opacity:.7}
.sp-body span{display:block;font-size:.77rem;color:#6a708c;margin-top:2px}
.sp-duree{flex:none;font-size:.7rem;font-weight:700;color:var(--gold);white-space:nowrap}
.sp-note{font-size:.76rem;color:#7a7f99;margin:12px 0 0}

.sp-week{display:grid;gap:0;grid-template-columns:minmax(0,1fr)}
.sp-day{display:flex;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line-d);font-size:.86rem}
.sp-day:last-child{border-bottom:0}
.sp-day .sp-d{flex:none;width:78px;font-weight:700;color:var(--indigo)}
.sp-day .sp-c{flex:1;color:#4a5070;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-day.now{background:#fff7e3;border-radius:10px;padding:9px 10px;margin:2px -10px;border-bottom:0}
.sp-why{margin:10px 0 14px;padding-inline-start:1.1em;font-size:.92rem}
.sp-why li{margin:7px 0}

@media(max-width:680px){
  .sp-hero{padding:22px 18px 16px}
  .sp-day .sp-d{width:66px;font-size:.8rem}
  .sp-duree{display:none}
}


/* ---- v44 : Bibliothèque des sujets ---- */
.bj-hero{background:linear-gradient(135deg,#0f3d2e,#1b6b4f);color:#fff;border-radius:20px;
  padding:26px 22px;margin:0 0 22px}
.bj-k{font-size:.74rem;letter-spacing:.18em;color:var(--gold,#e2b33c);font-weight:800}
.bj-hero h1{margin:.35em 0 .45em;font-size:1.62rem;line-height:1.22}
.bj-sub{font-size:.94rem;line-height:1.62;opacity:.93;margin:0}
.bj-stats{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.bj-stats>div{background:rgba(255,255,255,.13);border-radius:12px;padding:9px 15px;
  display:flex;flex-direction:column;min-width:82px}
.bj-stats b{font-size:1.32rem;line-height:1}
.bj-stats span{font-size:.72rem;opacity:.82;margin-top:3px}

.sec-title{font-size:1.16rem;margin:26px 0 12px}
.bj-note{font-size:.87rem;line-height:1.6;margin:-4px 0 14px}

.bj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:12px}
.bj-card{display:flex;flex-direction:column;background:var(--card,#fff);border:1px solid var(--line,#e3e6e3);
  border-radius:15px;padding:15px;text-decoration:none;color:inherit;transition:.16s}
.bj-card:hover{border-color:var(--accent,#1b6b4f);transform:translateY(-2px)}
.bj-c-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.bj-coef{font-size:.7rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:#8a5a00;background:#fdf3d8;border-radius:6px;padding:3px 8px}
.bj-mini{font-size:.66rem;color:var(--muted,#6b7770)}
.bj-card h3{font-size:.96rem;margin:0 0 7px;line-height:1.35}
.bj-c-met{font-size:.8rem;color:var(--muted,#6b7770);margin-bottom:11px}
.bj-go{margin-top:auto;font-size:.85rem;font-weight:700;color:var(--accent,#1b6b4f)}

.bj-timeline{border:1px solid var(--line,#e3e6e3);border-radius:15px;overflow:hidden}
.bj-row{display:grid;grid-template-columns:88px 1fr auto;align-items:center;gap:12px;
  padding:11px 15px;border-bottom:1px solid var(--line,#e3e6e3)}
.bj-row:last-child{border-bottom:0}
.bj-row-new{background:#f2faf5}
.bj-y{font-weight:800;font-size:1.02rem;line-height:1.15}
.bj-y span{display:block;font-size:.7rem;font-weight:500;color:var(--muted,#6b7770);margin-top:2px}
.bj-mid b{font-size:.9rem;font-weight:600}
.bj-badge{display:inline-block;margin-inline-start:8px;font-size:.65rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.06em;color:#0f6b3f;background:#d8f2e3;
  border-radius:5px;padding:2px 7px}
.bj-reg{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;
  border-radius:6px;padding:4px 9px;white-space:nowrap}
.bj-reg-contractuel{color:#7a4a00;background:#fdf0d5}
.bj-reg-statutaire{color:#0f3d2e;background:#e2efe8}

.bj-next{background:#fff8e8;border:1px solid #f0dcae;border-radius:16px;padding:20px;margin:18px 0}
.bj-next-h{font-size:.72rem;letter-spacing:.15em;font-weight:800;color:#8a5a00}
.bj-next h3{margin:.45em 0 .4em;font-size:1.06rem}
.bj-next p{font-size:.87rem;line-height:1.6;margin:0 0 13px}

.bj-parc{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.bj-parc a{font-size:.83rem;padding:7px 14px;border-radius:9px;text-decoration:none;
  background:var(--soft,#f0f3f1);color:var(--muted,#6b7770);font-weight:600}
.bj-parc a.on{background:var(--accent,#1b6b4f);color:#fff}

.bj-table{width:100%;border-collapse:collapse;font-size:.88rem}
.bj-table th{text-align:start;font-size:.73rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted,#6b7770);padding:8px 6px;border-bottom:1px solid var(--line,#e3e6e3)}
.bj-table td{padding:9px 6px;border-bottom:1px solid var(--line,#e3e6e3)}
.bj-table tfoot td{border-bottom:0;border-top:2px solid var(--line,#e3e6e3);padding-top:10px}
.bj-table .r{text-align:end}
.bj-w{white-space:nowrap;width:38%}
.bj-w i{display:inline-block;height:8px;border-radius:4px;background:var(--accent,#1b6b4f);
  vertical-align:middle;max-width:74%;margin-inline-end:7px}
.bj-w span{font-size:.76rem;color:var(--muted,#6b7770)}

.bj-rules{margin:0;padding-inline-start:20px}
.bj-rules li{font-size:.9rem;line-height:1.62;margin-bottom:9px}

.bj-truth{background:#f6f7f6;border:1px solid var(--line,#e3e6e3);border-radius:16px;
  padding:20px;margin:26px 0}
.bj-truth h2{font-size:1.04rem;margin:0 0 12px}
.bj-truth p{font-size:.88rem;line-height:1.66;margin:0 0 11px}
.bj-warn{background:#fff3f0;border-inline-start:3px solid #d4553a;border-radius:8px;
  padding:11px 13px;font-size:.85rem!important}

.bj-cta{text-align:center;padding:22px 0 8px}
.bj-cta h3{font-size:1.05rem;margin:0 0 8px}
.bj-cta p{font-size:.87rem;color:var(--muted,#6b7770);line-height:1.6;margin:0 0 15px;max-width:460px;
  margin-inline:auto}

@media(max-width:520px){
  .bj-hero{padding:20px 16px;border-radius:16px}
  .bj-hero h1{font-size:1.35rem}
  .bj-row{grid-template-columns:66px 1fr;gap:8px;padding:10px 12px}
  .bj-reg{display:none}
  .bj-w{width:44%}
  .bj-table{font-size:.83rem}
}


/* ---- v46 : Derniers concours (PDF) ---- */
.cc-hero{background:linear-gradient(135deg,#1a2b4a,#2f4d7d);color:#fff;border-radius:20px;
  padding:26px 22px;margin:0 0 18px}
.cc-k{font-size:.74rem;letter-spacing:.18em;color:var(--gold,#e2b33c);font-weight:800}
.cc-hero h1{margin:.35em 0 .45em;font-size:1.7rem;line-height:1.2}
.cc-sub{font-size:.94rem;line-height:1.62;opacity:.94;margin:0}
.cc-stats{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.cc-stats>div{background:rgba(255,255,255,.14);border-radius:12px;padding:9px 15px;
  display:flex;flex-direction:column;min-width:86px}
.cc-stats b{font-size:1.2rem;line-height:1}
.cc-stats span{font-size:.7rem;opacity:.82;margin-top:3px}

.cc-epingles{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}
.cc-pin{font-size:.83rem;padding:8px 15px;border-radius:10px;border:0;cursor:pointer;
  background:var(--soft,#f0f3f1);color:var(--muted,#6b7770);font-weight:600;font-family:inherit}
.cc-pin.on{background:var(--accent,#1b6b4f);color:#fff}

.cc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.cc-card{background:var(--card,#fff);border:1px solid var(--line,#e3e6e3);border-radius:16px;
  overflow:hidden;display:flex;flex-direction:column;transition:.16s;
  /* 66 cartes : le navigateur ignore le calcul des cartes hors écran */
  content-visibility:auto;contain-intrinsic-size:auto 420px}
.cc-card:hover{border-color:var(--accent,#1b6b4f);box-shadow:0 6px 20px rgba(0,0,0,.07)}
.cc-thumb{display:block;position:relative;background:#eceeec;padding:12px;text-align:center}
.cc-thumb img{max-width:100%;height:206px;aspect-ratio:3/4;object-fit:contain;object-position:top;
  border-radius:6px;box-shadow:0 3px 10px rgba(0,0,0,.16);background:#fff}
.cc-ext{position:absolute;top:10px;inset-inline-end:10px;background:#c0392b;color:#fff;
  font-size:.66rem;font-weight:800;letter-spacing:.08em;padding:3px 7px;border-radius:5px}
.cc-body{padding:13px 14px 15px;display:flex;flex-direction:column;flex:1}
.cc-meta{display:flex;gap:6px;align-items:center;margin-bottom:7px;flex-wrap:wrap}
.cc-year{font-size:.72rem;font-weight:800;background:#eef2f7;color:#1a2b4a;
  border-radius:5px;padding:2px 8px}
.cc-coef{font-size:.68rem;font-weight:800;color:#8a5a00;background:#fdf3d8;border-radius:5px;padding:2px 7px}
.cc-off{font-size:.66rem;font-weight:800;color:#0f6b3f;background:#d8f2e3;border-radius:5px;padding:2px 7px;
  text-transform:uppercase;letter-spacing:.05em}
.cc-body h3{font-size:.95rem;margin:0 0 5px;line-height:1.34}
.cc-info{font-size:.79rem;color:var(--muted,#6b7770);margin:0 0 4px;line-height:1.45}
.cc-lourd{font-size:.74rem;color:#9aa5a0;margin:0 0 12px}
.cc-act{margin-top:auto;display:flex;flex-direction:column;gap:7px}
.cc-open{display:block;text-align:center;background:var(--accent,#1b6b4f);color:#fff;
  font-size:.85rem;font-weight:700;padding:10px;border-radius:10px;text-decoration:none}
.cc-open:hover{filter:brightness(1.08)}
.cc-quiz{display:block;text-align:center;font-size:.8rem;font-weight:600;
  color:var(--accent,#1b6b4f);text-decoration:none;padding:6px}

.cc-note{background:#eef4f0;border-radius:12px;padding:13px 16px;margin:20px 0;
  font-size:.85rem;line-height:1.6;color:#33463c}
.cc-legal{background:#f6f7f6;border:1px solid var(--line,#e3e6e3);border-radius:16px;
  padding:20px;margin:22px 0}
.cc-legal h2{font-size:1.02rem;margin:0 0 11px}
.cc-legal p{font-size:.86rem;line-height:1.65;margin:0 0 10px}
.cc-cta{text-align:center;padding:16px 0 6px}
.cc-cta h3{font-size:1.02rem;margin:0 0 7px}
.cc-cta p{font-size:.86rem;color:var(--muted,#6b7770);line-height:1.6;margin:0 0 14px;max-width:430px;margin-inline:auto}

@media(max-width:520px){
  .cc-hero{padding:20px 16px;border-radius:16px}
  .cc-hero h1{font-size:1.42rem}
  .cc-grid{grid-template-columns:1fr 1fr;gap:10px}
  .cc-thumb img{height:150px}
  .cc-body{padding:11px 11px 13px}
  .cc-body h3{font-size:.86rem}
  .cc-info{font-size:.74rem}
  .cc-lourd{font-size:.7rem;margin-bottom:9px}
  .cc-open{font-size:.79rem;padding:9px 6px}
}
@media(max-width:360px){
  .cc-grid{grid-template-columns:1fr}
  .cc-thumb img{height:210px}
}

/* v46ter — lien « source d'origine » */
.cc-src{display:block;text-align:center;font-size:.72rem;color:#8b9691;text-decoration:none;
  padding:2px 0 0;letter-spacing:.01em}
.cc-src:hover{color:var(--accent,#1b6b4f);text-decoration:underline}

/* v48 — collection complète : en-têtes d'année */
.cc-an{display:flex;align-items:baseline;gap:10px;font-size:1.22rem;margin:26px 0 12px;
  padding-bottom:7px;border-bottom:2px solid var(--line,#e3e6e3)}
.cc-an span{font-size:.76rem;font-weight:500;color:var(--muted,#6b7770)}
.cc-grid{margin-bottom:6px}

/* v48 — bibliothèque 2016→2025 */
.cc-cyc{font-size:.72rem;font-weight:600;padding:2px 7px;border-radius:999px;
  background:#eef3ee;color:#4a6b52;letter-spacing:.02em}

/* ==========================================================================
   TÉLÉPHONE — en-tête compact et menu ENTIÈREMENT VISIBLE.
   Placé en fin de fichier pour passer après les règles .lang-btn de base.
   Plus aucun défilement horizontal : on ne peut rien rater.
   ========================================================================== */
@media (max-width:640px){
  .brand small{display:none}
  .brand{font-size:1rem;gap:9px}
  .logo{width:34px;height:34px;border-radius:10px}
  .lang-switch{margin-inline-start:auto;padding:2px;gap:1px}
  .lang-btn{padding:4px 6px;font-size:.64rem}
  nav.main{order:3;flex:1 0 100%;justify-content:center;row-gap:3px;padding-top:1px}
  nav.main a{padding:4px 6px;font-size:.72rem}
}

/* ---------- index complet des épreuves (fin de la page Concours) ---------- */
.cc-index{margin-top:26px;padding:18px 18px 6px;background:var(--card);border:1px solid var(--line-d);border-radius:var(--radius);box-shadow:var(--shadow)}
.cc-index h2{margin:.1em 0 .3em;font-size:1.18rem}
.cc-an-ix{display:block;margin:1.15em 0 .35em;font-size:.82rem;letter-spacing:.1em;color:var(--gold);font-weight:800}
.cc-il{list-style:none;margin:0;padding:0;display:grid;gap:2px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.cc-il{content-visibility:auto;contain-intrinsic-size:auto 600px}
.cc-il li{font-size:.88rem;line-height:1.55;padding:2px 0;min-width:0;overflow-wrap:anywhere}
.cc-il a{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent}
.cc-il a:hover{border-bottom-color:var(--gold);text-decoration:none}
.cc-cyc{font-size:.72rem;font-weight:700;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:1px 6px;white-space:nowrap}

/* ---------- schémas dans les leçons ---------- */
.lesson-fig{margin:18px 0;padding:12px;background:#fff;border:1px solid var(--line-d);
  border-radius:14px;box-shadow:var(--shadow);text-align:center}
.lesson-fig img{width:100%;max-width:620px;height:auto;display:block;margin:0 auto;border-radius:8px}
.lesson-fig figcaption{margin-top:9px;font-size:.84rem;color:var(--muted);line-height:1.5}
@media(max-width:640px){.lesson-fig{padding:8px}.lesson-fig figcaption{font-size:.78rem}}

/* ---- FAQ : accordéon natif <details>, zéro JavaScript ---- */
.faq{display:grid;gap:10px;margin:14px 0 18px}
.faq-i{background:#fff;border:1px solid #e6e0d4;border-radius:14px;padding:0 16px}
.faq-i>summary{cursor:pointer;font-weight:700;padding:14px 0;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center}
.faq-i>summary::-webkit-details-marker{display:none}
.faq-i>summary::after{content:"+";font-size:1.3rem;color:var(--gold,#c8973a);font-weight:800;line-height:1}
.faq-i[open]>summary::after{content:"–"}
.faq-i>p{margin:0 0 14px;color:#3d4a45;line-height:1.6}
.hero-nom{margin-top:.6em;font-size:.95rem;color:#4b5750}
