/* ── JAA UAT Animation Enhancements ─────────────────────────────────────
   Loaded site-wide. Adds polished micro-interactions on top of existing styles.
   Respects prefers-reduced-motion.
   ──────────────────────────────────────────────────────────────────────── */

/* Punchier fade-in (overrides inline) */
.fade-in {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s cubic-bezier(.16, 1, .3, 1),
              transform .7s cubic-bezier(.16, 1, .3, 1);
}
.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Button micro-interaction — subtle lift */
.btn {
  transition: transform .25s cubic-bezier(.4, 0, .2, 1),
              background .22s,
              border-color .22s,
              color .22s,
              box-shadow .25s !important;
  will-change: transform;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

/* Gold button hover glow */
.btn-gold:hover {
  box-shadow: 0 4px 18px rgba(183, 152, 100, 0.18);
}

/* Image hover zoom on flagged elements */
[data-hover="zoom"] { overflow: hidden; }
[data-hover="zoom"] img {
  transition: transform .55s cubic-bezier(.16, 1, .3, 1),
              filter .4s ease;
}
[data-hover="zoom"]:hover img {
  transform: scale(1.05);
  filter: grayscale(0);
}

/* Service card lift */
.services-strip > a {
  transition: transform .28s cubic-bezier(.4, 0, .2, 1),
              border-color .2s,
              background .2s !important;
}
.services-strip > a:hover {
  transform: translateY(-3px);
}

/* Underline-grow on inline gold links */
a.au-underline,
.lp-card .art-cta,
.pitem-cta {
  position: relative;
  display: inline-block;
}
a.au-underline::after,
.lp-card .art-cta::after,
.pitem-cta::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  height: 1px;
  width: 100%;
  background: var(--au, #b79864);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .35s cubic-bezier(.4, 0, .2, 1);
}
a.au-underline:hover::after,
.lp-card:hover .art-cta::after,
.pitem:hover .pitem-cta::after {
  transform: scaleX(1);
}

/* Count-up stat container */
.countup-num {
  display: inline-block;
  font-variant-numeric: tabular-nums;
}

/* Stagger applied via JS using --i custom property */
.stagger-children > * {
  transition-delay: calc(var(--i, 0) * 70ms);
}

/* Reduced motion: collapse all transforms */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .2s !important;
    scroll-behavior: auto !important;
  }
  .fade-in,
  .btn,
  .services-strip > a,
  [data-hover="zoom"] img {
    transform: none !important;
  }
}
