/* ═══════════════════════════════════════════
   OCLINIC — Animations
   ═══════════════════════════════════════════ */

/* Scroll Reveal */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity var(--duration-slow) var(--ease-out),
              transform var(--duration-slow) var(--ease-out);
}

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

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }

/* Fade In */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.fade-in {
  animation: fadeIn 0.8s var(--ease-out) forwards;
}

/* Pulse */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

/* Scroll Hint */
@keyframes scrollHint {
  0%, 100% { opacity: 0.4; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(6px); }
}

.scroll-hint__line {
  animation: scrollHint 2s var(--ease-in-out) infinite;
}

/* Float subtle */
@keyframes floatSubtle {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

/* Badge shimmer */
@keyframes shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}

.hero__badge {
  animation: fadeIn 0.6s var(--ease-out) 0.2s both;
}

.hero__title {
  animation: fadeIn 0.8s var(--ease-out) 0.4s both;
}

.hero__lead {
  animation: fadeIn 0.8s var(--ease-out) 0.6s both;
}

.hero__ctas {
  animation: fadeIn 0.8s var(--ease-out) 0.8s both;
}

.hero__microcopy {
  animation: fadeIn 0.8s var(--ease-out) 1s both;
}

.hero__stats {
  animation: fadeIn 0.8s var(--ease-out) 1.2s both;
}

/* Modal animation */
.booking-modal__content {
  animation: fadeIn 0.4s var(--ease-out) forwards;
}

/* Calendar day hover */
.calendar__day {
  transition: all 0.15s var(--ease-out);
}

/* Toast slide */
@keyframes toastSlide {
  from { transform: translateY(120%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* Link underline animation */
@keyframes underlineGrow {
  from { width: 0; }
  to { width: 100%; }
}

/* Stat counter feel */
.hero__stat {
  transition: transform var(--duration-base) var(--ease-out),
              box-shadow var(--duration-base) var(--ease-out);
}

.hero__stat:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: var(--shadow-md);
}

/* Dynamic Float for icons */
@keyframes floatGentle {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

/* Button Glow Pulse */
@keyframes buttonGlow {
  0% { box-shadow: 0 0 0 0 rgba(184, 155, 114, 0.4); }
  70% { box-shadow: 0 0 0 10px rgba(184, 155, 114, 0); }
  100% { box-shadow: 0 0 0 0 rgba(184, 155, 114, 0); }
}

/* Shine effect for buttons */
@keyframes shine {
  0% { left: -100%; }
  20% { left: 100%; }
  100% { left: 100%; }
}

/* Treatment card gradient sweep */
@keyframes gradientSweep {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Confirmation checkmark */
@keyframes checkPop {
  0% { transform: scale(0); opacity: 0; }
  60% { transform: scale(1.2); }
  100% { transform: scale(1); opacity: 1; }
}

.booking-confirmation__icon {
  animation: checkPop 0.5s var(--ease-out) 0.2s both;
}
