:root{
  --bg:#ffffff;
  --card:#ffffff;
  --ink:#1e2433;
  --muted:#68708a;
  --primary:#1d4ed8;
  --primary-dark:#1e3a8a;
  --accent:#f59e0b;
  --success:#16a34a;
  --success-bg:#e7f7ee;
  --danger:#dc2626;
  --danger-bg:#fdecec;
  --info-bg:#eef2ff;
  --radius:16px;
  --shadow:0 10px 30px rgba(30,36,51,.08);
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,'Helvetica Neue',Arial,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
}
a{color:var(--primary)}

/* ---------- Formes flottantes du hero ---------- */
.hero{position:relative;overflow:hidden}
.hero .wrap{position:relative;z-index:1}
.hero-shapes{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.shape{position:absolute;display:block;color:rgba(255,255,255,.55);animation:floaty 9s ease-in-out infinite}
.shape-blob{border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.28) 0%,rgba(255,255,255,0) 70%)}
.shape-ring{border:2px solid rgba(255,255,255,.35);border-radius:50%}
.shape-plus{font-size:2rem;font-weight:300;line-height:1}
.shape-star{font-size:1.4rem}
.s1{width:150px;height:150px;top:6%;left:4%}
.s2{width:110px;height:110px;bottom:10%;right:6%;animation-duration:11s;animation-delay:-3s}
.s3{width:70px;height:70px;top:14%;right:12%;animation-duration:8s;animation-delay:-2s}
.s4{top:64%;left:10%;animation-duration:7s;animation-delay:-1s}
.s5{top:22%;left:44%;animation-duration:10s;animation-delay:-5s}
.s6{width:60px;height:60px;bottom:22%;left:30%;animation-duration:12s;animation-delay:-4s}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-20px) rotate(10deg)}}
@media (prefers-reduced-motion:reduce){.hero-shapes{display:none}}

/* ================= Outils : couleurs par matière ================= */
:root{
  --sc-math:#1d4ed8; --sc-math-soft:#e3eafc; --sc-math-ink:#1e3a8a;
  --sc-fr:#ea580c;   --sc-fr-soft:#fdeadb;   --sc-fr-ink:#9a3412;
  --sc-ang:#d97706;  --sc-ang-soft:#fdf0d3;  --sc-ang-ink:#92400e;
  --sc-sci:#7c3aed;  --sc-sci-soft:#ece4fd;  --sc-sci-ink:#5b21b6;
  --sc-hist:#ca8a04; --sc-hist-soft:#fdf3d0; --sc-hist-ink:#854d0e;
}
.subj-math{--sc:var(--sc-math);--sc-soft:var(--sc-math-soft);--sc-ink:var(--sc-math-ink)}
.subj-fr{--sc:var(--sc-fr);--sc-soft:var(--sc-fr-soft);--sc-ink:var(--sc-fr-ink)}
.subj-ang{--sc:var(--sc-ang);--sc-soft:var(--sc-ang-soft);--sc-ink:var(--sc-ang-ink)}
.subj-sci{--sc:var(--sc-sci);--sc-soft:var(--sc-sci-soft);--sc-ink:var(--sc-sci-ink)}
.subj-hist{--sc:var(--sc-hist);--sc-soft:var(--sc-hist-soft);--sc-ink:var(--sc-hist-ink)}

/* ---------- Cartes d'applications ---------- */
.app-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;max-width:1060px;margin:0 auto}
.app-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f6;border-radius:18px;padding:1.5rem 1.25rem 1.2rem;text-decoration:none;color:var(--ink);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.app-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--sc)}
.app-card:hover{transform:translateY(-5px);border-color:var(--sc);box-shadow:0 16px 34px rgba(30,58,138,.15)}
.app-card:focus-visible{outline:3px solid var(--sc);outline-offset:2px}
.app-ico{width:58px;height:58px;border-radius:16px;background:var(--sc-soft);display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.app-ico img{width:32px;height:32px}
.app-card h3{font-size:1.02rem;margin:0 0 .35rem;line-height:1.3}
.app-meta{font-size:.8rem;color:var(--muted);margin:0 0 1.1rem;line-height:1.55;flex:1}
.app-meta .m{display:inline-block;font-weight:700;color:var(--sc-ink)}
.app-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.app-foot .card-go{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--sc-soft);color:var(--sc-ink);font-weight:800;font-size:1.05rem;line-height:1;transition:background .18s ease,color .18s ease}
.app-card:hover .card-go{background:var(--sc);color:#fff}
.tools-more{text-align:center;margin-top:2.1rem}

/* ---------- Page catalogue des outils ---------- */
.nav-link.active{color:var(--primary);box-shadow:inset 0 -3px 0 var(--primary)}
.tools-hero{background:linear-gradient(180deg,#16295e,#1d4ed8);color:#fff;text-align:center;padding:3.5rem 0 3rem;position:relative;overflow:hidden}
.tools-hero .wrap{position:relative;z-index:1}
.tools-hero .tar-kicker{color:#bcd0fb}
.tools-hero h1{color:#fff;font-size:2.2rem;margin:.7rem 0 .8rem;letter-spacing:-.01em}
.tools-hero .section-sub{color:rgba(255,255,255,.88);margin-bottom:0}
.tools-catalog{padding-bottom:1rem}
.subj-filters{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin:2.2rem 0 0}
.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1.1rem;border-radius:999px;border:1.5px solid #dbe4f8;background:#fff;font-weight:700;font-size:.88rem;color:var(--ink);cursor:pointer;transition:border-color .15s ease,transform .15s ease,background .15s ease,color .15s ease;font-family:inherit}
.chip .dot{width:11px;height:11px;border-radius:50%;background:var(--sc,#9aa5c4);flex:none}
.chip .dot-all{background:conic-gradient(#1d4ed8,#ea580c,#d97706,#7c3aed,#ca8a04,#1d4ed8)}
.chip:hover{border-color:var(--sc,#1d4ed8);transform:translateY(-1px)}
.chip.active{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}
.chip.active .dot{box-shadow:0 0 0 2px #fff}
.year-block{margin-top:2.8rem}
.year-head{display:flex;align-items:center;gap:.9rem;margin-bottom:1.3rem}
.year-pill{background:var(--primary-dark);color:#fff;font-weight:800;font-size:1rem;padding:.45rem 1.25rem;border-radius:999px;letter-spacing:.01em;white-space:nowrap}
.year-count{color:var(--muted);font-size:.9rem;font-weight:600;white-space:nowrap}
.year-head::after{content:"";flex:1;height:1px;background:#dbe4f8}
.empty-year{border:2px dashed #c9d6f5;border-radius:18px;padding:2.4rem 1.5rem;text-align:center;color:var(--muted);background:#f8faff;max-width:560px;margin:0 auto}
.empty-year strong{display:block;color:var(--ink);font-size:1.05rem;margin-bottom:.4rem}
.empty-year p{margin:0;font-size:.92rem}
.tools-cta-band{margin:3.5rem 0 3rem;background:linear-gradient(135deg,#16295e,#1d4ed8);border-radius:22px;padding:2.6rem 2rem;text-align:center;color:#fff}
.tools-cta-band h2{color:#fff;margin:0 0 .5rem;font-size:1.5rem}
.tools-cta-band p{color:rgba(255,255,255,.88);margin:0 0 1.5rem}
.tools-cta-band .btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:2px solid rgba(255,255,255,.85)}
.tools-cta-band .btn-ghost:hover{background:rgba(255,255,255,.24)}
@media (max-width:960px){.app-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){
  .app-grid{grid-template-columns:1fr;max-width:380px}
  .tools-hero h1{font-size:1.7rem}
  .year-pill{font-size:.9rem}
}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:10;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid #e6e9f2;
}
.site-header .wrap{
  max-width:1024px;margin:0 auto;padding:.7rem 1.2rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.brand{font-weight:800;font-size:1.25rem;color:var(--primary);text-decoration:none}
.brand small{display:block;font-size:.7rem;font-weight:600;color:var(--muted);letter-spacing:.04em}
.nav{display:flex;align-items:center;gap:1rem}
.nav a.nav-link{color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem}
.nav a.nav-link:hover{color:var(--primary)}

/* ---------- Layout ---------- */
.wrap{max-width:1024px;margin:0 auto;padding:0 1.2rem}
section{padding:3rem 0}

/* ---------- Hero ---------- */
.hero{
  text-align:center;padding:5rem 0 4rem;color:#fff;
  background:linear-gradient(180deg,rgba(17,30,80,.88),rgba(29,78,216,.72)),url('../img/hero-tutorat.jpg') center 30%/cover no-repeat;
}
.hero-badge{
  display:inline-block;background:rgba(255,255,255,.16);color:#fff;
  font-weight:700;font-size:.85rem;padding:.35rem 1rem;border-radius:999px;margin-bottom:1rem;
}
.hero h1{color:#fff}
.hero p{color:rgba(255,255,255,.92);font-size:1.1rem;max-width:640px;margin:0 auto 1.8rem}
.hero .btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:2px solid rgba(255,255,255,.85)}
.hero .btn-ghost:hover{background:rgba(255,255,255,.24)}
/* Sur mobile : cadrer la photo sur l'élève plutôt qu'entre les deux visages */
@media(max-width:640px){
  .hero{background:linear-gradient(180deg,rgba(17,30,80,.88),rgba(29,78,216,.72)),url('../img/hero-tutorat.jpg') 28% 40%/cover no-repeat}
}
.hero h1{font-size:2.4rem;line-height:1.2;margin:.5rem 0;letter-spacing:-.01em}
.hero-cta{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;padding:.85rem 1.6rem;border-radius:12px;font-weight:700;font-size:1rem;
  text-decoration:none;border:none;cursor:pointer;transition:transform .12s ease, box-shadow .12s ease;
}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 6px 18px rgba(29,78,216,.35)}
.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px)}
.btn-ghost{background:#fff;color:var(--primary);border:2px solid var(--primary)}
.btn-ghost:hover{background:var(--info-bg)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* ---------- Trust strip ---------- */
.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.5rem}
.trust-item{background:var(--card);border-radius:var(--radius);padding:1.2rem;box-shadow:var(--shadow);text-align:left}
.trust-item .ico{font-size:1.6rem}
.trust-item h3{margin:.4rem 0 .2rem;font-size:1rem}
.trust-item p{margin:0;color:var(--muted);font-size:.9rem}

/* ---------- Bandes de sections (rythme visuel, accueil) ---------- */
#outils,#tarifs,#temoignages,#cahiers{background:#e3eafc;border-top:1px solid #c9d6f5;border-bottom:1px solid #c9d6f5}

/* ---------- Processus en 4 étapes ---------- */
.proc-steps{list-style:none;margin:2.4rem auto 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;max-width:1024px}
.proc-steps li{background:#fff;border:1px solid #dbe4f8;border-radius:16px;padding:1.6rem 1.1rem 1.4rem;text-align:center;box-shadow:0 6px 18px rgba(30,58,138,.06)}
.proc-num{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#1d4ed8,#1e3a8a);color:#fff;font-weight:800;font-size:1.25rem;margin-bottom:.7rem}
.proc-steps h3{font-size:1.02rem;margin:.2rem 0 .5rem;color:var(--ink)}
.proc-steps p{font-size:.9rem;color:var(--muted);margin:0;line-height:1.55}
@media (max-width:640px){.proc-steps{grid-template-columns:1fr;max-width:430px}}
.trust-guarantee{border:2px solid #16a34a;background:#f0fdf4}
.guarantee-checks{list-style:none;margin:.7rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}
.guarantee-checks li{display:flex;align-items:flex-start;gap:.45rem;font-size:.82rem;font-weight:600;color:var(--ink)}
.guarantee-checks img.tl-emoji{flex:none;margin-top:.15em}
.guarantee-source{margin:.7rem 0 0 !important;font-size:.78rem;color:var(--muted)}
.guarantee-source a{color:#1d4ed8;font-weight:600}
/* Carte garantie à panneau latéral */
.trust-split{grid-column:1/-1;display:flex;padding:0;overflow:hidden;text-align:left;max-width:780px;width:100%;margin:0 auto}
.trust-panel{background:var(--primary-dark);color:#fff;min-width:185px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:1.6rem 1.2rem;text-align:center}
.trust-panel .ico{font-size:2.4rem}
.trust-panel .ico img.tl-emoji{width:2.2em;height:2.2em}
.trust-panel strong{font-size:1.55rem;letter-spacing:.14em}
.trust-panel-sub{font-size:.75rem;opacity:.88;line-height:1.5}
.trust-body{padding:1.4rem 1.6rem}
.trust-body h3{margin-top:0;color:var(--ink)}
@media(max-width:640px){.trust-split{flex-direction:column}.trust-panel{min-width:0;padding:1.2rem}}

/* ---------- Tool cards ---------- */
.section-title{text-align:center;margin-bottom:.4rem;font-size:1.8rem}
.section-sub{text-align:center;color:var(--muted);margin-top:0;margin-bottom:2rem}
/* ---------- Liste d'outils ---------- */
.tools-list{display:flex;flex-direction:column;gap:.5rem;max-width:660px;margin:0 auto}
.tool-row{
  display:flex;align-items:center;gap:.8rem;background:var(--card);
  border:1.5px solid #e4eaf6;border-radius:12px;box-shadow:var(--shadow);
  padding:.55rem .9rem;text-decoration:none;color:inherit;
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.tool-row:hover{transform:translateX(4px);border-color:var(--primary);box-shadow:0 8px 20px rgba(30,58,138,.12)}
.tool-row img.tl-emoji{width:30px;height:30px;flex:none}
.tool-row-txt{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0}
.tool-row-txt strong{font-size:.95rem;line-height:1.25}
.tool-row-txt small{color:var(--muted);font-size:.75rem}
.tool-row .badge{flex:none}
.tool-row .card-go{font-size:1.1rem;font-weight:800;color:var(--primary);flex:none;line-height:1}
.badge{
  background:var(--success);color:#fff;
  font-size:.62rem;font-weight:800;padding:.2rem .55rem;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;
}
.badge.soon{background:var(--muted)}

/* ---------- Tutor CTA ---------- */
.cta-tutor{
  background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;border-radius:20px;
  padding:2.6rem;box-shadow:var(--shadow);
}
.cta-tutor .kicker{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;opacity:.85}
.cta-tutor h2{margin:.4rem 0 1rem;font-size:1.9rem}
.cta-tutor p{opacity:.92;max-width:640px}
.cta-tutor ul{list-style:none;padding:0;margin:1.2rem 0 1.8rem;display:grid;gap:.5rem}
.cta-tutor li::before{content:"✅ "; }
.btn-accent{background:#fff;color:var(--primary-dark)}
.btn-accent:hover{background:#f3f0ff;transform:translateY(-1px)}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid #e6e9f2;padding:1.6rem 0;color:var(--muted);font-size:.9rem;text-align:center}

/* ---------- Réseaux sociaux ---------- */
.social-links{display:flex;justify-content:center;gap:.8rem;margin-bottom:.9rem}
.social-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:#eef2ff;color:#1e3a8a;transition:transform .15s ease,background .15s ease,color .15s ease}
.social-btn:hover{background:#1e3a8a;color:#fff;transform:translateY(-2px)}
.social-btn svg{width:20px;height:20px}

/* ---------- Menu mobile (hamburger) ---------- */
.nav-toggle{display:none}
.nav-burger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;background:none;border:0;cursor:pointer;padding:9px;border-radius:10px}
.nav-burger:hover{background:#f1f4fa}
.nav-burger span{display:block;width:22px;height:3px;border-radius:2px;background:var(--ink);transition:transform .18s ease,opacity .18s ease}
.nav-toggle:checked + .nav-burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-toggle:checked + .nav-burger span:nth-child(2){opacity:0}
.nav-toggle:checked + .nav-burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ---------- Practice tool page ---------- */
.tool-wrap{max-width:680px;margin:0 auto;padding:2rem 1.2rem 3rem}
.tool-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.back-link{color:var(--muted);text-decoration:none;font-weight:600}
.back-link:hover{color:var(--primary)}
.tool-head{text-align:center;margin-bottom:1.4rem}
.tool-head h1{margin:0;font-size:2rem}
.tool-head .sub{color:var(--muted);margin:.2rem 0 0}

.seg{
  display:flex;background:#e9ecf5;border-radius:999px;padding:.25rem;margin:0 auto 1.4rem;max-width:420px;
}
.seg button{
  flex:1;border:none;background:transparent;padding:.55rem .4rem;border-radius:999px;
  font-weight:700;color:var(--muted);cursor:pointer;font-size:.92rem;
}
.seg button.active{background:#fff;color:var(--primary);box-shadow:0 2px 8px rgba(30,36,51,.12)}

.problem-card{
  background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:2rem 1.4rem;text-align:center;
}
.problem-card .prompt{color:var(--muted);font-weight:600;margin:0 0 .8rem}
.math{
  font-size:2.1rem;font-weight:800;letter-spacing:.06em;margin:.6rem 0 1.2rem;
  font-family:'Cambria Math',Georgia,'Times New Roman',serif;
}
.math.solution{color:var(--success)}
.answer-row{display:flex;gap:.6rem;margin-top:.4rem}
.answer-row input{
  flex:1;padding:.8rem 1rem;border:2px solid #dfe3ef;border-radius:12px;font-size:1.05rem;
  font-family:inherit;min-width:0;
}
.answer-row input:focus{outline:none;border-color:var(--primary)}
.answer-row input:disabled{background:#f1f3f9;color:var(--muted)}

.feedback{
  min-height:2.6rem;margin:.9rem 0 0;font-weight:700;text-align:center;border-radius:12px;
  display:flex;align-items:center;justify-content:center;padding:.5rem;
}
.feedback.ok{background:var(--success-bg);color:var(--success)}
.feedback.ko{background:var(--danger-bg);color:var(--danger)}
.feedback.info{background:var(--info-bg);color:var(--primary)}
.feedback:empty{display:none}

.controls{display:flex;gap:.7rem;margin-top:1rem;flex-wrap:wrap}
.controls .btn{flex:1;min-width:140px;padding:.75rem 1rem;font-size:.95rem}
.btn-secondary{background:#e9ecf5;color:var(--ink)}
.btn-secondary:hover{background:#dde2f0}

.scorebar{
  display:flex;gap:1rem;justify-content:center;margin:1.2rem 0 0;flex-wrap:wrap;
}
.score-pill{
  background:var(--card);border-radius:999px;box-shadow:var(--shadow);
  padding:.45rem 1.1rem;font-weight:700;font-size:.92rem;
}
.score-pill b{color:var(--primary)}

.hint{
  margin-top:1.2rem;background:#fffbeb;border:1px solid #fde68a;border-radius:12px;
  padding:.9rem 1.1rem;font-size:.92rem;color:#92400e;
}
.hint b{display:block;margin-bottom:.2rem}

.solution-box{
  margin-top:1.2rem;background:var(--success-bg);border:1px solid #bbf7d0;border-radius:12px;
  padding:1rem;text-align:center;
}
.solution-box p{margin:0 0 .3rem;font-weight:700;color:var(--success)}
.hidden{display:none !important}

.tool-cta{
  margin-top:2rem;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:1.6rem;text-align:center;
}
.tool-cta h3{margin:0 0 .4rem}
.tool-cta p{color:var(--muted);margin:0 0 1.1rem}

.shake{animation:shake .35s}
@keyframes shake{
  0%,100%{transform:translateX(0)}
  25%{transform:translateX(-7px)}
  75%{transform:translateX(7px)}
}
.pop{animation:pop .35s}
@keyframes pop{
  0%{transform:scale(.85)}
  60%{transform:scale(1.06)}
  100%{transform:scale(1)}
}

/* ---------- Multiple choice ---------- */
.options-grid{display:grid;gap:.6rem;margin-top:1rem}
.option-btn{
  padding:.9rem 1rem;border:2px solid #dfe3ef;border-radius:12px;background:#fff;
  font-size:1.05rem;font-weight:600;cursor:pointer;font-family:inherit;color:var(--ink);
  transition:border-color .15s ease,background .15s ease;text-align:center;width:100%;
}
.option-btn:hover:not(:disabled){border-color:var(--primary);background:var(--info-bg)}
.option-btn:disabled{cursor:default}
.option-btn.correct{border-color:var(--success);background:var(--success-bg);color:var(--success)}
.option-btn.wrong{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}
.option-btn.dim{opacity:.55}

/* ---------- Hub subject groups ---------- */
.subject-title{font-size:1.35rem;margin:2.2rem auto 1rem;display:flex;align-items:center;gap:.6rem;max-width:660px}
.subject-title .emoji{font-size:1.5rem}

/* ---------- Brand ---------- */
.brand{text-decoration:none}
.brand-logo{height:44px;width:auto;display:block}

/* ---------- Badge formule (physique) ---------- */
.formula-badge{
  margin:.85rem 0 0;
  padding:.7rem 1rem;
  background:#eff6ff;
  border-left:4px solid #1d4ed8;
  border-radius:0 12px 12px 0;
  font-size:1.2rem;
  font-weight:700;
  color:#1e3a8a;
}
.formula-badge .fb-label{
  display:block;
  font-size:.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#1d4ed8;
  margin-bottom:.15rem;
}

/* ---------- Sélecteur d'opération (fractions) ---------- */
.op-tabs{
  display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:.9rem;
}
.op-tabs button{
  border:2px solid #dbe3f5;background:#fff;color:#1e3a8a;border-radius:999px;
  padding:.45rem 1rem;font-size:.92rem;font-weight:600;cursor:pointer;
  transition:all .12s ease;
}
.op-tabs button:hover{border-color:#1d4ed8}
.op-tabs button.active{background:#1d4ed8;border-color:#1d4ed8;color:#fff;box-shadow:0 2px 8px rgba(29,78,216,.3)}
.op-desc{text-align:center;color:#4b5563;font-size:.92rem;margin:.55rem 0 0;min-height:1.3em}

/* ---------- Responsive ---------- */
@media (max-width:640px){
  .hero h1{font-size:1.8rem}
  .trust{grid-template-columns:1fr}
  .math{font-size:1.7rem}
  .answer-row{flex-direction:column}
  .answer-row .pow-answer{align-self:center}
  .site-header .wrap{position:relative}
  .nav-burger{display:flex}
  .site-header .nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:60;
    background:#fff;flex-direction:column;align-items:stretch;gap:0;
    padding:.4rem 1.2rem .9rem;box-shadow:0 14px 28px rgba(15,23,42,.14);
    border-bottom:1px solid #e6e9f2}
  .site-header .nav a.nav-link{display:block;padding:.75rem .2rem;border-bottom:1px solid #f1f4fa;font-size:1rem}
  .site-header .nav a.nav-link:last-child{border-bottom:0}
  .nav-toggle:checked ~ .nav{display:flex}
  section{padding:2rem 0}
  /* Liste d'outils compacte */
  .tools-list{gap:.45rem}
  .tool-row{padding:.5rem .7rem;gap:.65rem;border-radius:10px}
  .tool-row img.tl-emoji{width:26px;height:26px}
  .tool-row-txt strong{font-size:.85rem}
  .tool-row-txt small{font-size:.68rem}
  .tool-row .badge{font-size:.52rem;padding:.12rem .4rem}
  .tool-row .card-go{font-size:1rem}
  .subject-title{font-size:1.1rem;margin:1.4rem auto .6rem}
}

/* ---------- Emojis TutoLab ---------- */
img.tl-emoji{width:1.2em;height:1.2em;vertical-align:-0.22em;display:inline-block}
img.tl-emoji-md{width:1.7em;height:1.7em;vertical-align:-0.35em}
img.tl-emoji-lg{width:46px;height:46px}
.hero-badge img.tl-emoji{margin-right:.35em}
.trust-item .ico img.tl-emoji{width:1.7em;height:1.7em}
.subject-title img.tl-emoji{width:1.5em;height:1.5em;vertical-align:-0.28em}

/* ---------- Tarifs ---------- */
#temoignages{padding:3.5rem 0}
.temo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1.25rem;max-width:820px;margin:1.75rem auto 0}
.temo-card{background:#fff;border:1px solid #e6eaf5;border-radius:16px;padding:1.6rem 1.75rem;margin:0;box-shadow:0 8px 22px rgba(30,58,138,.07)}
.temo-stars{color:#f59e0b;font-size:1.1rem;letter-spacing:.18em;margin-bottom:.7rem}
.temo-card blockquote{margin:0 0 1rem;line-height:1.65;color:#1e293b}
.temo-card figcaption strong{display:block;color:#1e3a8a;margin-bottom:.15rem}
.temo-card figcaption span{font-size:.85rem;color:#64748b}
.btn-whatsapp{background:#16a34a;color:#fff;box-shadow:0 6px 18px rgba(22,163,74,.35)}
.btn-whatsapp:hover{background:#15803d;transform:translateY(-1px)}
.tarifs-contact{display:flex;gap:.75rem;justify-content:center;align-items:center;flex-wrap:wrap;text-align:center;margin-top:1.6rem;color:#334155;font-weight:600}
.cta-buttons{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.1rem}
.tar-kicker{display:inline-block;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
  font-size:.8rem;color:var(--primary);background:#fff;border:1px solid #dbe3f5;
  padding:.3rem .9rem;border-radius:999px;margin-bottom:.8rem}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem;
  margin-top:2rem;align-items:stretch}
.price-card{position:relative;background:var(--card);border:2px solid #e6e9f2;border-radius:20px;
  padding:1.8rem 1.5rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.55rem}
.price-card.popular{border-color:var(--success);box-shadow:0 14px 34px rgba(22,163,74,.16)}
.pop-badge{position:absolute;top:-15px;left:50%;transform:translateX(-50%);
  background:var(--success);color:#fff;font-weight:800;font-size:.78rem;white-space:nowrap;
  padding:.35rem 1rem;border-radius:999px;box-shadow:0 4px 12px rgba(22,163,74,.35);
  display:flex;align-items:center;gap:.4rem}
.pop-badge img.tl-emoji{width:1.25em;height:1.25em}
.price-card h3{margin:0;font-size:1.15rem;color:var(--primary-dark)}
.plan-hours{margin:0;color:var(--muted);font-weight:600;font-size:.92rem}
.plan-price{margin:.4rem 0 0;line-height:1}
.plan-price .amount{font-size:2.6rem;font-weight:800;color:var(--primary-dark)}
.plan-per{margin:0;color:var(--muted);font-size:.9rem}
.plan-save{display:inline-flex;align-items:center;gap:.4rem;margin:.2rem 0 0;
  color:var(--success);font-weight:800;font-size:.95rem}
.plan-feats{list-style:none;padding:0;margin:.8rem 0 1.2rem;display:grid;gap:.55rem;flex:1}
.plan-feats li{display:flex;align-items:flex-start;gap:.55rem;font-size:.93rem}
.plan-feats img.tl-emoji{flex:none;margin-top:.15em}
.price-card .btn{width:100%;text-align:center;justify-content:center}
.cahier-thumb{margin:-1.8rem -1.5rem .8rem;border-radius:18px 18px 0 0;overflow:hidden;flex:none}
.cahier-thumb img{width:100%;height:auto;display:block}
.price-card .cahier-actions{margin-top:auto;padding-top:.7rem;display:grid;gap:.6rem}
.tar-note{text-align:center;color:var(--muted);margin-top:1.6rem;font-size:.95rem}
/* Cartes cahiers compactes (accueil) */
#cahiers .pricing-grid{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:1rem}
#cahiers .price-card{padding:1.3rem 1.1rem;gap:.4rem;border-radius:16px}
#cahiers .price-card h3{font-size:1rem}
#cahiers .plan-hours{font-size:.85rem}
#cahiers .plan-price .amount{font-size:1.9rem}
#cahiers .plan-per{font-size:.82rem}
#cahiers .cahier-thumb{margin:-1.3rem -1.1rem .6rem;border-radius:14px 14px 0 0}
#cahiers .price-card .cahier-actions{padding-top:.5rem;gap:.45rem}
#cahiers .price-card .btn{font-size:.88rem;padding:.65rem .4rem}
#cahiers .pop-badge{font-size:.7rem;padding:.25rem .8rem;top:-12px}
.tar-note img.tl-emoji{margin-right:.3em}

/* ---------- Check TutoLab en CTA tutor ---------- */
.cta-tutor li{position:relative;padding-left:1.9em}
.cta-tutor li::before{
  content:"";position:absolute;left:0;top:.2em;width:1.25em;height:1.25em;
  background:url('../emoji/check.svg') no-repeat center/contain;
}

@media (max-width:640px){
  .price-card.popular{transform:none}
}

/* ---------- Valeurs tarifs ---------- */
.tar-values{list-style:none;padding:0;margin:1.6rem auto 0;max-width:780px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.6rem 1.5rem}
.tar-values li{display:flex;align-items:flex-start;gap:.55rem;font-weight:600;font-size:.95rem}
.tar-values img.tl-emoji{flex:none;margin-top:.15em}

/* Multi-réponses (cases à cocher) — Histoire niveau moyen */
.check-list{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem}
.check-opt{display:flex;align-items:flex-start;gap:.7rem;padding:.8rem .9rem;border:2px solid #dfe3ef;border-radius:12px;background:#fff;cursor:pointer;font-size:1rem;font-weight:500;color:var(--ink);transition:border-color .15s ease,background .15s ease}
.check-opt:hover{border-color:#1d4ed8}
.check-opt input{width:1.2rem;height:1.2rem;margin-top:.15rem;accent-color:#1d4ed8;flex-shrink:0;cursor:pointer}
.check-opt.selected{border-color:#1d4ed8;background:#eff6ff}
.check-opt.correct{border-color:#16a34a;background:#f0fdf4}
.check-opt.wrong{border-color:#dc2626;background:#fef2f2}
.check-opt.dim{opacity:.6}

/* ---------- Fractions empilées ---------- */
.frac{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;margin:0 .15em}
.frac .num{border-bottom:2px solid currentColor;padding:0 .4em;line-height:1.25}
.frac .den{padding:0 .4em;line-height:1.25}

/* Réponse en deux cases (numérateur / dénominateur) */
.frac-answer{display:inline-flex;flex-direction:column;vertical-align:middle;margin:0 .3em}
.frac-answer input{
  width:4.2em;text-align:center;font-size:1.25rem;font-weight:700;font-family:inherit;
  border:2px solid #dfe3ef;padding:.35rem .2rem;color:var(--ink);background:#fff;
}
.frac-answer input:focus{outline:none;border-color:var(--primary)}
.frac-answer input:disabled{background:#f1f3f9;color:var(--muted)}
.frac-answer .num-in{border-radius:10px 10px 0 0;border-bottom:3px solid var(--primary)}
.frac-answer .den-in{border-radius:0 0 10px 10px;border-top:none}
.whole-part{font-size:2rem;font-weight:800;margin-right:.15em}
.answer-row.frac-row{align-items:center;justify-content:center}

/* Réponse en deux cases (base / exposant) */
.pow-answer{display:inline-flex;align-items:flex-start}
.pow-answer input{
  flex:none;text-align:center;font-weight:700;font-family:inherit;color:var(--ink);background:#fff;
  border:2px solid #dfe3ef;padding:.8rem .4rem;
}
.pow-answer input:focus{outline:none;border-color:var(--primary)}
.pow-answer input:disabled{background:#f1f3f9;color:var(--muted)}
.pow-answer .base-in{width:4.6em;font-size:1.5rem;border-radius:12px}
.pow-answer .exp-in{width:3.6em;font-size:1rem;border-radius:10px;margin-left:3px;transform:translateY(-.6em)}

/* Énoncé d'un problème écrit */
#problem.words{
  font-family:inherit;font-size:1.12rem;font-weight:500;letter-spacing:0;
  text-align:left;line-height:2.1;
}

/* Figures SVG de géométrie */
.geo-svg{display:block;margin:.2rem auto .5rem;max-width:300px;width:100%;height:auto}
.geo-svg .geo-fill{fill:#dbeafe;stroke:#1e3a8a;stroke-width:2.5}
.geo-svg .geo-fill2{fill:#eff6ff;stroke:#1e3a8a;stroke-width:2.5}
.geo-svg .geo-line{stroke:#1e3a8a;stroke-width:2.5;fill:none}
.geo-svg .geo-dash{stroke:#1d4ed8;stroke-width:2;stroke-dasharray:6 4;fill:none}
.geo-svg .geo-mark{fill:none;stroke:#1e3a8a;stroke-width:2}
.geo-svg .geo-dot{fill:#1e3a8a}
.geo-svg text{font-family:inherit;fill:#0f172a}
.geo-svg .geo-lab{font-size:15px;font-weight:700}
.geo-svg .geo-q{font-size:21px;font-weight:800;fill:#1d4ed8}
#problem .geo-text{font-family:inherit;font-size:1.3rem;font-weight:600;letter-spacing:0;line-height:1.5}

@media (max-width:640px){
  .answer-row.frac-row{flex-direction:row;flex-wrap:wrap}
}

/* Section À propos */
.apropos-grid{display:grid;grid-template-columns:260px 1fr;gap:2.25rem;align-items:center;max-width:880px;margin:2rem auto 0}
.apropos-photo{width:100%;max-width:260px;border-radius:22px;box-shadow:0 14px 32px rgba(30,58,138,.16);display:block;margin:0 auto}
.apropos-text p{line-height:1.7;color:#1e293b;margin:0 0 1rem}
.apropos-sign{font-weight:700;color:#1e3a8a}
.apropos-badges{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;padding:0;margin:0 0 1.4rem}
.apropos-badges li{display:inline-flex;align-items:center;gap:.45rem;background:#fff;border:1px solid #c9d6f5;border-radius:999px;padding:.42rem .95rem;font-size:.92rem;font-weight:600;color:#1e3a8a;box-shadow:0 4px 12px rgba(30,58,138,.08)}
.apropos-page{align-items:start}
.apropos-page .apropos-photo{max-width:240px}
.apropos-title{font-size:2rem;color:#1e3a8a;margin:.2rem 0 1.1rem;line-height:1.2;text-align:left}
@media(max-width:640px){.apropos-grid{grid-template-columns:1fr;gap:1.5rem}}

/* ===== Cahiers : carte collection (même esprit que app-card) ===== */
.cahier-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f6;border-radius:18px;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.cahier-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--sc);z-index:2}
.cahier-card:hover{transform:translateY(-5px);border-color:var(--sc);box-shadow:0 16px 34px rgba(30,58,138,.15)}
.cahier-cover{position:relative;aspect-ratio:8/5;overflow:hidden;background:#eef2fb}
.cahier-cover img{width:100%;height:100%;object-fit:cover;display:block}
.cahier-tag{position:absolute;top:.7rem;left:.7rem;background:#16a34a;color:#fff;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:.28rem .62rem;border-radius:999px;box-shadow:0 4px 10px rgba(0,0,0,.18)}
.cahier-body{padding:1.1rem 1.2rem 1.2rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.cahier-body h3{font-size:1.02rem;margin:0;line-height:1.3}
.cahier-meta{font-size:.85rem;color:#64748b}
.cahier-meta .subj-name{font-weight:700}
.cahier-desc{font-size:.87rem;color:#475569;margin:0;line-height:1.55}
.cahier-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.55rem}
.cahier-price{font-size:1.3rem;font-weight:800;color:var(--ink)}
.cahier-year{font-size:.78rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}
.cahier-actions{display:flex;gap:.6rem;margin-top:.2rem}
.cahier-actions .btn{flex:1;text-align:center;padding:.68rem .4rem;font-size:.84rem}
.cahier-more{text-align:center;margin-top:2rem}
