/* ===== Site Assistants médicaux — charte bleu marine & doré (style doux) ===== */
@font-face{font-family:'Fraunces';font-weight:600;font-display:swap;src:url(fonts/fraunces-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-weight:400;font-display:swap;src:url(fonts/nunito-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-weight:400;font-style:italic;font-display:swap;src:url(fonts/nunito-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-weight:600;font-display:swap;src:url(fonts/nunito-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-weight:700;font-display:swap;src:url(fonts/nunito-latin-700-normal.woff2) format('woff2')}

:root{
  --marine:#14234B;
  --marine-profond:#0C1733;
  --marine-doux:#2B3F72;
  --marine-clair:#1B2C5A;
  --or:#C9A24B;
  --or-clair:#E8D49A;
  --or-pale:#F6EED6;
  --creme:#FBF8F1;
  --blanc:#FFFFFF;
  --texte:#1C2640;
  --texte-doux:#5A6480;
  --ok:#2E7D5B;
  --ko:#B3423A;
  --rayon:22px;
  --ombre:0 6px 22px rgba(20,35,75,.08);
  --bord:1px solid #EFE6CF;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Nunito',system-ui,sans-serif;
  background:var(--creme);
  color:var(--texte);
  line-height:1.6;
  font-size:17px;
}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.2;color:var(--marine)}
a{color:var(--marine-doux)}
img{max-width:100%}

/* ----- En-tête ----- */
.entete{
  background:linear-gradient(165deg,var(--marine-clair),var(--marine-doux));
  border-radius:0 0 42px 42px;
  color:var(--creme);
  position:relative;
  overflow:hidden;
}

.entete-haut{
  max-width:1100px;margin:0 auto;padding:14px 16px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.marque{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--creme)}
.logo{
  width:52px;height:52px;border-radius:50%;
  border:2px solid var(--or);background:var(--creme);
  display:grid;place-items:center;overflow:hidden;flex-shrink:0;
}
.logo img{width:100%;height:100%;object-fit:cover}
.logo span{font-family:'Fraunces',serif;font-weight:700;color:var(--marine);font-size:20px}
.marque-texte strong{display:block;font-family:'Fraunces',serif;font-size:20px;letter-spacing:.3px}
.marque-texte small{color:var(--or-clair);font-size:13px;letter-spacing:1.5px;text-transform:uppercase}
.nav{display:flex;gap:6px;flex-wrap:wrap}
.nav a{
  color:var(--creme);text-decoration:none;font-size:14px;
  padding:6px 12px;border-radius:999px;border:1px solid transparent;
}
.nav a:hover,.nav a[aria-current="page"]{border-color:var(--or);color:var(--or-clair)}
.menu-btn{display:none;background:none;border:1px solid var(--or);color:var(--or-clair);border-radius:8px;padding:6px 10px;font-size:15px}

.hero{max-width:1100px;margin:0 auto;padding:40px 16px 56px;position:relative;z-index:1}
.hero .surtitre{color:var(--or-clair);text-transform:uppercase;letter-spacing:2px;font-size:13px}
.hero h1{color:var(--creme);font-size:clamp(32px,6vw,50px);margin:8px 0 12px;font-weight:600}
.hero p{max-width:680px;color:#D9DEEA}
.filet{display:flex;align-items:center;gap:10px;margin:18px 0}
.filet::before,.filet::after{content:"";height:1px;flex:1;max-width:120px;background:var(--or)}
.filet span{color:#D9B866;font-size:14px}

/* ----- Fil d'Ariane ----- */
.ariane{max-width:1100px;margin:0 auto;padding:14px 16px 0;font-size:14px;color:var(--texte-doux)}
.ariane a{color:var(--texte-doux)}

/* ----- Contenu ----- */
main{max-width:1100px;margin:0 auto;padding:32px 16px 64px}
.section-titre{font-size:30px;margin-bottom:6px}
.section-intro{color:var(--texte-doux);margin-bottom:24px;max-width:720px}

.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.carte{
  background:var(--blanc);border-radius:var(--rayon);box-shadow:var(--ombre);
  padding:24px;border:var(--bord);
  display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--texte);
  transition:transform .15s ease, box-shadow .15s ease;
}
a.carte:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(12,23,51,.16)}
.carte .pict{width:58px;height:58px;border-radius:50%;background:var(--or-pale);display:grid;place-items:center;font-size:22px}
.carte .badge{
  align-self:flex-start;background:var(--or-pale);color:var(--marine);
  font-size:12px;letter-spacing:1px;text-transform:uppercase;padding:4px 10px;border-radius:999px
}
.carte h3{font-size:23px}
.carte p{color:var(--texte-doux);font-size:15px}
.carte .lien{margin-top:auto;color:var(--marine);font-weight:700;font-size:15px}
.provisoire{font-size:12px;color:var(--or);font-style:italic}

/* Liste de chapitres */
.chapitres{list-style:none;display:flex;flex-direction:column;gap:12px}
.chapitre{
  background:var(--blanc);border-radius:var(--rayon);box-shadow:var(--ombre);
  padding:16px 18px;display:flex;align-items:center;gap:14px;
  text-decoration:none;color:var(--texte);border:var(--bord);
}
.chapitre .num{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  background:var(--marine);color:var(--or-clair);display:grid;place-items:center;
  font-family:'Fraunces',serif;font-weight:700;font-size:18px
}
.chapitre .infos strong{display:block}
.chapitre .infos small{color:var(--texte-doux)}
.chapitre.vide{opacity:.6;border-style:dashed;box-shadow:none}
.chapitre.quiz{border-color:var(--or-clair);background:var(--or-pale)}
.chapitre.quiz .num{background:var(--or);color:var(--marine)}

/* ----- Page de cours ----- */
.cours-nav{
  display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px;
  position:sticky;top:0;background:var(--creme);padding:10px 0;z-index:5;
  border-bottom:1px solid var(--or-clair)
}
.cours-nav a{
  text-decoration:none;font-size:14px;color:var(--marine);
  border:1px solid var(--or-clair);border-radius:999px;padding:5px 12px;background:var(--blanc)
}
.cours-nav a:hover{background:var(--marine);color:var(--or-clair)}
.partie{
  background:var(--blanc);border-radius:var(--rayon);box-shadow:var(--ombre);
  padding:24px;margin-bottom:22px;scroll-margin-top:70px;border:var(--bord)
}
.partie-tete{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.partie-tete .pastille{
  width:46px;height:46px;border-radius:50%;background:var(--or-pale);color:var(--marine);
  display:grid;place-items:center;font-size:20px;flex-shrink:0
}
.partie h2{font-size:26px}
.partie h3{font-size:20px;margin:16px 0 6px}
.partie p,.partie li{font-size:16px}
.partie ul,.partie ol{padding-left:22px;margin:6px 0}
.a-completer{
  border:1.5px dashed var(--or);background:var(--or-pale);color:var(--marine-doux);
  border-radius:16px;padding:12px 14px;font-style:italic;font-size:15px;margin:8px 0
}
.encadre{border-radius:16px;padding:14px 16px;margin:12px 0;font-size:15px}
.encadre.alerte{background:#FBEDEA;border:1px solid #F0CFC9}
.encadre.retenir{background:#EAEFF8;border:1px solid #D3DCEE}
.encadre.enfant{background:var(--or-pale);border:1px solid var(--or-clair)}
.encadre strong{display:block;margin-bottom:4px}

.tableau-wrap{overflow-x:auto;margin:10px 0}
table{border-collapse:separate;border-spacing:0;width:100%;min-width:460px;font-size:15px;border:var(--bord);border-radius:16px;overflow:hidden}
th{background:var(--marine);color:var(--or-clair);text-align:left;padding:10px;font-weight:600}
td{padding:10px;border-bottom:1px solid #E6E1D3}
tr:nth-child(even) td{background:#FAF7EE}

.etapes{counter-reset:etape;list-style:none;padding-left:0!important}
.etapes li{counter-increment:etape;position:relative;padding:8px 0 8px 46px}
.etapes li::before{
  content:counter(etape);position:absolute;left:0;top:6px;
  width:32px;height:32px;border-radius:50%;background:var(--or);color:var(--marine);
  display:grid;place-items:center;font-weight:700;font-size:15px
}

.navigation-bas{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:28px}
.bouton{
  display:inline-block;text-decoration:none;cursor:pointer;
  background:var(--marine);color:var(--or-clair);border:none;
  padding:12px 20px;border-radius:999px;font-weight:700;font-size:15px;font-family:inherit
}
.bouton:hover{background:var(--marine-profond)}
.bouton.secondaire{background:transparent;color:var(--marine);border:1.5px solid var(--marine)}

/* ----- Quiz ----- */
.quiz{max-width:760px;margin:0 auto}
.quiz-progression{height:8px;background:#E6E1D3;border-radius:999px;overflow:hidden;margin-bottom:18px}
.quiz-progression div{height:100%;width:0;background:linear-gradient(90deg,var(--or),var(--or-clair));transition:width .3s}
.quiz-carte{background:var(--blanc);border-radius:var(--rayon);box-shadow:var(--ombre);padding:24px;border:var(--bord)}
.quiz-compteur{color:var(--texte-doux);font-size:14px;margin-bottom:6px}
.quiz-question{font-size:20px;font-weight:700;color:var(--marine);margin-bottom:16px;font-family:'Nunito',sans-serif}
.quiz-options{display:flex;flex-direction:column;gap:10px}
.quiz-option{
  text-align:left;background:var(--creme);border:1.5px solid #E2DCC9;border-radius:10px;
  padding:13px 16px;font-size:16px;cursor:pointer;font-family:inherit;color:var(--texte);border-radius:16px
}
.quiz-option:hover:not(:disabled){border-color:var(--or)}
.quiz-option.juste{background:#E5F3EC;border-color:var(--ok)}
.quiz-option.faux{background:#FBECEA;border-color:var(--ko)}
.quiz-option:disabled{cursor:default}
.quiz-explication{margin-top:14px;padding:12px 14px;border-radius:16px;background:#E9EEF8;font-size:15px;display:none}
.quiz-actions{margin-top:18px;text-align:right}
.quiz-resultat{text-align:center}
.quiz-resultat .score{font-family:'Fraunces',serif;font-size:56px;color:var(--marine);font-weight:700}

/* ----- Pied de page ----- */
.pied{background:var(--marine);color:#AEB6CB;text-align:center;padding:30px 16px;font-size:14px;border-radius:42px 42px 0 0;margin-top:20px}
.pied strong{color:var(--or-clair);font-family:'Fraunces',serif;font-size:17px;font-weight:600}

/* ----- Mobile ----- */
@media (max-width:760px){
  body{font-size:16px}
  .menu-btn{display:block}
  .nav{display:none;position:absolute;top:72px;right:16px;left:16px;flex-direction:column;
       background:var(--marine-profond);border:1px solid var(--or);border-radius:12px;padding:10px;z-index:20}
  .nav.ouvert{display:flex}
  .hero{padding:26px 16px 40px}
  .partie{padding:18px}
  .marque-texte small{display:none}
  .marque-texte strong{font-size:17px;white-space:nowrap}
  .logo{width:44px;height:44px}
  .menu-btn{white-space:nowrap}
  .entete{border-radius:0 0 30px 30px}
}
@media print{
  .entete,.cours-nav,.navigation-bas,.pied,.menu-btn{display:none!important}
  body{background:#fff}
  .partie{box-shadow:none;border:1px solid #ccc;break-inside:avoid}
}

/* ----- Pictogrammes ----- */
.carte .pict img{width:36px;height:36px}
.partie-tete .pastille img{width:32px;height:32px}
.encadre strong .ico{width:20px;height:20px;vertical-align:-4px;margin-right:4px}
.chapitre.quiz .num{background:var(--blanc);border:1px solid var(--or-clair)}

/* ===== Jeux ===== */
.jeu{max-width:820px;margin:0 auto}
.jeu-consigne{color:var(--texte-doux);margin-bottom:16px;font-style:italic}
.jeu-carte{background:var(--blanc);border-radius:var(--rayon);box-shadow:var(--ombre);border:var(--bord);padding:22px}
.jeu-compteur{color:var(--texte-doux);font-size:14px;margin-bottom:6px}
.jeu-question{font-size:19px;font-weight:700;color:var(--marine);margin-bottom:16px}
.jeu-options{display:flex;flex-direction:column;gap:10px}
.jeu-option,.asso-item,.cat-carte{
  text-align:left;background:var(--creme);border:1.5px solid #E2DCC9;border-radius:16px;
  padding:12px 14px;font-size:15.5px;cursor:pointer;font-family:inherit;color:var(--texte);transition:all .15s}
.jeu-option:hover:not(:disabled),.asso-item:hover:not(:disabled),.cat-carte:hover:not(:disabled){border-color:var(--or)}
.ok{background:#E5F3EC!important;border-color:var(--ok)!important}
.ko{background:#FBECEA!important;border-color:var(--ko)!important}
.jeu-explication{margin-top:14px;padding:12px 14px;border-radius:16px;background:#EAEFF8;font-size:15px}
.jeu-explication ol{padding-left:20px;margin-top:6px}
.jeu-explication mark{background:var(--or-pale);color:var(--marine);padding:0 4px;border-radius:4px;font-weight:700}
.jeu-actions{margin-top:18px;text-align:right}
.jeu-progression{height:8px;background:#E6E1D3;border-radius:999px;overflow:hidden;margin-bottom:16px}
.jeu-progression div{height:100%;background:linear-gradient(90deg,var(--or),var(--or-clair));transition:width .3s}
.jeu-bilan{background:var(--blanc);border-radius:var(--rayon);box-shadow:var(--ombre);border:var(--bord);padding:26px;text-align:center;margin-top:18px}
.jeu-bilan .score{font-family:'Fraunces',serif;font-size:52px;color:var(--marine);font-weight:600}
.jeu-bilan .bouton{margin-top:6px}

/* Associations */
.asso-grille{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.asso-col{display:flex;flex-direction:column;gap:10px}
.asso-item.choisi{border-color:var(--marine);background:var(--or-pale);box-shadow:0 0 0 2px var(--or-clair)}
.asso-item.droite{font-size:14.5px}

/* Texte à trous */
.trous-texte{background:var(--blanc);border-radius:var(--rayon);border:var(--bord);box-shadow:var(--ombre);padding:22px;line-height:2.4;font-size:16.5px}
.trous-select{font-family:inherit;font-size:15px;padding:4px 8px;border-radius:10px;border:1.5px solid var(--or-clair);background:var(--or-pale);color:var(--marine);margin:0 3px;max-width:100%}

/* Vrai / faux */
.vf-boutons{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.vf{font-family:inherit;font-size:18px;font-weight:700;padding:16px;border-radius:18px;cursor:pointer;border:1.5px solid #E2DCC9;background:var(--creme);color:var(--marine)}
.vf.vrai:hover:not(:disabled){border-color:var(--ok)} .vf.faux:hover:not(:disabled){border-color:var(--ko)}

/* Ordre */
.ordre-liste{list-style:none;display:flex;flex-direction:column;gap:10px;padding:0}
.ordre-item{display:flex;align-items:center;gap:12px;background:var(--blanc);border:1.5px solid #E2DCC9;border-radius:16px;padding:10px 12px}
.ordre-num{width:30px;height:30px;border-radius:50%;background:var(--or-pale);color:var(--marine);display:grid;place-items:center;font-weight:700;flex-shrink:0}
.ordre-texte{flex:1;font-size:15.5px}
.ordre-fleches{display:flex;flex-direction:column;gap:4px}
.ordre-fleche{width:34px;height:26px;border-radius:8px;border:1px solid var(--or-clair);background:var(--creme);color:var(--marine);cursor:pointer;font-size:11px}
.ordre-fleche:disabled{opacity:.3;cursor:default}

/* Catégories */
.cat-reserve{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;min-height:20px}
.cat-carte{font-size:14.5px;padding:9px 13px}
.cat-carte.choisi{border-color:var(--marine);background:var(--or-pale);box-shadow:0 0 0 2px var(--or-clair)}
.cat-boites{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.cat-boite{background:var(--blanc);border:var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre);padding:12px;min-height:140px}
.cat-titre{width:100%;font-family:'Fraunces',serif;font-size:18px;font-weight:600;color:var(--or-clair);background:var(--marine);border:none;border-radius:14px;padding:10px;cursor:pointer;margin-bottom:10px}
.cat-liste{display:flex;flex-direction:column;gap:6px}
.cat-liste .cat-carte{cursor:default}

/* Cartes mémoire */
.memo-carte{display:block;width:100%;max-width:520px;height:250px;margin:0 auto;perspective:1000px;background:none;border:none;cursor:pointer;padding:0;font-family:inherit}
.memo-int{position:relative;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}
.memo-carte.retournee .memo-int{transform:rotateY(180deg)}
.memo-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;box-shadow:var(--ombre)}
.memo-face.recto{background:var(--blanc);border:var(--bord);color:var(--marine);font-size:20px;font-weight:700}
.memo-face.recto small{font-weight:400;font-size:13px;color:var(--texte-doux)}
.memo-face.verso{background:linear-gradient(165deg,var(--marine-clair),var(--marine-doux));color:var(--creme);transform:rotateY(180deg);font-size:17px}
.memo-actions{display:flex;justify-content:center;gap:10px;margin-top:18px}

/* Cas pratique */
.cas-contexte{background:var(--or-pale);border:1px solid var(--or-clair);border-radius:var(--rayon);padding:16px 18px;margin-bottom:16px}
.cas-label{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--or);font-weight:700}
.cas-contexte p{margin-top:4px;font-size:15px}

/* Chrono */
.chrono-haut{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.chrono-temps{font-family:'Fraunces',serif;font-size:30px;color:var(--marine);font-weight:600}
.chrono-temps.urgent{color:var(--ko)}
.chrono-score{font-weight:700;color:var(--marine)}

/* Hub des jeux */
.jeux-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.jeu-tuile{background:var(--blanc);border:var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre);padding:20px;text-decoration:none;color:var(--texte);display:flex;gap:14px;align-items:flex-start;transition:transform .15s}
.jeu-tuile:hover{transform:translateY(-3px)}
.jeu-tuile .pict{width:52px;height:52px;border-radius:50%;background:var(--or-pale);display:grid;place-items:center;flex-shrink:0}
.jeu-tuile .pict img{width:32px;height:32px}
.jeu-tuile strong{display:block;font-family:'Fraunces',serif;font-size:19px;font-weight:600;color:var(--marine)}
.jeu-tuile small{color:var(--texte-doux);font-size:14px;line-height:1.45;display:block;margin-top:2px}

@media (max-width:560px){
  .asso-grille{gap:8px}
  .asso-item{font-size:14px;padding:10px}
  .asso-item.droite{font-size:13.5px}
  .memo-carte{height:220px}
}
.jeu-option:disabled,.asso-item:disabled,.cat-carte:disabled,.vf:disabled,.quiz-option:disabled{opacity:1;color:var(--texte);cursor:default}
.asso-item.choisi,.cat-carte.choisi{background:var(--marine)!important;color:var(--creme)!important;border-color:var(--marine)!important;box-shadow:0 0 0 3px var(--or-clair)}

/* ===== Mots croisés ===== */
.mc-cadre{overflow-x:auto;padding:4px 0 10px;text-align:center}
.mc-grille{border-collapse:separate;border-spacing:2px;margin:0 auto;min-width:0;border:none;border-radius:0;overflow:visible}
.mc-grille td{width:var(--mc-case,32px);height:var(--mc-case,32px);padding:0;border:none!important;background:none!important;position:relative}
.mc-grille td.mc-case{background:var(--blanc)!important;border:1.5px solid #D9CFB4!important;border-radius:6px}
.mc-grille td.mc-mot{background:var(--or-pale)!important}
.mc-grille td.mc-actif{border-color:var(--marine)!important;box-shadow:0 0 0 2px var(--or-clair)}
.mc-grille td.mc-ok{background:#E5F3EC!important;border-color:var(--ok)!important}
.mc-grille td.mc-ko{background:#FBECEA!important;border-color:var(--ko)!important}
.mc-grille input{width:100%;height:100%;border:none;background:transparent;text-align:center;font-family:'Nunito',sans-serif;font-weight:700;font-size:16px;color:var(--marine);text-transform:uppercase;padding:0;outline:none;caret-color:var(--or)}
.mc-num{position:absolute;top:1px;left:3px;font-size:9px;line-height:1;color:var(--texte-doux);font-weight:700;pointer-events:none}
.mc-grille b{display:grid;place-items:center;height:100%;color:var(--marine);font-size:15px}
.mc-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px 0}
.mc-defs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.mc-defs>div{background:var(--blanc);border:var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre);padding:16px 18px}
.mc-defs h3{font-size:20px;margin-bottom:8px}
.mc-defs ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}
.mc-defs li{font-size:15px;padding:6px 8px;border-radius:10px;cursor:pointer}
.mc-defs li.mc-def-active{background:var(--or-pale)}
.mc-long{color:var(--texte-doux);font-size:13px}
.mc-impression{display:none}
@media (max-width:640px){
  .mc-defs{grid-template-columns:1fr}
  .mc-grille input{font-size:13px}
  .mc-num{font-size:8px;left:2px}
}
@media print{
  .mc-ecran,body:has(.mc) .ariane,body:has(.mc) .section-intro,body:has(.mc) .partie-tete,body:has(.mc) .navigation-bas{display:none!important}
  .mc-impression{display:block}
  .mc-impression h2{font-size:22px;margin-bottom:6px}
  .mc-nom{margin-bottom:14px;color:#333}
  .mc-impression .mc-grille td{width:24px;height:24px}
  .mc-impression .mc-grille b{font-size:13px}
  .mc-impression .mc-defs li{font-size:12.5px;padding:2px 4px}
  .mc-impression .mc-defs h3{font-size:16px}
  .mc-impression .mc-num{font-size:8px}
  .mc-impression .mc-grille td.mc-case{border:1.5px solid #333!important;border-radius:0}
  .mc-impression .mc-defs>div{box-shadow:none;border:1px solid #bbb}
  .mc-page-corrige{break-before:page;margin-top:0}
  .mc-impression .mc-grille{margin:10px auto 16px}
}

/* ===== Méthode REMPART ===== */
.rempart-mot{display:flex;gap:8px;justify-content:center;margin:18px 0 4px;flex-wrap:wrap}
.rempart-mot span{width:52px;height:52px;border-radius:50%;background:var(--marine);color:var(--or-clair);display:grid;place-items:center;font-family:'Fraunces',serif;font-size:26px;font-weight:600}
.rempart-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:22px}
.rempart-carte{display:flex;gap:14px;background:var(--blanc);border:var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre);padding:18px;break-inside:avoid}
.rempart-lettre{width:54px;height:54px;flex-shrink:0;border-radius:16px;background:var(--marine);color:var(--or-clair);display:grid;place-items:center;font-family:'Fraunces',serif;font-size:30px;font-weight:600}
.rempart-titre{font-family:'Fraunces',serif;font-size:21px;font-weight:600;color:var(--marine);display:flex;align-items:center;gap:6px}
.rempart-question{font-weight:700;color:var(--marine-doux);font-size:15px;margin:2px 0 6px}
.rempart-corps ul{padding-left:18px;font-size:14.5px;color:var(--texte)}
.rempart-corps li{margin:2px 0}
.rempart-corps small{display:block;margin-top:8px;color:var(--or);font-size:12.5px;font-weight:700;letter-spacing:.3px}
.rempart-exemple{list-style:none;padding:0!important;display:flex;flex-direction:column;gap:8px}
.rempart-exemple li{display:flex;gap:10px;align-items:baseline;font-size:15.5px}
.rempart-pastille{width:28px;height:28px;flex-shrink:0;border-radius:50%;background:var(--or);color:var(--marine);display:inline-grid;place-items:center;font-weight:700;font-size:14px}
.impacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:10px}
.impact{background:var(--or-pale);border:1px solid var(--or-clair);border-radius:16px;padding:12px 14px}
.impact strong{display:block;font-family:'Fraunces',serif;color:var(--marine);font-size:17px;font-weight:600}
.impact span{font-size:14px;color:var(--texte)}
.fiche-actions{text-align:right;margin-bottom:14px}
.rempart-rappel{display:flex;align-items:center;gap:12px;background:var(--or-pale);border:1px solid var(--or-clair);border-radius:16px;padding:10px 14px;margin:6px 0 18px;font-size:15px}
.rempart-mini{background:var(--marine);color:var(--or-clair);text-decoration:none;font-weight:700;letter-spacing:2px;font-size:13px;padding:6px 10px;border-radius:10px;flex-shrink:0}
.chapitre.methode{background:var(--marine);border-color:var(--marine)}
.chapitre.methode strong{color:var(--or-clair)} .chapitre.methode small{color:#C9D0E2}
.rempart-num{background:var(--or)!important;color:var(--marine)!important;font-size:20px!important}
.chapitre .num img{width:22px;height:22px}
.chapitre.vide .num img{filter:brightness(0) invert(1);opacity:.9}

/* ===== Chapitres de cours ===== */
.chaine{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:16px 0;counter-reset:m}
.maillon{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;width:120px;padding:14px 8px 12px;background:var(--creme);border:1.5px solid var(--or-clair);border-radius:20px;text-decoration:none;color:var(--marine);text-align:center}
.maillon img{width:34px;height:34px}
.maillon-num{position:absolute;top:-10px;left:50%;transform:translateX(-50%);width:24px;height:24px;border-radius:50%;background:var(--marine);color:var(--or-clair);font-size:12px;font-weight:700;display:grid;place-items:center}
.maillon-nom{font-size:13.5px;font-weight:700;line-height:1.25}
.maillon:hover{border-color:var(--or);background:var(--or-pale)}
.puces-grille{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.puces-grille span{background:var(--or-pale);border:1px solid var(--or-clair);border-radius:999px;padding:6px 14px;font-size:15px;color:var(--marine)}
.deux-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:10px 0}
.mini-carte{background:var(--creme);border:1px solid #EFE6CF;border-radius:16px;padding:14px}
.mini-carte strong{color:var(--marine)}
.mini-carte ul{padding-left:18px;margin-top:6px}
.encadre ul{padding-left:18px;margin-top:4px}
.jeu-tuile.tuile-quiz{background:var(--or-pale);border-color:var(--or-clair)}
@media (max-width:560px){ .maillon{width:calc(33.33% - 7px);padding:14px 4px 10px} .maillon-nom{font-size:12px} .rempart-grille{grid-template-columns:1fr} }
@media print{
  .fiche-actions{display:none}
  .rempart-grille{grid-template-columns:1fr 1fr;gap:8px}
  .rempart-carte{box-shadow:none;padding:10px}
  .rempart-lettre,.rempart-mot span,.rempart-pastille{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .partie{padding:12px;margin-bottom:10px}
}

.print-titre{display:none}
.rempart-exemple strong{white-space:nowrap}
@media print{
  .print-titre{display:block;font-size:28px;margin:0 0 10px}
  main{padding-top:0}
}
.chapitre.quiz{max-width:none;margin:0}

/* ===== Entraînement à l'épreuve ===== */
.ep-bloc{margin-bottom:22px}
.ep-carte{background:var(--blanc);border:var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre);padding:20px;margin-bottom:16px}
.ep-etape{font-weight:700;color:var(--marine);margin:14px 0 8px;display:flex;gap:8px;align-items:center}
.ep-etape span{width:26px;height:26px;border-radius:50%;background:var(--or);color:var(--marine);display:inline-grid;place-items:center;font-size:14px;flex-shrink:0}
.ep-lettres{display:flex;flex-wrap:wrap;gap:8px}
.ep-lettre{display:flex;flex-direction:column;align-items:center;gap:2px;width:84px;padding:8px 4px;border-radius:14px;border:1.5px solid #E2DCC9;background:var(--creme);cursor:pointer;font-family:inherit;color:var(--marine)}
.ep-lettre b{font-family:'Fraunces',serif;font-size:22px;font-weight:600}
.ep-lettre small{font-size:11.5px}
.ep-lettre.on{background:var(--marine);color:var(--or-clair);border-color:var(--marine)}
.ep-lettre.oubli{background:#FBECEA;border-color:var(--ko);color:var(--ko)}
.ep-lettre.ok{background:#E5F3EC;border-color:var(--ok);color:var(--marine)}
.ep-texte{width:100%;font-family:inherit;font-size:15px;border:1.5px solid #E2DCC9;border-radius:14px;padding:12px;background:var(--creme);color:var(--texte);resize:vertical}
.ep-reponse{margin-top:14px}
.ep-reponse h3{font-size:20px;margin:14px 0 8px}
.ep-astuce{color:var(--texte-doux);font-size:14px;margin-top:10px;font-style:italic}
@media (max-width:560px){.ep-lettre{width:calc(25% - 6px)}}

/* Identité neutre : pictogramme dans l'en-tête, nom discret en pied de page */
.logo.logo-picto{background:var(--or-pale)}
.logo.logo-picto img{width:62%;height:62%;object-fit:contain}
.pied-auteur{margin-top:10px;font-size:12px;color:#8A93AE;letter-spacing:.3px}
