/*
 * Animations du thème (chargées par défaut ; désactivables dans le Personnalisateur). Seuls transform et opacity sont animés.
 * Sans JavaScript, aucune classe .rw-reveal n'existe : tout le contenu reste visible.
 */

/* Apparition au défilement (classes ajoutées par animations.js aux éléments hors écran). */
.rw-anim .rw-reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .8s ease-out, transform .8s cubic-bezier(.2, .7, .2, 1);
  transition-delay: var(--rw-delay, 0ms);
}

.rw-anim .rw-reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Cartes : élévation au survol et au focus clavier, icône qui pulse. */
.rw-anim .rw-card {
  transition: transform .25s ease-out, box-shadow .25s ease-out;
}

.rw-anim .rw-card:hover,
.rw-anim .rw-card:has(:focus-visible) {
  transform: translateY(-5px);
  box-shadow: 0 .75rem 1.5rem rgba(11, 15, 31, .18);
}

.rw-anim .rw-card:hover .rw-card-icon i,
.rw-anim .rw-card:has(:focus-visible) .rw-card-icon i {
  animation: rw-pulse .9s ease-out 1;
}

@keyframes rw-pulse {
  0% { transform: scale(1); }
  40% { transform: scale(1.18); }
  100% { transform: scale(1); }
}

/* Boutons : reflet qui traverse au survol. */
.rw-anim .btn:not(.btn-link) {
  position: relative;
  overflow: hidden;
  transition: transform .2s ease-out;
}

.rw-anim .btn:not(.btn-link)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%);
  transform: translateX(-120%);
  pointer-events: none;
}

.rw-anim .btn:not(.btn-link):hover::after,
.rw-anim .btn:not(.btn-link):focus-visible::after {
  transform: translateX(120%);
  transition: transform .7s ease-out;
}

.rw-anim .btn:not(.btn-link):hover {
  transform: translateY(-2px);
}

/* Hero : parallaxe de l'image (elle déborde de 40 px) et réseau animé (canvas ajouté par animations.js). */
.rw-anim .rw-section-hero .rw-hero-bg {
  top: -40px;
  height: calc(100% + 80px);
  will-change: transform;
}

.rw-network {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}

/* Visiteurs qui demandent moins de mouvement : tout est neutralisé, rien n'est caché. */
@media (prefers-reduced-motion: reduce) {
  .rw-anim .rw-reveal,
  .rw-anim .rw-reveal.is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .rw-anim .rw-card,
  .rw-anim .btn:not(.btn-link) {
    transition: none;
  }

  .rw-anim .rw-card:hover,
  .rw-anim .rw-card:has(:focus-visible),
  .rw-anim .btn:not(.btn-link):hover {
    transform: none;
  }

  .rw-anim .rw-card:hover .rw-card-icon i,
  .rw-anim .rw-card:has(:focus-visible) .rw-card-icon i {
    animation: none;
  }

  .rw-anim .btn:not(.btn-link)::after {
    display: none;
  }

  .rw-anim .rw-section-hero .rw-hero-bg {
    transform: none !important;
    will-change: auto;
  }

  .rw-network {
    display: none;
  }
}
