/* =========================================================
   A&S Event — ANIMATIONS
   Reveal au scroll (désactivé), keyframes, parallaxe
   ========================================================= */

/* ========== REVEAL AU SCROLL (DÉSACTIVÉ) ==========
   Les éléments avec la classe .reveal restent visibles
   en permanence. Le JavaScript n'a plus besoin d'ajouter
   la classe .is-visible pour les afficher.
   ========================================================= */
.reveal {
  opacity: 1;
  transform: none;
}

.reveal-left {
  opacity: 1;
  transform: none;
}

.reveal-right {
  opacity: 1;
  transform: none;
}

.reveal-scale {
  opacity: 1;
  transform: none;
}

/* ========== KEYFRAMES ========== */

/* Flottement doux */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}

/* Rebond (flèche de scroll) */
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
  40% { transform: translateX(-50%) translateY(-12px); }
  60% { transform: translateX(-50%) translateY(-6px); }
}

/* Pulsation WhatsApp */
@keyframes pulse {
  0% {
    transform: scale(1);
    opacity: 0.7;
  }
  70% {
    transform: scale(1.6);
    opacity: 0;
  }
  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}

/* Shimmer doré */
@keyframes shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}

/* Rotation lente */
@keyframes spin-slow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Apparition fade simple */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Entrée depuis le bas */
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Entrée depuis la droite */
@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(60px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Zoom léger */
@keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale(0.85);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Animation vidéo YouTube */
@keyframes videoReveal {
  from {
    opacity: 0;
    transform: scale(0.95) translateY(20px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes videoGlow {
  0%, 100% {
    box-shadow: var(--shadow-lg), 0 0 0 0 rgba(212, 162, 74, 0.4);
  }
  50% {
    box-shadow: var(--shadow-lg), 0 0 0 12px rgba(212, 162, 74, 0);
  }
}

/* ========== CLASSES D'ANIMATION ========== */
.anim-float { animation: float 4s ease-in-out infinite; }
.anim-fade-in { animation: fadeIn 1s var(--ease-out) both; }
.anim-slide-up { animation: slideUp 0.8s var(--ease-out) both; }
.anim-slide-right { animation: slideInRight 0.8s var(--ease-out) both; }
.anim-zoom-in { animation: zoomIn 0.7s var(--ease-out) both; }

/* Vidéo YouTube : apparition */
.video-container {
  animation: videoReveal 0.9s var(--ease-out) both;
}

/* ========== EFFET SHIMMER DORÉ ========== */
.shimmer-text {
  background: linear-gradient(
    90deg,
    var(--color-accent) 0%,
    #f8e5b0 25%,
    var(--color-accent) 50%,
    #f8e5b0 75%,
    var(--color-accent) 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: shimmer 4s linear infinite;
}

/* ========== HOVER MICRO-INTERACTIONS ========== */

/* Effet lift */
.hover-lift {
  transition: transform 0.4s var(--ease-out), box-shadow 0.4s var(--ease-out);
}
.hover-lift:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}

/* Effet glow doré */
.hover-glow {
  transition: box-shadow 0.4s var(--ease), transform 0.4s var(--ease);
}
.hover-glow:hover {
  box-shadow: var(--shadow-gold);
  transform: translateY(-3px);
}

/* Lien souligné animé */
.link-underline {
  position: relative;
}
.link-underline::after {
  content: "";
  position: absolute;
  bottom: -2px; left: 0;
  width: 0;
  height: 1px;
  background: var(--color-accent);
  transition: width 0.35s var(--ease-out);
}
.link-underline:hover::after { width: 100%; }

/* ========== TRANSITION DE PAGE (DÉSACTIVÉE) ==========
   Le body reste toujours visible, plus besoin de la
   classe .page-loaded pour l'afficher.
   ========================================================= */
body {
  opacity: 1;
}

/* ========== PARALLAXE ========== */
[data-parallax] {
  will-change: transform;
}

/* ========== ACCESSIBILITÉ ========== */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal-left,
  .reveal-right,
  .reveal-scale {
    opacity: 1 !important;
    transform: none !important;
  }

  .anim-float,
  .whatsapp-pulse,
  .hero-scroll {
    animation: none !important;
  }

  .video-container {
    animation: none !important;
  }

  .video-container:hover {
    animation: none !important;
  }
}