/* =============================================
   GOMETZ SERRURIER — ANIMATIONS
   ============================================= */

/* ---- REVEAL ON SCROLL ---- */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(.4,0,.2,1), transform 0.7s cubic-bezier(.4,0,.2,1);
}
.reveal.visible {
  opacity: 1;
  transform: none;
}

/* Stagger children */
.services__grid .service-card:nth-child(1) { transition-delay: .05s; }
.services__grid .service-card:nth-child(2) { transition-delay: .12s; }
.services__grid .service-card:nth-child(3) { transition-delay: .19s; }
.services__grid .service-card:nth-child(4) { transition-delay: .26s; }
.services__grid .service-card:nth-child(5) { transition-delay: .33s; }
.services__grid .service-card:nth-child(6) { transition-delay: .40s; }

.tarifs__grid .tarif-card:nth-child(1) { transition-delay: .05s; }
.tarifs__grid .tarif-card:nth-child(2) { transition-delay: .15s; }
.tarifs__grid .tarif-card:nth-child(3) { transition-delay: .25s; }

.reassurance__grid .reassurance__item:nth-child(1) { transition-delay: .05s; }
.reassurance__grid .reassurance__item:nth-child(2) { transition-delay: .12s; }
.reassurance__grid .reassurance__item:nth-child(3) { transition-delay: .19s; }
.reassurance__grid .reassurance__item:nth-child(4) { transition-delay: .26s; }

.avis__grid .avis-card:nth-child(1) { transition-delay: .05s; }
.avis__grid .avis-card:nth-child(2) { transition-delay: .12s; }
.avis__grid .avis-card:nth-child(3) { transition-delay: .19s; }
.avis__grid .avis-card:nth-child(4) { transition-delay: .26s; }
.avis__grid .avis-card:nth-child(5) { transition-delay: .33s; }
.avis__grid .avis-card:nth-child(6) { transition-delay: .40s; }

/* ---- HERO REVEAL ---- */
.hero__badge.reveal { transition-delay: .1s; }
.hero__title.reveal { transition-delay: .25s; }
.hero__sub.reveal { transition-delay: .4s; }
.hero__actions.reveal { transition-delay: .55s; }
.hero__stats.reveal { transition-delay: .7s; }

/* ---- FADE IN ---- */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}
.avis-card {
  animation: fadeIn .5s ease forwards;
}
