/* ======================================================================
   VERSION ANIMÉE : apparitions douces, contenus visibles dès le chargement.
   ====================================================================== */
/* les blocs restent lisibles au repos ; ils glissent légèrement en place */
.js .reveal,.reveal{opacity:1!important;filter:none!important;transform:translateY(18px);transition:transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js .reveal.in,.reveal.in{transform:none}

@media (prefers-reduced-motion:no-preference){
  /* héros : entrée orchestrée */
  .hero3 .h3-eyebrow,.hero3 h1,.hero3 p,.hero3 .h3-cta{animation:rise 1s cubic-bezier(.2,.7,.2,1) both}
  .hero3 h1{animation-delay:.12s}
  .hero3 p{animation-delay:.28s}
  .hero3 .h3-cta{animation-delay:.42s}
  .hero3 .h3-eyebrow::after{animation:grow 1.1s .5s cubic-bezier(.2,.7,.2,1) both}
  .hero3 h1 span{background-size:200% 100%;animation:sheen 6s ease-in-out infinite}
  .h3-feat .h3-ico{animation:pop .7s cubic-bezier(.2,.9,.3,1.3) both}
  .h3-feat:nth-child(1) .h3-ico{animation-delay:.6s}
  .h3-feat:nth-child(2) .h3-ico{animation-delay:.72s}
  .h3-feat:nth-child(3) .h3-ico{animation-delay:.84s}
  .h3-feat:nth-child(4) .h3-ico{animation-delay:.96s}

  /* parcours : la ligne de progression circule */
  .path::before{background-size:200% 100%;animation:flow 5s linear infinite}
  .path .n{animation:pulse 3.2s ease-in-out infinite}
  .path li:nth-child(2) .n{animation-delay:.5s}
  .path li:nth-child(3) .n{animation-delay:1s}

  /* sceau de l'offre IG */
  .seal{animation:sway 4s ease-in-out infinite}

  /* cartes et photos : relief au survol */
  #accompagnements .offer,.salle,.member,.quote,.call,.way{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
  #accompagnements .offer:hover,.call:hover,.quote:hover{transform:translateY(-6px);box-shadow:0 30px 60px -36px rgba(46,155,255,.55)}
  .trio .offer.ig:hover{transform:translateY(-18px)}
  .member:hover img{transform:scale(1.03)}
  .member img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
  .member{overflow:hidden}
  .day5 li img{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
  .day5 li:hover img{transform:translateY(-4px)}
  .day5 .d-ico{transition:transform .3s}
  .day5 li:hover .d-ico{transform:scale(1.12)}
  .come-door{animation:knock 5s ease-in-out infinite}

  /* section trader financé : halo vivant */
  .funded::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(600px 300px at 80% 10%,rgba(232,119,46,.18),transparent 70%);animation:breathe 7s ease-in-out infinite}
}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes grow{from{width:0}to{width:36px}}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.07) translateX(-1.5%)}}
@keyframes sheen{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
@keyframes flow{from{background-position:0% 0}to{background-position:200% 0}}
@keyframes pulse{0%,100%{box-shadow:0 10px 26px -12px rgba(0,0,0,.8),0 0 0 0 rgba(120,180,255,0)}50%{box-shadow:0 10px 26px -12px rgba(0,0,0,.8),0 0 0 8px rgba(120,180,255,.10)}}
@keyframes sway{0%,100%{transform:rotate(8deg)}50%{transform:rotate(-4deg) scale(1.04)}}
@keyframes shine{0%,60%{background-position:150% 0}100%{background-position:-50% 0}}
@keyframes knock{0%,86%,100%{transform:none}89%{transform:rotate(-6deg)}92%{transform:rotate(5deg)}95%{transform:rotate(-3deg)}}
@keyframes breathe{0%,100%{opacity:.6}50%{opacity:1}}
