/* =========================================================
   Punjab Jewellers & Fabric — Animations
   Add class="reveal" to any element to fade it in on scroll.
   Optional modifiers: reveal--left, reveal--right, reveal--zoom
   Optional delay: data-delay="1" … "4" (100ms steps)
   ========================================================= */

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
  will-change: opacity, transform;
}
.reveal--left { transform: translateX(-36px); }
.reveal--right { transform: translateX(36px); }
.reveal--zoom { transform: scale(0.94); }
.reveal.is-visible { opacity: 1; transform: none; }

.reveal[data-delay="1"] { transition-delay: 0.1s; }
.reveal[data-delay="2"] { transition-delay: 0.2s; }
.reveal[data-delay="3"] { transition-delay: 0.3s; }
.reveal[data-delay="4"] { transition-delay: 0.4s; }

/* Hero entrance */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero__content > * { opacity: 0; animation: fadeUp 0.9s ease forwards; }
.hero__content > *:nth-child(1) { animation-delay: 0.1s; }
.hero__content > *:nth-child(2) { animation-delay: 0.25s; }
.hero__content > *:nth-child(3) { animation-delay: 0.4s; }
.hero__content > *:nth-child(4) { animation-delay: 0.55s; }
.hero__content > *:nth-child(5) { animation-delay: 0.7s; }

.page-banner .container > * { opacity: 0; animation: fadeUp 0.8s ease forwards; }
.page-banner .container > *:nth-child(2) { animation-delay: 0.15s; }
.page-banner .container > *:nth-child(3) { animation-delay: 0.3s; }

/* Gold shimmer on text */
@keyframes shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}
.shimmer {
  background: linear-gradient(90deg, #C9A84C 0%, #F5E6B3 25%, #D4AF37 50%, #F5E6B3 75%, #C9A84C 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: shimmer 6s linear infinite;
}

/* WhatsApp pulse ring */
@keyframes pulseRing {
  0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.55); }
  70% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}
.whatsapp-float { animation: pulseRing 2.4s infinite; }

/* Product filter transition */
@keyframes cardIn {
  from { opacity: 0; transform: translateY(16px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
.product-card.animate-in { animation: cardIn 0.45s ease both; }

/* Button shine sweep */
.btn--gold { position: relative; overflow: hidden; }
.btn--gold::after {
  content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.45), transparent);
  transform: skewX(-20deg); transition: left 0.7s ease;
}
.btn--gold:hover::after { left: 140%; }

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .reveal, .hero__content > *, .page-banner .container > * { opacity: 1; transform: none; }
}
