/* Animations SL Production — port des effets motion (React) vers CSS + IntersectionObserver. */

/* Révélations au scroll */
.slp-reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.slp-reveal.is-visible{opacity:1;transform:none}
.slp-reveal-clip{opacity:0;transform:translateY(40px);clip-path:inset(100% 0 0 0);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1),clip-path .9s cubic-bezier(.22,1,.36,1)}
.slp-reveal-clip.is-visible{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
.slp-reveal-left{opacity:0;transform:translateX(-48px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.slp-reveal-left.is-visible{opacity:1;transform:none}
.slp-reveal-right{opacity:0;transform:translateX(48px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.slp-reveal-right.is-visible{opacity:1;transform:none}
.slp-reveal-scale{opacity:0;transform:scale(.92);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.slp-reveal-scale.is-visible{opacity:1;transform:none}

/* Stagger : enfants décalés */
.slp-stagger>*{opacity:0;transform:translateY(34px) scale(.97);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1)}
.slp-stagger.is-visible>*{opacity:1;transform:none}
.slp-stagger.is-visible>*:nth-child(2){transition-delay:.08s}
.slp-stagger.is-visible>*:nth-child(3){transition-delay:.16s}
.slp-stagger.is-visible>*:nth-child(4){transition-delay:.24s}
.slp-stagger.is-visible>*:nth-child(5){transition-delay:.32s}
.slp-stagger.is-visible>*:nth-child(6){transition-delay:.4s}
.slp-stagger.is-visible>*:nth-child(7){transition-delay:.48s}
.slp-stagger.is-visible>*:nth-child(8){transition-delay:.56s}

/* Hero : révélation ligne par ligne + fondu, au chargement */
.slp-line{transform:translateY(110%);animation:slpLineIn .9s cubic-bezier(.22,1,.36,1) forwards;animation-delay:var(--d,0s)}
@keyframes slpLineIn{to{transform:translateY(0)}}
.slp-anim{opacity:0;animation:slpFadeUp .7s cubic-bezier(.22,1,.36,1) forwards;animation-delay:var(--d,0s)}
@keyframes slpFadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* Indicateur de défilement */
.slp-bounce{animation:slpBounce 1.5s ease-in-out infinite}
@keyframes slpBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}

@media (prefers-reduced-motion: reduce){
  .slp-reveal,.slp-reveal-clip,.slp-reveal-left,.slp-reveal-right,.slp-reveal-scale,.slp-stagger>*{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
  .slp-line{transform:none!important;animation:none!important}
  .slp-anim{opacity:1!important;animation:none!important}
  .slp-bounce{animation:none!important}
}


/* En-tete fixe : decale sous la barre d'admin WordPress (utilisateur connecte). */
.admin-bar #slp-header{top:32px}
@media screen and (max-width:782px){.admin-bar #slp-header{top:46px}}

/* Page Artistes : afficher TOUS les artistes immediatement, en couleur (sans dependre du scroll). */
.page-id-16 .slp-stagger > *{opacity:1 !important;transform:none !important}
.page-id-16 [data-artist-card] img{filter:none !important;opacity:1 !important}

/* FIABILITE GLOBALE : contenu toujours visible et bien positionne sur tous les ecrans. */
/* (Neutralise les etats caches/decales des animations d'entree pour eviter tout chevauchement.) */
.slp-reveal,.slp-reveal-clip,.slp-reveal-left,.slp-reveal-right,.slp-reveal-scale{opacity:1 !important;transform:none !important;clip-path:none !important}
.slp-stagger>*{opacity:1 !important;transform:none !important}
