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

@keyframes pulseGlow {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(255, 107, 53, 0.25);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(255, 107, 53, 0);
  }
}

@keyframes waveDrift {
  from {
    background-position-x: 0;
  }
  to {
    background-position-x: 70px;
  }
}

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

.offer-pill {
  animation: pulseGlow 2.5s ease-in-out infinite;
}

.hero-highlights span {
  animation: floatBob 3s ease-in-out infinite;
}

.hero-highlights span:nth-child(2) {
  animation-delay: 0.25s;
}

.hero-highlights span:nth-child(3) {
  animation-delay: 0.5s;
}

.attraction-card,
.price-card,
.package-card,
.benefit,
.gallery-item,
.btn {
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.attraction-card:hover,
.price-card:hover,
.package-card:hover,
.benefit:hover,
.gallery-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(2, 62, 138, 0.16);
}

.btn:hover {
  filter: brightness(1.05);
}

.reveal {
  opacity: 0;
  transform: translateY(18px);
}

.reveal.visible {
  animation: riseIn 0.55s ease forwards;
}
