/* =============================================
   SCROLL REVEAL
   ============================================= */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hero stagger */
.hero__content .reveal:nth-child(1) { transition-delay: 0.15s; }
.hero__content .reveal:nth-child(2) { transition-delay: 0.30s; }
.hero__content .reveal:nth-child(3) { transition-delay: 0.45s; }
.hero__content .reveal:nth-child(4) { transition-delay: 0.60s; }

/* =============================================
   TARIFA CARDS
   ============================================= */
.tarifa-card {
  opacity: 0;
  transform: translateY(28px);
  will-change: opacity, transform;
  transition: opacity 0.7s ease, transform 0.7s ease,
              border-color 0.3s ease, box-shadow 0.3s ease;
}
.tarifa-card.is-visible { opacity: 1; transform: translateY(0); }

.tarifa-card:nth-child(1) { transition-delay: 0.05s; }
.tarifa-card:nth-child(2) { transition-delay: 0.18s; }
.tarifa-card:nth-child(3) { transition-delay: 0.31s; }

.tarifa-card:hover { transform: translateY(-5px) !important; }
.tarifa-card--destacado:hover { box-shadow: 0 4px 24px rgba(217,30,30,0.28); }

/* =============================================
   TESTIMONIOS
   ============================================= */
.testimonio {
  opacity: 0;
  transform: translateY(28px);
  will-change: opacity, transform;
  transition: opacity 0.7s ease, transform 0.7s ease, border-color 0.3s ease;
}
.testimonio.is-visible { opacity: 1; transform: translateY(0); }

.testimonio:nth-child(1) { transition-delay: 0.05s; }
.testimonio:nth-child(2) { transition-delay: 0.18s; }
.testimonio:nth-child(3) { transition-delay: 0.31s; }

.testimonio:hover { border-color: var(--color-accent); }

/* =============================================
   NAV OVERLAY (mobile)
   ============================================= */
.nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(2px);
  z-index: 999;
}
.nav-overlay.is-active { display: block; }
