/* ------------------------------------------------------------------
   Landing (accueil) — animations au scroll + finitions hover.
   Chargé UNIQUEMENT sur index.html. Le hero n'est jamais ciblé.
   Le contenu et le design existant ne changent pas : on ajoute du
   mouvement (reveal) et des micro-interactions.
   - .reveal est posé par home-anim.js → si le JS est absent/échoue,
     aucune section n'est cachée (contenu visible par défaut).
   - prefers-reduced-motion : tout est révélé sans animation.
------------------------------------------------------------------ */

/* Apparition au scroll (fade + léger slide-up, cascade gérée en JS) */
.reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity 1.1s cubic-bezier(.22,.61,.36,1),
             transform 1.1s cubic-bezier(.22,.61,.36,1);
  will-change:opacity,transform;
}
.reveal.is-in{opacity:1;transform:none}

/* Finitions hover — cartes propres à l'accueil (aucune autre page touchée,
   sélecteurs scopés par ID de section). Léger soulèvement + ombre. */
#ca-vous-parle .cvp-card,
#le-basculement .bsc-card,
#offre-vendeurs .ttvov-card,
#vitrine .veh-card,
section .persona-card{
  transition:transform .32s cubic-bezier(.22,.61,.36,1),
             box-shadow .32s cubic-bezier(.22,.61,.36,1);
}
#le-basculement .bsc-card:hover,
#offre-vendeurs .ttvov-card:hover,
#vitrine .veh-card:hover,
section .persona-card:hover{transform:translateY(-5px)}
#ca-vous-parle .cvp-card:hover{transform:translateY(-4px)}

section .persona-card:hover{box-shadow:0 22px 50px -28px rgba(15,23,42,.45)}
#offre-vendeurs .ttvov-card:hover{box-shadow:0 26px 55px -30px rgba(37,99,235,.40)}
#vitrine .veh-card:hover{box-shadow:0 22px 48px -26px rgba(15,23,42,.40)}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1 !important;transform:none !important;transition:none !important}
}

/* Reveal LATÉRAL, lent + déclenché au dernier moment (obsLate en JS).
   Utilisé pour l'encart « Pourquoi ça marche » + son call-to-action :
   ils arrivent du côté quand on les atteint. Le .section a overflow:hidden
   → le décalage horizontal n'ajoute jamais de scroll horizontal à la page. */
.reveal-x{
  opacity:0;
  transition:opacity 1.4s cubic-bezier(.22,.61,.36,1),
             transform 1.4s cubic-bezier(.22,.61,.36,1);
  will-change:opacity,transform;
}
.reveal-x.reveal-x-right{transform:translateX(80px)}
.reveal-x.reveal-x-left{transform:translateX(-80px)}
.reveal-x.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .reveal-x{opacity:1 !important;transform:none !important;transition:none !important}
}
