/* Couche d'animation de l'accueil — purement additive.
   Rien n'est masqué tant que js/motion-home.js n'a pas posé html.mo-ready ;
   sans JS ou avec « réduire les animations », la page reste identique à l'original. */
.mo-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:120;background:linear-gradient(90deg,#0166B1,#4aa3e0);transform:scaleX(0);transform-origin:0 50%;pointer-events:none;opacity:.9}

.mo-ready .mo-reveal{will-change:opacity,transform}
.mo-ready .mo-reveal:not(.mo-in){opacity:0;transform:translate3d(0,34px,0)}
.mo-ready .mo-reveal.mo-in{opacity:1;transform:none;transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--mo-d,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--mo-d,0s)}
.mo-ready .mo-reveal.mo-from-left:not(.mo-in){transform:translate3d(-40px,0,0)}
.mo-ready .mo-reveal.mo-from-right:not(.mo-in){transform:translate3d(40px,0,0)}
.mo-ready .mo-reveal.mo-zoom:not(.mo-in){transform:scale(.94) translate3d(0,20px,0)}

/* Titres de section : trait qui se dessine sous le titre au moment de l'apparition */
.mo-ready .section-title.mo-reveal{position:relative}

/* Hero : entrée en cascade + profondeur au défilement */
.mo-ready .hero-bg{transform:translate3d(0,var(--mo-hero-y,0px),0);will-change:transform}
.mo-ready .hero-split .hero-content{transform:translate3d(0,var(--mo-hero-c,0px),0);will-change:transform}

/* Images « Comment ça marche » : léger zoom + glissement vertical lié au scroll */
.mo-ready .process-img-wrap img{transform:translate3d(0,var(--mo-py,0px),0) scale(1.1);will-change:transform;transition:none}

/* Cartes : relief doux au survol (n'écrase pas les styles existants une fois révélées) */
@media (hover:hover){
  .mo-ready .engagement-card.mo-done,.mo-ready .process-item.mo-done,.mo-ready .review-g.mo-done{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
  .mo-ready .engagement-card.mo-done:hover,.mo-ready .review-g.mo-done:hover{transform:translate3d(0,-6px,0)}
}

/* Réglage système « réduire les animations » : fondu seul, aucun déplacement */
.mo-soft.mo-ready .mo-reveal:not(.mo-in){opacity:0;transform:none}
.mo-soft.mo-ready .mo-reveal.mo-in{transition:opacity .7s ease var(--mo-d,0s)}
.mo-soft.mo-ready .hero-bg,.mo-soft.mo-ready .hero-split .hero-content,.mo-soft.mo-ready .process-img-wrap img{transform:none}
@media (max-width:700px){
  .mo-ready .mo-reveal:not(.mo-in){transform:translate3d(0,22px,0)}
  .mo-ready .mo-reveal.mo-from-left:not(.mo-in),.mo-ready .mo-reveal.mo-from-right:not(.mo-in){transform:translate3d(0,22px,0)}
  .mo-ready .hero-split .hero-content{transform:none}
}
