/* AQLUMA — chorégraphie de défilement « la trace ».
   Activée par js/home-motion.js (classe .home-motion-plus sur <html>).
   Principe : chaque section s'anime selon sa propre métaphore — une ligne qui s'écrit,
   des billets épinglés, un cahier qui s'ouvre, une progression qui se dessine.
   Rien n'est générique : pas de fondu-translation uniforme.
   Variables pilotées : --hero-p (0→1 pendant la sortie du hero), --sp (progression de chaque
   section dans le viewport), --band-skew (vitesse du défilement), --page-p (lecture globale). */

.home-motion-plus {
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-draw: cubic-bezier(.3, .65, .25, 1);
  --ease-soft: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Filet de lecture (bord gauche, cuivre) ---------- */

.home-trace-line {
  position: fixed;
  z-index: 260; /* au-dessus de la navigation sticky */
  top: 0;
  left: 0;
  width: 3px;
  height: 100vh;
  background: linear-gradient(180deg, var(--clay), var(--brass));
  transform: scaleY(calc(.04 + var(--page-p, 0) * .96));
  transform-origin: top;
  pointer-events: none;
}

.home-trace-line::after {
  content: "";
  position: absolute;
  left: -3px;
  bottom: -4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--brass);
  box-shadow: 0 0 0 4px rgba(230, 138, 94, .22);
}

/* ---------- Titres « encre » : chaque mot monte depuis sa ligne de base ---------- */

.home-ink__w {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  /* Les titres ont un interlignage < 1 : on réserve de la place aux accents et aux jambages. */
  padding: .22em 0 .24em;
  margin: -.22em 0 -.24em;
}

.home-ink__i {
  display: inline-block;
  transform: translateY(140%) rotate(3deg);
  transform-origin: left bottom;
  transition: transform .9s var(--ease-out);
  transition-delay: calc(var(--i, 0) * 55ms);
}

.is-inked .home-ink__i {
  transform: none;
}

/* L'italique Newsreader arrive après le reste, légèrement plus lent : la respiration. */
h2 em .home-ink__i {
  transition-duration: 1.1s;
  transition-delay: calc(var(--i, 0) * 55ms + 140ms);
}

/* ---------- Hero : parallaxe de sortie ---------- */

/* Les animations d'entrée du hero rendent la main une fois jouées (sinon leur état final
   l'emporterait sur la parallaxe). */
.home-motion-plus .catalogue-home .student-hero__copy,
.home-motion-plus .catalogue-home .hero-notebook {
  animation-fill-mode: backwards;
}

.home-motion-plus .catalogue-home .student-hero__copy {
  transform: translateY(calc(var(--hero-p, 0) * -70px));
  opacity: calc(1 - var(--hero-p, 0) * 1.1);
  will-change: transform, opacity;
}

.home-motion-plus .catalogue-home .hero-notebook {
  transform: rotate(calc(1.2deg + var(--hero-p, 0) * 5deg)) translateY(calc(var(--hero-p, 0) * 90px));
  will-change: transform;
}

.home-motion-plus .catalogue-home .student-hero::after {
  transform: rotate(calc(24deg + var(--hero-p, 0) * 30deg)) scale(calc(1 + var(--hero-p, 0) * .25));
}

/* ---------- Bandeau des gestes : élastique, incliné par la vitesse de défilement ---------- */

.home-motion-plus .home-gestures-band {
  transform: skewY(calc(var(--band-skew, 0deg) * .2));
  transition: transform .18s linear;
}

.home-motion-plus .home-gestures-band__track {
  transform: skewX(var(--band-skew, 0deg));
  transition: transform .18s linear;
}

/* ---------- 01 · Méthode : l'arc se trace, le cadre vidéo se révèle par un rideau ---------- */

.home-motion-plus .home-video-section--centered .home-video-section__inner::before,
.home-motion-plus .home-video-section--centered .home-video-section__inner::after {
  opacity: 0;
  transform: scale(.82) rotate(-12deg);
  transition: opacity 1.4s ease, transform 1.6s var(--ease-out);
}

.home-motion-plus .home-video-section--centered.is-inview .home-video-section__inner::before,
.home-motion-plus .home-video-section--centered.is-inview .home-video-section__inner::after {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-video-section--centered.is-inview .home-video-section__inner::after {
  transition-delay: .25s;
}

.home-motion-plus .home-video-section__eyebrow {
  clip-path: inset(0 100% 0 0);
  transition: clip-path .9s var(--ease-draw) .1s;
}

.home-motion-plus .home-video-section.is-inview .home-video-section__eyebrow {
  clip-path: inset(0 0 0 0);
}

.home-motion-plus .home-video-section__story {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .8s ease .55s, transform .9s var(--ease-out) .55s;
}

.home-motion-plus .home-video-section.is-inview .home-video-section__story {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-video-feature {
  position: relative;
}

/* Rideau cuivre qui se retire vers la droite et dévoile la vidéo ; l'ombre cuivre arrive ensuite. */
.home-motion-plus .home-video-feature__frame {
  box-shadow: 0 0 0 rgba(201, 97, 46, 0);
  transition: box-shadow 1s var(--ease-out) .9s;
}

.home-motion-plus .home-video-section.is-inview .home-video-feature__frame {
  box-shadow: 18px 20px 0 rgba(201, 97, 46, .1);
}

.home-motion-plus .home-video-feature__frame::before {
  content: "";
  position: absolute;
  z-index: 6;
  inset: 0;
  background: var(--clay);
  transform: scaleX(1);
  transform-origin: right;
  transition: transform 1.05s var(--ease-draw) .35s;
  pointer-events: none;
}

.home-motion-plus .home-video-section.is-inview .home-video-feature__frame::before {
  transform: scaleX(0);
}

.home-motion-plus .home-video-feature__poster {
  transform: scale(1.12);
  transition: transform 1.8s var(--ease-out) .35s;
}

.home-motion-plus .home-video-section.is-inview .home-video-feature__poster {
  transform: scale(1);
}

/* Parallaxe discret du cadre pendant la traversée. */
.home-motion-plus .home-video-section .home-video-feature__poster {
  object-position: center calc(50% + (var(--sp, .5) - .5) * 14%);
}

/* ---------- 02 · La trace : le cahier s'ouvre comme un livre ---------- */

.home-motion-plus .method-example.is-motion-ready .method-book {
  opacity: 0;
  transform: perspective(1800px) rotateX(14deg) translateY(60px) scale(.96);
  transform-origin: center bottom;
  transition: opacity .9s ease, transform 1.3s var(--ease-out);
}

.home-motion-plus .method-example.is-motion-ready.is-visible .method-book {
  opacity: 1;
  transform: perspective(1800px) rotateX(0) translateY(0) scale(1);
}

/* Les deux pages finissent de s'ouvrir après le cahier (transition retirée ensuite pour
   laisser la main à l'animation de tourne-page existante). */
.home-motion-plus .method-example.is-motion-ready:not(.is-visible) .method-page--left {
  transform: perspective(1800px) rotateY(10deg);
  transform-origin: right center;
}

.home-motion-plus .method-example.is-motion-ready:not(.is-visible) .method-page--right {
  transform: perspective(1800px) rotateY(-10deg);
  transform-origin: left center;
}

.home-motion-plus .method-example.is-motion-ready.is-visible .method-book__spread:not(.is-turning-next):not(.is-turning-previous):not(.is-turn-complete) .method-page {
  transition: transform 1.1s var(--ease-out) .35s;
}

.home-motion-plus .method-example__closing {
  opacity: 0;
  letter-spacing: .08em;
  transition: opacity 1s ease, letter-spacing 1.4s var(--ease-out);
}

.home-motion-plus .method-example.is-inview .method-example__closing {
  opacity: 1;
  letter-spacing: normal;
  transition-delay: .5s;
}

/* ---------- 03 · Les voix : billets épinglés, un à un, avec un léger balancement ---------- */

.home-motion-plus .home-voices .home-voice[data-reveal] {
  opacity: 0;
  transform: translateY(-34px) rotate(var(--tilt, 0deg)) scale(.96);
  transform-origin: 50% -0.55rem; /* la punaise */
  transition: none;
}

.home-motion-plus .home-voices .home-voice--parent { --tilt: -1deg; }
.home-motion-plus .home-voices .home-voice--student { --tilt: 1.3deg; }
.home-motion-plus .home-voices .home-voice--teacher { --tilt: -.8deg; }

.home-motion-plus .home-voices .home-voice.is-revealed {
  opacity: 1;
  animation: voice-pin 1.25s var(--ease-out) both;
  animation-delay: calc(var(--n, 0) * .18s);
}

.home-motion-plus .home-voices .home-voice--parent.is-revealed { --n: 0; }
.home-motion-plus .home-voices .home-voice--student.is-revealed { --n: 1; }
.home-motion-plus .home-voices .home-voice--teacher.is-revealed { --n: 2; }

/* État final figé après la chute : le survol peut reprendre la main sur transform. */
.home-motion-plus .home-voices .home-voice.is-revealed.is-pinned {
  animation: none;
  opacity: 1;
  transform: rotate(var(--tilt, 0deg));
}

@keyframes voice-pin {
  0% { opacity: 0; transform: translateY(-34px) rotate(calc(var(--tilt) - 5deg)) scale(.96); }
  45% { opacity: 1; transform: translateY(0) rotate(calc(var(--tilt) + 2.2deg)) scale(1); }
  72% { transform: rotate(calc(var(--tilt) - .9deg)); }
  100% { transform: rotate(var(--tilt)); }
}

/* La punaise apparaît au moment où le billet se fixe. */
.home-motion-plus .home-voices .home-voice::after {
  transform: translateX(-50%) scale(0);
  transition: transform .45s var(--ease-out);
}

.home-motion-plus .home-voices .home-voice.is-revealed::after {
  transform: translateX(-50%) scale(1);
  transition-delay: calc(var(--n, 0) * .18s + .5s);
}

/* Les chiffres : filets qui s'étirent, chiffre qui apparaît. */
.home-motion-plus .home-voices__figures li {
  border-top-color: transparent;
  background:
    linear-gradient(90deg, rgba(20, 17, 14, .2), rgba(20, 17, 14, .2)) left top / 0 1px no-repeat;
  transition: background-size 1s var(--ease-draw);
}

.home-motion-plus .home-voices__figures.is-revealed li {
  background-size: 100% 1px;
}

.home-motion-plus .home-voices__figures.is-revealed li:nth-child(2) { transition-delay: .15s; }
.home-motion-plus .home-voices__figures.is-revealed li:nth-child(3) { transition-delay: .3s; }

.home-motion-plus .home-voices__figures strong {
  display: inline-block;
  opacity: 0;
  transform: translateY(.3em);
  transition: opacity .7s ease, transform .9s var(--ease-out);
}

.home-motion-plus .home-voices__figures.is-revealed strong {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-voices__figures.is-revealed li:nth-child(2) strong { transition-delay: .15s; }
.home-motion-plus .home-voices__figures.is-revealed li:nth-child(3) strong { transition-delay: .3s; }

/* ---------- 04 · Kawtar : portrait qui se pose, trois temps qui s'enchaînent ---------- */

.home-motion-plus .home-kawtar__image-frame {
  box-shadow: 0 0 0 rgba(194, 90, 44, 0), 0 0 0 rgba(0, 0, 0, 0);
  transition: box-shadow 1s ease .9s;
}

.home-motion-plus .home-kawtar.is-inview .home-kawtar__image-frame {
  box-shadow: 18px 22px 0 rgba(194, 90, 44, .22), 0 28px 60px rgba(0, 0, 0, .35);
}

/* Le portrait se révèle de haut en bas, comme une photo qu'on sort de son enveloppe. */
.home-motion-plus .home-kawtar__image-frame img {
  clip-path: inset(0 0 100% 0);
  transform: scale(1.1);
  transition: clip-path 1.2s var(--ease-draw) .15s, transform 1.8s var(--ease-out) .15s;
}

.home-motion-plus .home-kawtar.is-inview .home-kawtar__image-frame img {
  clip-path: inset(0 0 0 0);
  transform: scale(1);
}

.home-motion-plus .home-kawtar__next-cohort {
  opacity: 0;
  transform: translateX(-12px);
  transition: opacity .6s ease 1.1s, transform .7s var(--ease-out) 1.1s;
}

.home-motion-plus .home-kawtar.is-inview .home-kawtar__next-cohort {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-kawtar__approach li {
  opacity: 0;
  transform: translateX(-18px);
  transition: opacity .7s ease, transform .9s var(--ease-out), border-color .6s ease;
}

.home-motion-plus .home-kawtar__approach li > span {
  display: inline-block;
  transform: scale(.6);
  transition: transform .8s var(--ease-out);
}

.home-motion-plus .home-kawtar.is-inview .home-kawtar__approach li {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-kawtar.is-inview .home-kawtar__approach li > span {
  transform: none;
}

.home-motion-plus .home-kawtar.is-inview .home-kawtar__approach li:nth-child(1),
.home-motion-plus .home-kawtar.is-inview .home-kawtar__approach li:nth-child(1) > span { transition-delay: .35s; }
.home-motion-plus .home-kawtar.is-inview .home-kawtar__approach li:nth-child(2),
.home-motion-plus .home-kawtar.is-inview .home-kawtar__approach li:nth-child(2) > span { transition-delay: .55s; }
.home-motion-plus .home-kawtar.is-inview .home-kawtar__approach li:nth-child(3),
.home-motion-plus .home-kawtar.is-inview .home-kawtar__approach li:nth-child(3) > span { transition-delay: .75s; }

/* La question « Comment es-tu arrivé à cette réponse ? » s'écrit. */
.home-motion-plus .home-kawtar__note blockquote {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 1.3s var(--ease-draw) .9s;
}

.home-motion-plus .home-kawtar.is-inview .home-kawtar__note blockquote {
  clip-path: inset(0 0 0 0);
}

/* Les trois formats : cellules qui s'allument l'une après l'autre. */
.home-motion-plus .home-kawtar__catalogue li {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .6s ease, transform .8s var(--ease-out);
}

.home-motion-plus .home-kawtar.is-inview .home-kawtar__catalogue li {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-kawtar.is-inview .home-kawtar__catalogue li:nth-child(1) { transition-delay: 1s; }
.home-motion-plus .home-kawtar.is-inview .home-kawtar__catalogue li:nth-child(2) { transition-delay: 1.12s; }
.home-motion-plus .home-kawtar.is-inview .home-kawtar__catalogue li:nth-child(3) { transition-delay: 1.24s; }

.home-motion-plus .home-kawtar__catalogue strong {
  display: inline-block;
  transform: translateY(.25em);
  opacity: 0;
  transition: transform .9s var(--ease-out) 1.3s, opacity .6s ease 1.3s;
}

.home-motion-plus .home-kawtar.is-inview .home-kawtar__catalogue strong {
  transform: none;
  opacity: 1;
}

/* ---------- 05 · Essayer : billets déchirés qui se détachent, formulaire qui se pose ---------- */

.home-motion-plus .home-lesson__item {
  opacity: 0;
  transform: translateX(-28px) rotate(-2deg);
  transition: opacity .7s ease, transform 1s var(--ease-out);
}

.home-motion-plus .home-lesson.is-inview .home-lesson__item {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-lesson.is-inview .home-lesson__item:nth-child(1) { transition-delay: .3s; }
.home-motion-plus .home-lesson.is-inview .home-lesson__item:nth-child(2) { transition-delay: .48s; transform: rotate(.5deg); }
.home-motion-plus .home-lesson.is-inview .home-lesson__item:nth-child(3) { transition-delay: .66s; transform: rotate(-.6deg); }

.home-motion-plus .home-lesson__item::before {
  opacity: 0;
  transition: opacity .5s ease;
}

.home-motion-plus .home-lesson.is-inview .home-lesson__item::before {
  opacity: 1;
  transition-delay: .9s;
}

.home-motion-plus .home-lesson__points li {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .6s ease, transform .8s var(--ease-out);
}

.home-motion-plus .home-lesson.is-inview .home-lesson__points li {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-lesson.is-inview .home-lesson__points li:nth-child(1) { transition-delay: .5s; }
.home-motion-plus .home-lesson.is-inview .home-lesson__points li:nth-child(2) { transition-delay: .62s; }
.home-motion-plus .home-lesson.is-inview .home-lesson__points li:nth-child(3) { transition-delay: .74s; }

/* Le formulaire arrive en tournant légèrement, comme posé sur la table. */
.home-motion-plus .home-lesson .home-lead-form[data-reveal] {
  opacity: 0;
  transform: translateY(40px) rotate(2.5deg) scale(.97);
  transition: opacity .8s ease .45s, transform 1.2s var(--ease-out) .45s;
}

.home-motion-plus .home-lesson .home-lead-form.is-revealed {
  opacity: 1;
  transform: rotate(-1deg);
}

.home-motion-plus .home-lesson .home-lead-form.is-revealed:focus-within {
  transform: none;
}

.home-motion-plus .home-lead-form__field {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .5s ease, transform .7s var(--ease-out);
}

.home-motion-plus .home-lead-form.is-revealed .home-lead-form__field {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-lead-form.is-revealed .home-lead-form__field:nth-of-type(1) { transition-delay: .9s; }
.home-motion-plus .home-lead-form.is-revealed .home-lead-form__field:nth-of-type(2) { transition-delay: 1s; }
.home-motion-plus .home-lead-form.is-revealed .home-lead-form__field:nth-of-type(3) { transition-delay: 1.1s; }
.home-motion-plus .home-lead-form.is-revealed .home-lead-form__field:nth-of-type(4) { transition-delay: 1.2s; }

/* ---------- 06 · La cohorte : les six semaines se dessinent, flèche par flèche ---------- */

.home-motion-plus .home-cohort__progression ol {
  border-color: transparent;
  background:
    linear-gradient(90deg, rgba(244, 239, 230, .18), rgba(244, 239, 230, .18)) left top / 0 1px no-repeat,
    linear-gradient(90deg, rgba(244, 239, 230, .18), rgba(244, 239, 230, .18)) left bottom / 0 1px no-repeat,
    linear-gradient(0deg, rgba(244, 239, 230, .18), rgba(244, 239, 230, .18)) left top / 1px 0 no-repeat,
    linear-gradient(0deg, rgba(244, 239, 230, .18), rgba(244, 239, 230, .18)) right top / 1px 0 no-repeat;
  transition: background-size 1.1s var(--ease-draw);
}

.home-motion-plus .home-cohort.is-inview .home-cohort__progression ol {
  background-size: 100% 1px, 100% 1px, 1px 100%, 1px 100%;
}

.home-motion-plus .home-cohort__progression li {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .6s ease, transform .8s var(--ease-out), border-color .4s ease;
  border-right-color: transparent;
}

.home-motion-plus .home-cohort__progression li::after {
  opacity: 0;
  transform: translate(-8px, -50%);
  transition: opacity .4s ease, transform .6s var(--ease-out);
}

.home-motion-plus .home-cohort.is-inview .home-cohort__progression li {
  opacity: 1;
  transform: none;
  border-right-color: rgba(244, 239, 230, .14);
}

.home-motion-plus .home-cohort.is-inview .home-cohort__progression li::after {
  opacity: 1;
  transform: translate(0, -50%);
}

.home-motion-plus .home-cohort.is-inview .home-cohort__progression li:nth-child(1) { transition-delay: .45s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__progression li:nth-child(2) { transition-delay: .6s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__progression li:nth-child(3) { transition-delay: .75s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__progression li:nth-child(4) { transition-delay: .9s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__progression li:nth-child(5) { transition-delay: 1.05s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__progression li:nth-child(6) { transition-delay: 1.2s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__progression li:nth-child(1)::after { transition-delay: .6s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__progression li:nth-child(2)::after { transition-delay: .75s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__progression li:nth-child(3)::after { transition-delay: .9s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__progression li:nth-child(4)::after { transition-delay: 1.05s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__progression li:nth-child(5)::after { transition-delay: 1.2s; }

.home-motion-plus .home-cohort__outcomes li {
  opacity: 0;
  transform: translateX(-16px);
  transition: opacity .7s ease, transform .9s var(--ease-out);
}

.home-motion-plus .home-cohort__outcomes li > span {
  display: inline-block;
  opacity: 0;
  transform: translateY(.3em);
  transition: opacity .6s ease, transform .9s var(--ease-out);
}

.home-motion-plus .home-cohort.is-inview .home-cohort__outcomes li,
.home-motion-plus .home-cohort.is-inview .home-cohort__outcomes li > span {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-cohort.is-inview .home-cohort__outcomes li:nth-child(1),
.home-motion-plus .home-cohort.is-inview .home-cohort__outcomes li:nth-child(1) > span { transition-delay: .2s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__outcomes li:nth-child(2),
.home-motion-plus .home-cohort.is-inview .home-cohort__outcomes li:nth-child(2) > span { transition-delay: .34s; }
.home-motion-plus .home-cohort.is-inview .home-cohort__outcomes li:nth-child(3),
.home-motion-plus .home-cohort.is-inview .home-cohort__outcomes li:nth-child(3) > span { transition-delay: .48s; }

.home-motion-plus .home-cohort__commitment {
  opacity: 0;
  transition: opacity 1s ease 1.4s;
}

.home-motion-plus .home-cohort.is-inview .home-cohort__commitment {
  opacity: 1;
}

/* La fiche : le prix apparaît en dernier, avec un léger rebond. */
.home-motion-plus .cohort-enrolment-card__price strong {
  display: inline-block;
  opacity: 0;
  transform: translateY(.4em) scale(.92);
  transition: opacity .6s ease .7s, transform 1s var(--ease-out) .7s;
}

.home-motion-plus .cohort-enrolment-card.is-revealed .cohort-enrolment-card__price strong {
  opacity: 1;
  transform: none;
}

.home-motion-plus .cohort-enrolment-card dl > div {
  opacity: 0;
  transform: translateX(10px);
  transition: opacity .5s ease, transform .7s var(--ease-out);
}

.home-motion-plus .cohort-enrolment-card.is-revealed dl > div {
  opacity: 1;
  transform: none;
}

.home-motion-plus .cohort-enrolment-card.is-revealed dl > div:nth-child(1) { transition-delay: .25s; }
.home-motion-plus .cohort-enrolment-card.is-revealed dl > div:nth-child(2) { transition-delay: .32s; }
.home-motion-plus .cohort-enrolment-card.is-revealed dl > div:nth-child(3) { transition-delay: .39s; }
.home-motion-plus .cohort-enrolment-card.is-revealed dl > div:nth-child(4) { transition-delay: .46s; }
.home-motion-plus .cohort-enrolment-card.is-revealed dl > div:nth-child(5) { transition-delay: .53s; }
.home-motion-plus .cohort-enrolment-card.is-revealed dl > div:nth-child(6) { transition-delay: .6s; }
.home-motion-plus .cohort-enrolment-card.is-revealed dl > div:nth-child(7) { transition-delay: .67s; }

/* ---------- 07 · Vos questions : les idées reçues se barrent sous vos yeux ---------- */

.home-motion-plus .home-parents__not s {
  position: relative;
  text-decoration: none;
}

.home-motion-plus .home-parents__not s::after {
  content: "";
  position: absolute;
  left: 0;
  top: 55%;
  width: 100%;
  height: 1px;
  background: rgba(230, 138, 94, .85);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .7s var(--ease-draw);
}

.home-motion-plus .home-parents__not.is-revealed s::after {
  transform: scaleX(1);
}

.home-motion-plus .home-parents__not span {
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .6s ease, transform .8s var(--ease-out);
}

.home-motion-plus .home-parents__not.is-revealed span {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-parents__not.is-revealed li:nth-child(1) s::after { transition-delay: .5s; }
.home-motion-plus .home-parents__not.is-revealed li:nth-child(1) span { transition-delay: .95s; }
.home-motion-plus .home-parents__not.is-revealed li:nth-child(2) s::after { transition-delay: .85s; }
.home-motion-plus .home-parents__not.is-revealed li:nth-child(2) span { transition-delay: 1.3s; }
.home-motion-plus .home-parents__not.is-revealed li:nth-child(3) s::after { transition-delay: 1.2s; }
.home-motion-plus .home-parents__not.is-revealed li:nth-child(3) span { transition-delay: 1.65s; }

/* Les questions arrivent en cascade, filet par filet. */
.home-motion-plus .home-parents__faq .home-parents__item {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .6s ease, transform .8s var(--ease-out);
}

.home-motion-plus .home-parents__faq.is-revealed .home-parents__item {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-parents__faq.is-revealed .home-parents__item:nth-child(1) { transition-delay: .1s; }
.home-motion-plus .home-parents__faq.is-revealed .home-parents__item:nth-child(2) { transition-delay: .2s; }
.home-motion-plus .home-parents__faq.is-revealed .home-parents__item:nth-child(3) { transition-delay: .3s; }
.home-motion-plus .home-parents__faq.is-revealed .home-parents__item:nth-child(4) { transition-delay: .4s; }
.home-motion-plus .home-parents__faq.is-revealed .home-parents__item:nth-child(5) { transition-delay: .5s; }
.home-motion-plus .home-parents__faq.is-revealed .home-parents__item:nth-child(6) { transition-delay: .6s; }

/* Ouverture d'une réponse : glisse douce au lieu d'un saut. */
.home-motion-plus .home-parents__item[open] .home-parents__answer {
  animation: faq-open .55s var(--ease-out);
}

@keyframes faq-open {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: none; }
}

/* ---------- 08 · Décider : la signature géante s'écrit, les trois portes s'ouvrent ---------- */

.home-motion-plus .home-final h2 .home-ink__i {
  transition-duration: 1.2s;
  transition-delay: calc(var(--i, 0) * 110ms);
}

.home-motion-plus .home-final h2 em .home-ink__i {
  transition-delay: calc(var(--i, 0) * 110ms + 200ms);
}

.home-motion-plus .home-final__door {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .7s ease, transform 1s var(--ease-out), background-color .2s ease, border-color .2s ease, color .2s ease;
}

.home-motion-plus .home-final.is-inview .home-final__door {
  opacity: 1;
  transform: none;
}

.home-motion-plus .home-final.is-inview .home-final__door:nth-child(1) { transition-delay: .7s; }
.home-motion-plus .home-final.is-inview .home-final__door:nth-child(2) { transition-delay: .85s; }
.home-motion-plus .home-final.is-inview .home-final__door:nth-child(3) { transition-delay: 1s; }

/* Pendant la traversée, la section « Décider » laisse légèrement filer son titre. */
.home-motion-plus .home-final h2 {
  transform: translateX(calc((var(--sp, .5) - .5) * -40px));
  will-change: transform;
}

/* ---------- Équipe : les portraits se posent en éventail ---------- */

.home-motion-plus .instructor-showcase .instructor-profile {
  opacity: 0;
  transform: translateY(30px) rotate(-1.5deg);
  transition: opacity .7s ease, transform 1s var(--ease-out);
}

.home-motion-plus .instructor-showcase.is-inview .instructor-profile {
  opacity: 1;
  transform: none;
}

.home-motion-plus .instructor-showcase.is-inview .instructor-profile:nth-child(1) { transition-delay: .2s; }
.home-motion-plus .instructor-showcase.is-inview .instructor-profile:nth-child(2) { transition-delay: .3s; }
.home-motion-plus .instructor-showcase.is-inview .instructor-profile:nth-child(3) { transition-delay: .4s; }
.home-motion-plus .instructor-showcase.is-inview .instructor-profile:nth-child(4) { transition-delay: .5s; }
.home-motion-plus .instructor-showcase.is-inview .instructor-profile:nth-child(5) { transition-delay: .6s; }
.home-motion-plus .instructor-showcase.is-inview .instructor-profile:nth-child(6) { transition-delay: .7s; }
.home-motion-plus .instructor-showcase.is-inview .instructor-profile:nth-child(7) { transition-delay: .8s; }

/* ---------- Signature ivoire : le trait cuivre se tire sous le titre ---------- */

.home-motion-plus .student-signature::after {
  transform: translateX(-50%) scaleX(0);
  transition: transform .9s var(--ease-draw) .9s;
}

.home-motion-plus .student-signature.is-inview::after {
  transform: translateX(-50%) scaleX(1);
}

.home-motion-plus .student-signature strong {
  opacity: 0;
  letter-spacing: .4em;
  transition: opacity .8s ease, letter-spacing 1.2s var(--ease-out);
}

.home-motion-plus .student-signature.is-inview strong {
  opacity: 1;
  letter-spacing: .18em;
}

/* ---------- Footer : les filets des colonnes montent, les colonnes suivent ---------- */

.home-motion-plus .premium-footer__column {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s ease, transform .9s var(--ease-out);
}

.home-motion-plus .premium-footer.is-inview .premium-footer__column {
  opacity: 1;
  transform: none;
}

.home-motion-plus .premium-footer.is-inview .premium-footer__column:nth-child(2) { transition-delay: .12s; }
.home-motion-plus .premium-footer.is-inview .premium-footer__column:nth-child(3) { transition-delay: .24s; }
.home-motion-plus .premium-footer.is-inview .premium-footer__column:nth-child(4) { transition-delay: .36s; }

.home-motion-plus .premium-footer__column h3::before {
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .7s var(--ease-draw) .5s;
}

.home-motion-plus .premium-footer.is-inview .premium-footer__column h3::before {
  transform: scaleX(1);
}

/* ---------- Repères de section : ils glissent depuis la droite avec la section ---------- */

.home-motion-plus .home-section-mark {
  opacity: 0;
  transform: translateX(16px);
  transition: opacity .6s ease .2s, transform .8s var(--ease-out) .2s;
}

.home-motion-plus section.is-inview > .home-section-mark {
  opacity: 1;
  transform: none;
}

/* ---------- Section posée : plus aucun délai d'enchaînement, les survols répondent tout de suite ---------- */

.home-motion-plus .is-settled *,
.home-motion-plus .is-settled *::before,
.home-motion-plus .is-settled *::after {
  transition-delay: 0s !important;
}

/* ---------- Mobile : on allège (pas de parallaxe du hero, pas d'inclinaison du bandeau) ---------- */

@media (max-width: 720px) {
  .home-motion-plus .catalogue-home .student-hero__copy,
  .home-motion-plus .catalogue-home .hero-notebook,
  .home-motion-plus .catalogue-home .student-hero::after,
  .home-motion-plus .home-final h2 {
    transform: none;
    opacity: 1;
  }

  .home-motion-plus .catalogue-home .hero-notebook { transform: rotate(1.2deg); }

  .home-motion-plus .home-gestures-band,
  .home-motion-plus .home-gestures-band__track { transform: none; }

  .home-trace-line { width: 2px; }
}

/* ---------- Pointer fin : léger sursaut des cartes au survol (pas une animation d'entrée) ---------- */

@media (hover: hover) and (pointer: fine) {
  .home-motion-plus .home-voice,
  .home-motion-plus .home-lesson__item,
  .home-motion-plus .home-final__door,
  .home-motion-plus .instructor-profile {
    transition-property: opacity, transform, box-shadow, background-color, border-color, color;
  }
}

/* ---------- Mouvement réduit : rien de tout cela ne s'applique (le script ne pose pas la classe),
   mais on protège au cas où. ---------- */

@media (prefers-reduced-motion: reduce) {
  .home-motion-plus *,
  .home-motion-plus *::before,
  .home-motion-plus *::after {
    animation: none !important;
    transition: none !important;
    clip-path: none !important;
    opacity: 1 !important;
  }

  .home-trace-line { display: none; }
}
