/* ==========================================================================
   COMERCIAL ESTUARDO - ANIMATIONS & TRANSITIONS CSS
   ========================================================================== */

/* 1. Keyframes Básicos */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

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

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

@keyframes pulseGlow {
  0%, 100% {
    box-shadow: 0 0 15px rgba(255, 59, 48, 0.4), 0 0 30px rgba(255, 59, 48, 0.2);
  }
  50% {
    box-shadow: 0 0 25px rgba(255, 59, 48, 0.8), 0 0 50px rgba(255, 59, 48, 0.4);
  }
}

@keyframes cyanGlow {
  0%, 100% {
    box-shadow: 0 0 15px rgba(0, 210, 255, 0.4);
  }
  50% {
    box-shadow: 0 0 28px rgba(0, 210, 255, 0.8);
  }
}

@keyframes floatHero {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-10px) rotate(0.5deg);
  }
}

@keyframes neonBorderRotate {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

@keyframes beaconPing {
  0% {
    transform: scale(0.95);
    opacity: 0.8;
  }
  70% {
    transform: scale(1.6);
    opacity: 0;
  }
  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}

/* 2. Scroll Reveal Utility Classes */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal-on-scroll.from-left {
  transform: translateX(-40px);
}

.reveal-on-scroll.from-right {
  transform: translateX(40px);
}

.reveal-on-scroll.is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

/* 3. Card Animations */
.fade-in-card {
  animation: fadeIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.highlight-pulse {
  animation: pulseGlow 1.2s ease-in-out 2;
  border-color: #ff3b30 !important;
}

/* 4. Interactive Floating Effect */
.hero-floating-element {
  animation: floatHero 6s ease-in-out infinite;
}

/* 5. Glowing Neon Badge */
.neon-badge-orange {
  position: relative;
  background: linear-gradient(135deg, rgba(255, 59, 48, 0.2), rgba(255, 122, 0, 0.1));
  border: 1px solid rgba(255, 59, 48, 0.6);
  box-shadow: 0 0 14px rgba(255, 59, 48, 0.3);
}

.neon-badge-cyan {
  position: relative;
  background: linear-gradient(135deg, rgba(0, 210, 255, 0.2), rgba(0, 114, 255, 0.1));
  border: 1px solid rgba(0, 210, 255, 0.6);
  box-shadow: 0 0 14px rgba(0, 210, 255, 0.3);
}
