/* INTERCOURS — feuille de style.
   Partie 1 : reprise telle quelle de la maquette d'origine (index.html). */
:root{--cream:#f6f2e9;--ink:#182521;--green:#225c47;--lime:#d9ef80;--orange:#ed744b;--line:#d4d6c8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--lime);color:var(--ink)}.shell{max-width:1480px;margin:auto;padding:0 clamp(22px,5vw,84px)}.top{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-family:"Space Grotesk";font-weight:700;letter-spacing:-.065em;font-size:25px}.brandmark{width:38px;height:38px;background:var(--ink);color:var(--lime);display:grid;place-items:center;border-radius:50%;font-size:23px;letter-spacing:-.09em;padding-right:3px}.nav{display:flex;gap:36px;font-size:13px;font-weight:700}.nav a:hover{color:var(--green)}.nav-cta{background:var(--ink);color:white;padding:14px 22px;border-radius:100px;font-size:13px;font-weight:700}.nav-cta:hover{background:var(--green)}.eyebrow{font-size:12px;letter-spacing:.17em;text-transform:uppercase;font-weight:700;display:flex;align-items:center;gap:12px}.eyebrow:before{content:"";height:9px;width:9px;background:var(--orange);border-radius:50%}.round-link{width:120px;height:120px;background:var(--orange);border-radius:50%;display:grid;place-items:center;text-align:center;transform:rotate(-12deg);font-size:14px;font-weight:700;line-height:1.25;transition:transform .3s}.round-link:hover{transform:rotate(0deg) scale(1.06)}.ticker{background:var(--ink);color:var(--cream);overflow:hidden;white-space:nowrap;padding:18px 0;font-size:13px;font-weight:700;letter-spacing:.14em}.ticker div{display:inline-block;animation:marquee 35s linear infinite}.ticker span{padding:0 40px}.ticker b{display:inline-block;width:7px;height:7px;margin:0 14px;border-radius:50%;background:var(--lime);vertical-align:2px}@keyframes marquee{to{transform:translateX(-50%)}}.section{padding-top:130px;padding-bottom:135px}.section-label{font-size:12px;text-transform:uppercase;letter-spacing:.15em;font-weight:700;margin-bottom:32px}.section-title{font-family:"Space Grotesk";font-size:clamp(48px,7vw,100px);letter-spacing:-.075em;line-height:.98;font-weight:600;max-width:1050px;margin:0 0 70px}.section-title em{font-style:normal;color:var(--green)}.courses{border-top:1px solid var(--ink)}.course{display:grid;grid-template-columns:1.1fr 2.2fr auto;align-items:center;gap:20px;padding:34px 8px;border-bottom:1px solid #b9bfb3;transition:background .2s,padding .2s}.course:hover{background:#e7e8d9;padding-left:20px;padding-right:20px}.course .tag{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.course h3{font-family:"Space Grotesk";font-size:clamp(25px,3.3vw,46px);letter-spacing:-.055em;margin:0;font-weight:600}.course .arrow{font-size:38px}.footnote{font-size:12px;color:#5f6b62;margin-top:24px}.statement{background:var(--green);color:var(--cream);overflow:hidden}.statement .shell{position:relative;padding-top:130px;padding-bottom:130px}.statement .eyebrow:before{background:var(--lime)}.statement h2{font-family:"Space Grotesk";font-size:clamp(52px,8.6vw,130px);line-height:.94;letter-spacing:-.08em;font-weight:500;max-width:1100px;margin:70px 0}.statement h2 span{color:var(--lime)}.statement p{max-width:430px;font-size:17px;line-height:1.7;margin-left:auto}.asterisk{position:absolute;right:4%;top:8%;color:var(--lime);font-size:220px;line-height:1;transform:rotate(20deg);opacity:.35}.experience{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center}.lesson{background:#e5e9d5;min-height:480px;padding:25px;position:relative;transform:rotate(-3deg);box-shadow:18px 18px 0 #d5d9c5}.lesson-head{display:flex;justify-content:space-between;border-bottom:1px solid #abb8a4;padding-bottom:18px;font-size:12px;font-weight:700}.lesson-board{padding:80px 20px 40px;text-align:center}.lesson-board .equation{font-family:"Space Grotesk";font-size:clamp(45px,6vw,85px);letter-spacing:-.08em}.lesson-board .underline{height:12px;background:var(--orange);width:65%;margin:12px auto;transform:rotate(-3deg);border-radius:50%}.lesson-board p{font-size:13px;color:#50665b}.experience h2{font-family:"Space Grotesk";font-size:clamp(43px,5vw,75px);line-height:1.04;letter-spacing:-.07em;margin:0 0 30px}.experience .copy{line-height:1.8;color:#4c5a52;max-width:460px}.pill{display:inline-flex;background:var(--ink);color:white;padding:17px 24px;border-radius:100px;margin-top:24px;font-weight:700;font-size:13px}.pill:hover{background:var(--green)}.info{background:#e9e8dc}.info-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px}.info h2{font-family:"Space Grotesk";font-size:clamp(48px,6vw,90px);letter-spacing:-.08em;line-height:1;margin:0}.info-list{border-top:1px solid #a7b1a5}.info-item{padding:27px 0;border-bottom:1px solid #a7b1a5;display:flex;justify-content:space-between;gap:30px}.info-item strong{font-family:"Space Grotesk";font-size:22px;letter-spacing:-.04em}.info-item span{max-width:240px;color:#59645c;font-size:14px;line-height:1.5}.closing{background:var(--lime);padding:100px 0}.closing h2{font-family:"Space Grotesk";font-size:clamp(70px,11vw,165px);line-height:.86;letter-spacing:-.095em;margin:0 0 60px;font-weight:600}.closing-row{display:flex;justify-content:space-between;align-items:center;gap:30px}.closing p{font-size:16px;max-width:440px;line-height:1.7}.closing .round-link{background:var(--ink);color:white;flex-shrink:0}footer{background:var(--ink);color:white;padding:40px 0}.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:13px}footer a{text-decoration:underline;text-underline-offset:4px}.mobile-toggle{display:none}@media(max-width:800px){.top{height:72px}.nav{display:none}.nav-cta{padding:11px 15px}.round-link{width:96px;height:96px;font-size:12px;flex-shrink:0}.section{padding-top:85px;padding-bottom:95px}.course{grid-template-columns:1fr auto;gap:10px}.course .tag{grid-column:1/-1}.course h3{font-size:28px}.statement .shell{padding-top:95px;padding-bottom:100px}.statement h2{margin:65px 0}.asterisk{font-size:130px}.experience{grid-template-columns:1fr;gap:70px}.lesson{min-height:370px}.lesson-board{padding-top:60px}.info-inner{grid-template-columns:1fr;gap:50px}.closing{padding:85px 0}.closing-row{align-items:start}.footer-inner{flex-direction:column;align-items:start}}@media(max-width:440px){.info-item{flex-direction:column;gap:8px}.closing h2{font-size:66px}.closing-row{flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker div{animation:none}*{transition:none!important}}

/* Programme et espace étudiant */
.levels{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 28px}.level{border:1px solid #b7c0b1;background:transparent;border-radius:40px;padding:12px 19px;cursor:pointer;color:var(--ink);font-size:13px;font-weight:700}.level:hover,.level.active{background:var(--ink);color:white;border-color:var(--ink)}.course-btn{width:100%;border-left:0;border-right:0;border-top:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer;font:inherit}.course-btn[hidden]{display:none}.student-section{background:#dbe8ce;padding:130px 0;overflow:hidden}.student-layout{display:grid;grid-template-columns:1fr 1.1fr;align-items:center;gap:8vw}.student-heading{font-family:'Space Grotesk';font-size:clamp(56px,7vw,104px);letter-spacing:-.085em;line-height:.95;margin:0 0 34px}.student-heading span{color:var(--green)}.student-desc{max-width:420px;line-height:1.75;font-size:16px}.demo-btn{border:0;cursor:pointer}.student-ui{background:#f8f7ef;border:1px solid #bacbb6;box-shadow:20px 24px 0 #afc8a7;padding:28px;transform:rotate(2deg);min-height:425px}.ui-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d4ddcd;padding-bottom:19px}.ui-brand{font-family:'Space Grotesk';font-size:13px;font-weight:700;letter-spacing:-.03em}.ui-brand span{color:var(--orange)}.ui-avatar{background:var(--lime);width:37px;height:37px;border-radius:50%;display:grid;place-items:center;font-weight:700}.ui-greet{font-size:13px;color:#647569;margin-top:26px}.ui-greet span{color:var(--orange)}.ui-title{font-family:'Space Grotesk';font-size:32px;font-weight:700;letter-spacing:-.06em;margin-bottom:20px}.ui-module{display:flex;justify-content:space-between;gap:15px;background:var(--green);color:white;padding:25px}.ui-module small{font-size:10px;letter-spacing:.08em}.ui-module h3{font-family:'Space Grotesk';font-size:25px;letter-spacing:-.04em;margin:15px 0 7px}.ui-module p{font-size:12px;opacity:.7}.ui-lock{font-size:22px}.ui-actions{display:flex;gap:9px;margin-top:18px}.ui-actions div{flex:1;background:#e7ecdf;padding:15px 7px;text-align:center;font-size:11px;font-weight:700}.ui-icon{display:block;font-size:23px;margin-bottom:8px}.ui-caption{font-size:11px;color:#6c766c;margin:20px 0 0}.modal{width:min(590px,calc(100vw - 30px));max-height:90vh;overflow:auto;border:0;padding:40px;background:var(--cream);color:var(--ink);box-shadow:0 30px 120px #0d221e88}.modal::backdrop{background:#081a16b8;backdrop-filter:blur(5px)}.modal-close{position:absolute;right:18px;top:15px;border:0;background:transparent;font-size:24px;cursor:pointer}.modal-kicker{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:var(--green)}.modal h2{font-family:'Space Grotesk';font-size:clamp(34px,5vw,55px);line-height:1.02;letter-spacing:-.065em;margin:20px 0}.modal p{line-height:1.7;color:#4c5a52}.module-list{margin:30px 0;border-top:1px solid var(--line)}.module-row{display:flex;align-items:center;gap:15px;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px}.module-row .symbol{width:34px;height:34px;display:grid;place-items:center;background:#e2e9d6;border-radius:50%;flex-shrink:0}.module-row small{display:block;color:#667367;margin-top:4px}.modal-primary{display:block;width:100%;background:var(--ink);color:white;padding:17px;border:0;border-radius:2px;font-weight:700;cursor:pointer;text-align:center}.modal-primary:hover{background:var(--green)}.modal-back{display:block;background:none;border:0;color:var(--green);cursor:pointer;margin:17px auto;font-weight:700}.demo-field{display:block;margin:16px 0;font-size:13px;font-weight:700}.demo-field input{display:block;width:100%;margin-top:8px;padding:15px;border:1px solid #bdc7b9;background:white;font:inherit}.payment-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.pay-option{border:1px solid #b6c4b4;padding:18px;cursor:pointer;background:white;text-align:left;font-weight:700}.pay-option:focus,.pay-option.selected{outline:2px solid var(--green);background:#e3f0d8}.demo-warning{background:#f1e8d7;padding:15px;font-size:12px;line-height:1.6;margin-top:22px}.demo-alert{padding:14px;background:#d9ef80;font-size:13px;margin-top:16px}.fake-video{aspect-ratio:16/9;background:#183c31;display:grid;place-items:center;color:var(--lime);font-size:65px;margin:20px 0}.modal a{color:var(--green)}@media(max-width:800px){.student-section{padding:85px 0}.student-layout{grid-template-columns:1fr;gap:50px}.student-ui{transform:none;box-shadow:12px 12px 0 #afc8a7}.modal{padding:32px 24px}}@media(max-width:440px){.ui-actions div{font-size:10px}.student-ui{padding:18px}.ui-module{padding:17px}.ui-module h3{font-size:20px}}

/* ==========================================================================
   Partie 2 : composants de la plateforme (mêmes jetons, même ton)
   ========================================================================== */
[hidden]{display:none!important}
:root{--mask-asterisk:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 3v18M3 12h18M5.6 5.6l12.8 12.8M18.4 5.6 5.6 18.4'/%3E%3C/svg%3E");--mask-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E");--muted:#59645c;--paper:#fbfaf4;--sage:#e5e9d5;--mint:#dbe8ce;--error:#b23a1d}
body{min-height:100vh;display:flex;flex-direction:column}body>*{width:100%}main{flex:1}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* En-tête : état connecté et menu mobile */
.top{position:relative;gap:20px}.top-actions{display:flex;align-items:center;gap:14px}
.nav form{display:inline}.nav-link-btn{background:none;border:0;padding:0;cursor:pointer;font-size:13px;font-weight:700;color:inherit}.nav-link-btn:hover,.nav a[aria-current=page]{color:var(--green)}
.nav-cta:has(.avatar){display:inline-flex;align-items:center;gap:8px;line-height:1}.nav-cta .avatar{display:grid;place-items:center;flex:none;width:22px;height:22px;margin:-4px 0;border-radius:50%;background:var(--lime);color:var(--ink);font-size:11px;line-height:1}
.menu-toggle{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--ink);background:transparent;cursor:pointer;font-size:18px;color:var(--ink)}
@media(max-width:800px){.menu-toggle{display:grid;place-items:center}.nav{position:absolute;top:100%;left:0;right:0;z-index:20;background:var(--cream);border-bottom:1px solid var(--ink);flex-direction:column;gap:0;padding:8px clamp(22px,5vw,84px) 18px}.nav.open{display:flex}.nav>a,.nav>form{padding:16px 0;border-bottom:1px solid var(--line);font-size:16px}.nav-link-btn{font-size:16px}}

/* Messages */
.flash-list{list-style:none;margin:0;padding:0}.flash{display:flex;align-items:center;gap:12px;padding:16px 0;font-size:14px;font-weight:700;border-bottom:1px solid var(--ink)}.flash:before{content:"";flex:none;width:16px;height:16px;background:var(--orange);-webkit-mask:var(--mask-asterisk) center/contain no-repeat;mask:var(--mask-asterisk) center/contain no-repeat}.flash--success{background:var(--lime)}.flash--error{background:#f6d4c5}.flash--error:before{color:var(--error)}.flash--info,.flash--warning{background:var(--sage)}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--ink);color:#fff;border:0;border-radius:100px;padding:17px 26px;font-weight:700;font-size:14px;cursor:pointer;text-align:center;transition:background .2s}.btn:hover{background:var(--green)}.btn--block{display:flex;width:100%}.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}.btn--ghost:hover{background:var(--ink);color:#fff}.btn--lime{background:var(--lime);color:var(--ink)}.btn--lime:hover{background:#fff}.btn[disabled]{background:#c9cdbf;color:#5f6b62;cursor:not-allowed}
.link{color:var(--green);font-weight:700;text-decoration:underline;text-underline-offset:4px}

/* Formulaires */
.field{display:block;margin:0 0 20px}.field>label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}
.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea{display:block;width:100%;padding:15px 16px;border:1px solid #bdc7b9;border-radius:2px;background:#fff;color:var(--ink);font:inherit;font-size:16px}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--green);outline-offset:0;border-color:var(--green)}
.field--check{display:flex;align-items:center;gap:10px}.field--check>label{margin:0;font-weight:500;order:2}.field--check input{width:18px;height:18px;accent-color:var(--green)}
.field-help{display:block;font-size:12px;color:var(--muted);margin-top:7px;line-height:1.5}
.field-errors,.form-errors{list-style:none;margin:8px 0 0;padding:0;color:var(--error);font-size:13px;font-weight:700}.form-errors{background:#f6d4c5;color:var(--ink);padding:14px 16px;margin:0 0 22px;font-weight:500}
.field--invalid input,.field--invalid select{border-color:var(--error)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.field-row>.field{min-width:0}
@media(max-width:440px){.field-row{grid-template-columns:1fr}}

/* Pages de compte (connexion, inscription…) */
.auth{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 88px)}
.auth-aside{background:var(--green);color:var(--cream);padding:70px clamp(22px,5vw,84px);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}
.auth-aside .eyebrow:before{background:var(--lime)}
.auth-aside h2{font-family:"Space Grotesk";font-size:clamp(56px,7.4vw,118px);line-height:.88;letter-spacing:-.09em;font-weight:600;margin:60px 0 0;position:relative;z-index:2}.auth-aside h2 span{color:var(--lime);display:block}
.auth-aside p{max-width:380px;line-height:1.7;font-size:15px;opacity:.85;position:relative;z-index:2}
.auth-aside .asterisk{top:auto;bottom:-6%;right:-4%;font-size:300px}
.auth-main{padding:70px clamp(22px,6vw,110px);display:flex;flex-direction:column;justify-content:center}
.auth-card{width:100%;max-width:470px}
.auth-card h1{font-family:"Space Grotesk";font-size:clamp(40px,4.4vw,62px);line-height:1;letter-spacing:-.07em;font-weight:600;margin:0 0 18px}
.auth-card h2{font-family:"Space Grotesk";font-size:22px;letter-spacing:-.04em;margin:34px 0 14px}
.auth-card p{line-height:1.7;color:#4c5a52;margin:0 0 22px}.auth-card p a{color:var(--green);font-weight:700;text-decoration:underline;text-underline-offset:4px}
.auth-card form{margin-top:28px}.auth-card form .btn{margin-top:6px}
.auth-card hr{border:0;border-top:1px solid var(--line);margin:34px 0 0}
.auth-sep{display:flex;align-items:center;gap:14px;margin:30px 0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted)}.auth-sep:before,.auth-sep:after{content:"";flex:1;border-top:1px solid var(--line)}
.provider-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.btn-provider{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:15px;border:1px solid var(--ink);background:#fff;border-radius:100px;font-weight:700;font-size:14px;cursor:pointer;color:var(--ink)}.btn-provider:hover{background:var(--sage)}.btn-provider svg{width:18px;height:18px}
.auth-foot{margin-top:28px;font-size:14px;color:var(--muted)}.auth-foot a{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:4px}
.auth-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-4px 0 18px;font-size:13px}.auth-meta .field{margin:0}.auth-meta a{color:var(--green);font-weight:700}
@media(max-width:800px){.auth{grid-template-columns:1fr;min-height:0}.auth-aside{padding:44px 22px 40px}.auth-aside h2{font-size:clamp(48px,14vw,76px);margin-top:34px}.auth-aside p{display:none}.auth-aside .asterisk{font-size:170px;bottom:-30%}.auth-main{padding:44px 22px 70px}}

/* Catalogue */
.catalog-head{padding-top:90px;padding-bottom:40px}
.catalog-head .section-title{margin-bottom:40px}
.filters{display:grid;gap:16px;margin-bottom:12px}.filters .levels{margin:0}
.filter-label{font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-right:6px;align-self:center}
.level--sm{padding:9px 15px;font-size:12px}
a.course{color:var(--ink)}
.course-end{display:flex;align-items:center;gap:22px;justify-self:end;white-space:nowrap}.course-price{font-family:"Space Grotesk";font-weight:600;font-size:18px;letter-spacing:-.03em}.course-meta{display:block;font-size:13px;color:var(--muted);margin-top:8px;font-family:"DM Sans";letter-spacing:0;font-weight:500}
.catalog-count{font-size:13px;color:var(--muted);margin:30px 0 16px}
.empty{padding:70px 0;border-top:1px solid var(--ink);border-bottom:1px solid #b9bfb3}.empty h3{font-family:"Space Grotesk";font-size:clamp(28px,3.4vw,44px);letter-spacing:-.055em;margin:0 0 12px;font-weight:600}.empty p{color:var(--muted);margin:0 0 22px}
@media(max-width:800px){.catalog-head{padding-top:60px}.course-end{gap:12px}.course-price{font-size:15px}}

/* Fiche formation */
.preview-banner{background:var(--orange);color:var(--ink);font-size:13px;font-weight:700;padding:13px 0}
.cd-hero{display:grid;grid-template-columns:1.5fr 1fr;gap:6vw;align-items:start;padding-top:80px;padding-bottom:110px}
.cd-crumbs{font-size:13px;font-weight:700;margin-bottom:46px}.cd-crumbs a{color:var(--muted)}.cd-crumbs a:hover{color:var(--green)}
.cd-title{font-family:"Space Grotesk";font-size:clamp(52px,7.2vw,112px);line-height:.92;letter-spacing:-.085em;font-weight:600;margin:34px 0 30px}
.cd-subtitle{font-size:clamp(18px,1.6vw,22px);line-height:1.5;max-width:620px;margin:0 0 36px}
.cd-stats{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--ink);max-width:640px}.cd-stat{flex:1;min-width:130px;padding:18px 18px 0 0}.cd-stat strong{display:block;font-family:"Space Grotesk";font-size:34px;letter-spacing:-.06em}.cd-stat span{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.ticket{background:var(--paper);border:1px solid #bacbb6;box-shadow:18px 20px 0 #d4ddac;padding:30px;transform:rotate(1.5deg);position:sticky;top:30px}
.ticket-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--green)}
.ticket-price{font-family:"Space Grotesk";font-size:clamp(44px,4.6vw,64px);letter-spacing:-.075em;font-weight:600;line-height:1;margin:14px 0 6px}
.ticket-sub{font-size:13px;color:var(--muted);margin:0 0 24px}
.ticket-list{list-style:none;margin:0 0 26px;padding:0;border-top:1px solid var(--line)}.ticket-list li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.ticket-list li:before{content:"";flex:none;width:14px;height:14px;margin-top:3px;background:var(--orange);-webkit-mask:var(--mask-check) center/contain no-repeat;mask:var(--mask-check) center/contain no-repeat}
.ticket .btn+.btn,.ticket form+.btn,.ticket .btn+form{margin-top:10px}
.ticket-methods{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.ticket-method{border:1px solid #b6c4b4;background:#fff;padding:14px;font-weight:700;font-size:14px;text-align:center;color:#5f6b62}
.ticket-note{font-size:12px;line-height:1.6;color:var(--muted);margin:14px 0 0}
.ticket-owned{background:var(--lime);padding:16px;font-weight:700;font-size:14px;margin-bottom:12px}
.cd-body{display:grid;grid-template-columns:1fr 2fr;gap:6vw;padding-top:110px;padding-bottom:110px;border-top:1px solid var(--line)}
.cd-body h2{font-family:"Space Grotesk";font-size:clamp(40px,4.6vw,66px);line-height:1;letter-spacing:-.075em;margin:0;font-weight:600}.cd-body h2 em{font-style:normal;color:var(--green)}
.cd-desc{font-size:17px;line-height:1.8;max-width:680px}.cd-desc p{margin:0 0 1.1em}
.program{border-top:1px solid var(--ink)}
.program-module{border-bottom:1px solid #b9bfb3}
.program-module summary{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:16px;padding:28px 0;cursor:pointer;list-style:none}.program-module summary::-webkit-details-marker{display:none}
.program-num{font-family:"Space Grotesk";font-size:44px;letter-spacing:-.08em;color:var(--green);font-weight:600;line-height:1}
.program-module h3{font-family:"Space Grotesk";font-size:clamp(22px,2.4vw,32px);letter-spacing:-.05em;margin:0;font-weight:600}.program-module h3 small{display:block;font-family:"DM Sans";font-size:13px;letter-spacing:0;color:var(--muted);font-weight:500;margin-top:6px}
.program-toggle{width:38px;height:38px;border-radius:50%;border:1px solid var(--ink);display:grid;place-items:center;font-size:18px;transition:transform .2s}.program-module[open] .program-toggle{transform:rotate(45deg);background:var(--ink);color:#fff}
.program-desc{margin:-10px 0 18px 86px;color:var(--muted);line-height:1.7;font-size:15px;max-width:620px}
.program-lessons{list-style:none;margin:0 0 26px 86px;padding:0}
.program-lesson{display:flex;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--line);font-size:15px}
.lesson-icon{width:32px;height:32px;border-radius:50%;background:var(--sage);display:grid;place-items:center;font-size:13px;flex-shrink:0}
.lesson-title{flex:1}.lesson-title small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:100px;background:var(--lime)}.badge--muted{background:var(--sage);color:var(--muted)}
.lock{color:#8b958c;font-size:14px}
.facts{border-top:1px solid #a7b1a5}.fact{display:flex;justify-content:space-between;gap:30px;padding:24px 0;border-bottom:1px solid #a7b1a5}.fact strong{font-family:"Space Grotesk";font-size:22px;letter-spacing:-.04em}.fact span{max-width:320px;color:var(--muted);font-size:14px;line-height:1.55;text-align:right}
@media(max-width:800px){.cd-hero{grid-template-columns:1fr;padding-top:50px;padding-bottom:80px;gap:60px}.cd-crumbs{margin-bottom:30px}.ticket{position:static;transform:none;box-shadow:12px 12px 0 #d4ddac}.cd-body{grid-template-columns:1fr;gap:36px;padding-top:80px;padding-bottom:80px}.program-module summary{grid-template-columns:44px 1fr auto;gap:12px}.program-num{font-size:30px}.program-desc,.program-lessons{margin-left:0}.fact{flex-direction:column;gap:6px}.fact span{text-align:left}}

/* Profil */
.account{display:grid;grid-template-columns:1fr 1.3fr;gap:7vw;padding-top:90px;padding-bottom:120px}
.account h1{font-family:"Space Grotesk";font-size:clamp(56px,7vw,104px);letter-spacing:-.085em;line-height:.95;margin:0 0 30px;font-weight:600}.account h1 span{color:var(--green)}
.account-id{font-size:15px;line-height:1.7;color:var(--muted);margin:0 0 40px}.account-id strong{color:var(--ink)}
.account-links{border-top:1px solid #a7b1a5;list-style:none;margin:0;padding:0}.account-links li{border-bottom:1px solid #a7b1a5}.account-links a,.account-links button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:20px 0;font-family:"Space Grotesk";font-size:20px;letter-spacing:-.04em;font-weight:600;background:none;border:0;cursor:pointer;color:var(--ink);text-align:left}.account-links a:hover,.account-links button:hover{color:var(--green)}
.account-form{background:var(--paper);border:1px solid #bacbb6;padding:36px;box-shadow:16px 16px 0 #d5d9c5}
.account-form h2{font-family:"Space Grotesk";font-size:24px;letter-spacing:-.045em;margin:0 0 22px}.account-form h2+*{margin-top:0}.account-form fieldset{border:0;padding:0;margin:0 0 18px}.account-form legend{font-family:"Space Grotesk";font-size:24px;letter-spacing:-.045em;font-weight:700;margin-bottom:20px;padding:0}
@media(max-width:800px){.account{grid-template-columns:1fr;padding-top:56px;padding-bottom:80px;gap:50px}.account-form{padding:24px;box-shadow:10px 10px 0 #d5d9c5}}

/* Pages d'erreur */
.error-page{padding-top:110px;padding-bottom:140px}.error-page h1{font-family:"Space Grotesk";font-size:clamp(90px,15vw,220px);line-height:.8;letter-spacing:-.1em;margin:40px 0;font-weight:600}.error-page h1 span{color:var(--green)}.error-page p{max-width:440px;line-height:1.7;font-size:17px;margin:0 0 30px}
.course[hidden]{display:none}.field-opt{font-weight:500;color:var(--muted)}
.cd-body--flush{border-top:0}
.auth-card table{width:100%;border-collapse:collapse;font-size:14px;margin:10px 0 20px}.auth-card th,.auth-card td{text-align:left;padding:12px 6px;border-bottom:1px solid var(--line)}
.auth-card section{margin:26px 0}.auth-card section ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px}.auth-card form+form{margin-top:12px}
.brand{white-space:nowrap}.nav-mobile-only{display:none}
@media(max-width:440px){.brand{font-size:21px}.brandmark{width:34px;height:34px;font-size:20px}.top-actions .nav-cta{display:none}.nav .nav-mobile-only{display:block}}

/* ==========================================================================
   Contenu des leçons (éditeur ET lecteur : même rendu)
   ========================================================================== */
.prose{font-size:18px;line-height:1.75;color:var(--ink);max-width:720px}
.prose>*:first-child{margin-top:0}
.prose p{margin:0 0 1.05em}
.prose h2{font-family:"Space Grotesk";font-size:clamp(30px,3.4vw,42px);letter-spacing:-.06em;line-height:1.05;margin:1.7em 0 .55em;font-weight:600}
.prose h3{font-family:"Space Grotesk";font-size:clamp(23px,2.4vw,28px);letter-spacing:-.045em;line-height:1.15;margin:1.5em 0 .5em;font-weight:600;color:var(--green)}
.prose h4{font-size:15px;letter-spacing:.12em;text-transform:uppercase;margin:1.6em 0 .5em;font-weight:700}
.prose a{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1.1em}.prose li{margin:.25em 0}.prose li>p{margin:0}
.prose ul li::marker{color:var(--orange)}.prose ol li::marker{font-family:"Space Grotesk";font-weight:700;color:var(--green)}
.prose blockquote{position:relative;margin:1.2em 0;padding:0;font-size:1.06em;color:#2d3d37}.prose blockquote p{margin:0 0 .5em}.prose blockquote>:last-child{margin-bottom:0}
.prose blockquote.quote--line{padding-left:.85em;border-left:4px solid var(--lime)}
.prose blockquote.quote--quotes{font-style:italic}.prose blockquote.quote--quotes>:first-child:before,.prose blockquote.quote--quotes>:last-child:after{font-family:"Space Grotesk";font-style:normal;font-weight:700;color:var(--green)}.prose blockquote.quote--quotes>:first-child:before{content:"«\00a0"}.prose blockquote.quote--quotes>:last-child:after{content:"\00a0»"}
.prose :is(li,blockquote,.callout,th,td)>:first-child{margin-top:0}
.prose blockquote.quote--pull{margin:1.4em 0;padding:.55em 0;border-block:1px solid var(--line);text-align:center;font:500 1.3em/1.3 "Space Grotesk";letter-spacing:-.03em;color:var(--green)}
.prose hr{border:0;height:1px;background:var(--line);margin:2.4em 0;position:relative;overflow:visible}.prose hr:after{content:"";position:absolute;left:50%;top:-9px;width:18px;height:18px;transform:translateX(-50%);background:var(--orange);-webkit-mask:var(--mask-asterisk) center/contain no-repeat;mask:var(--mask-asterisk) center/contain no-repeat;box-shadow:0 0 0 12px var(--cream)}
.editor-paper .prose hr:after{background:#fff}
.prose code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88em;background:var(--sage);padding:2px 6px;border-radius:3px}
.prose pre{background:var(--ink);color:var(--cream);padding:18px 20px;overflow-x:auto;border-radius:2px;font-size:14px;line-height:1.6}.prose pre code{background:none;padding:0;color:inherit}
.prose figure{margin:1.8em 0}.prose img{max-width:100%;height:auto;display:block;border-radius:2px}
.prose .table-wrap,.prose .tableWrapper{overflow-x:auto;margin:1.6em 0}
.prose table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.5}
.prose th,.prose td{border:1px solid #c7cdbf;padding:10px 12px;text-align:left;vertical-align:top;min-width:70px}.prose th{background:var(--sage);font-weight:700}
.prose th p,.prose td p{margin:0}
/* Encadrés pédagogiques */
.callout{--accent:var(--green);position:relative;margin:1.8em 0;padding:22px 24px 6px;background:#e7efdc;border-left:5px solid var(--accent)}
.callout-label,.callout[data-label]:before{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin:0 0 10px;color:var(--accent)}
.callout[data-label]:before{content:attr(data-label)}
.callout--exemple{--accent:#7d6a2a;background:#f3efe2}
.callout--attention{--accent:#b2482a;background:#f9e3d9}
.callout--astuce{--accent:#5d7412;background:#eef6c9}
.callout--retenir{--accent:var(--lime);background:var(--ink);color:var(--cream)}.callout--retenir a{color:var(--lime)}
/* Formules */
.prose .math--block,.prose [data-type=block-math]{display:block;margin:.9em 0;padding:8px 10px;text-align:center;overflow-x:auto;overflow-y:hidden;font-size:1.08em}
.prose .katex{font-size:1.08em}

/* ==========================================================================
   Studio enseignant
   ========================================================================== */
.studio-bar{background:var(--ink);color:var(--cream)}
.studio-bar-inner{display:flex;align-items:center;gap:24px;min-height:52px;font-size:13px}
.studio-mark{font-family:"Space Grotesk";font-weight:700;letter-spacing:.12em;color:var(--lime)}.studio-crumbs{color:#aab5ad;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.studio-crumbs a{color:var(--cream)}.studio-crumbs a:hover{color:var(--lime)}
.studio-title{font-family:"Space Grotesk";font-size:clamp(52px,6.6vw,96px);letter-spacing:-.085em;line-height:.95;font-weight:600;margin:0 0 40px}.studio-title em{font-style:normal;color:var(--green)}
.studio-home{padding-top:70px;padding-bottom:110px}
.studio-home-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}
.studio-home-head .round-link{background:var(--lime);flex-shrink:0}
.studio-row .tag{line-height:2}
.studio-count{font-size:14px;color:var(--muted)}.studio-count strong{font-family:"Space Grotesk";font-size:22px;color:var(--ink);letter-spacing:-.04em;margin-right:4px}
.status{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:100px;background:var(--sage);color:var(--muted);white-space:nowrap;line-height:1.4}
.status--published{background:var(--lime);color:var(--ink)}.status--archived{background:#ddd;color:#666}.status--changes{background:#f6d4c5;color:#8a3519}

.course-head{display:grid;grid-template-columns:1fr auto;gap:20px 40px;align-items:end;padding-top:50px}
.course-head h1{font-family:"Space Grotesk";font-size:clamp(36px,4.6vw,64px);letter-spacing:-.07em;line-height:1;margin:18px 0 14px;font-weight:600}
.course-head-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tabs{grid-column:1/-1;display:flex;gap:30px;border-bottom:1px solid var(--ink);margin-top:20px}
.tabs a{padding:14px 0;font-weight:700;font-size:14px;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px}.tabs a:hover{color:var(--ink)}.tabs a[aria-current=page]{color:var(--ink);border-color:var(--orange)}
.btn--sm{padding:11px 18px;font-size:13px}
.link--danger{color:var(--error)}
button.link{background:none;border:0;padding:0;cursor:pointer;font:inherit;font-weight:700}
.danger-zone{margin-top:30px;padding-top:20px;border-top:1px dashed #c4c9bb;display:flex;gap:16px;align-items:center}

.studio-form-wrap{padding-top:50px;padding-bottom:110px;max-width:860px;margin-left:0}
.studio-form textarea{min-height:120px;resize:vertical}

.structure-wrap{padding-top:40px;padding-bottom:110px}
.structure-help{font-size:13px;color:var(--muted);margin:0 0 20px}
.structure{border-top:1px solid var(--ink)}
.s-module{border-bottom:1px solid #b9bfb3;padding:22px 0 26px;background:var(--cream)}
.s-module.sortable-ghost{opacity:.4}
.s-module-head{display:grid;grid-template-columns:auto auto 1fr;gap:14px;align-items:start}
.handle{cursor:grab;border:0;background:transparent;color:#8b958c;font-size:20px;padding:4px 6px;line-height:1;border-radius:4px;touch-action:none}.handle:hover{background:var(--sage);color:var(--ink)}
.s-module-head .program-num{font-size:38px;padding-top:2px}
.s-module-edit summary{display:flex;align-items:baseline;gap:14px;cursor:pointer;list-style:none}.s-module-edit summary::-webkit-details-marker{display:none}
.s-module-edit h2{font-family:"Space Grotesk";font-size:clamp(22px,2.5vw,32px);letter-spacing:-.05em;margin:0;font-weight:600}
.s-edit-hint{font-size:12px;font-weight:700;color:var(--green);opacity:0;transition:opacity .15s}.s-module-edit summary:hover .s-edit-hint,.s-module-edit[open] .s-edit-hint{opacity:1}
.inline-form{margin:18px 0 10px;max-width:560px}
.s-lessons{list-style:none;margin:16px 0 0 70px;padding:0;min-height:12px}
.s-lesson{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);background:var(--cream)}
.s-lesson.sortable-ghost{opacity:.4;background:var(--lime)}
.s-lesson-title{flex:1;font-weight:600;font-size:16px}.s-lesson-title:hover{color:var(--green)}.s-lesson-title small{display:block;color:var(--muted);font-size:12px;font-weight:500;margin-top:2px}
.s-empty{margin:12px 0 0 70px;font-size:14px;color:var(--muted)}
.add-lesson{display:flex;gap:10px;margin:16px 0 0 70px;max-width:680px}
.add-lesson input,.add-lesson select,.add-module input{padding:12px 14px;border:1px solid #bdc7b9;background:#fff;font:inherit;font-size:15px;border-radius:2px;min-width:0}
.add-lesson input{flex:1}.add-lesson input:focus,.add-module input:focus{outline:2px solid var(--green);outline-offset:0}
.add-module{margin-top:40px;padding:30px;background:var(--paper);border:1px dashed #a8b4a2;max-width:820px}
.add-module h2{font-family:"Space Grotesk";font-size:24px;letter-spacing:-.045em;margin:0 0 16px}
.add-module-row{display:flex;gap:12px;align-items:end}.add-module-row .field{flex:1;margin:0}.add-module input{width:100%}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--cream);padding:13px 22px;border-radius:100px;font-size:14px;font-weight:700;z-index:50;box-shadow:0 10px 40px #0003}.toast[data-state=error]{background:var(--error)}
.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{text-align:left;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:12px 10px;border-bottom:1px solid var(--ink)}.data-table td{padding:14px 10px;border-bottom:1px solid var(--line);vertical-align:top}.data-table small{color:var(--muted)}
.table-wrap{overflow-x:auto}

/* Éditeur de leçon */
.lesson-top{border-bottom:1px solid var(--line);background:var(--cream);position:sticky;top:0;z-index:15}
.lesson-top-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:76px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.lesson-top-title{display:flex;align-items:center;gap:10px;min-width:0}.lesson-top-title h1{font-family:"Space Grotesk";font-size:24px;letter-spacing:-.05em;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lesson-top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.save-status{font-size:13px;color:var(--muted);margin-right:8px;display:inline-flex;align-items:center;gap:7px}.save-status:before{content:"";width:8px;height:8px;border-radius:50%;background:#9fbf2a}
.save-status[data-state=dirty]:before{background:#c9b04a}.save-status[data-state=busy]:before{background:var(--orange);animation:pulse 1s infinite}.save-status[data-state=error]{color:var(--error)}.save-status[data-state=error]:before{background:var(--error)}
@keyframes pulse{50%{opacity:.3}}
.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;padding-top:30px;padding-bottom:90px;align-items:start}
.editor-paper{background:#fff;border:1px solid #d3d8cb;border-top:0;padding:48px clamp(20px,5vw,70px) 70px;min-height:60vh}
.editor-foot{font-size:12px;color:var(--muted);margin:12px 0 0}
.lesson-nav{display:flex;justify-content:space-between;margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-weight:700;font-size:14px}.lesson-nav a:hover{color:var(--green)}
.lesson-side{display:grid;gap:18px;position:sticky;top:100px}
.side-card{background:var(--paper);border:1px solid #cfd8ca;padding:22px}
.side-card h2{font-family:"Space Grotesk";font-size:19px;letter-spacing:-.04em;margin:0 0 16px}
.side-card .field{margin-bottom:14px}.side-card .field>label{font-size:12px}
.side-card .field input:not([type=checkbox]),.side-card .field select{padding:11px 12px;font-size:15px}
.side-card input[type=file]{font-size:13px;max-width:100%}
.side-help{font-size:12px;color:var(--muted);line-height:1.55;margin:0 0 12px}
.side-meta{font-size:12px;color:var(--muted);margin:8px 0}
.side-video{width:100%;aspect-ratio:16/9;background:#000;display:block}
.side-card progress{width:100%;height:8px;accent-color:var(--green);margin-bottom:6px}
.side-list{list-style:none;margin:0 0 16px;padding:0}.side-list li{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}.side-list li a{font-weight:600;flex:1}.side-list small{color:var(--muted)}
.lesson-side .danger-zone{margin-top:0;border-top:0;padding-top:0}
.modal--wide{width:min(720px,calc(100vw - 30px))}
.modal h2{font-size:clamp(28px,4vw,40px)}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.chip{border:1px solid #b7c0b1;background:#fff;border-radius:100px;padding:5px 11px;font-size:12px;cursor:pointer;margin:4px 2px 0;font-weight:600}.chip:hover{background:var(--lime)}
.modal textarea{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px}

/* Aperçu et versions */
.preview-banner-inner{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.preview-banner .link{color:var(--ink)}
.reader-preview{max-width:820px;margin:0 auto;padding:60px 22px 120px}
.reader-title{font-family:"Space Grotesk";font-size:clamp(40px,5.6vw,72px);letter-spacing:-.075em;line-height:1;margin:22px 0 40px;font-weight:600}
.lesson-video{position:relative;margin:0 0 44px;background:#000;overflow:hidden}.lesson-video video{display:block;width:100%;aspect-ratio:16/9;background:#000}
.watermark{position:absolute;left:70%;top:10%;font-size:12px;color:#fff;opacity:.35;pointer-events:none;font-weight:700;text-shadow:0 1px 2px #000;transition:left 1.5s,top 1.5s;white-space:nowrap;max-width:60%;overflow:hidden}
.lesson-resources{margin-top:56px;border-top:1px solid var(--ink);padding-top:26px;max-width:720px}.lesson-resources h2{font-family:"Space Grotesk";font-size:26px;letter-spacing:-.05em;margin:0 0 12px}
.lesson-resources ul{list-style:none;margin:0;padding:0}.lesson-resources a{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);font-weight:600}.lesson-resources a:hover{color:var(--green)}.lesson-resources small{margin-left:auto;color:var(--muted);font-weight:500}
.empty-note{color:var(--muted)}
.revisions{display:grid;grid-template-columns:320px 1fr;gap:50px;padding-top:50px;padding-bottom:110px;align-items:start}
.revisions .studio-title{font-size:clamp(40px,4.4vw,60px)}
.rev-list{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--ink)}.rev-list a{display:block;padding:13px 10px;border-bottom:1px solid var(--line)}.rev-list a:hover,.rev-list [aria-current] a{background:var(--lime)}.rev-list small{display:block;color:var(--muted);font-size:12px}
.rev-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}

@media(max-width:1000px){.lesson-layout{grid-template-columns:1fr}.lesson-side{position:static}.revisions{grid-template-columns:1fr}}
@media(max-width:800px){
  .studio-home{padding-top:44px}.studio-home-head{align-items:center}
  .course-head{grid-template-columns:1fr;padding-top:34px}.tabs{gap:20px;overflow-x:auto}
  .s-lessons,.add-lesson,.s-empty{margin-left:0}.add-lesson{flex-wrap:wrap}.add-lesson input{flex-basis:100%}
  .add-module{padding:20px}.add-module-row{flex-direction:column;align-items:stretch}
  .lesson-top{position:static}.lesson-editor{--plume-sticky-top:0px}
  .lesson-top-title{flex-wrap:wrap}.editor-paper{padding:28px 16px 50px}.prose{font-size:17px}
  .lesson-top-title h1{font-size:20px;white-space:normal}
}

/* ==========================================================================
   Lecteur de cours
   ========================================================================== */
.reader-bar{position:sticky;top:0;z-index:30;height:62px;display:flex;align-items:center;gap:18px;padding:0 clamp(16px,2.4vw,32px);background:var(--cream);border-bottom:1px solid var(--line)}
.reader-bar .brandmark{width:36px;height:36px;font-size:20px;flex-shrink:0;font-family:"Space Grotesk";font-weight:700}
.reader-course{font-family:"Space Grotesk";font-weight:600;letter-spacing:-.03em;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.reader-course:hover{color:var(--green)}
.reader-progress{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;flex-shrink:0}
.reader-progress-track,.bar{display:block;width:140px;height:6px;background:var(--sage);border-radius:6px;overflow:hidden}
.reader-progress-track span,.bar span{display:block;height:100%;background:var(--green);border-radius:6px;transition:width .4s}
.reader-outline-btn{display:none;border:1px solid var(--ink);background:transparent;border-radius:100px;padding:9px 15px;font-weight:700;font-size:13px;cursor:pointer;color:var(--ink)}
.reader-exit{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:15px;flex-shrink:0}.reader-exit:hover{background:var(--sage)}
.reader{display:grid;grid-template-columns:330px minmax(0,1fr);min-height:calc(100vh - 62px)}
.outline{position:sticky;top:62px;height:calc(100vh - 62px);overflow-y:auto;border-right:1px solid var(--line);padding:26px 0 60px;background:var(--cream)}
.outline-head{display:none}
.outline-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.outline-module{padding:0 22px;margin-bottom:22px}
.outline-module h2{display:flex;gap:10px;align-items:baseline;font-family:"Space Grotesk";font-size:16px;letter-spacing:-.03em;margin:0 0 8px;font-weight:600}.outline-module h2 span{color:var(--green);font-size:13px}
.outline-module ol{list-style:none;margin:0;padding:0}
.outline-lesson{display:flex;align-items:flex-start;gap:11px;padding:9px 10px;margin:0 -10px;border-radius:3px;font-size:14px;line-height:1.35}
a.outline-lesson:hover{background:var(--sage)}
.outline-lesson[aria-current]{background:var(--lime);font-weight:700}
.ol-check{width:24px;height:24px;border-radius:50%;border:1px solid #b9c2b3;display:grid;place-items:center;font-size:11px;flex-shrink:0;color:var(--muted);background:var(--cream)}
.outline-lesson.is-done .ol-check{background:var(--green);border-color:var(--green);color:#fff}
.outline-lesson.is-locked{color:#9aa39a}.outline-lesson.is-locked .ol-check{border-style:dashed}
.ol-title small{display:block;font-size:12px;color:var(--muted);font-weight:500;margin-top:2px}
.reader-main{padding:56px clamp(20px,5vw,80px) 120px}
.reader-col{max-width:760px;margin:0 auto}
.reader-col .reader-title{margin-bottom:34px}
.resume-note{background:var(--sage);padding:10px 14px;font-size:13px;font-weight:700;margin:-14px 0 18px;display:inline-block}
.complete-box{margin-top:60px;padding-top:30px;border-top:1px solid var(--ink)}
.complete-btn{padding:21px 26px;font-size:15px}.complete-btn span{opacity:.75;font-weight:500}
.complete-box.is-done{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--lime);padding:22px 24px;border:0}
.complete-done{font-family:"Space Grotesk";font-size:22px;font-weight:700;letter-spacing:-.04em;margin:0}
.preview-cta{margin-top:60px;background:var(--green);color:var(--cream);padding:34px}
.preview-cta .ticket-label{color:var(--lime)}.preview-cta h2{font-family:"Space Grotesk";font-size:clamp(32px,3.6vw,46px);letter-spacing:-.065em;margin:10px 0 12px;line-height:1}.preview-cta p{opacity:.85;margin:0 0 22px;line-height:1.6}
.reader-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}
.reader-nav-link{display:block;padding:20px 0;border-top:1px solid var(--line);font-family:"Space Grotesk";font-size:19px;letter-spacing:-.035em;font-weight:600;line-height:1.25}.reader-nav-link:hover{color:var(--green)}
.reader-nav-link small{display:block;font-family:"DM Sans";font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:700}
.reader-nav-link--next{text-align:right;grid-column:2}
.reader-dock{display:none}
@media(max-width:1000px){
  .reader{grid-template-columns:1fr}
  .reader-outline-btn{display:inline-block}.reader-progress-track{width:70px}
  .outline{position:fixed;inset:0 auto 0 0;top:0;height:100vh;width:min(88vw,380px);z-index:60;transform:translateX(-102%);transition:transform .25s ease,box-shadow .25s;padding-top:0;visibility:hidden}
  .outline.open{transform:none;box-shadow:20px 0 60px #0003;visibility:visible}
  .outline-head{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--cream);padding:16px 22px;border-bottom:1px solid var(--line);margin-bottom:18px;z-index:1}
  .outline-close{border:0;background:var(--sage);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:14px}
  body.outline-open:after{content:"";position:fixed;inset:0;background:#081a16a0;z-index:50}
  body.outline-open{overflow:hidden}
  .reader-main{padding:34px 20px 120px}
  .reader-dock{display:grid;grid-template-columns:56px 1fr 56px;position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--ink);color:var(--cream);height:58px;padding-bottom:env(safe-area-inset-bottom)}
  .reader-dock a,.reader-dock button{display:grid;place-items:center;color:var(--cream);background:none;border:0;font:inherit;font-weight:700;font-size:15px;cursor:pointer;white-space:nowrap}
  .reader-dock a{font-size:22px}.reader-dock a:active{background:#2e3d38}
  .reader-nav{grid-template-columns:1fr}.reader-nav-link--next{grid-column:1}
}
@media(max-width:560px){.reader-progress{display:none}.reader-course{font-size:15px}.complete-box.is-done{flex-direction:column;align-items:flex-start}}
@media(max-width:600px){body.reading .lesson-video{margin-left:-20px;margin-right:-20px}}

/* ==========================================================================
   Espace étudiant
   ========================================================================== */
.space-head{padding-top:70px;padding-bottom:40px}
.space-title{font-family:"Space Grotesk";font-size:clamp(56px,8vw,120px);letter-spacing:-.09em;line-height:.9;margin:0;font-weight:600}.space-title span{color:var(--green)}
.resume{background:var(--green);color:var(--cream);overflow:hidden}
.resume-inner{display:flex;justify-content:space-between;align-items:center;gap:40px;padding-top:56px;padding-bottom:60px}
.resume .eyebrow:before{background:var(--lime)}
.resume-title{font-family:"Space Grotesk";font-size:clamp(38px,5vw,72px);letter-spacing:-.075em;line-height:.98;margin:22px 0 12px;font-weight:600;max-width:820px}
.resume-meta{font-size:15px;opacity:.82;margin:0 0 14px}
.bar--light{background:#ffffff2b;width:260px;margin:22px 0 10px}.bar--light span{background:var(--lime)}
.resume-link{background:var(--lime);color:var(--ink);flex-shrink:0}
.space-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:70px;padding-top:70px;padding-bottom:120px}
.space-h2{font-family:"Space Grotesk";font-size:clamp(28px,3vw,38px);letter-spacing:-.06em;margin:0 0 20px;font-weight:600}
.space-main .space-h2+*{margin-bottom:60px}
.my-courses{border-top:1px solid var(--ink)}
.my-course{display:grid;grid-template-columns:150px 1fr 190px 30px;gap:20px;align-items:center;padding:26px 6px;border-bottom:1px solid #b9bfb3;transition:background .2s,padding .2s}
.my-course:hover{background:#e7e8d9;padding-left:14px;padding-right:14px}
.my-course .tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;line-height:1.5}
.my-course-title{font-family:"Space Grotesk";font-size:clamp(21px,2.2vw,28px);letter-spacing:-.05em;font-weight:600;line-height:1.1}
.my-course-progress{display:flex;align-items:center;gap:12px}.my-course-progress .bar{flex:1;width:auto}
.my-course-pct{font-size:13px;font-weight:700;white-space:nowrap;min-width:44px;text-align:right}
.my-course .arrow{font-size:26px}
.recent{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.recent a{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.recent a:hover .recent-title{color:var(--green)}
.recent-title{flex:1;font-weight:600}.recent-title small{display:block;color:var(--muted);font-weight:500;font-size:13px;margin-top:2px}
.recent-when{font-size:12px;color:var(--muted);white-space:nowrap}
.space-side{display:grid;gap:44px;align-content:start}
.side-block .space-h2{font-size:26px}
.sessions{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.session{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}
.session-date{width:62px;flex-shrink:0;text-align:center;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.session-date strong{display:block;font-family:"Space Grotesk";font-size:38px;line-height:1;letter-spacing:-.06em;color:var(--ink)}
.session-info{display:grid;gap:5px;font-size:14px}.session-info strong{font-size:16px}.session-info small{color:var(--muted);font-size:13px}
.session-info .btn,.session-info .link{justify-self:start;margin-top:6px}
.session.is-live{background:var(--lime);padding-left:14px;padding-right:14px;margin:0 -14px}
.session.is-live .session-info strong:before{content:"● EN DIRECT ";color:var(--error);font-size:11px;letter-spacing:.1em}
.payments{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.payments li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}
.payments small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.pay-amount{text-align:right;font-weight:700;white-space:nowrap}.pay-amount .status{margin-top:5px}
@media(max-width:1000px){.space-grid{grid-template-columns:1fr;gap:50px}}
@media(max-width:800px){
  .space-head{padding-top:44px;padding-bottom:26px}
  .resume-inner{flex-direction:column;align-items:flex-start;gap:26px;padding-top:40px;padding-bottom:44px}.bar--light{width:100%}
  .space-grid{padding-top:50px}
  .my-course{grid-template-columns:1fr auto;gap:8px 14px}.my-course .tag{grid-column:1/-1}.my-course-progress{grid-column:1/-1;grid-row:3}.my-course .arrow{grid-row:2;grid-column:2}
}
.lesson-link{color:var(--ink);text-decoration:underline;text-decoration-color:#b9c2b3;text-underline-offset:4px}.lesson-link:hover{color:var(--green);text-decoration-color:var(--green)}
.dock-count{opacity:.7;margin-left:6px}
.reader-dock button{display:flex;align-items:center;justify-content:center;gap:4px}

/* Validation des formations */
.status--submitted{background:#dfe7f6;color:#2b4a85}.status--changes{background:#f6d4c5;color:#8a3519}
.review-note{grid-column:1/-1;padding:16px 20px;font-size:14px;line-height:1.6;margin-top:6px}.review-note p{margin:8px 0 0}
.review-note--wait{background:#dfe7f6}.review-note--changes{background:#f6d4c5}
.lesson-main .review-note{margin:0 0 14px}
.is-locked .handle{opacity:.4;pointer-events:none}
.team-list{list-style:none;margin:0 0 30px;padding:0;border-top:1px solid var(--ink);max-width:820px}
.team-list li{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.team-name{flex:1}.team-name small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.cd-teachers{font-size:15px;margin:-14px 0 30px;color:var(--muted)}.cd-teachers strong,.cd-teachers .link{color:var(--ink)}
.role-chips{display:flex;flex-wrap:wrap;gap:6px;margin:-24px 0 34px}

.steps-mini{list-style:none;counter-reset:s;margin:30px 0 0;padding:0;border-top:1px solid #a7b1a5}
.steps-mini li{counter-increment:s;padding:16px 0 16px 46px;border-bottom:1px solid #a7b1a5;position:relative;line-height:1.5;color:var(--muted)}
.steps-mini li:before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:14px;font-family:"Space Grotesk";font-weight:700;font-size:22px;color:var(--green)}
.steps-mini strong{color:var(--ink)}
.teacher-page{display:grid;grid-template-columns:1fr 1fr;gap:6vw;padding-top:80px;padding-bottom:40px;align-items:end}
.teacher-courses{padding-top:40px}
@media(max-width:800px){.teacher-page{grid-template-columns:1fr;padding-top:50px}}

/* Espace gestionnaire */
.bo-bar{gap:30px}.bo-nav{display:flex;gap:22px;overflow-x:auto;white-space:nowrap}
.bo-nav a{color:#c7d0c9;font-weight:700;padding:6px 0;border-bottom:2px solid transparent}.bo-nav a:hover{color:var(--cream)}.bo-nav a[aria-current]{color:var(--lime);border-color:var(--lime)}
.bo-nav b{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:10px;background:var(--orange);color:var(--ink);font-size:11px;margin-left:4px;padding:0 5px}
.bo-page{padding-top:56px;padding-bottom:110px}
.bo-counters{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin-bottom:60px}
.bo-counters a{padding:26px 20px 26px 0;font-size:14px;color:var(--muted);font-weight:600}.bo-counters a+a{border-left:1px solid var(--line);padding-left:24px}
.bo-counters strong{display:block;font-family:"Space Grotesk";font-size:clamp(46px,5vw,72px);letter-spacing:-.07em;color:var(--ink);line-height:1}.bo-counters a:hover strong{color:var(--green)}
.bo-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:60px}
.bo-list{list-style:none;margin:0 0 50px;padding:0;border-top:1px solid var(--line)}
.bo-list li>a,.bo-list li>.bo-hist{display:block;padding:14px 0;border-bottom:1px solid var(--line)}.bo-list li>a:hover strong{color:var(--green)}
.bo-list small,.bo-hist small{display:block;color:var(--muted);font-size:13px;margin-top:3px}.bo-hist em{display:block;font-size:13px;margin-top:6px;color:var(--ink)}
.bo-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:40px}
.bo-stats div{background:var(--paper);padding:18px;font-size:13px;color:var(--muted)}.bo-stats strong{display:block;font-family:"Space Grotesk";font-size:32px;color:var(--ink);letter-spacing:-.05em}
.bo-events{list-style:none;margin:0 0 16px;padding:0}.bo-events li{padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.bo-events strong{font-weight:600}.bo-events span{display:block;margin-top:2px}.bo-events small{display:block;color:var(--muted);margin-top:3px}
.bo-back{margin:0 0 26px;font-size:14px}
.bo-detail{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:50px;align-items:start}
.bo-detail aside{display:grid;gap:18px;position:sticky;top:20px}
.course-head-title{font-family:"Space Grotesk";font-size:clamp(36px,4.4vw,60px);letter-spacing:-.07em;line-height:1;margin:16px 0 12px;font-weight:600}
.bo-dl{display:grid;grid-template-columns:160px 1fr;gap:0;border-top:1px solid var(--line);margin:24px 0 30px;font-size:14px}
.bo-dl dt,.bo-dl dd{padding:11px 0;border-bottom:1px solid var(--line);margin:0}.bo-dl dt{font-weight:700;color:var(--muted)}
.bo-detail .space-h2{font-size:24px;margin-top:40px}
.bo-radios{display:grid;gap:8px;margin-bottom:16px}.bo-radios label{display:flex;gap:10px;align-items:center;font-weight:600;font-size:14px;cursor:pointer}.bo-radios input{accent-color:var(--green);width:17px;height:17px}
.bo-search{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}.bo-search input,.bo-search select{padding:11px 14px;border:1px solid #bdc7b9;font:inherit;font-size:15px;background:#fff;min-width:0}.bo-search input{flex:1;max-width:420px}
.bo-tabs{margin:0 0 24px}
@media(max-width:1000px){.bo-grid,.bo-detail{grid-template-columns:1fr}.bo-detail aside{position:static}}
@media(max-width:700px){.bo-counters{grid-template-columns:1fr}.bo-counters a+a{border-left:0;border-top:1px solid var(--line);padding-left:0}.bo-dl{grid-template-columns:1fr}.bo-dl dt{border-bottom:0;padding-bottom:0}}
/* Choix multiples en pastilles */
.field div:has(> div > label > input.chip-input){display:flex;flex-wrap:wrap;gap:8px}
.field label:has(> input.chip-input){display:inline-flex;align-items:center;gap:8px;border:1px solid #b7c0b1;border-radius:100px;padding:9px 15px;font-size:13px;font-weight:700;cursor:pointer;background:#fff;margin:0}
.field label:has(> input.chip-input:checked){background:var(--ink);color:#fff;border-color:var(--ink)}
.field label:has(> input.chip-input:focus-visible){outline:2px solid var(--green);outline-offset:2px}
.field input.chip-input{position:absolute;opacity:0;width:1px;height:1px}
.bo-counters--2{grid-template-columns:repeat(2,1fr)}.bo-count{padding:26px 20px 26px 0;font-size:14px;color:var(--muted);font-weight:600}.bo-count+.bo-count{border-left:1px solid var(--line);padding-left:24px}.bo-count strong{display:block;font-family:"Space Grotesk";font-size:clamp(46px,5vw,72px);letter-spacing:-.07em;color:var(--ink);line-height:1}
@media(max-width:1000px){.bo-counters{grid-template-columns:repeat(2,1fr)}}

/* ==========================================================================
   Accueil Intercours (repris de index_new.html, sans les règles d'en-tête du prototype)
   ========================================================================== */
.path-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.path-card{background:#e9e9dc;border:1px solid #d4d6c8;padding:30px;min-height:310px;display:flex;flex-direction:column;align-items:flex-start;transition:transform .25s,background .25s}.path-card:hover{transform:translateY(-7px);background:#dfe7cb}.path-num{font-size:12px;letter-spacing:.12em;font-weight:700}.path-icon{font-size:50px;margin:22px 0}.path-card h3,.pillar h3,.news-card h3{font-family:'Space Grotesk',sans-serif;font-size:clamp(24px,2.8vw,39px);line-height:1.08;letter-spacing:-.06em;margin:0 0 14px}.path-card p,.pillar p,.news-card p{line-height:1.65;color:#526057;margin:0 0 24px}.news-card p{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.path-card a,.pillar a,.news-card a{margin-top:auto;font-weight:700;font-size:13px;border-bottom:1px solid currentColor;padding-bottom:5px}.pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.pillar{padding:40px;min-height:290px;background:#e7e9da;display:flex;flex-direction:column}.pillar:nth-child(2){background:#d9ef80}.pillar:nth-child(3){background:#f1ddd1}.pillar:nth-child(4){background:#d5e5dd}.pillar .number{font-size:12px;letter-spacing:.15em;font-weight:700;margin-bottom:36px}.split-intro{max-width:750px;font-size:18px;line-height:1.8;color:#46584c;margin:-32px 0 52px}.home-section{background:#182521;color:#f6f2e9}.home-section .section-title em{color:#d9ef80}.home-section .split-intro{color:#d4ddcf}.home-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.home-step{border-top:1px solid #829388;padding:26px 0 12px}.home-step b{color:#d9ef80;font-size:12px}.home-step h3{font-family:'Space Grotesk';font-size:30px;letter-spacing:-.06em}.home-step p{line-height:1.7;color:#d0d8d0}.action-light{display:inline-block;margin-top:35px;border-radius:100px;padding:16px 25px;background:#d9ef80;color:#182521;font-weight:700;border:0;cursor:pointer}.resource-bar{display:flex;flex-wrap:wrap;gap:12px}.resource-bar button{border:1px solid #a7b1a4;border-radius:30px;padding:13px 18px;background:transparent;cursor:pointer;font-weight:700}.resource-bar button.active{background:#182521;color:#fff}.resource-display{background:#e9e8dc;margin-top:25px;padding:35px;min-height:125px;line-height:1.7}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.news-card{border-top:1px solid #aab5a6;padding:26px 10px 20px 0;display:flex;flex-direction:column;min-height:250px}.news-card small{font-weight:700;color:#225c47;letter-spacing:.08em;margin-bottom:25px}.audience{background:#d9ef80;padding:100px 0}.audience .section-title{margin-bottom:45px}.audience-row{display:flex;flex-wrap:wrap;gap:10px}.audience-row button{padding:17px 24px;background:transparent;border:1px solid #182521;border-radius:50px;cursor:pointer;font-weight:700}.audience-row button.active{background:#182521;color:#fff}.audience-panel{max-width:850px;margin-top:35px;font-size:22px;line-height:1.5;font-family:'Space Grotesk'}@media(max-width:950px){.path-grid,.news-grid{grid-template-columns:1fr 1fr}.home-steps{grid-template-columns:1fr}}@media(max-width:650px){.path-grid,.pillars,.news-grid{grid-template-columns:1fr}.path-card{min-height:260px}.pillar{min-height:230px}.audience-panel{font-size:19px}}
.waitlist{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;max-width:640px}
.waitlist input[type=email]{flex:1;min-width:220px;padding:15px 16px;border:1px solid #bdc7b9;background:#fff;font:inherit;font-size:16px;border-radius:2px}
.waitlist input:focus{outline:2px solid var(--green)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.news-soon{margin-top:auto;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.audience-panel p{margin:0}
a.action-light{display:inline-block}
.tutoring-note{margin-top:24px}

/* Logo */
.brand-logo{display:block;height:44px;width:auto}
.reader-emblem{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0}.reader-emblem img{height:34px;width:auto}
@media(max-width:800px){.brand-logo{height:34px}}
@media(max-width:440px){.brand-logo{height:30px}}

/* Paiement */
.ticket-methods{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px;border:0;padding:0}
.ticket-method{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #b6c4b4;background:#fff;padding:14px 10px;font-weight:700;font-size:14px;cursor:pointer;color:var(--ink);border-radius:2px}
.ticket-method input{accent-color:var(--green)}
.ticket-method:has(input:checked){outline:2px solid var(--green);background:#e3f0d8}
.ticket-method--wave:has(input:checked){outline-color:#1dc8ff;background:#e6f8ff}
.ticket-method--orange_money:has(input:checked){outline-color:#ff7900;background:#fff1e5}
.paytest{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 16px;background:#e9e8dc}
.paytest-banner{position:fixed;top:0;left:0;right:0;background:var(--orange);color:var(--ink);text-align:center;font-size:13px;font-weight:700;padding:10px}
.paytest-card{width:min(420px,100%);background:#fff;border-radius:18px;padding:32px 28px;box-shadow:0 20px 60px #0002;text-align:center;border-top:8px solid #1dc8ff}
.paytest-card--orange_money{border-top-color:#ff7900}
.paytest-provider{font-family:"Space Grotesk";font-weight:700;font-size:15px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 20px;color:#1d9bd6}
.paytest-card--orange_money .paytest-provider{color:#e86a00}
.paytest-merchant{margin:0;color:var(--muted)}
.paytest-amount{font-family:"Space Grotesk";font-size:46px;letter-spacing:-.06em;font-weight:700;margin:8px 0}
.paytest-label{font-size:14px;margin:0 0 26px;line-height:1.5}.paytest-label small{color:var(--muted)}
.paytest-card form{display:grid;gap:10px}.paytest-card .link{margin-top:6px;color:var(--muted)}
.paytest-pay{background:#1dc8ff;color:#06263a}.paytest-card--orange_money .paytest-pay{background:#ff7900;color:#fff}
.paytest-help{max-width:420px;text-align:center;font-size:12px;color:var(--muted);line-height:1.6;margin-top:22px}
.paytest-done{color:var(--muted)}
.payreturn-spinner{font-weight:700;color:var(--green)}.payreturn-spinner{animation:pulse 1.4s infinite}
.bo-h3{font-size:14px;letter-spacing:.1em;text-transform:uppercase;margin:24px 0 8px}

/* Quiz */
.quiz-studio{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;padding-top:40px;padding-bottom:100px;align-items:start}
.quiz-studio .studio-title{margin-top:20px}
.qlist{list-style:none;margin:0 0 30px;padding:0;border-top:1px solid var(--ink)}
.qitem{padding:22px 0;border-bottom:1px solid #b9bfb3}
.qitem-head{display:grid;grid-template-columns:56px 1fr auto;gap:14px;align-items:start}
.qitem-head .program-num{font-size:32px}
.qitem-prompt{font-size:17px;font-weight:600;line-height:1.5}.qitem-prompt small{display:block;color:var(--muted);font-weight:500;font-size:12px;margin-top:4px}
.qitem-actions{display:flex;gap:12px;align-items:center;font-size:13px}.qitem-actions form{display:flex;gap:4px}
.icon-btn{border:1px solid var(--line);background:#fff;width:28px;height:28px;border-radius:50%;cursor:pointer}.icon-btn:disabled{opacity:.3;cursor:default}
.qchoices{list-style:none;margin:12px 0 0 70px;padding:0;font-size:15px}.qchoices li{padding:5px 0;color:var(--muted)}.qchoices li.is-correct{color:var(--green);font-weight:700}
.qexplain{margin:10px 0 0 70px;font-size:14px;color:var(--muted);border-left:3px solid var(--lime);padding-left:12px}
.qnew summary{list-style:none;cursor:pointer}.qnew summary::-webkit-details-marker{display:none}.qnew summary h2{margin:0}.qnew[open] summary{margin-bottom:18px}
.choice-rows{margin:4px 0 20px}.choice-row{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;margin-bottom:8px}
.choice-row input[type=text]{padding:11px 12px;border:1px solid #bdc7b9;font:inherit;font-size:15px;background:#fff;width:100%}
.choice-num{font-family:"Space Grotesk";font-weight:700;color:var(--muted)}
.choice-correct{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;white-space:nowrap}.choice-correct input{accent-color:var(--green);width:17px;height:17px}
.choice-row .field-errors{grid-column:2/-1}
.quiz{margin-top:56px;border-top:1px solid var(--ink);padding-top:28px}
.quiz-head h2{font-family:"Space Grotesk";font-size:clamp(28px,3vw,38px);letter-spacing:-.06em;margin:8px 0 10px}
.quiz-meta{font-size:13px;color:var(--muted)}
.quiz-result{display:flex;align-items:center;gap:18px;background:#f6d4c5;padding:18px 22px;margin:20px 0}.quiz-result.is-passed{background:var(--lime)}
.quiz-result strong{font-family:"Space Grotesk";font-size:44px;letter-spacing:-.06em;line-height:1}
.quiz-review,.quiz-form ol{list-style:decimal;padding-left:22px;margin:0 0 20px}
.quiz-review>li,.quiz-form li{padding:14px 0;border-bottom:1px solid var(--line)}
.quiz-q{font-weight:700;font-size:17px;line-height:1.5;margin:0 0 10px}.quiz-q small{display:block;font-weight:500;font-size:12px;color:var(--muted)}
.quiz-mark{font-size:12px;font-weight:700;margin-left:8px;white-space:nowrap}.is-right .quiz-mark{color:var(--green)}.is-wrong .quiz-mark{color:var(--error)}
.quiz-review ul{list-style:none;margin:0;padding:0}.quiz-review ul li{padding:6px 10px;margin:4px 0;border-radius:3px;color:var(--muted)}
.quiz-review ul li.is-picked{background:var(--sage);color:var(--ink);font-weight:600}.quiz-review ul li.is-picked:before{content:"Ta réponse · ";font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.quiz-review ul li.is-correct{background:#e3f0d8;color:var(--green);font-weight:700}.quiz-review ul li.is-correct:after{content:"";display:inline-block;width:.9em;height:.9em;margin-left:.35em;vertical-align:-.1em;background:currentColor;-webkit-mask:var(--mask-check) center/contain no-repeat;mask:var(--mask-check) center/contain no-repeat}
.quiz-form fieldset{border:0;padding:0;margin:0}
.quiz-choice{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);background:#fff;margin:6px 0;cursor:pointer;font-size:16px;line-height:1.5}
.quiz-choice:has(input:checked){border-color:var(--green);background:#e3f0d8}.quiz-choice input{margin-top:5px;accent-color:var(--green);width:17px;height:17px;flex-shrink:0}
.quiz-form-wrap>summary{list-style:none;display:inline-flex;margin:10px 0 18px}.quiz-form-wrap>summary::-webkit-details-marker{display:none}
.quiz-form-wrap[open]>summary{display:none}
@media(max-width:1000px){.quiz-studio{grid-template-columns:1fr}}
@media(max-width:600px){.qitem-head{grid-template-columns:40px 1fr}.qitem-actions{grid-column:1/-1}.qchoices,.qexplain{margin-left:0}}
.field-row--3{grid-template-columns:1.4fr 1fr 1fr}
@media(max-width:440px){.field-row--3{grid-template-columns:1fr}}
.sessions--studio{max-width:900px;margin-bottom:30px}.sessions--studio .session{align-items:flex-start}
.session-actions{display:flex;gap:14px;align-items:center;margin-left:auto;font-size:13px}
.session.is-cancelled{opacity:.55}
.qnew-summary{list-style:none;cursor:pointer}.qnew-summary::-webkit-details-marker{display:none}.qnew-summary h2{margin:0}details[open]>.qnew-summary{margin-bottom:18px}
.past-title{margin-top:50px}
.link--small{font-size:12px}
.editor-ad-settings{margin:20px -2px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 2px}.editor-ad-settings summary{display:flex;justify-content:space-between;gap:12px;align-items:baseline;cursor:pointer;list-style:none;font-weight:700;font-size:14px}.editor-ad-settings summary::-webkit-details-marker{display:none}.editor-ad-settings summary:after{content:"+";font-size:20px;font-weight:400}.editor-ad-settings[open] summary:after{content:"−"}.editor-ad-settings summary small{color:var(--muted);font-size:11px;font-weight:400;margin-left:auto}.editor-ad-settings .side-help{margin:12px 0;font-size:12px}.editor-ad-settings input[type="file"]{max-width:100%}

/* Journal et ressources */
.status--review{background:#dfe7f6;color:#2b4a85}
.desk-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.journal-grid{margin-top:20px}.journal-card h3 a:hover,.resource-card h3 a:hover{color:var(--green)}
.journal-cover{display:block;margin:-6px 0 18px;aspect-ratio:16/9;overflow:hidden;background:var(--sage)}.journal-cover img{width:100%;height:100%;object-fit:cover;display:block}
.resource-grid{margin-top:20px}.resource-card .resource-meta{color:var(--muted);font-size:12px;margin:-10px 0 18px}
.resource-card h3{font-size:clamp(22px,2vw,28px);line-height:1.15;letter-spacing:-.04em;margin:18px 0 12px;text-wrap:balance}
.resource-card h3 a{margin-top:0;padding-bottom:0;border-bottom:0;font-size:inherit;font-weight:inherit;line-height:inherit}
.resource-card>p{margin:0 0 18px;line-height:1.6}
.pagination{display:flex;align-items:center;gap:14px;margin-top:30px}
.article-page .cd-crumbs{margin-bottom:26px}
.article-lead{font-size:clamp(19px,1.8vw,23px);line-height:1.5;margin:-12px 0 32px;color:#2d3d37}
.article-share{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 30px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.article-share__label{font-size:12px;color:var(--muted);letter-spacing:.04em;margin-right:4px}.article-share__actions{display:flex;gap:8px;align-items:center}.share-button{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;display:inline-grid;place-items:center;background:transparent;color:var(--ink);font-size:15px;font-weight:700;line-height:1;transition:transform .2s,background .2s,color .2s,border-color .2s}.share-button:hover{transform:translateY(-2px);background:var(--ink);color:#fff;border-color:var(--ink)}.share-button:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.share-button--linkedin{font-size:11px}.share-button--copy{cursor:pointer}.article-share__status{font-size:12px;color:var(--green);min-height:1em}
.article-ad{margin:0 0 36px;padding:12px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.article-ad__label{display:block;margin-bottom:10px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.article-ad a,.article-ad picture,.article-ad img{display:block}.article-ad img{width:100%;height:auto;max-height:220px;object-fit:cover}.article-ad a:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.article-cover{margin:0 0 36px}.article-cover img{width:100%;display:block}
.article-sources{margin-top:40px;border-top:1px solid var(--line);padding-top:18px;font-size:14px;color:var(--muted)}.article-sources h2{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.article-tags{margin:24px 0 0}
.article-author{display:flex;align-items:center;gap:12px;margin:34px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.article-related{margin-top:30px}
.link--light{color:var(--lime);margin-left:12px}
@media(max-width:600px){.article-share{gap:10px;margin-bottom:24px}.article-share__label{width:100%}.share-button{width:40px;height:40px}.article-ad{margin-bottom:28px}.article-ad img{max-height:none}}
@media(min-width:801px) and (max-width:1180px){.nav{gap:18px;font-size:12px}.top{gap:14px}.brand-logo{height:36px}.nav-cta{padding:12px 16px}}
/* Partage : vraies icônes ; WhatsApp mis en avant (usage n°1 au Sénégal) */
.share-button svg{display:block}
.share-button--whatsapp{background:#25D366;border-color:#25D366;color:#fff}
.share-button--whatsapp:hover{background:#1da851;border-color:#1da851;color:#fff}
.share-button--facebook:hover{background:#0866FF;border-color:#0866FF}
.share-button--linkedin:hover{background:#0A66C2;border-color:#0A66C2}
.ad-summary{border:1px solid var(--line);background:#fff;padding:12px;margin:0 0 16px;font-size:13px}
.ad-summary img{width:100%;height:auto;max-height:110px;object-fit:cover;display:block;margin-bottom:10px}
.ad-summary p{margin:0}.ad-summary strong{color:var(--muted)}.ad-summary.is-live strong{color:var(--green)}
.article-ad__note{margin:0 0 10px;padding:8px 12px;background:#f6d4c5;font-size:13px}
.editor-ad-settings summary{cursor:pointer}

/* ==========================================================================
   Mobile : seuls les tableaux et les formules défilent horizontalement
   ========================================================================== */
/* Une colonne de grille « 1fr » s'étire jusqu'au contenu le plus large : on la borne. */
.reader{grid-template-columns:330px minmax(0,1fr)}
.reader-main,.reader-col,.lesson-main,.prose,.reader-preview,.article-page,.cd-desc{min-width:0}
.prose{overflow-wrap:break-word}
.prose .table-wrap,.prose .tableWrapper{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
  /* ombres qui indiquent qu'il reste du contenu à droite / à gauche */
  background:linear-gradient(90deg,var(--cream) 30%,rgba(246,242,233,0)) left/40px 100% no-repeat local,
             linear-gradient(270deg,var(--cream) 30%,rgba(246,242,233,0)) right/40px 100% no-repeat local,
             radial-gradient(farthest-side at 0 50%,rgba(24,37,33,.18),transparent) left/12px 100% no-repeat scroll,
             radial-gradient(farthest-side at 100% 50%,rgba(24,37,33,.18),transparent) right/12px 100% no-repeat scroll}
.editor-paper .prose .tableWrapper{background:none}
.prose table{width:auto;min-width:100%}
.prose td,.prose th{white-space:nowrap}
.prose td p,.prose th p{white-space:normal}
.prose .math--block,.prose [data-type=block-math]{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.prose .math--block .katex-display{margin:0}
/* Formule dans le texte plus large que l'écran (repérée par content.js) : elle défile seule. */
.prose span.math.math--wide{display:inline-block;max-width:100%;overflow-x:auto;overflow-y:hidden;vertical-align:middle;-webkit-overflow-scrolling:touch;padding-bottom:2px}
/* Dans un tableau, une formule ne se coupe jamais : c'est le tableau qui défile. */
.prose td .math,.prose th .math{white-space:nowrap}
@media(max-width:1000px){.reader{grid-template-columns:minmax(0,1fr)}}

/* Encart sponsor : logo, nom, description, lien */
.sponsor-card{margin:34px 0;max-width:720px}
.sponsor-card__inner{display:block;padding:16px 18px;background:var(--paper);border:1px solid var(--line);border-radius:6px;color:var(--ink);text-decoration:none;transition:border-color .2s,box-shadow .2s}
a.sponsor-card__inner:hover{border-color:#b9c2b3;box-shadow:0 6px 24px rgba(24,37,33,.07)}
a.sponsor-card__inner:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.sponsor-card__label{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.sponsor-card__head{display:flex;align-items:center;gap:14px}
.sponsor-card__logo{width:56px;height:56px;object-fit:contain;border-radius:10px;background:#fff;border:1px solid var(--line);padding:4px;flex-shrink:0}
.sponsor-card__id{display:flex;flex-direction:column;min-width:0;flex:1}
.sponsor-card__name{font-family:"Space Grotesk";font-size:18px;letter-spacing:-.03em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sponsor-card__site{font-size:12px;color:var(--muted)}
.sponsor-card__cta{font-size:13px;font-weight:700;color:var(--green);white-space:nowrap}
.sponsor-card__desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:10px;font-size:14px;line-height:1.5;color:#3d4b44}
@media(max-width:440px){.sponsor-card__cta{display:none}}
/* Colonnes latérales (rédaction, studio, gestion) : défilement propre si elles dépassent l'écran */
@media(min-width:1001px){
  .lesson-side,.bo-detail aside{max-height:calc(100vh - 110px);overflow-y:auto;overscroll-behavior:contain;padding-right:6px;scrollbar-width:thin}
}

/* --- Couverture (hero de l'accueil) ---------------------------------------
   Le hero est une phrase à compléter : « Je veux apprendre ___ » puis l'une
   des trois façons d'apprendre sur Intercours. Nos mots en grotesque, ceux de
   l'apprenant en italique : la page lui répond. Le surligneur marque le choix. */
.cover.shell{padding-top:clamp(44px,6.5vw,104px);padding-bottom:clamp(44px,5vw,76px)}
.cover-form{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(14px,2vw,28px);align-items:end}
.cover-sentence{grid-column:1/-1;margin:0;font-family:"Space Grotesk";font-weight:600;font-size:clamp(44px,7.3vw,122px);line-height:.98;letter-spacing:-.066em}
.cover-sentence label{display:block}
.cover-sentence input{display:block;width:calc(100% - 100%/6);margin:.04em 0 0 calc(100%/6);padding:0 0 .06em;border:0;border-bottom:2px solid var(--ink);border-radius:0;background:transparent;font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-weight:400;font-size:1.1em;line-height:1.08;letter-spacing:-.025em;color:var(--green);-webkit-appearance:none;appearance:none}
.cover-sentence input::placeholder{color:#b9bfae;opacity:1}
.cover-sentence input::-webkit-search-cancel-button{display:none}
.cover-sentence input:focus{outline:none;border-bottom-color:var(--green)}
.cover-modes{grid-column:1/10;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(16px,2.2vw,36px);margin:clamp(44px,5.5vw,84px) 0 0;padding:0;border:0;min-width:0}
.cover-mode{position:relative;display:grid;align-content:start;gap:10px;padding-top:18px;border-top:1px solid #b9c1b1;cursor:pointer}
.cover-mode:before{content:"";position:absolute;left:0;right:0;top:-1px;height:3px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.cover-mode input{position:absolute;opacity:0;pointer-events:none}
.cover-mode-name{font-family:"Space Grotesk";font-size:clamp(21px,2vw,31px);font-weight:600;line-height:1.12;letter-spacing:-.045em}
.cover-mode-name span{padding:0 .08em;margin:0 -.08em;background-image:linear-gradient(var(--lime),var(--lime));background-repeat:no-repeat;background-position:0 82%;background-size:0 .48em;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size .4s cubic-bezier(.2,.7,.2,1)}
.cover-mode-desc{max-width:32ch;font-size:14px;line-height:1.5;color:var(--muted);transition:color .2s}
.cover-mode:hover .cover-mode-name span{background-size:100% .12em}
.cover-mode input:checked~.cover-mode-name span{background-size:100% .48em}
.cover-mode input:checked~.cover-mode-desc{color:var(--ink)}
.cover-mode:has(input:checked):before{transform:scaleX(1)}
/* Défilement automatique : la ligne du mode actif se remplit comme une barre de progression. */
.cover-form.is-cycling .cover-mode:has(input:checked):before{animation:cover-progress var(--cycle,2.6s) linear both}
.cover-form.is-cycling.is-paused .cover-mode:has(input:checked):before{animation-play-state:paused}
@keyframes cover-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.cover-mode input:focus-visible~.cover-mode-name{outline:2px solid var(--green);outline-offset:4px}
.cover-submit{grid-column:10/-1;justify-self:end;display:inline-flex;align-items:center;gap:14px;padding:22px 30px;border:0;border-radius:100px;background:var(--ink);color:var(--cream);font-family:"Space Grotesk";font-size:17px;font-weight:600;letter-spacing:-.02em;white-space:nowrap;cursor:pointer;transition:background .2s}
.cover-submit span[aria-hidden]{display:inline-block;transition:transform .25s}
.cover-submit:hover{background:var(--green)}
.cover-submit:hover span[aria-hidden]{transform:rotate(45deg)}
.cover-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:18px 40px;margin-top:clamp(64px,7vw,112px)}
.cover-title{margin:0;font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-weight:400;font-size:clamp(22px,2.1vw,32px);letter-spacing:-.01em}
.cover-teachers{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 22px;margin:0;font-size:14px}
.cover-teachers>span{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.cover-teachers a{font-weight:700}
.cover-teachers small{font-size:13px;font-weight:400;color:var(--muted)}
.cover-teachers a:hover{color:var(--green)}
.cover-teachers .cover-teach{color:var(--green)}
@media(max-width:1100px){.cover-modes{grid-column:1/-1}.cover-submit{grid-column:1/-1;justify-self:start;margin-top:36px}}
@media(max-width:720px){.cover-sentence{font-size:clamp(40px,11.6vw,62px)}.cover-sentence input{width:100%;margin-left:0}.cover-modes{grid-template-columns:1fr;margin-top:40px}.cover-mode{gap:4px;padding:16px 0 18px}.cover-mode-name{font-size:22px}.cover-mode-desc{font-size:13px}.cover-submit{justify-self:stretch;justify-content:center;margin-top:28px}.cover-foot{flex-direction:column;gap:14px;margin-top:52px}}
@media(prefers-reduced-motion:reduce){.cover-mode:before,.cover-mode-name span{transition:none;animation:none}}

/* --- Avis --------------------------------------------------------------- */
.stars{display:inline-flex;gap:2px;font-size:14px;color:var(--orange)}
.stars .off{color:#cdd1c2}
.voices-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0 clamp(32px,6vw,96px)}
.voices-grid--single{grid-template-columns:minmax(0,1fr);max-width:980px}
.voice{margin:0;padding:26px 0 34px;border-top:1px solid var(--ink)}
.voice+.voice{border-top-color:var(--line)}
.voice--lead{grid-row:span 3}
.voice blockquote{margin:18px 0 24px;font-size:17px;line-height:1.65}
.voice--lead blockquote{font-family:"Space Grotesk";font-size:clamp(26px,2.7vw,42px);font-weight:500;line-height:1.16;letter-spacing:-.045em}
.voice--lead blockquote:before{content:"«";display:block;height:.72em;margin-top:-.1em;font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-size:2.2em;line-height:.9;color:var(--orange)}
.voice figcaption{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;font-size:13px}
.voice figcaption a{color:var(--muted)}
.voice figcaption a:hover{color:var(--green)}
@media(max-width:800px){.voices-grid{grid-template-columns:minmax(0,1fr)}.voice--lead{grid-row:auto}}

.review-score{margin:22px 0 0;font-size:15px;color:var(--muted)}
.review-score strong{font-family:"Space Grotesk";font-size:44px;letter-spacing:-.06em;color:var(--ink)}
.review-form{margin:0 0 44px;padding:26px;background:var(--paper);border:1px solid var(--line)}
.review-form-title{margin:0 0 18px;font-weight:700}
.rating-input{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 20px;padding:0;border:0}
.rating-input legend{margin-bottom:10px;padding:0;font-size:13px;font-weight:700}
.rating-input label{cursor:pointer}
.rating-input input{position:absolute;opacity:0;pointer-events:none}
.rating-input label span{display:grid;place-items:center;width:44px;height:44px;border:1px solid #b7c0b1;border-radius:50%;font-weight:700;transition:background .15s}
.rating-input label:hover span{border-color:var(--ink)}
.rating-input input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.rating-input input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}
.rating-input small{margin-left:8px;font-size:12px;color:var(--muted)}
.review-form textarea{width:100%;padding:14px;border:1px solid #bdc7b9;background:#fff;font:inherit;line-height:1.6}
.review-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.review{padding:24px 0;border-bottom:1px solid var(--line)}
.review blockquote{margin:10px 0 12px;font-size:16px;line-height:1.65}
.review-meta{margin:0;font-size:13px;color:var(--muted)}
.cd-stats a.cd-stat:hover strong{color:var(--green)}

/* --- Rail de formations (accueil) -------------------------------------------
   Cartes à la Udemy pour la lisibilité (couverture, enseignant, avis, prix),
   avec une couverture typographique propre à Intercours quand il n'y a pas
   d'image : le symbole de la matière, façon tableau périodique. */
.rail-head{display:flex;justify-content:space-between;align-items:end;gap:20px 40px;flex-wrap:wrap}
.rail-title{margin:0;font-family:"Space Grotesk";font-size:clamp(36px,4.4vw,64px);font-weight:600;line-height:1;letter-spacing:-.06em}
.rail-intro{max-width:58ch;margin:14px 0 0;font-size:16px;line-height:1.6;color:var(--muted)}
.rail-all{font-size:14px;font-weight:700;white-space:nowrap}
.rail-all:hover{color:var(--green)}
.rail-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:36px 0 26px;border-bottom:1px solid var(--line)}
.rail-tabs{display:flex;gap:28px;overflow-x:auto;scrollbar-width:none}
.rail-tabs::-webkit-scrollbar{display:none}
.rail-tabs button{flex:none;margin-bottom:-1px;padding:12px 0 13px;border:0;border-bottom:2px solid transparent;background:none;font:inherit;font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;white-space:nowrap}
.rail-tabs button:hover{color:var(--ink)}
.rail-tabs button.active{color:var(--ink);border-bottom-color:var(--ink)}
.rail-arrows{display:flex;flex:none;gap:8px;padding-bottom:8px}
.rail-arrow{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--ink);border-radius:50%;background:transparent;color:var(--ink);font-size:16px;cursor:pointer;transition:background .2s,color .2s,opacity .2s}
.rail-arrow:hover:not(:disabled){background:var(--ink);color:var(--cream)}
.rail-arrow:disabled{opacity:.25;cursor:default}
.rail-static .rail-arrows{display:none}
.rail{--gap:20px;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3 * var(--gap)) / 4);gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 10px 14px 0;margin-right:-10px;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.rail>[hidden]{display:none}
.ccard{scroll-snap-align:start;min-width:0}
.ccard-link{display:flex;flex-direction:column;height:100%;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--paper);transition:transform .25s,box-shadow .25s,border-color .25s}
.ccard-link:hover{transform:translateY(-4px);border-color:var(--ink);box-shadow:6px 8px 0 var(--sage)}
.ccard-link:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.ccard-cover{position:relative;display:block;aspect-ratio:16/10;overflow:hidden}
.ccard-cover--image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ccard-link:hover .ccard-cover--image img{transform:scale(1.04)}
.ccard-cover[class*=tone]{display:flex;flex-direction:column;justify-content:flex-end;padding:16px 18px}
.ccard-cover--tone1{background:var(--ink);color:var(--cream)}.ccard-cover--tone1 .ccard-symbol{color:var(--lime)}
.ccard-cover--tone2{background:var(--green);color:var(--cream)}
.ccard-cover--tone3{background:var(--lime);color:var(--ink)}
.ccard-cover--tone4{background:var(--mint);color:var(--green)}
.ccard-cover--tone5{background:var(--orange);color:var(--ink)}
.ccard-level{position:absolute;top:14px;left:16px;padding:4px 9px;border:1px solid currentColor;border-radius:100px;font-size:11px;font-weight:700;letter-spacing:.08em}
.ccard-symbol{font-family:"Space Grotesk";font-size:clamp(64px,6.4vw,96px);font-weight:600;line-height:.8;letter-spacing:-.07em;transition:transform .35s cubic-bezier(.2,.7,.2,1);transform-origin:left bottom}
.ccard-link:hover .ccard-symbol{transform:scale(1.06)}
.ccard-subject{margin-top:10px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.ccard-body{display:flex;flex-direction:column;gap:7px;flex:1;padding:16px 18px 18px}
.ccard-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0;font-family:"Space Grotesk";font-size:18px;font-weight:600;line-height:1.22;letter-spacing:-.03em}
.ccard-teacher{font-size:13px;color:var(--muted)}
.ccard-badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:4px}
.ccard-badges:empty{display:none}
.ccard-rating{font-size:13px;color:var(--muted)}
.ccard-rating b{color:var(--orange)}
.ccard-badge{padding:3px 8px;border-radius:4px;background:var(--sage);font-size:11px;font-weight:700;color:var(--green)}
.ccard-badge--live{background:var(--lime);color:var(--ink)}
.ccard-badge--live:before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--orange);vertical-align:1px;animation:pulse 1.6s infinite}
.ccard-meta{font-size:13px;color:var(--muted)}
.ccard-foot{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:auto;padding-top:12px}
.ccard-price{font-family:"Space Grotesk";font-size:20px;font-weight:700;letter-spacing:-.03em}
.ccard-go{font-size:13px;font-weight:700;color:var(--green);white-space:nowrap}
@media(max-width:1100px){.rail{grid-auto-columns:calc((100% - 2 * var(--gap)) / 3)}}
@media(max-width:820px){.rail{grid-auto-columns:calc((100% - var(--gap)) / 2.15)}}
@media(max-width:560px){.rail{--gap:14px;grid-auto-columns:80%;margin-right:-22px;padding-right:22px;scroll-padding-left:0}.rail-arrows{display:none}.rail-bar{margin:26px 0 20px}.rail-tabs{gap:22px}}
@media(prefers-reduced-motion:reduce){.rail{scroll-behavior:auto}.ccard-link,.ccard-symbol,.ccard-cover--image img{transition:none}.ccard-badge--live:before{animation:none}}

/* --- Catalogue : mêmes cartes que l'accueil, en grille ------------------------ */
.catalog.shell{padding-top:clamp(48px,6vw,88px);padding-bottom:clamp(80px,9vw,130px)}
.catalog-search{display:flex;align-items:center;flex:0 1 380px;gap:8px;padding:6px 6px 6px 18px;border:1px solid var(--ink);border-radius:100px;background:var(--paper)}
.catalog-search:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--mint)}
.catalog-search input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:15px;color:var(--ink)}
.catalog-search input:focus{outline:none}
.catalog-search button{flex:none;width:40px;height:40px;border:0;border-radius:50%;background:var(--ink);color:var(--cream);font-size:16px;cursor:pointer}
.catalog-search button:hover{background:var(--green)}
.rail-tabs a{flex:none;margin-bottom:-1px;padding:12px 0 13px;border-bottom:2px solid transparent;font-size:14px;font-weight:700;color:var(--muted);white-space:nowrap}
.rail-tabs a:hover{color:var(--ink)}
.rail-tabs a.active{color:var(--ink);border-bottom-color:var(--ink)}
.catalog-live{flex:none;margin-bottom:8px;padding:8px 14px;border:1px solid var(--ink);border-radius:100px;font-size:13px;font-weight:700;white-space:nowrap}
.catalog-live:before{content:"";display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--orange);vertical-align:1px}
.catalog-live:hover,.catalog-live.active{background:var(--lime)}
.catalog .catalog-count{margin:26px 0 20px}
.cgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 20px}
.cgrid .ccard{scroll-snap-align:none}
@media(max-width:1100px){.cgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.cgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-search{flex-basis:100%}}
.rail-tabs{min-width:0}
.catalog-live-short{display:none}
@media(max-width:560px){.cgrid{grid-template-columns:minmax(0,1fr);gap:14px}.catalog-live{padding:7px 12px}.catalog-live-long{display:none}.catalog-live-short{display:inline}
/* Sur téléphone, la carte devient une ligne : couverture à gauche, infos à droite. */
.cgrid .ccard-link{flex-direction:row}.cgrid .ccard-cover{flex:0 0 34%;aspect-ratio:auto;min-height:100%}.cgrid .ccard-cover[class*=tone]{padding:12px}.cgrid .ccard-level{top:10px;left:10px;font-size:10px;padding:3px 7px}.cgrid .ccard-symbol{font-size:46px}.cgrid .ccard-subject{display:none}.cgrid .ccard-body{padding:12px 14px;gap:5px}.cgrid .ccard-title{font-size:16px}.cgrid .ccard-meta,.cgrid .ccard-teacher{font-size:12px}.cgrid .ccard-foot{padding-top:6px}.cgrid .ccard-price{font-size:17px}.cgrid .ccard-go{display:none}}

/* --- Icônes SVG ({% icon %}) ------------------------------------------------ */
.i{display:inline-block;flex:none;width:1em;height:1em;vertical-align:-.14em;overflow:visible}
.i-arrow-up-right,.i-arrow-right,.i-arrow-left{width:.9em;height:.9em;vertical-align:-.08em}

/* Liens du titre et de l'image d'une carte d'article : pas le style du lien « Lire ». */
.news-card h3 a,.news-card .journal-cover{margin-top:0;padding-bottom:0;border-bottom:0;font-size:inherit;font-weight:inherit}
.news-card h3 a:hover{color:var(--green)}
.journal-card h3{font-size:clamp(22px,2vw,28px);line-height:1.12;letter-spacing:-.045em}

/* --- Fiche formation -----------------------------------------------------------
   Structure éprouvée (bandeau, chiffres clés, carte d'achat collante, programme
   en accordéon) avec l'identité Intercours : bandeau encre, couverture
   typographique, citron pour les signaux. */
.cdx-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:0 clamp(32px,4vw,64px)}
.cdx-hero{background:var(--ink);color:var(--cream)}
.cdx-hero .cdx-grid{padding-top:clamp(36px,5vw,64px);padding-bottom:clamp(64px,7vw,96px)}
.cdx-hero-main{grid-column:1}
.cdx-crumbs{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:13px;font-weight:700;color:var(--lime)}
.cdx-crumbs a:hover{text-decoration:underline}
.cdx-crumbs span{color:#8fa197}
.cdx-title{margin:18px 0 0;font-family:"Space Grotesk";font-size:clamp(34px,4.4vw,60px);font-weight:600;line-height:1.02;letter-spacing:-.055em}
.cdx-subtitle{max-width:62ch;margin:16px 0 0;font-size:clamp(16px,1.4vw,19px);line-height:1.55;color:#d6ddd3}
.cdx-badges{display:flex;gap:8px;margin:20px 0 0}
.cdx-by{margin:18px 0 0;font-size:14px;color:#c9d2c6}
.cdx-by a,.cdx-by strong{color:var(--lime);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.cdx-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin:16px 0 0;padding:0;list-style:none;font-size:13px;color:#c9d2c6}
.cdx-meta li{display:inline-flex;align-items:center;gap:7px}
.cdx-body{padding-bottom:clamp(80px,9vw,130px)}
.cdx-main{grid-column:1;min-width:0}
.cdx-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:-44px;position:relative;z-index:1;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px -24px #18252155}
.cdx-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:20px 12px;text-align:center}
.cdx-stat+.cdx-stat{border-left:1px solid var(--line)}
.cdx-stat strong{font-family:"Space Grotesk";font-size:28px;font-weight:700;line-height:1;letter-spacing:-.04em}
.cdx-stat span{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
a.cdx-stat:hover span:last-child{color:var(--green);text-decoration:underline}
.cdx-stat .stars{font-size:13px}
.cdx-h2{margin:0 0 20px;font-family:"Space Grotesk";font-size:clamp(24px,2.3vw,30px);font-weight:600;letter-spacing:-.04em}
.cdx-section{margin-top:clamp(44px,5vw,64px)}
.cdx-box{margin-top:clamp(36px,4vw,48px);padding:26px 28px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.cdx-checks{display:grid;grid-template-columns:1fr 1fr;gap:12px 32px;margin:0;padding:0;list-style:none}
.cdx-checks li,.cdx-includes li{display:flex;gap:12px;font-size:15px;line-height:1.5}
.cdx-checks .i{margin-top:.2em;color:var(--green)}
.cdx-includes{display:grid;grid-template-columns:1fr 1fr;gap:12px 32px;margin:0;padding:0;list-style:none}
.cdx-includes .i{margin-top:.2em;color:var(--muted)}
.cdx-program-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;font-size:14px;color:var(--muted)}
.cdx-expand{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--green);cursor:pointer}
.cdx-program{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cdx-module+.cdx-module{border-top:1px solid var(--line)}
.cdx-module summary{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--sage);cursor:pointer;list-style:none}
.cdx-module summary::-webkit-details-marker{display:none}
.cdx-module summary:hover{background:#dde3c9}
.cdx-module summary .i{transition:transform .2s}
.cdx-module[open] summary .i{transform:rotate(180deg)}
.cdx-module-title{flex:1;font-weight:700;font-size:15px}
.cdx-module-meta{font-size:13px;color:var(--muted);white-space:nowrap}
.cdx-module ul{margin:0;padding:8px 20px 12px;list-style:none;background:var(--paper)}
.cdx-lesson{display:flex;align-items:center;gap:14px;padding:10px 0;font-size:14px}
.cdx-lesson-icon{display:grid;place-items:center;flex:none;width:18px;color:var(--muted)}
.cdx-lesson-title{flex:1;min-width:0}
a.cdx-lesson-title{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.cdx-preview{font-size:12px;font-weight:700;color:var(--green);background:var(--lime);padding:2px 8px;border-radius:4px}
.cdx-lock{color:#a0a99c}
.cdx-lesson-time{flex:none;min-width:52px;text-align:right;font-size:13px;color:var(--muted)}
.cdx-bullets{margin:0;padding-left:20px;line-height:1.7}
.cdx-desc{max-height:220px;overflow:hidden;line-height:1.75}
.cdx-desc.is-clamped{-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.cdx-desc.is-open{max-height:none;-webkit-mask-image:none;mask-image:none}
.cdx-desc p{margin:0 0 1em}
.cdx-more{display:inline-flex;align-items:center;gap:6px;margin-top:8px;border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--green);cursor:pointer}
.cdx-more[aria-expanded=true] .i{transform:rotate(180deg)}
.cdx-muted{margin:0;color:var(--muted);font-size:14px}
.cdx-teacher+.cdx-teacher{margin-top:32px}
.cdx-teacher-head{display:flex;align-items:center;gap:18px}
.cdx-teacher h3{margin:0 0 4px;font-family:"Space Grotesk";font-size:22px;letter-spacing:-.03em}
.cdx-teacher h3 a{color:var(--green);text-decoration:underline;text-underline-offset:4px}
.cdx-avatar{display:grid;place-items:center;flex:none;width:88px;height:88px;border-radius:50%;object-fit:cover;background:var(--lime);font-family:"Space Grotesk";font-size:34px;font-weight:700}
.cdx-avatar--sm{width:40px;height:40px;font-size:16px;background:var(--sage)}
.cdx-teacher-stats{display:flex;flex-wrap:wrap;gap:8px 24px;margin:16px 0 0;padding:0;list-style:none;font-size:14px}
.cdx-teacher-stats li{display:inline-flex;align-items:center;gap:8px}
.cdx-teacher-stats .i-star{color:var(--orange)}
.cdx-teacher-bio{margin-top:14px;line-height:1.7;color:#3d4b44}
.cdx-score{display:inline-flex;align-items:center;gap:6px;color:var(--ink)}
.cdx-score .i{color:var(--orange)}
.cdx-reviews{display:grid;grid-template-columns:1fr 1fr;gap:20px 32px;margin:0;padding:0;list-style:none}
.cdx-review{padding-top:18px;border-top:1px solid var(--line)}
.cdx-review-head{display:flex;gap:12px;align-items:center}
.cdx-review-head strong{display:block;margin-bottom:2px;font-size:14px}
.cdx-review-head .stars{font-size:12px;margin-right:6px}
.cdx-review-head .cdx-muted{font-size:12px}
.cdx-review p{margin:12px 0 0;line-height:1.65;font-size:15px}
.cdx-aside{grid-column:2;grid-row:1/span 2}
.cdx-ticket{position:sticky;top:24px;margin-top:-330px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 24px 50px -28px #18252166}
.cdx-ticket .ccard-cover[class*=tone]{aspect-ratio:16/9}
.cdx-ticket-body{padding:22px 24px 24px}
.cdx-ticket .ticket-price{margin:0;font-size:clamp(34px,3vw,44px)}
.cdx-ticket .btn{margin-top:10px}
.cdx-mobilebar{display:none}
@media(max-width:980px){.cdx-grid{grid-template-columns:minmax(0,1fr)}.cdx-aside{grid-column:1;grid-row:2;margin-top:36px}.cdx-ticket{position:static;margin-top:0}.cdx-ticket .ccard-cover{display:none}
.cdx-mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 22px calc(12px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -10px 30px -20px #18252188}
.cdx-mobilebar strong{display:block;font-family:"Space Grotesk";font-size:20px}.cdx-mobilebar span{font-size:12px;color:var(--muted)}.cdx-mobilebar .btn{padding:13px 22px}
.cdx-body{padding-bottom:120px}}
@media(max-width:640px){.cdx-stats{margin-top:-32px}.cdx-stat{padding:16px 6px}.cdx-stat strong{font-size:22px}.cdx-stat span{font-size:12px;flex-wrap:wrap;justify-content:center}.cdx-stat span .i{display:none}.cdx-checks,.cdx-includes,.cdx-reviews{grid-template-columns:1fr}.cdx-box{padding:20px}.cdx-module summary{flex-wrap:wrap;padding:16px}.cdx-module-meta{width:100%;padding-left:30px}.cdx-module ul{padding:6px 16px 10px}}

/* Filtres du catalogue : cycles en onglets, classes du cycle en pastilles, matière en liste. */
.catalog-filters{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px}
.grade-chips{display:flex;flex-wrap:wrap;gap:8px}
.grade-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid #c5ccbd;border-radius:100px;font-size:13px;font-weight:700;color:var(--ink);transition:border-color .2s,background .2s}
.grade-chip small{font-size:11px;font-weight:700;color:var(--muted)}
a.grade-chip:hover{border-color:var(--ink)}
.grade-chip.active{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.grade-chip.active small{color:var(--lime)}
.grade-chip.is-empty{color:#a3ab9e;border-style:dashed;cursor:default}
.subject-filter{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:13px;font-weight:700;color:var(--muted)}
.subject-select{position:relative;display:inline-flex;align-items:center}
.subject-select select{min-width:190px;padding:9px 38px 9px 14px;border:1px solid var(--ink);border-radius:100px;background:var(--paper);font:inherit;font-size:14px;font-weight:600;color:var(--ink);-webkit-appearance:none;appearance:none;cursor:pointer}
.subject-select select:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.subject-select .i{position:absolute;right:14px;pointer-events:none}
@media(max-width:560px){.grade-chips{flex-wrap:nowrap;overflow-x:auto;margin-right:-22px;padding-right:22px;scrollbar-width:none}.grade-chips::-webkit-scrollbar{display:none}.grade-chip{flex:none}.subject-filter{margin-left:0;width:100%}.subject-select{flex:1}.subject-select select{width:100%}}

/* --- Page publique d'un enseignant : même grammaire que la fiche formation --- */
.tp-hero{display:flex;align-items:center;gap:clamp(20px,3vw,40px);padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(72px,8vw,104px)}
.tp-avatar{display:grid;place-items:center;flex:none;width:clamp(96px,11vw,160px);height:clamp(96px,11vw,160px);border-radius:50%;object-fit:cover;background:var(--lime);color:var(--ink);font-family:"Space Grotesk";font-size:clamp(40px,5vw,64px);font-weight:700;box-shadow:0 0 0 6px #ffffff14}
.tp-hero .cdx-title{margin-top:12px}
.tp-hero .cdx-crumbs span:last-child{color:#c9d2c6}
.tp-body{padding-bottom:clamp(80px,9vw,130px)}
.tp-stats{max-width:820px}
.tp-about{max-width:820px}
.tp-count{display:inline-grid;place-items:center;min-width:30px;height:30px;margin-left:6px;padding:0 8px;border-radius:100px;background:var(--sage);font-size:15px;vertical-align:4px}
@media(max-width:560px){.tp-hero{flex-direction:column;align-items:flex-start;gap:18px}}

/* --- Profil enseignant dans « Mon compte » ------------------------------------ */
.account-form .teacher-fieldset{margin-top:12px;padding-top:28px;border-top:1px solid var(--line)}
.teacher-fieldset-intro{margin:-8px 0 24px;font-size:14px;line-height:1.6;color:var(--muted)}
.photo-field{display:flex;align-items:center;gap:20px;margin-bottom:24px}
.photo-field>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.photo-field .field-help{flex-basis:100%;margin:0}
.photo-preview{display:grid;place-items:center;flex:none;width:88px;height:88px;border-radius:50%;object-fit:cover;background:var(--lime);font-family:"Space Grotesk";font-size:34px;font-weight:700}
.photo-clear{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer}
.field-label{display:block;font-size:13px;font-weight:700;margin-bottom:10px}
.field-row--3{grid-template-columns:1fr 1.4fr 1.4fr;align-items:end}
.teacher-fieldset .field-opt{display:none}
.check-chips{display:flex;flex-wrap:wrap;gap:8px}
.check-chip{position:relative;cursor:pointer}
.check-chip input{position:absolute;opacity:0;pointer-events:none}
.check-chip span{display:inline-block;padding:7px 13px;border:1px solid #c5ccbd;border-radius:100px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}
.check-chip:hover span{border-color:var(--ink)}
.check-chip input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.check-chip input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}
@media(max-width:720px){.field-row--3{grid-template-columns:1fr}.photo-field{align-items:flex-start}}

.tp-meta{margin-top:14px}
.tp-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.tp-links a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid #ffffff40;border-radius:100px;font-size:13px;font-weight:700;color:var(--cream)}
.tp-links a:hover{border-color:var(--lime);color:var(--lime)}
.tp-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,56px);max-width:1100px}
.tp-info .cdx-section{margin-top:0}
.tp-chips{display:flex;flex-wrap:wrap;gap:8px}
.tp-chips span{padding:6px 12px;border-radius:100px;background:var(--sage);font-size:13px;font-weight:700;color:var(--green)}
.tp-chips+.cdx-h3,.cdx-checks+.cdx-h3{margin-top:24px}
.cdx-checks--single{grid-template-columns:1fr}
.tp-chips{margin:0}
.cdx-h3{margin:0 0 12px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
@media(max-width:820px){.tp-info{grid-template-columns:1fr}}

@media(max-width:640px){.studio-home-head{flex-direction:column;align-items:flex-start;gap:24px}.studio-home-head .desk-actions{width:100%}}

/* ==========================================================================
   Plume (éditeur des leçons et articles) aux couleurs d'Intercours.
   Réglages par variables : voir la documentation de Plume, « Personnalisation ».
   html:root et .lesson-editor : plus précis que les valeurs par défaut de plume.css, chargé après.
   ========================================================================== */
html:root{
  --plume-ink:var(--ink);--plume-muted:var(--muted);--plume-accent:var(--green);--plume-accent-soft:var(--sage);
  --plume-line:#c7cdbf;--plume-code-bg:var(--sage);
  --plume-font-heading:"Space Grotesk",sans-serif;--plume-font-body:"DM Sans",sans-serif;--plume-size:18px;
  --plume-callout-bg:#e7efdc;--plume-callout-strong-bg:var(--ink);--plume-callout-strong-ink:var(--cream);
  --plume-quote-open:"«\00a0";--plume-quote-close:"\00a0»";
  --plume-ui-bg:var(--ink);--plume-ui-ink:var(--cream);--plume-ui-hover:#2e3d38;--plume-ui-active:var(--lime);--plume-ui-active-ink:var(--ink);
  --plume-paper:#fff;--plume-paper-line:#d3d8cb;
}
.lesson-editor{--plume-sticky-top:77px}
.lesson-editor .plume-state{display:none} /* l'état d'enregistrement est affiché dans l'en-tête de la page */
.lesson-editor .plume-status{justify-content:flex-end}
/* Dans l'éditeur, les titres, encadrés et citations ressemblent à la leçon publiée */
.lesson-editor .plume-surface h2{font-size:clamp(30px,3.4vw,42px);letter-spacing:-.06em;line-height:1.05;font-weight:600}
.lesson-editor .plume-surface h3{font-size:clamp(23px,2.4vw,28px);letter-spacing:-.045em;font-weight:600;color:var(--green)}
.lesson-editor .plume-surface h4{font-family:"DM Sans",sans-serif;font-size:15px}
.lesson-editor .plume-surface ul li::marker{color:var(--orange)}
.lesson-editor .plume-content .callout--exemple{background:#f3efe2;border-left-color:#7d6a2a}.lesson-editor .plume-content .callout--exemple::before{color:#7d6a2a}
.lesson-editor .plume-content .callout--attention{background:#f9e3d9;border-left-color:#b2482a}
.lesson-editor .plume-content .callout--astuce{background:#eef6c9;border-left-color:#5d7412}.lesson-editor .plume-content .callout--astuce::before{color:#5d7412}
.lesson-editor .plume-content .callout--retenir{border-left-color:var(--lime)}.lesson-editor .plume-content .callout--retenir::before{color:var(--lime)}
.lesson-editor .plume-content blockquote.quote--line{border-left:4px solid var(--lime)}

/* Fiche formation : note dans l'en-tête, sujets associés, suites de listes, aperçu, partage, formations voisines */
.cdx-hero-rating{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:14px 0 0;font-size:14px;color:#e7ecdc}
.cdx-hero-rating b{font-family:"Space Grotesk";font-size:17px;color:var(--lime)}
.cdx-hero-rating a{color:#c9d2c6;text-decoration:underline;text-underline-offset:3px}
.cdx-hero-rating span{display:inline-flex;align-items:center;gap:6px}
.cdx-topics{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.cdx-topics a{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid var(--ink);border-radius:100px;font-size:14px;font-weight:700;transition:background .2s,color .2s}
.cdx-topics a:hover{background:var(--ink);color:var(--cream)}
.cdx-show-more{display:block;width:100%;margin-top:14px;min-height:46px;border:1px solid var(--ink);border-radius:8px;background:transparent;font:inherit;font-weight:700;cursor:pointer;transition:background .2s,color .2s}
.cdx-show-more:hover{background:var(--ink);color:var(--cream)}
.cdx-cover{position:relative}
.cdx-cover-link{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:linear-gradient(180deg,#18252100 30%,#182521cc);color:#fff;font-weight:700;font-size:15px}
.cdx-cover-play{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#fff;color:var(--ink);transition:transform .25s}
.cdx-cover-play .i{width:26px;height:26px;margin-left:3px}
.cdx-cover-link:hover .cdx-cover-play{transform:scale(1.08)}
.cdx-cover-label{position:absolute;bottom:14px}
.cdx-share{display:flex;align-items:center;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;font-weight:700}
.cdx-share>span:first-child{margin-right:4px}
.cdx-share-btn{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.cdx-share-btn:hover{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.cdx-share-btn .i{width:18px;height:18px}
.cdx-share-done{font-weight:500;color:var(--green)}
.cdx-related{padding-top:20px;padding-bottom:90px;border-top:1px solid var(--line)}
.cdx-related .cdx-h2{margin-top:50px}
@media(max-width:980px){.cdx-cover-link{position:static;aspect-ratio:auto;flex-direction:row;justify-content:flex-start;padding:12px 16px;background:var(--ink)}.cdx-cover-play{width:38px;height:38px}.cdx-cover-play .i{width:16px;height:16px}.cdx-cover-label{position:static}}

/* ==========================================================================
   Contenus protégés (leçons, articles, ressources) : pas de sélection ni de copie ;
   à l'impression (ou en PDF), la page est blanche, avec seulement l'avis .print-notice.
   ========================================================================== */
.print-notice{display:none}
body[data-protected] main{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
body[data-protected] main :is(input,textarea,select,[contenteditable]){-webkit-user-select:text;user-select:text}
body[data-protected] main img{-webkit-user-drag:none}
.protect-toast{position:fixed;left:50%;bottom:24px;z-index:300;transform:translateX(-50%);max-width:calc(100vw - 32px);background:var(--ink);color:var(--cream);padding:12px 20px;border-radius:100px;font-size:14px;font-weight:700;box-shadow:0 16px 40px -16px #18252199;opacity:0;transition:opacity .25s;pointer-events:none}
.protect-toast.is-on{opacity:1}
@media print{
  @page{margin:18mm}
  body[data-protected]{background:#fff!important}
  body[data-protected]>*:not(.print-notice){display:none!important}
  body[data-protected] .print-notice{display:block!important;max-width:520px;margin:90px auto 0;color:#000;text-align:center;font-family:"DM Sans",sans-serif}
  .print-notice img{display:block;width:auto;height:44px;margin:0 auto 46px}
  .print-notice-kicker{margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
  .print-notice h1{margin:0 0 22px;font:600 26px/1.2 "Space Grotesk",sans-serif}
  .print-notice p{margin:0 0 14px;font-size:14px;line-height:1.6}
  .print-notice-url strong{word-break:break-all}
  .print-notice-meta{margin-top:30px!important;padding-top:14px;border-top:1px solid #999;font-size:12px!important;color:#444}
}

/* ==========================================================================
   V2 : suivi pédagogique (familles, parcours, accompagnements, bilans)
   ========================================================================== */
.family-code{margin:14px 0 6px;padding:16px;border:2px dashed var(--green);border-radius:10px;text-align:center;font:700 30px/1 "Space Grotesk";letter-spacing:.12em;color:var(--green);-webkit-user-select:all;user-select:all}
.nav-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:4px;border-radius:100px;background:var(--orange);color:var(--ink);font-size:11px;font-weight:700}

/* Parcours */
.pw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px;margin-top:28px}
.pw-card{display:flex;flex-direction:column;gap:10px;padding:26px;background:var(--paper);border:1px solid var(--line);transition:transform .25s,box-shadow .25s,border-color .25s}
.pw-card:hover{transform:translateY(-4px);border-color:var(--ink);box-shadow:8px 8px 0 var(--lime)}
.pw-card .status{align-self:start}
.path-kind{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}
.path-title{font-family:"Space Grotesk";font-size:26px;font-weight:600;letter-spacing:-.05em;line-height:1.08}
.path-summary{color:var(--muted);font-size:14px;line-height:1.55}
.path-meta{margin-top:auto;font-size:13px;font-weight:700}
.path-demo{display:inline-flex;gap:8px;align-items:center;background:#f1e8d7;padding:10px 14px;font-size:13px;margin:12px 0 0}
.path-progress{margin:0 0 32px}.path-progress p{margin:8px 0 0;font-size:14px}
.path-progress-bar{height:10px;background:var(--sage);border-radius:10px;overflow:hidden}.path-progress-bar span{display:block;height:100%;background:var(--green);border-radius:10px;transition:width .6s}
.path-objectives{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:10px}.path-objectives li{display:flex;gap:10px;line-height:1.5}.path-objectives .i{color:var(--green);flex:none;margin-top:3px}
.path-steps{list-style:none;margin:0;padding:0;position:relative}
.path-steps:before{content:"";position:absolute;left:19px;top:20px;bottom:20px;width:2px;background:var(--line)}
.path-step{display:flex;gap:18px;padding:14px 0;position:relative}
.path-step-dot{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:2px solid var(--line);font-weight:700;font-size:14px;z-index:1}
.path-step--done .path-step-dot{background:var(--green);border-color:var(--green);color:var(--lime)}
.path-step--in_progress .path-step-dot{border-color:var(--green);color:var(--green)}
.path-step--milestone .path-step-dot{background:var(--lime);border-color:var(--ink)}
.path-step--locked{opacity:.55}
.path-step-body{display:flex;flex-direction:column;gap:4px;min-width:0;padding-top:2px}
.path-step-kind{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.path-step-title{font-family:"Space Grotesk";font-size:20px;font-weight:600;letter-spacing:-.03em;overflow-wrap:anywhere}
.path-step-desc,.path-step-detail{font-size:14px;color:var(--muted);line-height:1.5}
.bo-inline{display:inline-flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.bo-inline .btn{padding:6px 12px;font-size:12px}.bo-inline input{padding:6px 10px;font:inherit;font-size:13px;border:1px solid var(--line);max-width:100%}
@media(prefers-reduced-motion:reduce){.pw-card:hover{transform:none}}

/* Accompagnements, documents scolaires, comptes rendus */
.method-list{padding-left:1.2em;line-height:1.7;margin:0}
.doc-list{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px}
.doc-item{display:flex;gap:12px;align-items:center;min-width:0}
.doc-thumb{flex:none;width:52px;height:52px;border-radius:8px;overflow:hidden;background:var(--sage);display:grid;place-items:center;color:var(--green)}
.doc-thumb img{width:100%;height:100%;object-fit:cover}
.doc-body{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.doc-body small{color:var(--muted);font-size:12px;margin-top:2px}
.doc-upload .field{position:relative}.doc-upload input[type=file]{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;overflow:hidden}
.doc-drop{display:flex!important;flex-direction:column;align-items:center;gap:6px;padding:30px 16px;border:2px dashed var(--green);border-radius:12px;background:var(--paper);cursor:pointer;text-align:center;color:var(--green)}
.doc-drop .i{width:30px;height:30px}.doc-drop small{color:var(--muted);font-weight:400}
.doc-drop:hover{background:var(--mint)}.doc-upload .field:has(input[type=file]:focus-visible) .doc-drop{outline:2px solid var(--green);outline-offset:3px}
.doc-picked{list-style:none;padding:0;margin:8px 0 0;font-size:13px;color:var(--muted)}
.doc-files{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:18px;margin-bottom:30px}
.doc-file{margin:0}.doc-file img{width:100%;height:auto;border:1px solid var(--line);border-radius:8px;display:block}
.doc-file figcaption{font-size:12px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}
.doc-file-link{display:flex;gap:10px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--paper);overflow-wrap:anywhere}
.form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.report-view{max-width:820px;margin-bottom:60px}
.report-assessment{display:inline-block;background:var(--lime);padding:8px 14px;border-radius:100px;font-weight:700;font-size:14px}
.report-dl{margin:0}.report-dl dt{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-top:22px}
.report-dl dd{margin:6px 0 0;line-height:1.65;overflow-wrap:anywhere}
.package-box{padding:12px 0;border-bottom:1px solid var(--line)}
.status--planned,.status--confirmed{background:var(--mint);color:var(--green)}
.status--done{background:var(--green);color:var(--lime)}
.status--cancelled,.status--postponed,.status--absent_student,.status--absent_tutor{background:#f1e8d7;color:#8a4b14}
.status--draft{background:var(--sage)}

/* En-tête : menus déroulants (Ressources, compte) */
.nav{align-items:center}
.dd{position:relative}
.dd-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;cursor:pointer;font:inherit;font-weight:700;color:inherit}
.dd-btn .i{width:14px;height:14px;transition:transform .25s}
.dd.open>.dd-btn .i{transform:rotate(180deg)}
.dd-btn:hover,.dd-btn[data-current]{color:var(--green)}
.dd-panel{position:absolute;top:calc(100% + 14px);left:-18px;z-index:40;min-width:250px;display:flex;flex-direction:column;padding:10px;background:var(--paper);border:1px solid var(--ink);border-radius:14px;box-shadow:8px 8px 0 var(--lime);visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .2s,transform .2s,visibility 0s .2s}
.dd.open>.dd-panel{visibility:visible;opacity:1;transform:none;transition:opacity .2s,transform .2s}
.dd-panel--right{left:auto;right:0}
.dd-panel a,.dd-logout{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:9px;font-size:14px;font-weight:600;color:var(--ink);text-align:left}
.dd-panel a:hover,.dd-panel a:focus-visible,.dd-logout:hover{background:var(--sage);color:var(--green)}
.dd-panel a[aria-current=page]{color:var(--green)}
.dd-panel a small{font-size:12px;font-weight:400;color:var(--muted)}
.dd-panel a .nav-count{margin:0}
.dd-panel a:has(.nav-count){flex-direction:row;align-items:center;justify-content:space-between}
.dd-head{margin:0 0 6px;padding:8px 12px 12px;border-bottom:1px solid var(--line);font-weight:700;font-size:14px;overflow-wrap:anywhere}
.dd-head small{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:2px}
.dd-sep{margin:8px 0 2px;padding:10px 12px 4px;border-top:1px solid var(--line);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.dd-panel form{margin:4px 0 0;border-top:1px solid var(--line);padding-top:4px}
.dd-logout{width:100%;background:none;border:0;cursor:pointer;font:inherit;font-size:14px;font-weight:600}
.dd--account .nav-cta{gap:8px;border:0;cursor:pointer;color:white;background:var(--ink);padding:14px 22px;font-size:13px}.dd--account .nav-cta:hover,.dd--account.open .nav-cta{background:var(--green);color:white}
.dd--account .nav-cta .nav-count{margin:0}
.dd--account .dd-panel{min-width:270px;max-width:calc(100vw - 32px)}
@media(max-width:800px){
  .nav{align-items:stretch}
  .nav .dd{width:100%}
  .nav .dd-btn{display:none}
  .nav .dd-panel{position:static;visibility:visible;opacity:1;transform:none;border:0;box-shadow:none;background:none;padding:0;min-width:0}
  .nav .dd-panel a{padding:16px 0;border-bottom:1px solid var(--line);border-radius:0;font-size:16px}
  .nav .dd-panel a:hover{background:none}
}
@media(max-width:440px){
  .top-actions .dd--account .nav-cta{display:inline-flex;padding:9px}
  .dd--account .dd-panel{right:-58px}
  .dd--account .dd-label,.dd--account .nav-cta>.i{display:none}
  .dd--account .nav-cta .avatar{width:26px;height:26px;margin:0;font-size:12px}
  .dd--account .nav-cta .nav-count{position:absolute;top:-6px;right:-6px}
  .dd--account .nav-cta{position:relative}
}
@media(prefers-reduced-motion:reduce){.dd-panel,.dd.open>.dd-panel{transition:none}}
/* Barre de gestion : groupes déroulants */
.bo-nav{overflow:visible;flex-wrap:wrap;row-gap:6px;align-items:center}
.bo-nav .dd-btn{color:#c7d0c9;padding:6px 0;border-bottom:2px solid transparent}
.bo-nav .dd-btn:hover{color:var(--cream)}.bo-nav .dd-btn[data-current]{color:var(--lime);border-color:var(--lime)}
.bo-nav .dd-panel{white-space:normal;top:calc(100% + 10px)}
.bo-nav .dd-panel a{border-bottom:0;padding:10px 12px;color:var(--ink);font-size:14px}
.bo-nav .dd-panel a[aria-current]{color:var(--green);border:0}
@media(max-width:800px){
  .bo-bar{flex-direction:column;align-items:flex-start;gap:6px;padding-top:10px;padding-bottom:10px}
  .bo-nav{position:relative;gap:6px 18px;width:100%}
  .bo-nav .dd{position:static}
  .bo-nav .dd-panel{left:0;right:0;min-width:0}
}

/* Espace parents */
.child-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:18px}
.child-card{display:flex;flex-direction:column;gap:12px;padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:16px;transition:box-shadow .25s,border-color .25s}
.child-card:hover{border-color:var(--ink);box-shadow:8px 8px 0 var(--lime)}
.child-card .btn{margin-top:auto}
.child-head{display:flex;gap:14px;align-items:center}.child-head small{color:var(--muted);font-size:13px}
.child-avatar{width:48px;height:48px;border-radius:50%;background:var(--lime);display:grid;place-items:center;font:700 22px "Space Grotesk";flex:none}
.child-name{margin:0;font-family:"Space Grotesk";font-size:24px;letter-spacing:-.04em;line-height:1.1}
.child-line{display:flex;gap:10px;margin:0;font-size:14px;line-height:1.5}.child-line .i{flex:none;margin-top:3px;color:var(--green)}
.child-line small{display:block;color:var(--muted)}
.timeline{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:12px}
.timeline li{display:flex;gap:14px;align-items:flex-start;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:12px}
.tl-date{flex:none;width:52px;text-align:center;font-size:12px;text-transform:uppercase;color:var(--muted);line-height:1.1}.tl-date strong{display:block;font:600 26px "Space Grotesk";color:var(--ink)}
.tl-body{display:flex;flex-direction:column;gap:4px;min-width:0}.tl-body small{color:var(--muted)}.tl-body .status{align-self:start}
.hours{margin-top:14px}.hours p{margin:0 0 6px}

/* Compétences, diagnostics, bilans */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px;margin-bottom:24px}
.stat-row>div{padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:4px}
.stat-row strong{font:600 30px "Space Grotesk";letter-spacing:-.04em}.stat-row span{font-size:13px;color:var(--muted)}
.skill-list{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:10px}
.skill{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.skill-state{flex:none;width:118px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 8px;border-radius:8px;text-align:center;background:var(--sage);color:var(--muted)}
.skill--mastered .skill-state{background:var(--green);color:var(--lime)}
.skill--in_progress .skill-state{background:var(--mint);color:var(--green)}
.skill--to_strengthen .skill-state{background:#f1e8d7;color:#8a4b14}
.skill-body{display:flex;flex-direction:column;gap:3px;min-width:0;overflow-wrap:anywhere}.skill-body small{color:var(--muted)}.skill-body em{font-size:13px}
@media(max-width:440px){.skill{flex-direction:column}.skill-state{width:auto}}
.compare{width:100%;border-collapse:collapse;font-size:13px}.compare th,.compare td{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.delta-up{color:var(--green);font-weight:700}.delta-down{color:#8a4b14;font-weight:700}
.diag{max-width:820px;margin-bottom:60px}
.skill-subject{font:600 18px "Space Grotesk";margin:18px 0 10px}
.todo-card{display:grid;gap:10px;margin-bottom:24px}
.todo-card a{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;padding:16px 18px;background:var(--lime);border-radius:14px;border:1px solid var(--ink)}
.todo-card a small{grid-column:1;color:var(--ink);opacity:.75}.todo-card a .i{grid-row:1/3;grid-column:2}
.space-main>.side-card,.space-main>form.side-card{margin:22px 0 36px}
.space-main>.bo-inline{margin:8px 0 28px}

/* Accueil « À chacun son chemin » : carte du milieu décalée vers le bas (desktop) */
@media(min-width:951px){
  #univers .path-grid{padding-bottom:48px}
  #univers .path-card{position:relative}
  #univers .path-card:nth-child(2){top:48px}
}

/* Article du journal : lettrine, partage en rail sticky, sommaire sticky */
.article-page{max-width:1240px;margin:0 auto;padding:60px clamp(22px,4vw,48px) 120px}
.art-header{max-width:820px;margin:0 auto}
.art-byline{display:flex;align-items:center;gap:10px;margin:0 0 26px;font-size:14px;color:var(--muted)}
.art-byline strong{color:var(--ink)}
.art-layout{display:grid;grid-template-columns:64px minmax(0,720px) minmax(0,260px);justify-content:center;gap:clamp(24px,3.5vw,56px);align-items:start;margin-top:10px}
.art-main{min-width:0}
.art-share-top{display:none}
.art-rail{position:sticky;top:110px}
.article-share--rail{flex-direction:column;align-items:center;gap:10px;margin:0;padding:0;border:0}
.article-share--rail .article-share__label{writing-mode:vertical-rl;rotate:180deg;margin:0 0 6px;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.article-share--rail .article-share__actions{flex-direction:column;gap:10px}
.article-share--rail .share-button{width:44px;height:44px;border-color:var(--ink)}
.article-share--rail .share-button:hover{transform:scale(1.08)}
.article-share--rail .article-share__status{writing-mode:vertical-rl;rotate:180deg;font-size:11px}
.art-dropcap p.dropcap::first-letter{float:left;font-family:"Space Grotesk",sans-serif;font-weight:700;font-size:5.2em;line-height:.8;margin:.07em .12em 0 0;color:var(--green)}
.art-toc{position:sticky;top:110px;border-top:2px solid var(--ink);padding-top:18px}
.art-toc small{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}
.art-toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.art-toc li{counter-increment:t}
.art-toc ol a{display:grid;grid-template-columns:28px 1fr;gap:6px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.35;color:var(--muted);transition:color .2s,padding .3s}
.art-toc ol a:before{content:counter(t,decimal-leading-zero);font:700 12px "Space Grotesk";color:#9aa79c;transition:color .2s}
.art-toc ol a:hover,.art-toc ol a.is-active{color:var(--ink)}
.art-toc ol a.is-active{padding-left:8px;font-weight:700}
.art-toc ol a.is-active:before{color:var(--orange)}
.art-toc-cta{margin-top:24px;background:var(--lime);padding:20px;border-radius:14px}
.art-toc-cta p{margin:0 0 14px;font:600 19px/1.2 "Space Grotesk";letter-spacing:-.03em}
.lesson-prose h2[id]{scroll-margin-top:100px}
@media(max-width:1180px){.art-layout{grid-template-columns:64px minmax(0,720px)}.art-toc{display:none}}
@media(max-width:800px){.art-layout{grid-template-columns:minmax(0,1fr)}.art-rail{display:none}.art-share-top{display:block}.article-page{padding-top:36px}}
@media(prefers-reduced-motion:reduce){.art-toc ol a{transition:none}}
:root{}
.legal-head{padding-top:76px;padding-bottom:38px}.legal-updated{margin-top:22px;color:#59645c;font-size:14px}.legal-wrap{max-width:1000px;padding-bottom:100px}.legal-copy{max-width:860px}.legal-copy h2{margin-top:52px}.legal-copy p,.legal-copy li{font-size:16px;line-height:1.8}.legal-notice{margin-top:38px;padding:20px 22px;background:#e9e8dc;border-left:4px solid var(--orange);font-size:15px!important}.footer-links{display:flex;gap:18px;flex-wrap:wrap;justify-content:flex-end}.footer-links a{font-size:12px}@media(max-width:800px){.footer-links{justify-content:flex-start;gap:12px 18px}}

/* Bouton WhatsApp flottant : entrée en rebond, onde lente, étiquette au survol. */
.wa-fab{--wa:#25d366;position:fixed;width:auto;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:12px;text-decoration:none;animation:wa-in .6s cubic-bezier(.34,1.56,.64,1) .8s both}
.wa-fab-btn{position:relative;display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--wa);color:#fff;box-shadow:0 12px 30px -10px #128c4ecc,0 2px 6px #0002;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s}
.wa-fab-btn:before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--wa);z-index:-1;animation:wa-pulse 3.2s ease-out 2s infinite}
.wa-fab-label{background:var(--ink);color:var(--cream);padding:11px 16px;border-radius:100px;font-size:13px;font-weight:500;white-space:nowrap;box-shadow:0 12px 30px -14px #182521aa;opacity:0;transform:translateX(14px) scale(.96);transform-origin:right center;transition:opacity .25s,transform .35s cubic-bezier(.34,1.56,.64,1);pointer-events:none}
.wa-fab-label b{color:var(--lime);font-weight:700}
.wa-fab:hover .wa-fab-btn,.wa-fab:focus-visible .wa-fab-btn{transform:scale(1.08) rotate(-6deg);box-shadow:0 18px 36px -12px #128c4ee6,0 2px 6px #0002}
.wa-fab:hover .wa-fab-label,.wa-fab:focus-visible .wa-fab-label{opacity:1;transform:none}
.wa-fab:hover .wa-fab-phone{animation:wa-ring .5s ease-in-out;transform-box:fill-box;transform-origin:center}
.wa-fab:focus-visible{outline:none}.wa-fab:focus-visible .wa-fab-btn{outline:3px solid var(--ink);outline-offset:3px}
@keyframes wa-in{from{opacity:0;transform:translateY(24px) scale(.4)}}
@keyframes wa-pulse{0%{transform:scale(1);opacity:.55}70%,100%{transform:scale(1.7);opacity:0}}
@keyframes wa-ring{25%{rotate:-12deg}50%{rotate:10deg}75%{rotate:-6deg}}
@media(max-width:980px){body:has(.cdx-mobilebar) .wa-fab{bottom:calc(88px + env(safe-area-inset-bottom))}}
@media(max-width:640px){.wa-fab-btn{width:54px;height:54px}.wa-fab-label{display:none}}
@media(prefers-reduced-motion:reduce){.wa-fab,.wa-fab-btn:before,.wa-fab:hover .wa-fab-phone{animation:none}}
@media print{.wa-fab{display:none}}

/* Séances : agenda Google de l'enseignant (réunions Meet protégées) et présences. */
.meet-link{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 28px;padding:18px 20px;background:var(--mint);border-radius:14px}
.meet-link>div{flex:1 1 280px}.meet-link strong{display:block;font-family:"Space Grotesk";font-size:17px;letter-spacing:-.02em}
.meet-link small{display:block;margin-top:4px;color:var(--muted);font-size:13px;line-height:1.5}
.meet-link-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:var(--green);color:var(--lime)}
.meet-link-actions{display:flex;align-items:center;gap:14px}.meet-link-actions form{display:inline}
.meet-link--error{background:#f6d4c5}.meet-link--error .meet-link-icon{background:var(--error);color:#fff}
.data-table tr.is-muted td{color:var(--muted)}

/* En-tête fixe : reste visible pendant le défilement, fond étendu sur toute la largeur. */
:root{--header-h:88px}
@media(max-width:800px){:root{--header-h:72px}}
html{scroll-padding-top:calc(var(--header-h) + 16px)}
body>.top{position:sticky;top:0;z-index:45;background:var(--cream);transition:border-color .25s}
body>.top:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--cream);box-shadow:-100vmax 0 0 var(--cream),100vmax 0 0 var(--cream);transition:box-shadow .25s}
body>.top.is-scrolled{border-bottom-color:var(--ink)}
body>.top.is-scrolled:before{box-shadow:-100vmax 0 0 var(--cream),100vmax 0 0 var(--cream),0 16px 22px -20px #18252166}
@media(max-width:800px){body>.top .nav{max-height:calc(100vh - var(--header-h));overflow-y:auto}}
.ticket{top:calc(var(--header-h) + 30px)}
.cdx-ticket{top:calc(var(--header-h) + 24px)}
.lesson-side{top:calc(var(--header-h) + 24px)}
.art-rail,.art-toc{top:calc(var(--header-h) + 28px)}
.bo-detail aside{top:calc(var(--header-h) + 20px)}
.lesson-top{top:var(--header-h)}
@media print{body>.top{position:static}body>.top:before{display:none}}

/* Blocs de code Plume aux couleurs d'Intercours */
:root{--plume-code-surface:#182521;--plume-code-head:#22312c;--plume-code-accent:#b9e27a}

/* Blocs de l'atelier Belsékens (courbes, figures, tableaux) : image centrée, signature discrète.
   « .prose » : l'emporte sur « .prose figure{margin:1.8em 0} » (contenu publié). Pas de fond imposé :
   une image « fond transparent » prend la couleur de la page. */
.plume-belsekens,.prose .plume-belsekens{width:fit-content;max-width:100%;margin:1.8em auto}
.plume-belsekens img,.prose .plume-belsekens img{display:block;max-width:100%;height:auto;margin:0 auto}
.plume-belsekens__credit{margin-top:.4em;text-align:right;font-size:11.5px;letter-spacing:.02em;color:var(--muted)}
.plume-belsekens__credit a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:2px}
.plume-belsekens__credit a:hover{color:var(--green)}
