/* AQLUMA — Chorégraphie de défilement et interactivité, homepage Enseignants / Écoles.
   Principe : chaque section a UN geste qui lui est propre, lié à ce qu'elle raconte.
   - Hero : le titre s'encre ligne par ligne, le panneau se pose comme une fiche sur un bureau.
   - Vidéo : rideau ocre qui s'ouvre sur la miniature.
   - Enjeu : trois colonnes qui se lèvent comme des dossiers, numéros qui tombent.
   - Méthode : les gestes s'allument en cascade de haut en bas, la fiche se redresse.
   - ADDIE : les cinq lettres s'écrivent, la barre se trace, la carte glisse de la droite.
   - Modalités : trois cartes en éventail.
   - Offre : les lignes s'alignent comme un devis, le calculateur se déploie.
   - Preuve : cartes qui se retournent depuis la tranche.
   - FAQ : les questions se déplient en escalier.
   - Demande : le formulaire se redresse (perspective) tandis que les étapes s'écrivent.
   Activé par js/school-motion.js (html.school-motion, section.sm-in). Désactivé en reduced-motion. */

.school-motion { --sm-ease: cubic-bezier(.16, 1, .3, 1); --sm-spring: cubic-bezier(.34, 1.56, .64, 1); }

/* La chorégraphie remplace la révélation générique de school-sales.css :
   les en-têtes gardent un simple fondu (le titre s'encre mot par mot), les blocs orchestrés
   ci-dessous reprennent la main grâce à des sélecteurs plus spécifiques. */
/* (school-motion.js retire l'attribut data-reveal : la règle générique ne s'applique plus.) */
.school-motion .sales-heading, .school-motion .sales-request__copy { opacity: 0; transition: opacity .8s var(--sm-ease); }
.school-motion .sm-in .sales-heading, .school-motion .sm-in .sales-request__copy { opacity: 1; }

/* ---------- Encrage des titres ---------- */
.school-motion .sm-ink .sm-w { display: inline-block; overflow: hidden; vertical-align: bottom; padding: .18em 0 .22em; margin: -.18em 0 -.22em; }
.school-motion .sm-ink .sm-i { display: inline-block; transform: translateY(120%) rotate(2.5deg); transition: transform 1s var(--sm-ease); transition-delay: calc(var(--i, 0) * 55ms); will-change: transform; }
.school-motion .sm-in .sm-ink .sm-i { transform: none; }
.school-motion .sm-settled .sm-ink .sm-i { transition-delay: 0s; will-change: auto; }

/* ---------- Repère de section : tiret qui se trace, filet qui court ---------- */
.school-motion .sales-mark::before { transform: scaleX(0); transform-origin: left; transition: transform .7s var(--sm-ease); }
.school-motion .sales-mark::after { transform: scaleX(0); transform-origin: left; transition: transform 1.4s var(--sm-ease) .3s; }
.school-motion .sm-in .sales-mark::before, .school-motion .sm-in .sales-mark::after { transform: scaleX(1); }
.school-motion .sm-in .sales-mark.is-current::before { transform: scaleX(1.8); }

/* ---------- Trace de lecture (filet ocre vertical à gauche) ---------- */
.sm-trace { position: fixed; left: 0; top: 0; z-index: 260; width: 3px; height: 100vh; background: linear-gradient(180deg, var(--ochre, #E8B23A), var(--ochre-deep, #C9912A)); transform: scaleY(var(--sm-page, 0)); transform-origin: top; pointer-events: none; opacity: .9; }

/* ---------- Rail d'index fixe ---------- */
.sm-rail { position: fixed; left: 1.1rem; top: 50%; z-index: 250; display: grid; gap: .35rem; transform: translateY(-50%) translateX(-20px); opacity: 0; pointer-events: none; transition: opacity .5s ease, transform .6s var(--sm-ease); }
.sm-rail.is-visible { opacity: 1; transform: translateY(-50%); pointer-events: auto; }
.sm-rail__item { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .5rem; min-height: 26px; color: rgba(23,19,15,.45); text-decoration: none; font: 600 .66rem/1 var(--font-label); letter-spacing: .14em; text-transform: uppercase; mix-blend-mode: difference; color: rgba(247,244,239,.55); }
.sm-rail__num { position: relative; width: 22px; }
.sm-rail__num::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 2px; background: var(--ochre, #E8B23A); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--sm-ease); }
.sm-rail__label { max-width: 0; overflow: hidden; white-space: nowrap; opacity: 0; transition: max-width .6s var(--sm-ease), opacity .4s ease; }
.sm-rail__item.is-current { color: #fff; }
.sm-rail__item.is-current .sm-rail__num::after { transform: scaleX(1); }
.sm-rail__item.is-current .sm-rail__label, .sm-rail:hover .sm-rail__label { max-width: 160px; opacity: 1; }
.sm-rail:hover .sm-rail__item { color: #fff; }

/* ========== HERO ========== */
.school-motion .sales-hero__eyebrow, .school-motion .sales-hero__lead, .school-motion .sales-hero__proof, .school-motion .sales-hero__actions, .school-motion .sales-hero__micro { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--sm-ease), transform .9s var(--sm-ease); }
.school-motion .sales-hero.sm-in .sales-hero__eyebrow { opacity: 1; transform: none; transition-delay: .05s; }
.school-motion .sales-hero.sm-in .sales-hero__lead { opacity: 1; transform: none; transition-delay: .4s; }
.school-motion .sales-hero.sm-in .sales-hero__actions { opacity: 1; transform: none; transition-delay: .55s; }
.school-motion .sales-hero.sm-in .sales-hero__micro { opacity: 1; transform: none; transition-delay: .7s; }
.school-motion .sales-hero.sm-in .sales-hero__proof { opacity: 1; transform: none; transition-delay: .8s; }
.school-motion .sales-hero h1 .sales-ink > span { transition-duration: 1s; }
/* Les quatre repères se révèlent un par un, après les boutons */
.school-motion .sales-hero__proof li { opacity: 0; transform: translateY(14px); transition: opacity .7s var(--sm-ease), transform .7s var(--sm-ease), background .3s ease; }
.school-motion .sales-hero.sm-in .sales-hero__proof li { opacity: 1; transform: none; }
.school-motion .sales-hero.sm-in .sales-hero__proof li:nth-child(1) { transition-delay: .85s; } .school-motion .sales-hero.sm-in .sales-hero__proof li:nth-child(2) { transition-delay: .95s; } .school-motion .sales-hero.sm-in .sales-hero__proof li:nth-child(3) { transition-delay: 1.05s; } .school-motion .sales-hero.sm-in .sales-hero__proof li:nth-child(4) { transition-delay: 1.15s; }
/* Le panneau se pose comme une fiche sur un bureau : perspective + atterrissage */
.school-motion .sales-hero__panel { opacity: 0; transform: perspective(1200px) rotateX(14deg) translateY(60px) scale(.96); transform-origin: center top; transition: opacity 1.1s var(--sm-ease) .5s, transform 1.3s var(--sm-ease) .5s, box-shadow .4s ease; }
.school-motion .sales-hero.sm-in .sales-hero__panel { opacity: 1; transform: perspective(1200px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); }
.school-motion .sales-hero.sm-settled .sales-hero__panel { transition: transform .35s var(--sm-ease), box-shadow .4s ease; }
.school-motion .sales-hero.sm-in .sales-panel__list li { animation: sm-rise .8s var(--sm-ease) both; animation-delay: calc(1s + var(--n, 0) * .12s); }
.school-motion .sales-panel__list li:nth-child(1) { --n: 0; } .school-motion .sales-panel__list li:nth-child(2) { --n: 1; } .school-motion .sales-panel__list li:nth-child(3) { --n: 2; } .school-motion .sales-panel__list li:nth-child(4) { --n: 3; }
@keyframes sm-rise { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
@keyframes sm-rise-y { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
/* Parallaxe au défilement : le contenu monte plus vite que le fond, le cercle dérive */
.school-motion .sales-hero__copy { transform: translateY(calc(var(--sm-hero, 0) * -60px)); }
.school-motion .sales-hero::after { transform: translate(calc(var(--sm-hero, 0) * 80px), calc(var(--sm-hero, 0) * 120px)) rotate(calc(var(--sm-page, 0) * 180deg)); animation: none; }

/* ========== BANDEAU ========== */
.school-motion .sales-band__list li { transition: transform .35s var(--sm-spring), color .2s ease; }
.school-motion .sales-band__list li:hover { transform: translateY(-3px) scale(1.06); }
.school-motion .sales-band__list li:hover span { opacity: 1; }

/* ========== 01 VIDÉO : rideau ocre qui s'ouvre ========== */
.school-motion .sales-video .home-video-feature__frame { position: relative; }
.school-motion .sales-video .home-video-feature__frame::before { content: ""; position: absolute; inset: 0; z-index: 6; background: var(--ochre, #E8B23A); transform: scaleX(1); transform-origin: right; transition: transform 1.2s var(--sm-ease) .35s; pointer-events: none; }
.school-motion .sales-video.sm-in .home-video-feature__frame::before { transform: scaleX(0); }
.school-motion .sales-video .home-video-feature__poster { transform: scale(1.12); transition: transform 1.8s var(--sm-ease) .35s, filter .4s ease; }
.school-motion .sales-video.sm-in .home-video-feature__poster { transform: none; }
.school-motion .sales-video .home-video-feature__cover > * { opacity: 0; transform: translateY(12px); transition: opacity .7s var(--sm-ease), transform .7s var(--sm-ease); }
.school-motion .sales-video.sm-in .home-video-feature__cover > * { opacity: 1; transform: none; }
.school-motion .sales-video.sm-in .home-video-feature__mark { transition-delay: 1.2s; }
.school-motion .sales-video.sm-in .home-video-feature__play { transition-delay: 1.35s; }
.school-motion .sales-video.sm-in .home-video-feature__progress { transition-delay: 1.5s; }
.school-motion .sales-video .home-video-feature__progress-bar { width: 0; transition: width 1.6s var(--sm-ease) 1.7s; }
.school-motion .sales-video.sm-in .home-video-feature__progress-bar { width: 72%; }
/* Survol : la miniature respire, le bouton palpite */
.school-motion .sales-video .home-video-feature__frame:hover .home-video-feature__poster { transform: scale(1.03); filter: saturate(1.05); }
.school-motion .sales-video .home-video-feature__play svg { transition: transform .4s var(--sm-spring), fill .2s ease; }
.school-motion .sales-video .home-video-feature__frame:hover .home-video-feature__play svg { animation: sm-beat 1.6s ease-in-out infinite; }
@keyframes sm-beat { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }

/* ========== 02 ENJEU : dossiers qui se lèvent, numéros qui tombent ========== */
.school-motion .sales-stake { opacity: 0; transform: translateY(40px); transition: opacity .9s var(--sm-ease), transform .9s var(--sm-ease), background .35s ease; }
.school-motion .sales-stakes.sm-in .sales-stake { opacity: 1; transform: none; }
.school-motion .sales-stakes.sm-in .sales-stake:nth-child(2) { transition-delay: .15s; } .school-motion .sales-stakes.sm-in .sales-stake:nth-child(3) { transition-delay: .3s; }
.school-motion .sales-stake__num { opacity: 0; transform: translateY(-30px); transition: opacity .6s ease, transform .9s var(--sm-spring); }
.school-motion .sales-stakes.sm-in .sales-stake__num { opacity: .9; transform: none; }
.school-motion .sales-stakes.sm-in .sales-stake:nth-child(1) .sales-stake__num { transition-delay: .4s; } .school-motion .sales-stakes.sm-in .sales-stake:nth-child(2) .sales-stake__num { transition-delay: .55s; } .school-motion .sales-stakes.sm-in .sales-stake:nth-child(3) .sales-stake__num { transition-delay: .7s; }
.school-motion .sales-stakes.sm-in .sales-stake:hover .sales-stake__num { transform: translateX(6px); }
.school-motion .sales-stakes__quote { opacity: 0; clip-path: inset(0 100% 0 0); transition: opacity .6s ease .6s, clip-path 1.4s var(--sm-ease) .6s; }
.school-motion .sales-stakes.sm-in .sales-stakes__quote { opacity: 1; clip-path: inset(0 0 0 0); }
/* Le fond des trois colonnes glisse légèrement au défilement */
.school-motion .sales-stakes__list { transform: translateY(calc((.5 - var(--sm-sp, .5)) * 30px)); }

/* ========== 03 MÉTHODE : cascade des gestes, fiche qui se redresse ========== */
.school-motion .sales-gesture { opacity: 0; transform: translateX(-28px); transition: opacity .7s var(--sm-ease), transform .8s var(--sm-ease); }
.school-motion .sales-method.sm-in .sales-gesture { opacity: 1; transform: none; }
.school-motion .sales-method.sm-in .sales-gesture:nth-child(1) { transition-delay: .1s; } .school-motion .sales-method.sm-in .sales-gesture:nth-child(2) { transition-delay: .2s; } .school-motion .sales-method.sm-in .sales-gesture:nth-child(3) { transition-delay: .3s; } .school-motion .sales-method.sm-in .sales-gesture:nth-child(4) { transition-delay: .4s; } .school-motion .sales-method.sm-in .sales-gesture:nth-child(5) { transition-delay: .5s; }
.school-motion .sales-gesture__num { transition: color .3s ease, transform .4s var(--sm-spring); }
.school-motion .sales-method.sm-in .sales-gesture__num { animation: sm-pop .6s var(--sm-spring) both; animation-delay: calc(.5s + var(--n, 0) * .1s); }
.school-motion .sales-gesture:nth-child(1) .sales-gesture__num { --n: 0; } .school-motion .sales-gesture:nth-child(2) .sales-gesture__num { --n: 1; } .school-motion .sales-gesture:nth-child(3) .sales-gesture__num { --n: 2; } .school-motion .sales-gesture:nth-child(4) .sales-gesture__num { --n: 3; } .school-motion .sales-gesture:nth-child(5) .sales-gesture__num { --n: 4; }
@keyframes sm-pop { 0% { transform: scale(.4); opacity: 0; } 60% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 1; } }
.school-motion .sales-method__sheet { opacity: 0; transform: perspective(1200px) rotateY(-16deg) translateX(40px); transform-origin: left center; transition: opacity .9s var(--sm-ease) .3s, transform 1.2s var(--sm-ease) .3s; }
.school-motion .sales-method.sm-in .sales-method__sheet { opacity: 1; transform: none; }
.school-motion .sales-method.sm-settled .sales-method__sheet { transition: transform .4s var(--sm-ease); }
/* Survol d'un geste : les voisins s'estompent, le survolé avance */
.school-motion .sales-gestures:hover .sales-gesture:not(:hover):not(.is-active) { opacity: .55; }
.school-motion .sales-gestures .sales-gesture { transition: opacity .35s ease, transform .8s var(--sm-ease); }

/* ========== 04 ADDIE : les lettres s'écrivent, la barre se trace, la carte glisse ========== */
.school-motion .addie-step { opacity: 0; transform: translateY(26px) scale(.9); transition: opacity .6s var(--sm-ease), transform .8s var(--sm-spring); }
.school-motion .sales-addie.sm-in .addie-step { opacity: 1; transform: none; }
.school-motion .sales-addie.sm-in .addie-step:nth-child(1) { transition-delay: .1s; } .school-motion .sales-addie.sm-in .addie-step:nth-child(2) { transition-delay: .22s; } .school-motion .sales-addie.sm-in .addie-step:nth-child(3) { transition-delay: .34s; } .school-motion .sales-addie.sm-in .addie-step:nth-child(4) { transition-delay: .46s; } .school-motion .sales-addie.sm-in .addie-step:nth-child(5) { transition-delay: .58s; }
.school-motion .addie-steps::after { transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--sm-ease) .3s; }
.school-motion .sales-addie.sm-in .addie-steps::after { transform: scaleX(1); }
.school-motion .addie-detail { opacity: 0; transform: translateY(20px); transition: opacity .8s var(--sm-ease) .7s, transform .8s var(--sm-ease) .7s; }
.school-motion .sales-addie.sm-in .addie-detail { opacity: 1; transform: none; }
.school-motion .sales-addie.sm-settled .addie-detail { transition: none; }
.school-motion .addie-card { opacity: 0; transform: translateX(60px) rotate(1.5deg); transition: opacity 1s var(--sm-ease) .4s, transform 1.2s var(--sm-ease) .4s, box-shadow .4s ease; }
.school-motion .sales-addie.sm-in .addie-card { opacity: 1; transform: perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); }
.school-motion .sales-addie.sm-settled .addie-card { transition: transform .35s var(--sm-ease), box-shadow .4s ease; }
.school-motion .addie-card__facts div { opacity: 0; transform: translateX(10px); transition: opacity .5s ease, transform .6s var(--sm-ease), padding-left .3s var(--sm-ease); }
.school-motion .sales-addie.sm-in .addie-card__facts div { opacity: 1; transform: none; }
.school-motion .sales-addie.sm-in .addie-card__facts div:nth-child(1) { transition-delay: 1s; } .school-motion .sales-addie.sm-in .addie-card__facts div:nth-child(2) { transition-delay: 1.08s; } .school-motion .sales-addie.sm-in .addie-card__facts div:nth-child(3) { transition-delay: 1.16s; } .school-motion .sales-addie.sm-in .addie-card__facts div:nth-child(4) { transition-delay: 1.24s; } .school-motion .sales-addie.sm-in .addie-card__facts div:nth-child(5) { transition-delay: 1.32s; }
.school-motion .sales-addie.sm-settled .addie-card__facts div { transition-delay: 0s; }
.school-motion .addie-card__price-row--school { position: relative; overflow: hidden; }
.school-motion .addie-card__price-row--school::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(247,244,239,.25), transparent); transform: translateX(-120%); }
.school-motion .sales-addie.sm-in .addie-card__price-row--school::after { animation: sm-shine 1.4s var(--sm-ease) 1.6s both; }
@keyframes sm-shine { to { transform: translateX(120%); } }
/* Survol : la lettre active tourne, le prix école bat */
.school-motion .addie-step button:hover .addie-step__letter { transform: scale(1.1) rotate(-6deg); }
.school-motion .addie-card:hover .addie-card__price-row--school strong { animation: sm-beat 1.4s ease-in-out infinite; }
/* Au défilement, la grille de fond dérive */
.school-motion .sales-addie::before { background-position: calc(var(--sm-addie, 0) * 74px) 0; }

/* ========== 05 MODALITÉS : éventail ========== */
.school-motion .delivery-card { opacity: 0; transform-origin: bottom center; transition: opacity .9s var(--sm-ease), transform 1.1s var(--sm-ease), box-shadow .4s ease, border-color .3s ease; }
.school-motion .delivery-card:nth-child(1) { transform: translateX(60px) rotate(-4deg); } .school-motion .delivery-card:nth-child(2) { transform: translateY(50px); } .school-motion .delivery-card:nth-child(3) { transform: translateX(-60px) rotate(4deg); }
.school-motion .sales-delivery.sm-in .delivery-card { opacity: 1; transform: perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); }
.school-motion .sales-delivery.sm-in .delivery-card:nth-child(2) { transition-delay: .12s; } .school-motion .sales-delivery.sm-in .delivery-card:nth-child(3) { transition-delay: .24s; }
.school-motion .sales-delivery.sm-settled .delivery-card { transition: transform .35s var(--sm-ease), box-shadow .4s ease, border-color .3s ease; }
.school-motion .delivery-card li::before { transform: scaleX(0); transform-origin: left; transition: transform .5s var(--sm-ease); }
.school-motion .sales-delivery.sm-in .delivery-card li::before { transform: scaleX(1); }
.school-motion .sales-delivery.sm-in .delivery-card li:nth-child(1)::before { transition-delay: .7s; } .school-motion .sales-delivery.sm-in .delivery-card li:nth-child(2)::before { transition-delay: .8s; } .school-motion .sales-delivery.sm-in .delivery-card li:nth-child(3)::before { transition-delay: .9s; }
/* Survol : les voisines reculent */
.school-motion .sales-delivery__grid:hover .delivery-card:not(:hover) { opacity: .7; transform: perspective(1100px) scale(.985); }
.school-motion .delivery-card:hover li::before { width: 14px; }

/* ========== 06 OFFRE : lignes du devis, calculateur qui se déploie ========== */
.school-motion .offer-item { opacity: 0; transform: translateX(-30px); transition: opacity .7s var(--sm-ease), transform .8s var(--sm-ease), border-color .3s ease, background .3s ease; }
.school-motion .sales-offer.sm-in .offer-item { opacity: 1; transform: none; }
.school-motion .sales-offer.sm-in .offer-item:nth-child(2) { transition-delay: .12s; } .school-motion .sales-offer.sm-in .offer-item:nth-child(3) { transition-delay: .24s; } .school-motion .sales-offer.sm-in .offer-item:nth-child(4) { transition-delay: .36s; }
.school-motion .sales-offer.sm-settled .offer-item { transition: transform .35s var(--sm-ease), border-color .3s ease, background .3s ease; }
.school-motion .offer-item--featured::after { content: ""; position: absolute; inset: 0; border-radius: 6px; box-shadow: 0 0 0 0 rgba(232,178,58,.5); pointer-events: none; }
.school-motion .sales-offer.sm-in .offer-item--featured::after { animation: sm-ring 1.6s ease-out .9s 2; }
@keyframes sm-ring { 0% { box-shadow: 0 0 0 0 rgba(232,178,58,.5); } 100% { box-shadow: 0 0 0 16px rgba(232,178,58,0); } }
.school-motion .offer-calc { opacity: 0; transform: translateY(40px) scale(.96); transform-origin: top center; transition: opacity .9s var(--sm-ease) .3s, transform 1.1s var(--sm-ease) .3s; }
.school-motion .sales-offer.sm-in .offer-calc { opacity: 1; transform: none; }
.school-motion .offer-calc__result > p { opacity: 0; transform: translateY(8px); transition: opacity .5s ease, transform .6s var(--sm-ease); }
.school-motion .sales-offer.sm-in .offer-calc__result > p { opacity: 1; transform: none; }
.school-motion .sales-offer.sm-in .offer-calc__result > p:nth-child(1) { transition-delay: 1s; } .school-motion .sales-offer.sm-in .offer-calc__result > p:nth-child(2) { transition-delay: 1.1s; } .school-motion .sales-offer.sm-in .offer-calc__result > p:nth-child(3) { transition-delay: 1.2s; } .school-motion .sales-offer.sm-in .offer-calc__result > p:nth-child(4) { transition-delay: 1.3s; }
.school-motion .sales-offer.sm-settled .offer-calc__result > p { transition-delay: 0s; }
/* Survol : la ligne survolée s'ouvre, les autres s'assombrissent ; le prix glisse vers la droite */
.school-motion .offer-list:hover .offer-item:not(:hover) { opacity: .6; }
.school-motion .offer-item__price { transition: transform .4s var(--sm-spring), color .3s ease; }
.school-motion .offer-item:hover .offer-item__price { transform: translateX(-6px) scale(1.06); color: var(--ochre, #E8B23A); }

/* ========== 07 PREUVE : cartes qui se retournent depuis la tranche ========== */
.school-motion .proof-card { opacity: 0; transform: perspective(900px) rotateY(-60deg); transform-origin: left center; transition: opacity .7s var(--sm-ease), transform 1s var(--sm-ease), box-shadow .4s ease, border-color .3s ease; }
.school-motion .sales-proof.sm-in .proof-card { opacity: 1; transform: none; }
.school-motion .sales-proof.sm-in .proof-card:nth-child(2) { transition-delay: .12s; } .school-motion .sales-proof.sm-in .proof-card:nth-child(3) { transition-delay: .24s; } .school-motion .sales-proof.sm-in .proof-card:nth-child(4) { transition-delay: .36s; }
.school-motion .sales-proof.sm-settled .proof-card { transition: transform .4s var(--sm-ease), box-shadow .4s ease, border-color .3s ease; }
.school-motion .proof-voice { opacity: 0; transform: translateY(30px); transition: opacity .9s var(--sm-ease) .5s, transform .9s var(--sm-ease) .5s, box-shadow .4s ease; }
.school-motion .proof-voice:nth-child(2) { transition-delay: .65s; }
.school-motion .sales-proof.sm-in .proof-voice { opacity: 1; transform: none; }
.school-motion .sales-proof.sm-settled .proof-voice { transition: transform .4s var(--sm-ease), box-shadow .4s ease; }
.school-motion .proof-voice blockquote p { background: linear-gradient(90deg, var(--ink, #17130F) 50%, rgba(23,19,15,.25) 50%); background-size: 200% 100%; background-position: 100% 0; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; transition: background-position 1.8s var(--sm-ease) .9s; }
.school-motion .sales-proof.sm-in .proof-voice blockquote p { background-position: 0 0; }
/* Survol : la carte voisine s'écarte */
.school-motion .proof-grid:hover .proof-card:not(:hover) { opacity: .72; }

/* ========== 08 FAQ : escalier ========== */
.school-motion .faq-item { opacity: 0; transform: translateX(24px); transition: opacity .6s var(--sm-ease), transform .7s var(--sm-ease), border-color .3s ease, box-shadow .3s ease; }
.school-motion .sales-faq.sm-in .faq-item { opacity: 1; transform: none; }
.school-motion .sales-faq.sm-in .faq-item:nth-child(1) { transition-delay: .05s; } .school-motion .sales-faq.sm-in .faq-item:nth-child(2) { transition-delay: .13s; } .school-motion .sales-faq.sm-in .faq-item:nth-child(3) { transition-delay: .21s; } .school-motion .sales-faq.sm-in .faq-item:nth-child(4) { transition-delay: .29s; } .school-motion .sales-faq.sm-in .faq-item:nth-child(5) { transition-delay: .37s; } .school-motion .sales-faq.sm-in .faq-item:nth-child(6) { transition-delay: .45s; } .school-motion .sales-faq.sm-in .faq-item:nth-child(7) { transition-delay: .53s; }
.school-motion .sales-faq.sm-settled .faq-item { transition: border-color .3s ease, box-shadow .3s ease, transform .3s var(--sm-ease); }
.school-motion .faq-item summary { transition: color .25s ease, padding-left .3s var(--sm-ease); }
.school-motion .faq-item:hover summary { padding-left: 1.7rem; }
.school-motion .faq-item summary::before, .school-motion .faq-item summary::after { transition: transform .35s var(--sm-ease), background .25s ease; }
.school-motion .faq-item:hover summary::before, .school-motion .faq-item:hover summary::after { background: var(--ochre, #E8B23A); }

/* ========== 09 DEMANDE : étapes qui s'écrivent, formulaire qui se redresse ========== */
.school-motion .sales-request__steps li { opacity: 0; transform: translateX(-16px); transition: opacity .6s var(--sm-ease), transform .7s var(--sm-ease); }
.school-motion .sales-request.sm-in .sales-request__steps li { opacity: 1; transform: none; }
.school-motion .sales-request.sm-in .sales-request__steps li:nth-child(1) { transition-delay: .5s; } .school-motion .sales-request.sm-in .sales-request__steps li:nth-child(2) { transition-delay: .65s; } .school-motion .sales-request.sm-in .sales-request__steps li:nth-child(3) { transition-delay: .8s; }
.school-motion .sales-request__steps li::before { transition: transform .5s var(--sm-spring); }
.school-motion .sales-request__steps li:hover::before { transform: scale(1.3); }
.school-motion .school-form { opacity: 0; transform: perspective(1200px) rotateX(10deg) translateY(50px); transform-origin: center top; transition: opacity 1s var(--sm-ease) .25s, transform 1.3s var(--sm-ease) .25s; }
.school-motion .sales-request.sm-in .school-form { opacity: 1; transform: none; }
.school-motion .sales-request.sm-settled .school-form { transition: none; }
.school-motion .school-form__field, .school-motion .school-form__choices { opacity: 0; transform: translateY(8px); transition: opacity .5s ease, transform .6s var(--sm-ease); }
.school-motion .sales-request.sm-in .school-form__field, .school-motion .sales-request.sm-in .school-form__choices { opacity: 1; transform: none; }
.school-motion .sales-request.sm-in .school-form__grid .school-form__field:nth-child(1) { transition-delay: .8s; } .school-motion .sales-request.sm-in .school-form__grid .school-form__field:nth-child(2) { transition-delay: .86s; } .school-motion .sales-request.sm-in .school-form__grid .school-form__field:nth-child(3) { transition-delay: .92s; } .school-motion .sales-request.sm-in .school-form__grid .school-form__field:nth-child(4) { transition-delay: .98s; } .school-motion .sales-request.sm-in .school-form__grid .school-form__field:nth-child(5) { transition-delay: 1.04s; } .school-motion .sales-request.sm-in .school-form__grid .school-form__field:nth-child(6) { transition-delay: 1.1s; }
.school-motion .sales-request.sm-in .school-form__choices { transition-delay: 1.2s; }
.school-motion .sales-request.sm-in .school-form__field--full { transition-delay: 1.3s; }
.school-motion .sales-request.sm-settled .school-form__field, .school-motion .sales-request.sm-settled .school-form__choices { transition-delay: 0s; }
/* Survol d'un champ : il se soulève légèrement */
.school-motion .school-form input:hover, .school-motion .school-form select:hover, .school-motion .school-form textarea:hover { transform: translateY(-1px); border-color: rgba(23,19,15,.4); }

/* ========== 10 ÉQUIPE : les portraits glissent depuis la droite, celui survolé s'avance ========== */
.school-motion .instructor-profile { opacity: 0; transform: translateX(40px); transition: opacity .8s var(--sm-ease), transform .9s var(--sm-ease), border-color .3s ease; }
.school-motion .instructor-showcase.sm-in .instructor-profile { opacity: 1; transform: none; }
.school-motion .instructor-showcase.sm-in .instructor-profile:nth-child(2) { transition-delay: .08s; } .school-motion .instructor-showcase.sm-in .instructor-profile:nth-child(3) { transition-delay: .16s; } .school-motion .instructor-showcase.sm-in .instructor-profile:nth-child(4) { transition-delay: .24s; } .school-motion .instructor-showcase.sm-in .instructor-profile:nth-child(5) { transition-delay: .32s; } .school-motion .instructor-showcase.sm-in .instructor-profile:nth-child(6) { transition-delay: .4s; } .school-motion .instructor-showcase.sm-in .instructor-profile:nth-child(7) { transition-delay: .48s; }
.school-motion .instructor-showcase.sm-settled .instructor-profile { transition: transform .4s var(--sm-ease), opacity .35s ease, border-color .3s ease; }
.school-motion .instructor-showcase__rail:hover .instructor-profile:not(:hover) { opacity: .55; }
.school-motion .instructor-showcase.sm-settled .instructor-profile:hover { transform: translateY(-6px); }

/* ========== Survol global : magnétisme, lueur, curseur ========== */
.school-motion .sm-magnet { transform: translate(var(--mx, 0px), var(--my, 0px)); transition: transform .3s var(--sm-ease), box-shadow .3s ease, background-color .25s ease, color .25s ease, border-color .25s ease; }
.school-motion .sales-btn--primary.sm-magnet:hover { transform: translate(var(--mx, 0px), calc(var(--my, 0px) - 2px)); }
.school-motion .sm-glow { position: relative; }
.school-motion .sm-glow::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(240px circle at var(--px, 50%) var(--py, 50%), rgba(232,178,58,.16), transparent 60%); opacity: 0; transition: opacity .35s ease; pointer-events: none; z-index: 0; }
.school-motion .sm-glow:hover::after { opacity: 1; }
.school-motion .sm-glow > * { position: relative; z-index: 1; }
.school-motion .sales-gesture button.sm-glow::after, .school-motion .addie-step button.sm-glow::after { border-radius: 4px; }

.sm-cursor { position: fixed; left: 0; top: 0; z-index: 9999; width: 14px; height: 14px; border-radius: 50%; background: var(--ochre, #E8B23A); mix-blend-mode: normal; opacity: 0; pointer-events: none; transition: width .3s var(--sm-spring), height .3s var(--sm-spring), opacity .25s ease, background .25s ease; will-change: transform; }
.sm-cursor.is-visible { opacity: 1; }
.sm-cursor.is-link { width: 48px; height: 48px; background: rgba(232,178,58,.22); box-shadow: inset 0 0 0 1.5px var(--ochre, #E8B23A); }
.sm-cursor.is-text { width: 3px; height: 26px; border-radius: 2px; }
.sm-cursor.on-dark { background: var(--ochre, #E8B23A); }
.sm-cursor.on-dark.is-link { background: rgba(232,178,58,.18); }
.sm-cursor.is-down { transform-origin: center; }
.sm-cursor.is-down.is-link { width: 40px; height: 40px; }
.sm-cursor::after { content: attr(data-label); position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); color: var(--night, #0D1012); font: 700 .58rem/1 var(--font-label); letter-spacing: .12em; text-transform: uppercase; opacity: 0; transition: opacity .2s ease; white-space: nowrap; }
.sm-cursor.is-link[data-label]:not([data-label=""])::after { opacity: 1; }
.sm-cursor.is-link[data-label]:not([data-label=""]) { width: 64px; height: 64px; background: var(--ochre, #E8B23A); box-shadow: none; }
.sm-has-cursor .sales-hero, .sm-has-cursor .sales-stakes, .sm-has-cursor .sales-addie, .sm-has-cursor .sales-offer, .sm-has-cursor .sales-request { cursor: none; }
.sm-has-cursor .sales-hero a, .sm-has-cursor .sales-hero button, .sm-has-cursor .sales-stakes a, .sm-has-cursor .sales-addie a, .sm-has-cursor .sales-addie button, .sm-has-cursor .sales-offer a, .sm-has-cursor .sales-offer button, .sm-has-cursor .sales-request a, .sm-has-cursor .sales-request button { cursor: none; }

/* ========== Mobile : chorégraphie allégée, pas de curseur ni de rail ========== */
@media (max-width: 1080px) { .sm-rail { display: none; } }
@media (max-width: 720px) {
  .sm-trace { width: 2px; }
  .school-motion .sales-hero__copy, .school-motion .sales-stakes__list { transform: none; }
  .school-motion .sales-hero::after { display: none; }
  .school-motion .sales-hero__panel { transform: translateY(30px); }
  .school-motion .sales-hero.sm-in .sales-hero__panel { transform: none; }
  .school-motion .sales-method__sheet, .school-motion .school-form { transform: translateY(30px); }
  .school-motion .sales-method.sm-in .sales-method__sheet, .school-motion .sales-request.sm-in .school-form { transform: none; }
  .school-motion .addie-card { transform: translateY(30px); }
  .school-motion .sales-addie.sm-in .addie-card { transform: none !important; }
  .school-motion .delivery-card:nth-child(n) { transform: translateY(30px); }
  .school-motion .sales-delivery.sm-in .delivery-card { transform: none !important; }
  .school-motion .proof-card { transform: translateY(24px); }
  /* Les entrées latérales deviennent verticales : aucun élément ne dépasse de l'écran avant sa révélation */
  .school-motion .faq-item, .school-motion .offer-item, .school-motion .sales-gesture, .school-motion .instructor-profile, .school-motion .sales-request__steps li { transform: translateY(18px); }
  .school-motion .sales-faq.sm-in .faq-item, .school-motion .sales-offer.sm-in .offer-item, .school-motion .sales-method.sm-in .sales-gesture, .school-motion .instructor-showcase.sm-in .instructor-profile, .school-motion .sales-request.sm-in .sales-request__steps li { transform: none; }
  .school-motion .sales-hero.sm-in .sales-panel__list li { animation-name: sm-rise-y; }
  .school-motion main, .school-motion .sales-hero, .school-motion .sales-video, .school-motion .sales-method, .school-motion .sales-offer, .school-motion .sales-faq, .school-motion .sales-request { overflow-x: clip; }
  .school-motion .sales-video .home-video-feature__poster { transform: scale(1.06); }
  .school-motion .sm-ink .sm-i { transition-delay: calc(var(--i, 0) * 35ms); }
  .school-motion .sales-video .home-video-feature__frame::before { transition-duration: .9s; }
}
@media (hover: none) { .sm-cursor, .sm-glow::after { display: none; } .school-motion .sm-magnet { transform: none; } }
@media (prefers-reduced-motion: reduce) { .sm-trace, .sm-rail, .sm-cursor { display: none; } }
