/* ============================================
   FORMATION PROFESSEUR — Page dédiée
   ============================================ */

.teacher-page {
  --teacher-blue: #1f2f63;
  --teacher-deep: #15234d;
  --teacher-mid: #304a8f;
  --teacher-pale: #e8eef9;
  --teacher-paper: #faf8f3;
  --teacher-gold: #d99b2b;
  overflow: clip;
  background: var(--teacher-paper);
}
.teacher-page ul,.teacher-page ol { list-style: none; }
.teacher-eyebrow { display: inline-flex; align-items: center; gap: .7rem; color: var(--color-or-sombre); font-size: .68rem; font-weight: 750; letter-spacing: .15em; text-transform: uppercase; }
.teacher-eyebrow::before { content: ''; width: 1.9rem; height: 1px; background: currentColor; }
.teacher-eyebrow--light { color: var(--color-or-clair); }
.teacher-text-link { display: inline-flex; align-items: center; gap: .65rem; color: var(--teacher-blue); font-size: .84rem; font-weight: 700; }
.teacher-text-link span { transition: translate var(--transition); }
.teacher-text-link:hover span { translate: 0 4px; }
.teacher-wave { position: absolute; left: -5%; right: -5%; pointer-events: none; }

/* ---------- Hero ---------- */
.teacher-hero { position: relative; min-height: min(930px,95svh); display: grid; align-items: center; padding: calc(74px + 3.8rem) 0 9rem; background: radial-gradient(circle at 7% 24%,rgba(233,181,77,.18),transparent 22%),radial-gradient(circle at 88% 68%,rgba(48,74,143,.13),transparent 28%),linear-gradient(135deg,#fbfaf6,#f0f3fa 65%,#faf8f3); isolation: isolate; }
.teacher-hero__gridlines { position: absolute; inset: 0; z-index: -1; background: linear-gradient(rgba(31,47,99,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(31,47,99,.035) 1px,transparent 1px); background-size: 88px 88px; mask-image: radial-gradient(ellipse 70% 80% at 76% 50%,#000,transparent 78%); transform: translateY(calc(var(--teacher-scroll,0) * 20px)); }
.teacher-hero__inner { display: grid; grid-template-columns: minmax(0,1.02fr) minmax(450px,.98fr); align-items: center; gap: clamp(3rem,7vw,7rem); }
.teacher-hero__copy { position: relative; z-index: 2; }
.teacher-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 2rem; color: var(--color-texte-tres-doux); font-size: .69rem; }
.teacher-breadcrumb a { color: var(--color-texte-doux); }
.teacher-breadcrumb strong { color: var(--teacher-blue); font-weight: 650; }
.teacher-breadcrumb span { color: rgba(31,47,99,.26); }
.teacher-hero h1 { max-width: 790px; margin: 1.15rem 0 1.35rem; color: var(--teacher-blue); font-size: clamp(3rem,5.2vw,5.15rem); line-height: .98; letter-spacing: -.04em; }
.teacher-hero h1 em { color: var(--color-or-sombre); font-style: normal; }
.teacher-hero__copy > p { max-width: 660px; color: var(--color-texte-doux); font-size: clamp(1rem,1.4vw,1.16rem); line-height: 1.72; }
.teacher-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; margin-top: 2rem; }
.teacher-hero__facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); max-width: 620px; margin-top: 2.6rem; padding-top: 1.4rem; border-top: 1px solid rgba(31,47,99,.12); }
.teacher-hero__facts li { display: flex; flex-direction: column; gap: .1rem; padding-right: 1rem; }
.teacher-hero__facts li + li { padding-left: 1.2rem; border-left: 1px solid rgba(31,47,99,.1); }
.teacher-hero__facts strong { color: var(--teacher-blue); font-family: var(--font-titre); font-size: 1.22rem; line-height: 1.2; }
.teacher-hero__facts span { color: var(--color-texte-tres-doux); font-size: .68rem; font-weight: 600; }
.teacher-wave--hero { bottom: -1px; height: 82px; border-radius: 50% 50% 0 0 / 48% 48% 0 0; background: var(--teacher-paper); }

/* Hero paper */
.teacher-hero__visual { justify-self: end; width: min(100%,520px); perspective: 1200px; }
.teacher-paper { position: relative; aspect-ratio: .84; padding: clamp(1.6rem,3vw,2.5rem); border: 1px solid rgba(31,47,99,.1); border-radius: 18px 58px 18px 18px; background: linear-gradient(rgba(31,47,99,.035) 1px,transparent 1px),#fff; background-size: 100% 34px; box-shadow: 20px 24px 0 rgba(233,181,77,.18),0 45px 100px rgba(31,47,99,.2); transform: rotateX(calc(var(--teacher-scroll,0) * 1deg)) rotateY(calc(var(--teacher-scroll,0) * -2deg)); animation: teacher-paper-float 7s ease-in-out infinite; }
.teacher-paper::before { content: ''; position: absolute; inset: 11px; pointer-events: none; border: 1px solid rgba(31,47,99,.07); border-radius: 11px 49px 11px 11px; }
.teacher-paper__head { display: flex; justify-content: space-between; color: var(--color-or-sombre); font-size: .52rem; font-weight: 750; letter-spacing: .13em; }
.teacher-paper h2 { max-width: 390px; margin: 2.2rem 0 .8rem; color: var(--teacher-blue); font-size: clamp(2.15rem,3.5vw,3.2rem); line-height: 1.02; }
.teacher-paper > p { color: var(--color-texte-doux); font-size: .75rem; }
.teacher-paper__timeline { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: .35rem; margin-top: 2.2rem; padding-top: .9rem; }
.teacher-paper__timeline::before { content: ''; position: absolute; left: 7%; right: 7%; top: 0; height: 2px; background: #e3e8f1; }
.teacher-paper__timeline b { position: absolute; left: 7%; top: 0; width: calc(86% * var(--teacher-course-progress,.42)); max-width: 86%; height: 2px; background: var(--teacher-gold); transition: width .15s linear; }
.teacher-paper__timeline span { min-width: 0; color: var(--color-texte-tres-doux); font-size: clamp(.45rem,.58vw,.57rem); font-weight: 650; text-align: center; }
.teacher-paper__timeline i { width: 27px; aspect-ratio: 1; display: grid; place-items: center; margin: 0 auto .45rem; border: 1px solid #d9deea; border-radius: 50%; background: #fff; color: var(--color-texte-tres-doux); font-style: normal; font-size: .45rem; }
.teacher-paper__timeline .is-done { color: var(--teacher-blue); }
.teacher-paper__timeline .is-done i { border-color: var(--teacher-gold); background: var(--teacher-gold); color: #fff; }
.teacher-paper__curve { margin-top: 2.2rem; padding: 1rem; border-radius: 12px; background: #f5f7fb; }
.teacher-paper__curve small { color: var(--teacher-blue); font-size: .52rem; font-weight: 700; letter-spacing: .06em; }
.teacher-paper__curve svg { width: 100%; height: 96px; overflow: visible; }
.teacher-curve__grid { fill: none; stroke: rgba(31,47,99,.08); stroke-width: 1; }
.teacher-curve__line { fill: none; stroke: var(--teacher-gold); stroke-width: 2.3; stroke-linecap: round; stroke-dasharray: 520; stroke-dashoffset: 520; animation: teacher-draw-curve 2.2s .35s ease forwards; }
.teacher-paper__curve circle { fill: var(--teacher-gold); animation: teacher-dot-pulse 3s ease-in-out infinite; }
.teacher-paper__foot { position: absolute; left: 2.5rem; right: 2.5rem; bottom: 1.2rem; display: flex; justify-content: space-between; color: rgba(31,47,99,.38); font-size: .44rem; letter-spacing: .09em; }
.teacher-paper__foot strong { color: var(--color-or-sombre); }
.teacher-note { position: absolute; z-index: 3; padding: .7rem .9rem; border-radius: 5px 12px 5px 12px; background: #f4ce71; box-shadow: 0 14px 30px rgba(31,47,99,.14); color: var(--teacher-blue); font-family: var(--font-titre); font-size: .64rem; animation: teacher-note-float 5s ease-in-out infinite; }
.teacher-note--1 { right: -7%; top: 25%; rotate: 3deg; }
.teacher-note--2 { left: -8%; bottom: 19%; rotate: -4deg; animation-delay: -2.4s; }

/* ---------- Shared headings ---------- */
.teacher-section-heading { max-width: 820px; margin-bottom: 3.5rem; }
.teacher-section-heading--center { margin-inline: auto; text-align: center; }
.teacher-section-heading h2,.teacher-reality h2,.teacher-evaluation h2,.teacher-fit h2,.teacher-practical h2,.teacher-faq h2 { margin: .8rem 0 1rem; color: var(--teacher-blue); font-size: clamp(2.4rem,4.3vw,4.1rem); line-height: 1.02; letter-spacing: -.025em; }
.teacher-section-heading p,.teacher-reality__heading > p,.teacher-evaluation__copy > p,.teacher-fit__copy > p,.teacher-practical__content > p,.teacher-faq__heading > p { color: var(--color-texte-doux); line-height: 1.75; }
.teacher-section-heading--center p { max-width: 700px; margin-inline: auto; }

/* ---------- Reality ---------- */
.teacher-reality { padding: 6.5rem 0 8rem; }
.teacher-reality__grid { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: clamp(3rem,7vw,7rem); align-items: center; }
.teacher-reality__stack { display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch; overflow: hidden; border: 1px solid rgba(31,47,99,.1); border-radius: 32px 10px 32px 10px; background: #fff; box-shadow: 0 28px 75px rgba(31,47,99,.09); }
.teacher-reality__card { padding: 2rem; }
.teacher-reality__card > span { display: inline-flex; padding: .4rem .7rem; border-radius: 100px; font-size: .55rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.teacher-reality__card h3 { margin-top: 1.2rem; color: var(--teacher-blue); font-size: 1.45rem; }
.teacher-reality__card ul { display: grid; gap: .8rem; margin-top: 1.3rem; }
.teacher-reality__card li { position: relative; padding-left: 1.25rem; color: var(--color-texte-doux); font-size: .76rem; }
.teacher-reality__card li::before { content: ''; position: absolute; left: 0; top: .6em; width: .45rem; height: 2px; }
.teacher-reality__card--blur { background: #f1f2f5; }
.teacher-reality__card--blur > span { background: #e1e4e9; color: #777e8f; }
.teacher-reality__card--blur li::before { background: #a5abb8; }
.teacher-reality__card--clear { background: #edf2fb; }
.teacher-reality__card--clear > span { background: var(--teacher-blue); color: #fff; }
.teacher-reality__card--clear li { color: var(--teacher-blue); font-weight: 550; }
.teacher-reality__card--clear li::before { background: var(--teacher-gold); }
.teacher-reality__arrow { display: grid; place-items: center; width: 50px; color: var(--teacher-blue); font-family: var(--font-titre); font-size: 1.4rem; }

/* ---------- Lesson anatomy ---------- */
.teacher-lesson { padding: 8rem 0 9rem; background: #eef2f9; }
.teacher-lesson__track { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: .9rem; padding-top: 3.5rem; }
.teacher-lesson__progress { position: absolute; left: 2%; right: 2%; top: 1rem; height: 2px; background: rgba(31,47,99,.12); }
.teacher-lesson__progress span { display: block; width: calc(var(--teacher-lesson-progress,0) * 100%); height: 100%; background: var(--teacher-gold); transition: width .15s linear; }
.teacher-lesson__progress i { position: absolute; left: calc(var(--teacher-lesson-progress,0) * 100%); top: 50%; width: 14px; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; background: var(--teacher-gold); box-shadow: 0 0 0 8px rgba(217,155,43,.12); transition: left .15s linear; }
.teacher-lesson__track article { min-height: 310px; display: flex; flex-direction: column; padding: 1.6rem; border: 1px solid rgba(31,47,99,.1); border-radius: 24px 8px 24px 8px; background: #fff; box-shadow: 0 18px 45px rgba(31,47,99,.06); transition: translate .35s ease,border-color .35s ease,box-shadow .35s ease; }
.teacher-lesson__track article:hover { translate: 0 -5px; border-color: rgba(217,155,43,.45); box-shadow: 0 28px 60px rgba(31,47,99,.11); }
.teacher-lesson__track article > span { color: var(--color-or-sombre); font-size: .55rem; font-weight: 800; }
.teacher-lesson__track small { margin-top: auto; color: var(--color-or-sombre); font-size: .55rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.teacher-lesson__track h3 { margin-top: .8rem; color: var(--teacher-blue); font-size: 1.25rem; line-height: 1.16; }
.teacher-lesson__track p { margin-top: .55rem; color: var(--color-texte-doux); font-size: .73rem; line-height: 1.55; }

/* ---------- Program lab ---------- */
.teacher-program { padding: 8rem 0 9rem; }
.teacher-lab { display: grid; grid-template-columns: 245px minmax(0,1fr); overflow: hidden; border: 1px solid rgba(31,47,99,.1); border-radius: 18px 58px 18px 18px; background: #fff; box-shadow: 0 35px 90px rgba(31,47,99,.12); }
.teacher-lab__tabs { display: grid; grid-template-rows: repeat(5,1fr); padding: 1rem; background: #eef2f9; }
.teacher-lab__tab { display: grid; grid-template-columns: 2rem 1fr; align-items: center; gap: .65rem; padding: 1rem; border: 0; border-bottom: 1px solid rgba(31,47,99,.09); background: transparent; color: var(--color-texte-tres-doux); cursor: pointer; text-align: left; transition: color .3s ease,background .3s ease,translate .3s ease; }
.teacher-lab__tab:last-child { border-bottom: 0; }
.teacher-lab__tab span { width: 30px; aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(31,47,99,.13); border-radius: 50%; font-size: .48rem; }
.teacher-lab__tab strong { font-size: .68rem; }
.teacher-lab__tab:hover { color: var(--teacher-blue); }
.teacher-lab__tab.is-active { border-radius: 10px; background: #fff; box-shadow: 0 12px 25px rgba(31,47,99,.08); color: var(--teacher-blue); translate: 5px 0; }
.teacher-lab__tab.is-active span { border-color: var(--teacher-gold); background: var(--teacher-gold); color: #fff; }
.teacher-lab__panels { min-height: 580px; }
.teacher-lab__panel { min-height: 580px; display: grid; grid-template-columns: minmax(0,1.08fr) minmax(350px,.92fr); align-items: center; gap: clamp(2.5rem,6vw,6rem); padding: clamp(2.4rem,5vw,5rem); }
.teacher-lab__panel[hidden] { display: none; }
.teacher-lab__panel.is-entering .teacher-lab__copy { animation: teacher-panel-copy .55s ease both; }
.teacher-lab__panel.is-entering .teacher-lab__visual { animation: teacher-panel-visual .65s cubic-bezier(.2,.8,.2,1) both; }
.teacher-lab__copy > span { color: var(--color-or-sombre); font-size: .58rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.teacher-lab__copy h3 { max-width: 690px; margin: 1rem 0; color: var(--teacher-blue); font-size: clamp(2.2rem,3.8vw,3.55rem); line-height: 1.03; }
.teacher-lab__copy > p { max-width: 670px; color: var(--color-texte-doux); line-height: 1.75; }
.teacher-lab__output { display: flex; align-items: center; gap: .8rem; margin-top: 1.8rem; padding-top: 1.3rem; border-top: 1px solid rgba(31,47,99,.1); color: var(--teacher-blue); font-size: .78rem; font-weight: 650; }
.teacher-lab__output svg { width: 34px; height: 34px; padding: 8px; border-radius: 50%; background: var(--teacher-pale); fill: none; stroke: var(--color-or-sombre); stroke-width: 2; }
.teacher-lab__output span { display: flex; flex-direction: column; }
.teacher-lab__output small { color: var(--color-texte-tres-doux); font-size: .5rem; letter-spacing: .09em; text-transform: uppercase; }
.teacher-lab__visual { min-height: 360px; display: grid; place-items: center; border: 1px solid rgba(31,47,99,.08); border-radius: 42px 12px 42px 12px; background: #f3f6fb; }

/* Lab visual variants */
.teacher-lab__compass { position: relative; width: 260px; aspect-ratio: 1; border: 1px solid rgba(217,155,43,.35); border-radius: 50%; animation: teacher-slow-rotate 26s linear infinite; }
.teacher-lab__compass::before { content: ''; position: absolute; inset: 25%; border: 1px dashed rgba(31,47,99,.18); border-radius: 50%; }
.teacher-lab__compass > span { position: absolute; min-width: 72px; padding: .55rem .7rem; border: 1px solid rgba(31,47,99,.1); border-radius: 100px; background: #fff; color: var(--teacher-blue); font-size: .55rem; text-align: center; animation: teacher-counter-rotate 26s linear infinite; }
.teacher-lab__compass > span:nth-child(1) { left: 50%; top: -7%; translate: -50% 0; }
.teacher-lab__compass > span:nth-child(2) { right: -12%; bottom: 16%; }
.teacher-lab__compass > span:nth-child(3) { left: -11%; bottom: 16%; }
.teacher-lab__compass b { position: absolute; left: 50%; top: 50%; width: 130px; aspect-ratio: 1; display: grid; place-content: center; translate: -50% -50%; border-radius: 50%; background: var(--teacher-blue); color: #fff; font-family: var(--font-titre); font-size: 1rem; line-height: 1.05; text-align: center; animation: teacher-counter-rotate 26s linear infinite; }
.teacher-lab__compass i { position: absolute; left: 50%; top: 50%; width: 8px; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; background: var(--teacher-gold); box-shadow: 0 0 0 8px rgba(217,155,43,.14); }
.teacher-lab__storyboard { width: 300px; display: grid; grid-template-columns: 1fr auto 1fr; gap: .6rem; align-items: center; }
.teacher-lab__storyboard span { min-height: 100px; display: grid; place-content: center; padding: .8rem; border: 1px solid rgba(31,47,99,.1); border-radius: 14px 5px 14px 5px; background: #fff; color: var(--teacher-blue); font-family: var(--font-titre); font-size: .75rem; text-align: center; animation: teacher-card-in .5s both; }
.teacher-lab__storyboard span:nth-of-type(2) { animation-delay: .12s; }
.teacher-lab__storyboard span:nth-of-type(3) { animation-delay: .24s; }
.teacher-lab__storyboard span:nth-of-type(4) { animation-delay: .36s; }
.teacher-lab__storyboard small { display: block; margin-bottom: .35rem; color: var(--color-or-sombre); font-family: var(--font-corps); font-size: .48rem; }
.teacher-lab__storyboard i { width: 22px; height: 1px; background: var(--teacher-gold); }
.teacher-lab__profiles { position: relative; width: 290px; aspect-ratio: 1; border: 1px dashed rgba(217,155,43,.35); border-radius: 50%; }
.teacher-lab__profiles b { position: absolute; left: 50%; top: 50%; width: 125px; aspect-ratio: 1; display: grid; place-content: center; translate: -50% -50%; border-radius: 50%; background: var(--teacher-blue); color: #fff; font-family: var(--font-titre); font-size: .82rem; text-align: center; }
.teacher-lab__profiles span { position: absolute; width: 92px; min-height: 62px; display: grid; place-content: center; padding: .6rem; border: 1px solid rgba(31,47,99,.1); border-radius: 12px; background: #fff; color: var(--teacher-blue); font-size: .52rem; text-align: center; animation: teacher-note-float 5s ease-in-out infinite; }
.teacher-lab__profiles .p1 { left: -7%; top: 18%; }
.teacher-lab__profiles .p2 { right: -9%; top: 30%; animation-delay: -1.7s; }
.teacher-lab__profiles .p3 { left: 38%; bottom: -8%; animation-delay: -3.4s; }
.teacher-lab__profiles i { position: absolute; left: 50%; top: 50%; width: 8px; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; background: var(--teacher-gold); }
.teacher-lab__rubric { width: 290px; padding: 1.3rem; border: 1px solid rgba(31,47,99,.1); border-radius: 15px; background: #fff; }
.teacher-lab__rubric b { display: block; padding-bottom: .8rem; border-bottom: 1px solid rgba(31,47,99,.1); color: var(--teacher-blue); font-family: var(--font-titre); }
.teacher-lab__rubric > span { display: block; margin-top: 1rem; color: var(--color-texte-doux); font-size: .58rem; }
.teacher-lab__rubric i { display: block; width: var(--score); height: 5px; margin-top: .35rem; border-radius: 100px; background: linear-gradient(90deg,var(--teacher-gold),#efd28d); transform-origin: left; animation: teacher-score-in .75s ease both; }
.teacher-lab__rubric > span:nth-of-type(2) i { animation-delay: .12s; }
.teacher-lab__rubric > span:nth-of-type(3) i { animation-delay: .24s; }
.teacher-lab__rubric strong { display: block; margin-top: 1.2rem; padding: .7rem; border-radius: 8px; background: var(--teacher-pale); color: var(--teacher-blue); font-size: .62rem; text-align: center; }
.teacher-lab__ai { position: relative; width: 310px; display: grid; grid-template-columns: 1fr auto 1fr; gap: .7rem; align-items: center; }
.teacher-lab__ai > div { min-height: 160px; padding: 1rem; border: 1px solid rgba(31,47,99,.1); border-radius: 14px; background: #fff; }
.teacher-lab__ai small { color: var(--color-or-sombre); font-size: .48rem; font-weight: 750; letter-spacing: .08em; }
.teacher-lab__ai span { display: block; margin-top: .8rem; color: var(--teacher-blue); font-size: .58rem; }
.teacher-lab__ai > i { color: var(--teacher-gold); font-family: var(--font-titre); font-style: normal; font-size: 1.3rem; }
.teacher-lab__ai > b { grid-column: 1 / -1; padding: .7rem; border-radius: 8px; background: var(--teacher-blue); color: #fff; font-size: .6rem; text-align: center; }

/* ---------- Inclusion ---------- */
.teacher-inclusion { position: relative; padding: 10rem 0; background: var(--teacher-blue); color: #fff; }
.teacher-wave--inclusion-top { top: -1px; height: 76px; border-radius: 0 0 50% 50% / 0 0 70% 70%; background: var(--teacher-paper); }
.teacher-wave--inclusion-bottom { bottom: -1px; height: 76px; border-radius: 50% 50% 0 0 / 70% 70% 0 0; background: var(--teacher-paper); }
.teacher-inclusion__grid { display: grid; grid-template-columns: minmax(390px,.85fr) minmax(0,1.15fr); gap: clamp(3rem,8vw,8rem); align-items: center; }
.teacher-inclusion__scene { position: relative; width: min(100%,460px); aspect-ratio: 1; }
.teacher-inclusion__orbit { position: absolute; left: 50%; top: 50%; aspect-ratio: 1; translate: -50% -50%; border: 1px solid rgba(233,181,77,.24); border-radius: 50%; }
.teacher-inclusion__orbit--1 { width: 84%; animation: teacher-slow-rotate 28s linear infinite; }
.teacher-inclusion__orbit--2 { width: 60%; border-style: dashed; animation: teacher-slow-rotate 19s linear infinite reverse; }
.teacher-inclusion__core { position: absolute; left: 50%; top: 50%; width: 210px; aspect-ratio: 1; display: grid; place-content: center; translate: -50% -50%; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; background: rgba(255,255,255,.07); box-shadow: inset 0 0 0 15px rgba(255,255,255,.025),0 28px 60px rgba(8,16,43,.24); text-align: center; }
.teacher-inclusion__core small { color: var(--color-or-clair); font-size: .55rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.teacher-inclusion__core strong { margin-top: .5rem; font-family: var(--font-titre); font-size: 1.25rem; line-height: 1.1; }
.teacher-inclusion__scene > i { position: absolute; min-width: 76px; padding: .68rem .85rem; border: 1px solid rgba(255,255,255,.14); border-radius: 100px; background: rgba(255,255,255,.08); box-shadow: 0 16px 35px rgba(8,16,43,.2); color: #fff; font-style: normal; font-size: .6rem; text-align: center; backdrop-filter: blur(8px); animation: teacher-note-float 5s ease-in-out infinite; }
.teacher-inclusion__scene .i1 { left: 0; top: 18%; }.teacher-inclusion__scene .i2 { right: 0; top: 31%; animation-delay: -1.2s; }.teacher-inclusion__scene .i3 { left: 10%; bottom: 12%; animation-delay: -2.4s; }.teacher-inclusion__scene .i4 { right: 10%; bottom: 8%; animation-delay: -3.6s; }
.teacher-inclusion__copy h2 { margin: .8rem 0 1rem; color: #fff; font-size: clamp(2.5rem,4.5vw,4.2rem); line-height: 1.02; }
.teacher-inclusion__copy > p { max-width: 690px; color: rgba(255,255,255,.66); line-height: 1.75; }
.teacher-inclusion__principles { display: grid; grid-template-columns: repeat(3,1fr); gap: .7rem; margin-top: 2rem; }
.teacher-inclusion__principles article { padding: 1.25rem; border: 1px solid rgba(255,255,255,.1); border-radius: 14px 5px 14px 5px; background: rgba(255,255,255,.045); }
.teacher-inclusion__principles span { color: var(--color-or-clair); font-size: .5rem; font-weight: 800; }
.teacher-inclusion__principles strong { display: block; margin-top: .6rem; font-family: var(--font-titre); font-size: .9rem; }
.teacher-inclusion__principles p { margin-top: .35rem; color: rgba(255,255,255,.5); font-size: .66rem; line-height: 1.5; }

/* ---------- Evaluation ---------- */
.teacher-evaluation { padding: 9rem 0; }
.teacher-evaluation__grid { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: clamp(3rem,7vw,7rem); align-items: center; }
.teacher-feedback { overflow: hidden; border: 1px solid rgba(31,47,99,.1); border-radius: 18px 52px 18px 18px; background: #fff; box-shadow: 0 30px 75px rgba(31,47,99,.1); }
.teacher-feedback__head { display: flex; justify-content: space-between; padding: 1rem 1.3rem; border-bottom: 1px solid rgba(31,47,99,.09); color: var(--color-texte-tres-doux); font-size: .5rem; letter-spacing: .1em; }
.teacher-feedback__head strong { color: var(--color-or-sombre); }
.teacher-feedback__work { position: relative; min-height: 220px; padding: 2rem; background: linear-gradient(rgba(31,47,99,.05) 1px,transparent 1px); background-size: 100% 36px; }
.teacher-feedback__work .line { display: block; height: 9px; margin-bottom: 1.2rem; border-radius: 100px; background: #dfe4ee; }
.teacher-feedback__work .line--1 { width: 78%; }.teacher-feedback__work .line--2 { width: 90%; }.teacher-feedback__work .line--3 { width: 62%; }
.teacher-feedback__work .mark { position: absolute; display: grid; place-items: center; width: 34px; aspect-ratio: 1; border-radius: 50%; font-family: var(--font-titre); font-style: normal; }
.teacher-feedback__work .mark--1 { right: 15%; top: 18%; background: #e1f4e9; color: #2c8d5b; }.teacher-feedback__work .mark--2 { right: 7%; bottom: 17%; background: #fbefcf; color: var(--color-or-sombre); }
.teacher-feedback__comment { padding: 1.5rem; border-top: 1px solid rgba(31,47,99,.09); background: #eef2f9; }
.teacher-feedback__comment small { color: var(--color-or-sombre); font-size: .52rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.teacher-feedback__comment p { margin-top: .6rem; color: var(--teacher-blue); font-family: var(--font-titre); font-size: 1rem; line-height: 1.45; }
.teacher-feedback__comment span { display: block; margin-top: 1rem; color: var(--color-texte-tres-doux); font-size: .58rem; }

/* ---------- AI ---------- */
.teacher-ai { padding: 9rem 0; background: linear-gradient(145deg,#2e478b,var(--teacher-deep)); color: #fff; }
.teacher-ai__grid { display: grid; grid-template-columns: minmax(390px,.9fr) minmax(0,1.1fr); gap: clamp(3rem,8vw,8rem); align-items: center; }
.teacher-ai__interface { position: relative; min-height: 500px; padding: 2rem; border: 1px solid rgba(255,255,255,.12); border-radius: 42px 12px 42px 12px; background: linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),rgba(255,255,255,.045); background-size: 40px 40px; box-shadow: 0 32px 80px rgba(8,16,44,.26); }
.teacher-ai__prompt,.teacher-ai__answer { padding: 1.3rem; border: 1px solid rgba(255,255,255,.12); border-radius: 14px; background: rgba(255,255,255,.07); }
.teacher-ai__prompt span,.teacher-ai__answer > span { color: var(--color-or-clair); font-size: .5rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.teacher-ai__prompt p,.teacher-ai__answer > p { margin-top: .65rem; color: #fff; font-family: var(--font-titre); font-size: .9rem; line-height: 1.4; }
.teacher-ai__prompt i { display: block; width: 55%; height: 2px; margin-top: 1rem; background: linear-gradient(90deg,var(--color-or-clair),transparent); animation: teacher-prompt-line 2.4s ease-in-out infinite; }
.teacher-ai__answer { width: 88%; margin: 1rem 0 0 auto; }
.teacher-ai__answer > p { color: rgba(255,255,255,.65); }
.teacher-ai__answer > div { display: grid; grid-template-columns: repeat(3,1fr); gap: .4rem; margin-top: 1rem; }
.teacher-ai__answer small { grid-column: 1 / -1; color: rgba(255,255,255,.35); font-size: .48rem; }
.teacher-ai__answer b { padding: .5rem; border: 1px solid rgba(255,255,255,.1); border-radius: 7px; color: rgba(255,255,255,.7); font-size: .5rem; text-align: center; }
.teacher-ai__stamp { position: absolute; left: 2rem; bottom: 2rem; rotate: -5deg; padding: .8rem 1rem; border: 1px solid rgba(233,181,77,.45); color: var(--color-or-clair); font-size: .52rem; line-height: 1.2; text-align: center; }
.teacher-ai__stamp strong { font-family: var(--font-titre); font-size: .78rem; }
.teacher-ai__copy h2 { margin: .8rem 0 1rem; color: #fff; font-size: clamp(2.5rem,4.5vw,4.15rem); line-height: 1.02; }
.teacher-ai__copy > p { color: rgba(255,255,255,.66); line-height: 1.75; }
.teacher-ai__copy ul { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin-top: 1.8rem; }
.teacher-ai__copy li { position: relative; padding: .8rem .8rem .8rem 2rem; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; color: rgba(255,255,255,.7); font-size: .68rem; }
.teacher-ai__copy li::before { content: '✓'; position: absolute; left: .75rem; color: var(--color-or-clair); }

/* ---------- Results, fit, follow-up ---------- */
.teacher-results { padding: 8rem 0; }
.teacher-results__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: .9rem; }
.teacher-results__grid article { min-height: 255px; display: flex; flex-direction: column; padding: 1.6rem; border: 1px solid rgba(31,47,99,.1); border-radius: 24px 8px 24px 8px; background: #fff; box-shadow: 0 18px 45px rgba(31,47,99,.06); transition: translate .35s ease,border-color .35s ease,box-shadow .35s ease; }
.teacher-results__grid article:hover { translate: 0 -5px; border-color: rgba(217,155,43,.45); box-shadow: 0 28px 60px rgba(31,47,99,.11); }
.teacher-results__grid span { color: var(--color-or-sombre); font-size: .55rem; font-weight: 800; }
.teacher-results__grid h3 { margin-top: auto; color: var(--teacher-blue); font-size: 1.2rem; }
.teacher-results__grid p { margin-top: .45rem; color: var(--color-texte-doux); font-size: .74rem; line-height: 1.55; }
.teacher-fit { padding: 1rem 0 8rem; }
.teacher-fit__card { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(3rem,7vw,7rem); padding: clamp(2.5rem,5vw,5rem); border: 1px solid rgba(31,47,99,.1); border-radius: 54px 14px 54px 14px; background: #fff; box-shadow: 0 28px 75px rgba(31,47,99,.08); }
.teacher-fit__profiles { display: grid; gap: .8rem; }
.teacher-fit__profiles article { display: grid; grid-template-columns: 2rem 1fr; column-gap: 1rem; padding: 1.35rem; border-radius: 16px 6px 16px 6px; background: #f0f3f9; }
.teacher-fit__profiles article:nth-child(2) { background: #f8f2e7; }
.teacher-fit__profiles span { grid-row: 1 / 3; width: 2rem; height: 2rem; display: grid; place-items: center; border: 1px solid rgba(31,47,99,.12); border-radius: 50%; color: var(--color-or-sombre); font-size: .5rem; font-weight: 800; }
.teacher-fit__profiles strong { color: var(--teacher-blue); font-family: var(--font-titre); font-size: 1rem; }
.teacher-fit__profiles p { margin-top: .25rem; color: var(--color-texte-doux); font-size: .74rem; line-height: 1.52; }
.teacher-followup { padding: 0 0 8rem; }
.teacher-followup__card { display: grid; grid-template-columns: 190px minmax(0,1fr) auto; align-items: center; gap: clamp(2rem,5vw,5rem); padding: clamp(2.2rem,4vw,4rem); border-radius: 18px 56px 18px 18px; background: var(--teacher-blue); box-shadow: 0 32px 80px rgba(31,47,99,.2); color: #fff; }
.teacher-followup__visual { position: relative; width: 170px; aspect-ratio: 1; display: grid; place-content: center; border: 1px solid rgba(233,181,77,.28); border-radius: 50%; text-align: center; }
.teacher-followup__visual::before { content: ''; position: absolute; inset: 17px; border: 1px dashed rgba(255,255,255,.13); border-radius: 50%; animation: teacher-slow-rotate 18s linear infinite; }
.teacher-followup__visual strong { font-family: var(--font-titre); font-size: 2.7rem; line-height: .9; }
.teacher-followup__visual span { max-width: 110px; color: var(--color-or-clair); font-size: .55rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.teacher-followup__visual i { position: absolute; right: 12px; top: 27px; width: 12px; aspect-ratio: 1; border-radius: 50%; background: var(--color-or-clair); box-shadow: 0 0 0 7px rgba(233,181,77,.12); }
.teacher-followup__copy h2 { margin: .7rem 0 .8rem; color: #fff; font-size: clamp(2rem,3.4vw,3.2rem); line-height: 1.04; }
.teacher-followup__copy > p { color: rgba(255,255,255,.62); font-size: .82rem; line-height: 1.7; }
.teacher-followup__copy ul { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.2rem; }
.teacher-followup__copy li { padding: .45rem .7rem; border: 1px solid rgba(255,255,255,.12); border-radius: 100px; color: rgba(255,255,255,.7); font-size: .6rem; }
.teacher-followup__card > .btn { white-space: nowrap; }

/* ---------- Practical, FAQ, final ---------- */
.teacher-practical { padding: 8rem 0; background: #edf2f9; }
.teacher-practical__grid { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(350px,.88fr); gap: clamp(3rem,7vw,7rem); align-items: start; }
.teacher-practical__facts { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: 2rem 0; }
.teacher-practical__facts article { padding: 1.35rem; border: 1px solid rgba(31,47,99,.1); border-radius: 16px 6px 16px 6px; background: rgba(255,255,255,.75); }
.teacher-practical__facts strong { display: block; color: var(--teacher-blue); font-family: var(--font-titre); font-size: 1.2rem; }
.teacher-practical__facts span { color: var(--color-texte-tres-doux); font-size: .65rem; }
.teacher-practical__content > p { max-width: 760px; font-size: .79rem; }
.teacher-practical__cta { position: sticky; top: 112px; padding: clamp(2rem,4vw,3.2rem); border-radius: 18px 52px 18px 18px; background: var(--teacher-blue); box-shadow: 0 30px 75px rgba(31,47,99,.2); color: #fff; }
.teacher-practical__cta > span { color: var(--color-or-clair); font-size: .59rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.teacher-practical__cta h3 { margin: 1rem 0; color: #fff; font-size: clamp(1.7rem,2.7vw,2.4rem); line-height: 1.08; }
.teacher-practical__cta p { color: rgba(255,255,255,.65); font-size: .82rem; line-height: 1.7; }
.teacher-practical__cta .btn { width: 100%; justify-content: center; margin-top: 1.7rem; }
.teacher-practical__cta small { display: block; margin-top: .8rem; color: rgba(255,255,255,.4); font-size: .57rem; text-align: center; }
.teacher-faq { padding: 8rem 0; }
.teacher-faq__grid { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); gap: clamp(3rem,8vw,8rem); }
.teacher-faq__heading { position: sticky; top: 120px; align-self: start; }
.teacher-faq__heading a { color: var(--color-or-sombre); font-weight: 650; }
.teacher-faq__items { border-top: 1px solid rgba(31,47,99,.12); }
.teacher-faq details { border-bottom: 1px solid rgba(31,47,99,.12); }
.teacher-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.6rem 0; cursor: pointer; list-style: none; color: var(--teacher-blue); font-family: var(--font-titre); font-size: 1.14rem; line-height: 1.3; }
.teacher-faq summary::-webkit-details-marker { display: none; }
.teacher-faq summary i { position: relative; width: 28px; aspect-ratio: 1; flex: 0 0 auto; border: 1px solid rgba(31,47,99,.16); border-radius: 50%; }
.teacher-faq summary i::before,.teacher-faq summary i::after { content: ''; position: absolute; left: 50%; top: 50%; width: 10px; height: 1px; translate: -50% -50%; background: var(--color-or-sombre); transition: rotate .3s ease; }
.teacher-faq summary i::after { rotate: 90deg; }.teacher-faq details[open] summary i::after { rotate: 0deg; }
.teacher-faq details p { max-width: 700px; padding: 0 3rem 1.6rem 0; color: var(--color-texte-doux); font-size: .84rem; line-height: 1.7; }
.teacher-final { padding: 1rem 0 8rem; }
.teacher-final__card { position: relative; overflow: hidden; padding: clamp(3rem,7vw,6.5rem); border-radius: 18px 70px 18px 18px; background: linear-gradient(145deg,var(--teacher-mid),var(--teacher-deep)); box-shadow: 0 38px 90px rgba(31,47,99,.22); color: #fff; text-align: center; }
.teacher-final__card::before { content: ''; position: absolute; width: 560px; aspect-ratio: 1; left: 50%; top: 50%; translate: -50% -50%; border: 1px solid rgba(233,181,77,.13); border-radius: 50%; box-shadow: 0 0 0 100px rgba(255,255,255,.018),0 0 0 200px rgba(255,255,255,.012); }
.teacher-final__card > * { position: relative; }
.teacher-final__card h2 { max-width: 920px; margin: 1rem auto; color: #fff; font-size: clamp(2.6rem,5vw,4.7rem); line-height: 1.02; }
.teacher-final__card > p { max-width: 720px; margin-inline: auto; color: rgba(255,255,255,.65); }
.teacher-final__card > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.4rem; margin-top: 2rem; }
.teacher-final__link { color: rgba(255,255,255,.76); font-size: .78rem; font-weight: 650; }
.teacher-final__link:hover { color: #fff; }

/* ---------- Motion ---------- */
@keyframes teacher-paper-float { 0%,100% { translate: 0 0; } 50% { translate: 0 -10px; } }
@keyframes teacher-draw-curve { to { stroke-dashoffset: 0; } }
@keyframes teacher-dot-pulse { 0%,100% { r: 5; } 50% { r: 7; } }
@keyframes teacher-note-float { 0%,100% { translate: 0 0; } 50% { translate: 0 -8px; } }
@keyframes teacher-panel-copy { from { opacity: 0; translate: -18px 0; } to { opacity: 1; translate: 0; } }
@keyframes teacher-panel-visual { from { opacity: 0; scale: .94; rotate: 1deg; } to { opacity: 1; scale: 1; rotate: 0; } }
@keyframes teacher-slow-rotate { to { rotate: 360deg; } }
@keyframes teacher-counter-rotate { to { rotate: -360deg; } }
@keyframes teacher-card-in { from { opacity: 0; translate: 0 8px; } to { opacity: 1; translate: 0; } }
@keyframes teacher-score-in { from { scale: 0 1; } to { scale: 1; } }
@keyframes teacher-prompt-line { 0%,100% { width: 30%; opacity: .5; } 50% { width: 80%; opacity: 1; } }

/* ---------- Responsive ---------- */
@media (max-width:1080px) {
  .teacher-hero { min-height: auto; padding-top: calc(74px + 3rem); }
  .teacher-hero__inner { grid-template-columns: 1fr; gap: 4rem; }
  .teacher-hero__copy { max-width: 830px; }
  .teacher-hero__visual { justify-self: center; width: min(100%,560px); }
  .teacher-reality__grid,.teacher-inclusion__grid,.teacher-evaluation__grid,.teacher-ai__grid,.teacher-fit__card,.teacher-practical__grid,.teacher-faq__grid { grid-template-columns: 1fr; }
  .teacher-inclusion__scene { justify-self: center; }
  .teacher-practical__cta,.teacher-faq__heading { position: static; }
  .teacher-practical__cta { max-width: 680px; }
  .teacher-results__grid { grid-template-columns: 1fr 1fr; }
  .teacher-followup__card { grid-template-columns: 170px 1fr; }
  .teacher-followup__card > .btn { grid-column: 2; justify-self: start; }
}
@media (max-width:800px) {
  .teacher-hero { padding-bottom: 7rem; }.teacher-hero h1 { font-size: clamp(2.65rem,11.5vw,4rem); }
  .teacher-note { display: none; }
  .teacher-reality { padding: 5rem 0 6.5rem; }
  .teacher-lesson { padding: 6rem 0; }
  .teacher-lesson__track { grid-template-columns: 1fr 1fr; }
  .teacher-program { padding: 6rem 0; }
  .teacher-lab { grid-template-columns: 1fr; border-radius: 16px 40px 16px 16px; }
  .teacher-lab__tabs { overflow-x: auto; grid-template-columns: repeat(5,minmax(130px,1fr)); grid-template-rows: auto; padding: 0; scrollbar-width: thin; }
  .teacher-lab__tab { min-height: 72px; border-right: 1px solid rgba(31,47,99,.09); border-bottom: 0; }
  .teacher-lab__tab.is-active { border-radius: 0; translate: 0; box-shadow: inset 0 -3px var(--teacher-gold); }
  .teacher-lab__panel { grid-template-columns: 1fr; min-height: 0; padding: 2rem; }
  .teacher-lab__visual { min-height: 330px; }
  .teacher-inclusion { padding: 8rem 0; }
  .teacher-inclusion__copy { order: -1; }
  .teacher-inclusion__principles { grid-template-columns: 1fr; }
  .teacher-evaluation,.teacher-ai,.teacher-results,.teacher-practical,.teacher-faq { padding: 6rem 0; }
  .teacher-results__grid article { min-height: 220px; }
  .teacher-fit { padding-bottom: 6rem; }
  .teacher-followup { padding-bottom: 6rem; }
  .teacher-followup__card { grid-template-columns: 1fr; text-align: center; }
  .teacher-followup__visual { justify-self: center; }
  .teacher-followup__copy ul { justify-content: center; }
  .teacher-followup__card > .btn { grid-column: auto; justify-self: center; }
  .teacher-final { padding-bottom: 6rem; }
}
@media (max-width:520px) {
  .teacher-hero { padding-top: calc(74px + 2rem); }
  .teacher-breadcrumb { margin-bottom: 1.5rem; font-size: .6rem; }
  .teacher-hero__actions { align-items: stretch; flex-direction: column; }.teacher-hero__actions .btn { width: 100%; justify-content: center; }
  .teacher-hero__facts li { padding-right: .5rem; }.teacher-hero__facts li + li { padding-left: .6rem; }.teacher-hero__facts strong { font-size: 1rem; }.teacher-hero__facts span { font-size: .57rem; }
  .teacher-paper { aspect-ratio: .78; padding: 1.25rem; border-radius: 14px 38px 14px 14px; }
  .teacher-paper h2 { margin-top: 1.5rem; font-size: 2rem; }
  .teacher-paper__timeline { margin-top: 1.4rem; }.teacher-paper__curve { margin-top: 1.4rem; }.teacher-paper__foot { left: 1.25rem; right: 1.25rem; }
  .teacher-section-heading h2,.teacher-reality h2,.teacher-evaluation h2,.teacher-fit h2,.teacher-practical h2,.teacher-faq h2 { font-size: 2.2rem; }
  .teacher-reality__stack { grid-template-columns: 1fr; }.teacher-reality__arrow { width: auto; height: 46px; rotate: 90deg; }
  .teacher-lesson__track { grid-template-columns: 1fr; }.teacher-lesson__progress { display: none; }.teacher-lesson__track article { min-height: 220px; }
  .teacher-lab { margin-inline: -.25rem; }.teacher-lab__panel { padding: 1.6rem; }.teacher-lab__copy h3 { font-size: 2rem; }.teacher-lab__visual { min-height: 285px; }
  .teacher-lab__compass { width: 210px; }.teacher-lab__storyboard { width: 240px; grid-template-columns: 1fr 1fr; }.teacher-lab__storyboard i { display: none; }.teacher-lab__profiles { width: 220px; }.teacher-lab__rubric { width: 240px; }.teacher-lab__ai { width: 240px; }
  .teacher-inclusion__scene { width: 320px; max-width: 100%; }.teacher-inclusion__core { width: 155px; }.teacher-inclusion__core strong { font-size: .95rem; }
  .teacher-ai__interface { min-height: 440px; padding: 1.2rem; }.teacher-ai__answer { width: 94%; }.teacher-ai__copy ul { grid-template-columns: 1fr; }
  .teacher-results__grid { grid-template-columns: 1fr; }.teacher-results__grid article { min-height: 200px; }
  .teacher-fit__card { margin-inline: -.25rem; padding: 1.7rem; border-radius: 34px 10px 34px 10px; }
  .teacher-followup__card { margin-inline: -.25rem; padding: 1.8rem; border-radius: 16px 38px 16px 16px; }
  .teacher-practical__facts { grid-template-columns: 1fr; }.teacher-practical__cta { margin-inline: -.25rem; padding: 1.8rem; }
  .teacher-faq summary { font-size: 1rem; }
  .teacher-final__card { margin-inline: -.25rem; padding: 3rem 1.4rem; border-radius: 14px 42px 14px 14px; }.teacher-final__card > div { flex-direction: column; }
}
@media (prefers-reduced-motion:reduce) {
  .teacher-paper,.teacher-curve__line,.teacher-paper__curve circle,.teacher-note,.teacher-lab__compass,.teacher-lab__compass > span,.teacher-lab__compass b,.teacher-inclusion__orbit,.teacher-inclusion__scene > i,.teacher-followup__visual::before { animation: none !important; }
  .teacher-curve__line { stroke-dashoffset: 0; }
}
