/* ============================================
   TREKKING CON FEDE — Animations CSS
   SATURATED with animations everywhere!
   ============================================ */

/* --- SCROLL REVEAL ANIMATIONS --- */

/* Base reveal state */
.scroll-reveal,
.scroll-reveal-left,
.scroll-reveal-right,
.scroll-reveal-up,
.scroll-reveal-stagger {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 800ms cubic-bezier(0.4, 0, 0.2, 1),
              transform 800ms cubic-bezier(0.4, 0, 0.2, 1);
}

.scroll-reveal-left {
  transform: translateX(-60px);
}

.scroll-reveal-right {
  transform: translateX(60px);
}

.scroll-reveal-up {
  transform: translateY(60px);
}

/* Revealed state */
.scroll-reveal.revealed,
.scroll-reveal-left.revealed,
.scroll-reveal-right.revealed,
.scroll-reveal-up.revealed,
.scroll-reveal-stagger.revealed {
  opacity: 1;
  transform: translateY(0) translateX(0);
}

/* Stagger delays */
.scroll-reveal-stagger[data-delay="0"] { transition-delay: 0ms; }
.scroll-reveal-stagger[data-delay="50"] { transition-delay: 50ms; }
.scroll-reveal-stagger[data-delay="100"] { transition-delay: 100ms; }
.scroll-reveal-stagger[data-delay="150"] { transition-delay: 150ms; }
.scroll-reveal-stagger[data-delay="200"] { transition-delay: 200ms; }
.scroll-reveal-stagger[data-delay="250"] { transition-delay: 250ms; }
.scroll-reveal-stagger[data-delay="300"] { transition-delay: 300ms; }
.scroll-reveal-stagger[data-delay="350"] { transition-delay: 350ms; }
.scroll-reveal-stagger[data-delay="400"] { transition-delay: 400ms; }
.scroll-reveal-stagger[data-delay="450"] { transition-delay: 450ms; }
.scroll-reveal-stagger[data-delay="500"] { transition-delay: 500ms; }
.scroll-reveal-stagger[data-delay="550"] { transition-delay: 550ms; }
.scroll-reveal-stagger[data-delay="600"] { transition-delay: 600ms; }
.scroll-reveal-stagger[data-delay="650"] { transition-delay: 650ms; }
.scroll-reveal-stagger[data-delay="700"] { transition-delay: 700ms; }
.scroll-reveal-stagger[data-delay="750"] { transition-delay: 750ms; }
.scroll-reveal-stagger[data-delay="800"] { transition-delay: 800ms; }
.scroll-reveal-stagger[data-delay="850"] { transition-delay: 850ms; }

/* --- TEXT REVEAL ANIMATION --- */
.text-reveal {
  display: inline-block;
  overflow: hidden;
}

.text-reveal-inner {
  display: inline-block;
  transform: translateY(100%);
  transition: transform 600ms cubic-bezier(0.4, 0, 0.2, 1);
}

.text-reveal.revealed .text-reveal-inner {
  transform: translateY(0);
}

/* --- PARALLAX ANIMATION --- */
.parallax-bg {
  will-change: transform;
}

/* --- FADE ANIMATIONS --- */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

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

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

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

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

@keyframes fadeInScale {
  from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); }
}

/* --- SLIDE ANIMATIONS --- */
@keyframes slideInUp {
  from { transform: translateY(100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes slideInDown {
  from { transform: translateY(-100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes slideInLeft {
  from { transform: translateX(-100%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

@keyframes slideInRight {
  from { transform: translateX(100%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

/* --- BOUNCE & SPRING ANIMATIONS --- */
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
  40% { transform: translateY(-15px); }
  60% { transform: translateY(-8px); }
}

@keyframes bounceIn {
  0% { transform: scale(0.3); opacity: 0; }
  50% { transform: scale(1.05); }
  70% { transform: scale(0.95); }
  100% { transform: scale(1); opacity: 1; }
}

@keyframes springIn {
  0% { transform: scale(0) rotate(-10deg); opacity: 0; }
  50% { transform: scale(1.15) rotate(3deg); }
  75% { transform: scale(0.95) rotate(-2deg); }
  100% { transform: scale(1) rotate(0); opacity: 1; }
}

/* --- ROTATE & SPIN ANIMATIONS --- */
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes spinReverse {
  from { transform: rotate(360deg); }
  to { transform: rotate(0deg); }
}

@keyframes wobble {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-5deg); }
  75% { transform: rotate(5deg); }
}

/* --- PULSE ANIMATIONS --- */
@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(224, 122, 58, 0.4); }
  50% { box-shadow: 0 0 0 15px rgba(224, 122, 58, 0); }
}

/* --- FLOATING ANIMATIONS --- */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-15px); }
}

@keyframes floatSlow {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(3deg); }
}

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

/* --- WAVE ANIMATIONS --- */
@keyframes wave {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  75% { transform: rotate(-10deg); }
}

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

.shimmer {
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(255,255,255,0.08) 50%, 
    transparent 100%
  );
  background-size: 200% 100%;
  animation: shimmer 2s infinite;
}

/* --- GRADIENT ANIMATION --- */
@keyframes gradientShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.gradient-animated {
  background-size: 200% 200%;
  animation: gradientShift 4s ease infinite;
}

/* --- TYPING ANIMATION --- */
@keyframes typing {
  from { width: 0; }
  to { width: 100%; }
}

@keyframes blink {
  0%, 100% { border-color: transparent; }
  50% { border-color: var(--color-accent-sunset); }
}

.typing-effect {
  overflow: hidden;
  white-space: nowrap;
  border-right: 3px solid var(--color-accent-sunset);
  animation: typing 3s steps(40) 1s forwards,
             blink 0.7s step-end infinite;
}

/* --- GLITCH ANIMATION --- */
@keyframes glitch {
  0%, 100% { transform: translate(0); }
  20% { transform: translate(-2px, 2px); }
  40% { transform: translate(-2px, -2px); }
  60% { transform: translate(2px, 2px); }
  80% { transform: translate(2px, -2px); }
}

/* --- HEARTBEAT ANIMATION --- */
@keyframes heartbeat {
  0%, 100% { transform: scale(1); }
  14% { transform: scale(1.3); }
  28% { transform: scale(1); }
  42% { transform: scale(1.3); }
  70% { transform: scale(1); }
}

/* --- ANIMATED UTILITY CLASSES --- */

/* Float animation */
.animate-float {
  animation: float 3s ease-in-out infinite;
}

.animate-float-slow {
  animation: floatSlow 5s ease-in-out infinite;
}

.animate-float-fast {
  animation: floatFast 2s ease-in-out infinite;
}

/* Pulse animation */
.animate-pulse {
  animation: pulse 2s ease-in-out infinite;
}

.animate-pulse-glow {
  animation: pulseGlow 2s ease-in-out infinite;
}

/* Bounce animation */
.animate-bounce {
  animation: bounce 2s ease infinite;
}

/* Spin animation */
.animate-spin {
  animation: spin 3s linear infinite;
}

.animate-spin-slow {
  animation: spinReverse 5s linear infinite;
}

/* Wobble */
.animate-wobble {
  animation: wobble 2s ease-in-out infinite;
}

/* Heartbeat */
.animate-heartbeat {
  animation: heartbeat 1.5s ease-in-out infinite;
}

/* --- HOVER ANIMATIONS --- */

/* Magnetic hover effect on buttons */
.btn-magnetic:hover {
  animation: pulse 0.5s ease;
}

/* Card tilt on hover */
.card-tilt {
  transition: transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.card-tilt:hover {
  transform: perspective(1000px) rotateY(-3deg) rotateX(3deg) scale(1.02);
}

/* Image zoom on hover */
.img-zoom {
  overflow: hidden;
}

.img-zoom img {
  transition: transform 700ms cubic-bezier(0.4, 0, 0.2, 1);
}

.img-zoom:hover img {
  transform: scale(1.15) rotate(2deg);
}

/* Glow on hover */
.glow-hover {
  transition: box-shadow 400ms ease, transform 400ms ease;
}

.glow-hover:hover {
  box-shadow: 0 0 30px rgba(224, 122, 58, 0.3);
  transform: translateY(-3px);
}

/* Slide underline on hover */
.slide-underline {
  position: relative;
}

.slide-underline::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--color-accent-sunset);
  transition: width 400ms cubic-bezier(0.4, 0, 0.2, 1);
}

.slide-underline:hover::after {
  width: 100%;
}

/* --- SECTION-SPECIFIC ANIMATIONS --- */

/* Hero title letter animation */
.hero-title .hero-title-line {
  opacity: 0;
  transform: translateY(40px);
  animation: heroTitleReveal 800ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.hero-title .hero-title-line:nth-child(1) { animation-delay: 0.3s; }
.hero-title .hero-title-line:nth-child(2) { animation-delay: 0.5s; }

@keyframes heroTitleReveal {
  to { opacity: 1; transform: translateY(0); }
}

/* Hero badge entrance */
.hero-badge {
  animation: badgeEntrance 600ms cubic-bezier(0.34, 1.56, 0.64, 1) 0.2s both;
}

@keyframes badgeEntrance {
  0% { opacity: 0; transform: scale(0.5) translateY(-20px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}

/* Scroll indicator */
.hero-scroll-indicator {
  animation: scrollIndicatorPulse 2s ease infinite;
}

@keyframes scrollIndicatorPulse {
  0%, 100% { opacity: 0.5; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
}

/* --- COUNTER ANIMATION VISIBILITY --- */
.counter-number {
  display: inline-block;
  transition: transform 300ms ease;
}

.counter-number.counting {
  animation: counterBounce 0.3s ease;
}

@keyframes counterBounce {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.2); }
}

/* --- DIFFICULTY BAR ANIMATION --- */
.difficulty-bar-fill {
  transition: width 2s cubic-bezier(0.4, 0, 0.2, 1);
}

.difficulty-bar-fill.animated {
  /* width set by JS */
}

/* --- GALLERY ITEM ENTRANCE --- */
.gallery-item {
  opacity: 0;
  transform: scale(0.9) translateY(20px);
  transition: opacity 600ms ease, transform 600ms ease;
}

.gallery-item.revealed {
  opacity: 1;
  transform: scale(1) translateY(0);
}

/* Gallery lightbox transition */
.lightbox {
  transition: opacity 400ms ease, visibility 400ms ease;
}

.lightbox.active {
  transition: opacity 300ms ease;
}

.lightbox-img {
  transition: transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* --- NAVBAR SCROLL ANIMATION --- */
.navbar {
  transition: background 400ms ease, 
              padding 400ms ease, 
              box-shadow 400ms ease,
              transform 300ms ease;
}

.navbar.hide-up {
  transform: translateY(-100%);
}

.navbar.scrolled {
  animation: navSlideDown 400ms ease forwards;
}

@keyframes navSlideDown {
  from { transform: translateY(-100%); }
  to { transform: translateY(0); }
}

/* --- WHATSAPP FLOATING ENTRANCE --- */
.floating-whatsapp {
  animation: whatsappEntrance 800ms cubic-bezier(0.34, 1.56, 0.64, 1) 2s both;
}

@keyframes whatsappEntrance {
  0% { opacity: 0; transform: scale(0) rotate(-180deg); }
  100% { opacity: 1; transform: scale(1) rotate(0deg); }
}

/* --- BACK TO TOP ENTRANCE --- */
.back-to-top {
  transition: opacity 300ms ease, 
              visibility 300ms ease, 
              transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.back-to-top.visible {
  animation: backToTopEntrance 500ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes backToTopEntrance {
  0% { opacity: 0; transform: scale(0) translateY(20px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}

/* --- CALENDAR DAY ENTRANCE --- */
.calendar-day {
  opacity: 0;
  transform: scale(0.5);
  animation: calendarDayEntrance 400ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

@keyframes calendarDayEntrance {
  to { opacity: 1; transform: scale(1); }
}

/* Stagger calendar days */
.calendar-day:nth-child(1) { animation-delay: 0ms; }
.calendar-day:nth-child(2) { animation-delay: 30ms; }
.calendar-day:nth-child(3) { animation-delay: 60ms; }
.calendar-day:nth-child(4) { animation-delay: 90ms; }
.calendar-day:nth-child(5) { animation-delay: 120ms; }
.calendar-day:nth-child(6) { animation-delay: 150ms; }
.calendar-day:nth-child(7) { animation-delay: 180ms; }
.calendar-day:nth-child(8) { animation-delay: 210ms; }
.calendar-day:nth-child(9) { animation-delay: 240ms; }
.calendar-day:nth-child(10) { animation-delay: 270ms; }
.calendar-day:nth-child(11) { animation-delay: 300ms; }
.calendar-day:nth-child(12) { animation-delay: 330ms; }
.calendar-day:nth-child(13) { animation-delay: 360ms; }
.calendar-day:nth-child(14) { animation-delay: 390ms; }
.calendar-day:nth-child(15) { animation-delay: 420ms; }
.calendar-day:nth-child(16) { animation-delay: 450ms; }
.calendar-day:nth-child(17) { animation-delay: 480ms; }
.calendar-day:nth-child(18) { animation-delay: 510ms; }
.calendar-day:nth-child(19) { animation-delay: 540ms; }
.calendar-day:nth-child(20) { animation-delay: 570ms; }
.calendar-day:nth-child(21) { animation-delay: 600ms; }
.calendar-day:nth-child(22) { animation-delay: 630ms; }
.calendar-day:nth-child(23) { animation-delay: 660ms; }
.calendar-day:nth-child(24) { animation-delay: 690ms; }
.calendar-day:nth-child(25) { animation-delay: 720ms; }
.calendar-day:nth-child(26) { animation-delay: 750ms; }
.calendar-day:nth-child(27) { animation-delay: 780ms; }
.calendar-day:nth-child(28) { animation-delay: 810ms; }
.calendar-day:nth-child(29) { animation-delay: 840ms; }
.calendar-day:nth-child(30) { animation-delay: 870ms; }
.calendar-day:nth-child(31) { animation-delay: 900ms; }
.calendar-day:nth-child(32) { animation-delay: 930ms; }
.calendar-day:nth-child(33) { animation-delay: 960ms; }
.calendar-day:nth-child(34) { animation-delay: 990ms; }
.calendar-day:nth-child(35) { animation-delay: 1020ms; }
.calendar-day:nth-child(36) { animation-delay: 1050ms; }
.calendar-day:nth-child(37) { animation-delay: 1080ms; }
.calendar-day:nth-child(38) { animation-delay: 1110ms; }
.calendar-day:nth-child(39) { animation-delay: 1140ms; }
.calendar-day:nth-child(40) { animation-delay: 1170ms; }
.calendar-day:nth-child(41) { animation-delay: 1200ms; }
.calendar-day:nth-child(42) { animation-delay: 1230ms; }

/* --- UPCOMING TREK SLIDE ENTRANCE --- */
.upcoming-trek {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 500ms ease, transform 500ms ease;
}

.upcoming-trek.revealed {
  opacity: 1;
  transform: translateX(0);
}

/* --- TESTIMONIAL CARD HOVER --- */
.testimonial-card {
  transition: transform 500ms cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 500ms ease;
}

.testimonial-card:hover {
  transform: translateY(-8px) scale(1.02);
}

/* --- FORM INPUT ANIMATIONS --- */
.form-group input,
.form-group select,
.form-group textarea {
  transition: border-color 300ms ease;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  animation: inputFocus 300ms ease;
}

@keyframes inputFocus {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(1); }
}

/* --- SOCIAL LINK HOVER --- */
.social-link {
  transition: transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 400ms ease;
}

.social-link:hover {
  transform: translateY(-3px) scale(1.03);
}

/* --- FOOTER LINK HOVER --- */
.footer-links a {
  position: relative;
  transition: color 300ms ease, transform 300ms ease;
}

.footer-links a:hover {
  transform: translateX(5px);
  transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* --- FOOTER SOCIAL LINK HOVER --- */
.footer-social-link {
  transition: transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1),
              background 300ms ease;
}

.footer-social-link:hover {
  transform: translateY(-5px) rotate(10deg);
}

/* --- SECTION TRANSITION WAVE --- */
.section-divider--wave .divider-svg {
  animation: waveMove 4s ease-in-out infinite;
}

@keyframes waveMove {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(-20px); }
}

/* --- PARALLAX DECORATIVE ELEMENTS --- */
.about-deco-leaf,
.difficulty-deco-sunburst,
.contact-deco-cloud,
.routes-deco-trees {
  animation: parallaxFloat 8s ease-in-out infinite;
}

@keyframes parallaxFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-10px) rotate(2deg); }
  66% { transform: translateY(5px) rotate(-1deg); }
}

/* --- LOADING SCREEN ADDITIONAL ANIMATIONS --- */
.loader-content {
  animation: loaderFadeIn 500ms ease forwards;
}

@keyframes loaderFadeIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

/* --- IMAGE LOADING SHIMMER --- */
.gallery-item img,
.route-card-image img,
.about-image-wrapper img {
  background: linear-gradient(90deg, 
    var(--color-neutral-light) 25%, 
    var(--color-neutral-warm) 50%, 
    var(--color-neutral-light) 75%
  );
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}

.gallery-item img[src],
.route-card-image img[src],
.about-image-wrapper img[src] {
  animation: none;
  background: none;
}

/* --- HERO STAT COUNTER ANIMATION --- */
.hero-stat-number {
  transition: transform 200ms ease;
}

.hero-stat-number.counting {
  animation: heroStatBounce 0.4s ease;
}

@keyframes heroStatBounce {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.15); }
}

/* --- MOBILE MENU ANIMATIONS --- */
.nav-menu .nav-link {
  opacity: 0;
  transform: translateX(30px);
  transition: opacity 300ms ease, transform 300ms ease, color 300ms ease;
}

.nav-menu.open .nav-link {
  opacity: 1;
  transform: translateX(0);
}

.nav-menu.open .nav-link:nth-child(1) { transition-delay: 100ms; }
.nav-menu.open .nav-link:nth-child(2) { transition-delay: 150ms; }
.nav-menu.open .nav-link:nth-child(3) { transition-delay: 200ms; }
.nav-menu.open .nav-link:nth-child(4) { transition-delay: 250ms; }
.nav-menu.open .nav-link:nth-child(5) { transition-delay: 300ms; }
.nav-menu.open .nav-link:nth-child(6) { transition-delay: 350ms; }
.nav-menu.open .nav-link:nth-child(7) { transition-delay: 400ms; }

/* --- ROUTE CARD HOVER ANIMATIONS --- */
.route-card {
  transition: transform 500ms cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 500ms ease;
}

.route-card:hover {
  transition: transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 400ms ease;
}

.route-card-image {
  overflow: hidden;
}

.route-card-image img {
  transition: transform 800ms cubic-bezier(0.4, 0, 0.2, 1);
}

.route-card:hover .route-card-image img {
  transform: scale(1.12) rotate(1deg);
}

/* --- BADGE ENTRANCE ON HOVER --- */
.route-card-badge {
  transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.route-card:hover .route-card-badge {
  transform: scale(1.1);
}

/* --- BUTTON RIPPLE EFFECT --- */
.btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 70%);
  transform: scale(0);
  opacity: 0;
  transition: transform 600ms ease, opacity 600ms ease;
}

.btn:active::before {
  transform: scale(2);
  opacity: 1;
  transition: transform 0ms, opacity 0ms;
}

/* --- SCROLL PROGRESS INDICATOR --- */
.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-accent-sunset), var(--color-secondary-light));
  z-index: calc(var(--z-sticky) + 1);
  transform-origin: left;
  transition: transform 100ms ease;
}

/* --- PARTICLE ANIMATIONS --- */
.particle {
  will-change: transform, opacity;
}

/* --- CUSTOM CURSOR ANIMATIONS --- */
.custom-cursor {
  transition: transform 100ms ease, 
              background 200ms ease, 
              border-color 200ms ease,
              width 200ms ease,
              height 200ms ease;
}

.custom-cursor.hover {
  width: 50px;
  height: 50px;
  margin-left: -10px;
  margin-top: -10px;
}

/* --- REDUCED MOTION --- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .scroll-reveal,
  .scroll-reveal-left,
  .scroll-reveal-right,
  .scroll-reveal-stagger {
    opacity: 1;
    transform: none;
  }
}

/* ============================================
   MOBILE ANIMATION OPTIMIZATIONS
   ============================================ */

/* Disable heavy animations on mobile for better performance */
@media (max-width: 768px) {
  /* Disable floating particles on mobile */
  .particles-container {
    display: none;
  }

  /* Disable parallax effects on mobile */
  .hero-bg-img {
    transform: none !important;
    will-change: auto;
  }

  /* Disable floating clouds/leaves on mobile */
  .hero-cloud,
  .hero-leaf {
    animation: none !important;
    display: none;
  }

  /* Simplify scroll reveal animations */
  .scroll-reveal,
  .scroll-reveal-left,
  .scroll-reveal-right,
  .scroll-reveal-up {
    transition: opacity 400ms ease, transform 400ms ease;
  }

  /* Disable 3D card tilts on mobile */
  .route-card,
  .counter-box,
  .difficulty-card,
  .testimonial-card {
    transform: none !important;
  }

  /* Disable magnetic button effect on mobile */
  .btn-magnetic {
    transform: none !important;
  }
}

/* Further reduce animations on very small screens */
@media (max-width: 480px) {
  .scroll-reveal-stagger {
    transition-delay: 0ms !important;
  }

  /* Faster, simpler reveals */
  .scroll-reveal,
  .scroll-reveal-left,
  .scroll-reveal-right,
  .scroll-reveal-up {
    transition-duration: 300ms;
  }

  /* Disable WhatsApp pulse animation */
  .floating-whatsapp {
    animation: none !important;
  }
}

/* Optimize animations for touch devices */
@media (hover: none) and (pointer: coarse) {
  /* Remove hover-triggered animations */
  .route-card:hover img {
    transform: none;
  }

  .about-image-wrapper:hover img {
    transform: none;
  }

  .gallery-item:hover img {
    transform: none;
  }

  .btn-primary:hover .btn-bg,
  .btn-secondary:hover .btn-bg {
    transform: none;
  }

  /* Keep only essential transitions */
  .route-card,
  .counter-box,
  .difficulty-card,
  .testimonial-card,
  .contact-card {
    transition: box-shadow 200ms ease;
  }
}
