/* ==========================================================================
   CARPETRUCK PREMIUM ANIMATIONS SHEET (animations.css)
   ========================================================================== */

/* Keyframe Animations */

/* Ambient glow pulsation */
@keyframes glowPulse {
  0% {
    opacity: 0.6;
    transform: translateY(-50%) scale(1);
    filter: blur(80px);
  }
  50% {
    opacity: 0.95;
    transform: translateY(-50%) scale(1.1);
    filter: blur(100px);
  }
  100% {
    opacity: 0.6;
    transform: translateY(-50%) scale(1);
    filter: blur(80px);
  }
}

.hero-glow-back {
  animation: glowPulse 8s ease-in-out infinite alternate;
}

/* Quality ambient image glow pulsation */
@keyframes qualityGlowPulse {
  0% {
    opacity: 0.5;
    transform: translate(-50%, -50%) scale(0.95);
  }
  50% {
    opacity: 0.85;
    transform: translate(-50%, -50%) scale(1.1);
  }
  100% {
    opacity: 0.5;
    transform: translate(-50%, -50%) scale(0.95);
  }
}

.quality-image-glow {
  animation: qualityGlowPulse 6s ease-in-out infinite alternate;
}

/* Button pulse for WhatsApp or primary CTAs */
@keyframes btnPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(249, 115, 22, 0.4);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(249, 115, 22, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(249, 115, 22, 0);
  }
}

.btn-primary.pulse-btn {
  animation: btnPulse 2s infinite;
}

/* Soft shimmer effect on premium titles */
@keyframes textShimmer {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.text-gradient-orange {
  background-size: 200% auto;
  animation: textShimmer 4s linear infinite;
}

/* Standard slide up transition for JS triggers */
.animate-slide-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.animate-slide-up.active {
  opacity: 1;
  transform: translateY(0);
}

/* Glitch/Hover effect for premium preloader logo */
@keyframes preloaderGlitch {
  0% {
    text-shadow: 0 0 0 rgba(249, 115, 22, 0);
  }
  20% {
    text-shadow: -2px 0 var(--primary), 2px 0 rgba(255, 255, 255, 0.2);
  }
  30% {
    text-shadow: 2px -1px var(--primary), -1px 2px rgba(255, 255, 255, 0.2);
  }
  40% {
    text-shadow: -2px 1px var(--primary), 2px -2px rgba(255, 255, 255, 0.2);
  }
  50% {
    text-shadow: 0 0 0 rgba(249, 115, 22, 0);
  }
}

.logo-text-glitch {
  animation: preloaderGlitch 3s infinite alternate;
}

/* Hover reveal effect for categories and products */
.category-card {
  position: relative;
  overflow: hidden;
}

.category-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.15) 100%);
  transform: skewX(-25deg);
  transition: 0.75s;
}

.category-card:hover::before {
  left: 125%;
}

.product-card {
  position: relative;
  overflow: hidden;
}

.product-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(249, 115, 22, 0.08) 100%);
  transform: skewX(-25deg);
  transition: 0.75s;
}

.product-card:hover::before {
  left: 125%;
}

/* Floating animation for Back To Top arrow button */
@keyframes arrowBounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}

.back-to-top:hover i {
  animation: arrowBounce 1s infinite;
}
