
/* ============ CHARTE KIDIBOOK V3 — cahiers de vacances, impression A4 ============
   Titres « Baloo 2 » 800, textes « Nunito ». Les polices arrivent par un <link>
   dans le <head> avec display=block : en display=swap, Chrome imprime la police
   de repli avant l'arrivée du fichier (c'est pourquoi les PDF v2 sortaient en
   Helvetica). Le rendu se fait avec --virtual-time-budget pour laisser le temps.

   Deux familles de couleurs par niveau :
     --w / --onw : la couleur du MONDE (charte v3) et le texte lisible dessus,
                   réservées à la couverture et au bandeau de tête.
     --c  / --cl : l'accent contrasté sur blanc et sa teinte claire, pour tout
                   le chrome des exercices (inchangés depuis la v2).

   Règle d'impression domestique : SEULE la couverture est peinte. Les pages
   intérieures restent à fond blanc — bandeau fin, macaron de page, pied discret.
   ================================================================================ */
@page{size:A4;margin:0}
/* Polices : Chrome ne sait PAS ré-encoder une police du Web dans un PDF — il la
   convertit en Type3 (un tracé par glyphe), ce qui triple le poids du fichier.
   On déclare donc une famille locale prioritaire : si la police est installée
   sur la machine qui imprime, Chrome embarque un vrai sous-ensemble TrueType ;
   sinon la règle échoue et la famille suivante — celle de Google Fonts, servie
   par le <link> du <head> — prend le relais pour l'affichage à l'écran. */
@font-face{font-family:'Nunito L';font-style:normal;font-weight:400;src:local('Nunito Regular'),local('Nunito')}
@font-face{font-family:'Nunito L';font-style:normal;font-weight:600;src:local('Nunito SemiBold')}
@font-face{font-family:'Nunito L';font-style:normal;font-weight:700;src:local('Nunito Bold')}
@font-face{font-family:'Nunito L';font-style:normal;font-weight:800;src:local('Nunito ExtraBold')}
@font-face{font-family:'Baloo L';font-style:normal;font-weight:800;src:local('Baloo 2 ExtraBold')}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Nunito L','Nunito',sans-serif;color:#17323B;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.page{width:210mm;height:297mm;position:relative;overflow:hidden;page-break-after:always;background:#fff}
.page:last-of-type{page-break-after:auto}
h1,h2,h3,.f{font-family:'Baloo L','Baloo 2',sans-serif;font-weight:800;line-height:1.14;letter-spacing:-.01em}

/* ---------------- couverture peinte ---------------- */
.cover{color:#17323B}
.cover .bg{position:absolute;top:0;left:0;width:210mm;height:297mm;object-fit:cover}
.cover .top{position:absolute;top:12mm;left:14mm;right:14mm;display:flex;flex-direction:column;align-items:center;gap:5mm}
.cover .mascot{font-size:30px;line-height:1;background:#fff;width:15mm;height:15mm;border-radius:50%;
  display:flex;align-items:center;justify-content:center;box-shadow:0 2px 5px rgba(23,50,59,.32)}
.cover .world{font-family:'Baloo L','Baloo 2',sans-serif;font-weight:800;letter-spacing:3px;text-transform:uppercase;
  font-size:16px;color:var(--c);background:#fff;padding:8px 26px;border-radius:40px;box-shadow:0 2px 5px rgba(23,50,59,.32)}
.cover .cart{background:rgba(255,255,255,.94);border-radius:10mm;padding:7mm 10mm 8mm;text-align:center;
  box-shadow:0 2mm 6mm rgba(23,50,59,.28)}
.cover h1{font-size:57px;color:var(--c);margin-bottom:3mm}
.cover .sub{font-size:23px;font-weight:800;font-family:'Baloo L','Baloo 2',sans-serif;color:#33505A}
.cover .cbottom{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:26mm 26mm 0 0;
  padding:12mm 20mm 10mm;display:flex;flex-direction:column;align-items:center;gap:5mm;
  box-shadow:0 -1.5mm 5mm rgba(23,50,59,.22)}
.cover .free{background:#FFD23F;color:#17323B;font-family:'Baloo L','Baloo 2',sans-serif;font-weight:800;font-size:24px;
  padding:10px 34px;border-radius:50px;border-bottom:4px solid rgba(23,50,59,.16)}
.cover .tag{font-size:17px;font-weight:700;color:#5A727B;line-height:1.5;max-width:158mm;text-align:center}
.cover .brand{font-family:'Baloo L','Baloo 2',sans-serif;font-weight:800;font-size:19px;color:var(--c);letter-spacing:.5px}

/* ---------------- bandeau de tête (12 mm, encre minimale) ---------------- */
.band{position:absolute;top:0;left:0;right:0;height:12mm;background:var(--w);color:var(--onw);
  display:flex;align-items:center;gap:4mm;padding:0 14mm 0 8mm}
.band .jeton{width:9mm;height:9mm;border-radius:50%;object-fit:cover;background:#fff;
  border:.7mm solid rgba(255,255,255,.9)}
.band .ic{font-size:15px;line-height:1}
.band h2{font-size:23px;color:var(--onw);letter-spacing:0}
.band .lvl{margin-left:auto;font-family:'Baloo L','Baloo 2',sans-serif;font-weight:800;
  background:#fff;color:var(--c);padding:1.6mm 6mm;border-radius:40px;font-size:14px}
.body{padding:19mm 15mm 17mm}

/* ---------------- exercices (chrome v2 conservé) ---------------- */
.ex{background:#fff;border:2px solid var(--cl);border-radius:20px;padding:20px 22px 18px;margin-bottom:17px;position:relative}
.ex-n{position:absolute;top:-16px;left:20px;width:34px;height:34px;background:var(--c);color:#fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-family:'Baloo L','Baloo 2',sans-serif;font-weight:800;font-size:17px;
  border:3px solid #fff}
.ex .q{font-weight:700;font-size:18px;margin:6px 0 12px;line-height:1.5}
.ex .q b{color:var(--c)}
.ex .hint{color:#5A727B;font-weight:600;font-size:14px}
.wline{border-bottom:2.5px dotted #B4C6CB;height:26px;margin:10px 0}
.boxes{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.box{min-width:52px;height:44px;border:2px solid var(--cl);border-radius:12px;background:#FCFEFE;
  display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;padding:0 8px}
.op{font-size:20px;font-weight:800;color:var(--c);align-self:center}
.item{font-size:18px;font-weight:700;margin:6px 0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px}

/* ---------------- solutions ---------------- */
.sol{background:var(--cl);border-radius:18px;padding:17px 22px;margin-bottom:13px}
.sol h3{color:var(--c);font-size:20px;margin-bottom:6px}
.sol p{font-size:16px;font-weight:600;line-height:1.7}

/* ---------------- dernière page ---------------- */
.gf{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:100%;padding:12mm 18mm 0}
.gf .medw{position:relative;width:66mm;height:66mm;margin-bottom:7mm}
.gf .med{width:100%;height:100%;border-radius:50%;overflow:hidden;
  border:2.2mm solid #fff;outline:1.2mm solid var(--w)}
.gf .med img{width:100%;height:100%;object-fit:cover}
.gf .m{position:absolute;right:-2mm;bottom:2mm;font-size:26px;background:#fff;border-radius:50%;
  width:13mm;height:13mm;display:flex;align-items:center;justify-content:center;border:.6mm solid var(--cl)}
.gf h2{font-size:39px;color:var(--c);margin-bottom:14px}
.gf p{font-size:19px;max-width:150mm;color:#33505A;line-height:1.6;margin-bottom:9px}
.gf .cta{margin-top:18px;background:#FF4081;color:#fff;font-family:'Baloo L','Baloo 2',sans-serif;font-weight:800;font-size:21px;
  padding:15px 40px;border-radius:50px;text-decoration:none;border-bottom:5px solid #D62B67}
.gf .url{margin-top:12px;color:#5A727B;font-weight:700;font-size:15px}

/* ---------------- pied, macaron de page, ornement ---------------- */
.foot{position:absolute;bottom:10mm;left:15mm;right:15mm;text-align:center;color:#5A727B;font-size:13px;font-weight:700;opacity:.85}
.pnum{position:absolute;right:13mm;bottom:8mm;width:10mm;height:10mm;border-radius:50%;background:var(--cl);color:var(--c);
  display:flex;align-items:center;justify-content:center;font-family:'Baloo L','Baloo 2',sans-serif;font-weight:800;font-size:14px}
.pnum::after{content:attr(data-n)}
.orn{position:absolute;left:9mm;bottom:7mm;width:24mm;height:24mm;color:var(--w);opacity:.16}

/* ---------------- ce qui ne s'imprime jamais ----------------
   La bannière de consentement (assets/kb-consent.js) est injectée sur toutes
   les pages du site, y compris celles-ci : sans cette règle elle se retrouve
   IMPRIMÉE en travers de la couverture du PDF. */
#kb-consent,#kb-consent-gerer{display:none!important}
