/* =========================================================
   RECO FABRIC CARE — ANIMATION LAYER
   Reveal states · Floating motion · Glow · Mask-text
   ========================================================= */

/* ---------- Respect reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---------- Generic Reveal-On-Scroll ---------- */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.9s var(--ease-luxury), transform 0.9s var(--ease-luxury);
  will-change: opacity, transform;
}
[data-reveal].in-view {
  opacity: 1;
  transform: translateY(0);
}

/* Cards/grids get a touch of scale for a more premium settle-in */
.service-card[data-reveal],
.price-card[data-reveal],
.testimonial-card[data-reveal],
.benefit[data-reveal],
.stat-card[data-reveal],
.process__step[data-reveal] {
  transform: translateY(28px) scale(0.97);
}
.service-card[data-reveal].in-view,
.price-card[data-reveal].in-view,
.testimonial-card[data-reveal].in-view,
.benefit[data-reveal].in-view,
.stat-card[data-reveal].in-view,
.process__step[data-reveal].in-view {
  transform: translateY(0) scale(1);
}

/* ---------- Masked Text Reveal (Hero Headline) ---------- */
[data-reveal-text] { display: block; overflow: hidden; }
[data-reveal-text] .line-inner {
  display: inline-block;
  transform: translateY(115%);
  opacity: 0;
  transition: transform 1.1s var(--ease-luxury), opacity 1.1s var(--ease-luxury);
}
[data-reveal-text].in-view .line-inner {
  transform: translateY(0);
  opacity: 1;
}

/* ---------- Preloader Wordmark ---------- */
.preloader__letter { will-change: opacity, transform; }

/* ---------- Floating / Idle Motion ---------- */
@keyframes floatY {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}
.hero__frame--float { animation: floatY 6.5s ease-in-out infinite; }
.hero__badge { animation: floatY 7.5s ease-in-out infinite; animation-delay: -2.4s; }
.why__stat-chip { animation: floatY 6s ease-in-out infinite; animation-delay: -3.2s; }

@keyframes bgGlowDrift {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-3%, 4%) scale(1.08); }
}
.hero__bg-glow { animation: bgGlowDrift 14s ease-in-out infinite; }

/* ---------- Eyebrow Dot Pulse ---------- */
@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 4px rgba(232, 185, 35, 0.2); }
  50% { box-shadow: 0 0 0 9px rgba(232, 185, 35, 0.06); }
}
.hero__eyebrow-dot { animation: pulseGlow 2.4s ease-in-out infinite; }

/* ---------- Scroll Cue Line ---------- */
@keyframes scrollLineMove {
  0% { top: -100%; }
  55% { top: 100%; }
  100% { top: 100%; }
}
.hero__scroll-line i { animation: scrollLineMove 2.1s ease-in-out infinite; }

/* ---------- Process Track Icon Pulse (active step feel) ---------- */
@keyframes iconSettle {
  0% { transform: scale(0.85); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}
.process__step.in-view i { animation: iconSettle 0.6s var(--ease-luxury) both; }

/* ---------- Gold Button Shimmer Sweep ---------- */
.btn--gold { position: relative; overflow: hidden; }
.btn--gold::before {
  content: "";
  position: absolute;
  top: 0; left: -60%;
  width: 40%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.5), transparent);
  transform: skewX(-20deg);
  transition: left 0.7s var(--ease-soft);
  pointer-events: none;
}
.btn--gold:hover::before { left: 130%; }

/* ---------- Magnetic Button Wrapper ---------- */
.magnetic { transition: transform 0.25s var(--ease-soft); }

/* ---------- Click Ripple Feedback ---------- */
.btn { position: relative; }
.btn:active { transform: scale(0.96); }

/* ---------- Card Glass Reflection Sweep ---------- */
.service-card, .price-card, .testimonial-card {
  position: relative;
  overflow: hidden;
}
.service-card::after, .price-card::after, .testimonial-card::after {
  content: "";
  position: absolute;
  top: 0; left: -75%;
  width: 50%; height: 100%;
  background: linear-gradient(115deg, transparent, rgba(255,255,255,0.35), transparent);
  transform: skewX(-15deg);
  transition: left 0.9s var(--ease-soft);
  pointer-events: none;
}
.service-card:hover::after, .price-card:hover::after, .testimonial-card:hover::after { left: 130%; }

/* ---------- Icon Micro-Interaction ---------- */
.why__list i, .benefit i, .service-card__body i {
  transition: transform 0.4s var(--ease-luxury);
}
.why__list li:hover i, .benefit:hover i, .service-card:hover .service-card__body i {
  transform: translateY(-3px) rotate(-6deg);
}

/* ---------- Nav Mobile Menu Item Stagger ---------- */
.mobile-menu__list a {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.5s var(--ease-luxury), transform 0.5s var(--ease-luxury);
}
.mobile-menu.is-open .mobile-menu__list a { opacity: 1; transform: translateY(0); }
.mobile-menu.is-open .mobile-menu__list a:nth-child(1) { transition-delay: 0.05s; }
.mobile-menu.is-open .mobile-menu__list a:nth-child(2) { transition-delay: 0.1s; }
.mobile-menu.is-open .mobile-menu__list a:nth-child(3) { transition-delay: 0.15s; }
.mobile-menu.is-open .mobile-menu__list a:nth-child(4) { transition-delay: 0.2s; }
.mobile-menu.is-open .mobile-menu__list a:nth-child(5) { transition-delay: 0.25s; }

/* ---------- Menu Toggle → X Transform ---------- */
.menu-toggle.is-active span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.menu-toggle.is-active span:nth-child(2) { opacity: 0; }
.menu-toggle.is-active span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* ---------- Counter / Stat Card Entrance ---------- */
.stat-card__num { transition: color 0.3s ease; }

/* ---------- Cursor Click Pulse (created dynamically by cursor.js) ---------- */
@keyframes cursorPulse {
  0% { transform: translate(-50%, -50%) scale(0.4); opacity: 0.6; }
  100% { transform: translate(-50%, -50%) scale(2.4); opacity: 0; }
}
.cursor-pulse {
  position: fixed;
  top: 0; left: 0;
  width: 36px; height: 36px;
  border: 1px solid rgba(232, 185, 35, 0.8);
  border-radius: 50%;
  pointer-events: none;
  z-index: var(--z-cursor);
  animation: cursorPulse 0.6s var(--ease-soft) forwards;
}

/* ---------- Dashboard Card Stagger (Customer/Admin) ---------- */
.dash-stat-card[data-reveal],
.admin-stat-card[data-reveal] {
  transform: translateY(20px);
}
