/* ============================================================
   PM-REVEAL — ANIMATIONS D'APPARITION AU SCROLL (v19)
   ============================================================
   Objectif : une SEULE grammaire d'animation pour tout le site.
   Avant v19, trois systèmes coexistaient (.reveal sur Studio,
   [data-reveal] sur Merchandising et Notre Histoire) et cinq pages
   n'avaient aucune animation (Cassettes, Le Vinyle, Le Packaging,
   Specs & Templates, FAQ, Configurateur, Réservation).

   Réglages canoniques — à ne modifier qu'ICI :
     · translation : 24px vers le haut
     · durée       : .7s
     · courbe      : cubic-bezier(.22,.61,.36,1)

   Le JS (pm-reveal.js) ajoute .is-in dès que l'élément entre
   dans le viewport. Les pages qui possèdent déjà leur propre
   système sont détectées et laissées intactes.
   ============================================================ */

:root {
  --pm-rv-shift: 24px;
  --pm-rv-time: .7s;
  --pm-rv-ease: cubic-bezier(.22, .61, .36, 1);
}

.pm-rv {
  opacity: 0;
  transform: translateY(var(--pm-rv-shift));
  transition: opacity var(--pm-rv-time) var(--pm-rv-ease),
              transform var(--pm-rv-time) var(--pm-rv-ease);
  will-change: opacity, transform;
}

.pm-rv.is-in {
  opacity: 1;
  transform: translateY(0);
}

/* Filet de sécurité : si le JS ne s'exécute pas (erreur, no-JS),
   le contenu reste visible. */
.no-js .pm-rv,
html:not(.pm-rv-ready) .pm-rv {
  opacity: 1;
  transform: none;
}

/* ---------- Accessibilité ----------
   On respecte le réglage système « réduire les animations ».
   S'applique aussi aux deux anciens systèmes, pour que le
   comportement soit identique partout. */
@media (prefers-reduced-motion: reduce) {
  .pm-rv,
  .reveal,
  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}
