/* =====================================================================
   Site animations (rolled out site-wide)
   Loaded on every page. Selectors are generic so each page's hero,
   section headings, cards, and buttons animate consistently.
   Remove the css/js <link>/<script> to revert.
   ===================================================================== */

/* ---------- Trailing cursor ring (fine pointers only) ---------- */
.hz-cursor{
  position:fixed; top:0; left:0; width:30px; height:30px; margin:-15px 0 0 -15px;
  border:1.5px solid rgba(255,187,0,.75); border-radius:50%;
  pointer-events:none; z-index:2147483000; opacity:0;
  transition:width .22s ease, height .22s ease, margin .22s ease,
             border-color .22s ease, background-color .22s ease, opacity .3s ease;
  will-change:transform;
}
.hz-cursor.hz-cursor--on{ opacity:1; }
.hz-cursor.hz-cursor--active{                 /* over links / buttons / inputs */
  width:50px; height:50px; margin:-25px 0 0 -25px;
  background:rgba(255,187,0,.12); border-color:rgba(255,187,0,1);
}

/* ---------- Hero entrance (pure CSS, staggered, no flash) ---------- */
@keyframes hzUp{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
[class$="hero-copy"] > *{ animation:hzUp .7s cubic-bezier(.22,.61,.36,1) both; }
[class$="hero-copy"] > *:nth-child(1){ animation-delay:.05s; }
[class$="hero-copy"] > *:nth-child(2){ animation-delay:.14s; }
[class$="hero-copy"] > *:nth-child(3){ animation-delay:.26s; }
[class$="hero-copy"] > *:nth-child(4){ animation-delay:.38s; }
[class$="hero-copy"] > *:nth-child(5){ animation-delay:.50s; }
[class$="hero-copy"] > *:nth-child(n+6){ animation-delay:.58s; }
[class$="hero-media"]{ animation:hzUp .8s cubic-bezier(.22,.61,.36,1) both; animation-delay:.30s; }

/* ---------- Scroll reveal (JS toggles .hz-in on below-fold blocks) ---------- */
.hz-reveal{
  opacity:0; transform:translateY(22px);
  transition:opacity .6s ease, transform .7s cubic-bezier(.22,.61,.36,1);
}
.hz-reveal.hz-in{ opacity:1; transform:none; }

/* ---------- Button interactions (site-wide; .btn already has transition:.2s) ---------- */
.btn:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.16); }
.btn:active{ transform:translateY(0); box-shadow:0 4px 12px rgba(0,0,0,.12); }
.btn-arrow{ transition:transform .22s cubic-bezier(.22,.61,.36,1); }
.btn:hover .btn-arrow{ transform:translateX(4px); }

/* ---------- Gentle hover lift for homepage cards ---------- */
.page-home .stat-card,
.page-home .process-card,
.page-home .review-card{ transition:transform .3s ease, box-shadow .3s ease; }
.page-home .stat-card:hover,
.page-home .process-card:hover,
.page-home .review-card:hover{ transform:translateY(-5px); }

/* ---------- Respect reduced-motion & no-hover devices ---------- */
@media (prefers-reduced-motion: reduce){
  [class$="hero-copy"] > *,
  [class$="hero-media"]{ animation:none !important; }
  .hz-reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .btn:hover, .btn:active{ transform:none !important; box-shadow:none !important; }
  .btn:hover .btn-arrow{ transform:none !important; }
  .hz-cursor{ display:none !important; }
}
