/* ================================================================
   FENETEC PARÁ 2026 — animations.css
================================================================ */

/* Fade-up (AOS uses this via custom attrs) */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(32px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

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

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

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.92); }
  to   { opacity: 1; transform: scale(1); }
}

/* Hero entrance */
.hero-badge    { animation: fadeUp .8s ease both; animation-delay: .1s; }
.hero-title    { animation: fadeUp .9s ease both; animation-delay: .2s; }
.hero-year     { animation: fadeUp .9s ease both; animation-delay: .3s; }
.hero-sub      { animation: fadeUp .9s ease both; animation-delay: .4s; }
.hero-meta     { animation: fadeUp .9s ease both; animation-delay: .55s; }
.hero-actions  { animation: fadeUp .9s ease both; animation-delay: .7s; }
.hero-scroll   { animation: fadeIn 1.2s ease both; animation-delay: 1.2s; }

/* Green line reveal */
.section-label { position: relative; }

/* Card hover shimmer */
.destaque-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--radius-lg);
  background: linear-gradient(
    120deg,
    transparent 30%,
    rgba(255,255,255,.12) 50%,
    transparent 70%
  );
  opacity: 0;
  transition: opacity .4s ease;
}
.destaque-card:hover::after {
  opacity: 1;
  animation: shimmer .7s ease;
}
@keyframes shimmer {
  from { background-position: -200% center; }
  to   { background-position: 200% center; }
}

/* Form input focus ring animation */
.form-input, .form-select {
  transition:
    border-color .2s ease,
    box-shadow .2s ease,
    background-color .2s ease;
}

/* Button press */
.btn-submit:active:not(:disabled) {
  transform: scale(0.98);
}

/* Nav link underline effect */
.nav-links a {
  position: relative;
}

/* Smooth counter (JS handles the number, CSS handles the element) */
.counter-item {
  transition: transform .3s ease;
}
.counter-item:hover { transform: scale(1.05); }

/* Page transition overlay */
.page-transition {
  position: fixed;
  inset: 0;
  background: var(--verde-dark);
  z-index: 9999;
  pointer-events: none;
  opacity: 0;
  transition: opacity .4s ease;
}
.page-transition.active { opacity: 1; }

/* Scroll reveal for AOS-like manual fallback */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-left {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal-left.visible {
  opacity: 1;
  transform: translateX(0);
}
.reveal-right {
  opacity: 0;
  transform: translateX(30px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal-right.visible {
  opacity: 1;
  transform: translateX(0);
}
