/* ============================================================
   animations.css — Micro-animations & Transitions Premium
   ============================================================ */

/* 1. Transitions Globales */
.transition-hover {
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.transition-hover:hover {
  transform: scale(1.02);
}

/* 2. Animations Keyframes */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slideInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes pulseGold {
  0% {
    box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.4);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(245, 158, 11, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(245, 158, 11, 0);
  }
}

@keyframes pulseIndigo {
  0% {
    box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.4);
  }
  70% {
    box-shadow: 0 0 0 12px rgba(99, 102, 241, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(99, 102, 241, 0);
  }
}

@keyframes float {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-8px);
  }
  100% {
    transform: translateY(0px);
  }
}

/* Classes d'animations prêtes à l'emploi */
.anime-fade-in {
  animation: fadeIn 0.4s ease-out forwards;
}

.anime-slide-up {
  animation: slideInUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.anime-slide-left {
  animation: slideInLeft 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.anime-slide-right {
  animation: slideInRight 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.anime-flotte {
  animation: float 4s ease-in-out infinite;
}

.pulse-or-actif {
  animation: pulseGold 2s infinite;
}

.pulse-indigo-actif {
  animation: pulseIndigo 2.5s infinite;
}

/* Retards d'animation pour l'apparition en cascade */
.delai-1 { animation-delay: 0.1s; }
.delai-2 { animation-delay: 0.2s; }
.delai-3 { animation-delay: 0.3s; }
.delai-4 { animation-delay: 0.4s; }
.delai-5 { animation-delay: 0.5s; }
