/* ==========================================================================
   CRservice PHP — Animations v2
   ========================================================================== */

/* Elements start invisible */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s cubic-bezier(0.16,1,0.3,1),
              transform 0.65s cubic-bezier(0.16,1,0.3,1);
}

.animate-on-scroll.anim-left  { transform: translateX(-36px) translateY(8px); }
.animate-on-scroll.anim-right { transform: translateX(36px)  translateY(8px); }
.animate-on-scroll.anim-zoom  { transform: scale(0.95) translateY(16px); }
.animate-on-scroll.anim-fade  { transform: none; }

/* Revealed */
.animate-on-scroll.is-visible {
  opacity: 1;
  transform: none;
}

/* Stagger children — grid cards etc. */
.stagger-children .animate-on-scroll:nth-child(1)  { transition-delay:   0ms; }
.stagger-children .animate-on-scroll:nth-child(2)  { transition-delay:  70ms; }
.stagger-children .animate-on-scroll:nth-child(3)  { transition-delay: 140ms; }
.stagger-children .animate-on-scroll:nth-child(4)  { transition-delay: 210ms; }
.stagger-children .animate-on-scroll:nth-child(5)  { transition-delay: 280ms; }
.stagger-children .animate-on-scroll:nth-child(6)  { transition-delay: 350ms; }

/* Hero content entrance (always plays) */
@keyframes heroSlideUp {
  from { opacity: 0; transform: translateY(32px); }
  to   { opacity: 1; transform: translateY(0); }
}

.hero__badge   { animation: heroSlideUp 0.7s 0.1s cubic-bezier(0.16,1,0.3,1) both; }
.hero__title   { animation: heroSlideUp 0.7s 0.2s cubic-bezier(0.16,1,0.3,1) both; }
.hero__text    { animation: heroSlideUp 0.7s 0.32s cubic-bezier(0.16,1,0.3,1) both; }
.hero__actions { animation: heroSlideUp 0.7s 0.44s cubic-bezier(0.16,1,0.3,1) both; }

/* Slider-specific: only first slide gets entrance, subsequent slides fade */
.hero__slide:not(.is-active) .hero__badge,
.hero__slide:not(.is-active) .hero__title,
.hero__slide:not(.is-active) .hero__text,
.hero__slide:not(.is-active) .hero__actions { animation: none; }

/* Stats counter pulse */
@keyframes countUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.stats-bar .stat__num { animation: countUp 0.5s ease both; }
.stats-bar .stat:nth-child(1) .stat__num { animation-delay: 0.1s; }
.stats-bar .stat:nth-child(2) .stat__num { animation-delay: 0.2s; }
.stats-bar .stat:nth-child(3) .stat__num { animation-delay: 0.3s; }
.stats-bar .stat:nth-child(4) .stat__num { animation-delay: 0.4s; }

/* Button ripple — injected by JS */
@keyframes btnRipple {
  to { transform: scale(1); opacity: 0; }
}

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

.section-heading__divider {
  background: linear-gradient(90deg,
    var(--color-primary) 0%,
    var(--color-primary-light) 50%,
    var(--color-primary) 100%);
  background-size: 200% auto;
  animation: shimmer 3s linear infinite;
}

/* Subtle icon entrance on value cards */
@keyframes iconPop {
  0%   { transform: scale(0.7) rotate(-10deg); opacity: 0; }
  70%  { transform: scale(1.1) rotate(3deg);  opacity: 1; }
  100% { transform: scale(1)   rotate(0deg);  opacity: 1; }
}

.value-card.is-visible .value-card__icon {
  animation: iconPop 0.55s cubic-bezier(0.34,1.56,0.64,1) both;
}
.stagger-children .value-card:nth-child(1).is-visible .value-card__icon { animation-delay: 0.1s; }
.stagger-children .value-card:nth-child(2).is-visible .value-card__icon { animation-delay: 0.18s; }
.stagger-children .value-card:nth-child(3).is-visible .value-card__icon { animation-delay: 0.26s; }
.stagger-children .value-card:nth-child(4).is-visible .value-card__icon { animation-delay: 0.34s; }

@media (prefers-reduced-motion: reduce) {
  .animate-on-scroll {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .hero__badge, .hero__title, .hero__text, .hero__actions,
  .about-visual, .hvc, .hvc__bar-fill, .hvc__ring::after,
  .section-heading__divider { animation: none; }
}
