.animate-on-scroll {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}

.animate-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.hero__content {
  animation: heroFade 1s ease both;
}

@keyframes heroFade {
  0% {
    opacity: 0;
    transform: translateY(18px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.card,
.stat,
.price,
.btn,
.accordion-item,
.team-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.card:hover,
.stat:hover,
.price:hover,
.team-card:hover {
  transform: translateY(-6px) scale(1.01);
  box-shadow: 0 14px 30px rgba(26, 43, 76, 0.18);
}

.btn:hover {
  animation: pulseSoft 0.45s ease-in-out;
}

.btn:active {
  transform: scale(0.98);
}

@keyframes pulseSoft {
  0% {
    box-shadow: 0 0 0 0 rgba(0, 115, 230, 0.3);
  }
  100% {
    box-shadow: 0 0 0 14px rgba(0, 115, 230, 0);
  }
}
