/* SMART MZK — Animations & Transitions */

/* === Keyframe Animations === */
@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

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

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

@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.8;
  }
}

@keyframes shimmer {
  0% {
    background-position: -1000px 0;
  }
  100% {
    background-position: 1000px 0;
  }
}

/* === Hero Entrance === */
.hero__content {
  animation: slideInLeft 0.9s ease-out forwards;
}

.hero__logo-float {
  animation: fadeInUp 2s ease-out 0.5s forwards;
  opacity: 0;
}

.hero__geo3 {
  animation: float 6s ease-in-out infinite;
}

/* === Scroll-Triggered Reveals === */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity var(--transition-slow) ease, transform var(--transition-slow) ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* === Staggered Reveals for Lists === */
.reveal-item {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--transition-medium) ease, transform var(--transition-medium) ease;
}

.reveal-item:nth-child(1) {
  transition-delay: 0s;
}

.reveal-item:nth-child(2) {
  transition-delay: 0.1s;
}

.reveal-item:nth-child(3) {
  transition-delay: 0.2s;
}

.reveal-item:nth-child(4) {
  transition-delay: 0.3s;
}

.reveal-item:nth-child(5) {
  transition-delay: 0.4s;
}

.reveal-item:nth-child(6) {
  transition-delay: 0.5s;
}

.reveal.visible .reveal-item {
  opacity: 1;
  transform: translateY(0);
}

/* === Button Animations === */
a.hero__cta {
  position: relative;
  overflow: hidden;
}

a.hero__cta::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.15);
  transition: left var(--transition-fast);
  z-index: -1;
}

a.hero__cta:hover::before {
  left: 100%;
}

/* === Link Hover Animations === */
.nav__links a {
  position: relative;
  overflow: hidden;
}

.nav__links a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--green);
  transition: width var(--transition-fast);
}

.nav__links a:hover::after {
  width: 100%;
}

/* === Card Hover Animations === */
.services__card {
  transition: all var(--transition-fast);
}

.services__card:hover {
  animation: none;
}

.about__stat {
  transition: all var(--transition-fast);
}

.about__stat:hover {
  animation: none;
}

/* === Loading State (optional) === */
.loading {
  animation: pulse 1.5s ease-in-out infinite;
}

/* === Smooth Color Transitions === */
a,
button,
.nav__links a,
.services__card,
.about__stat,
.contact__info-value a {
  transition: color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

/* === Reduced Motion Preferences === */
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }

  html {
    scroll-behavior: auto;
  }

  .reveal,
  .reveal-item {
    opacity: 1;
    transform: none;
  }
}
