/* LetsAnalytix — Nimo-style interactions (GSAP + Lenis companion styles) */

/* ---------- Custom cursor ---------- */
html.la-has-cursor, html.la-has-cursor body { cursor: none; }
html.la-has-cursor a, html.la-has-cursor button { cursor: none; }
.la-cursor-dot, .la-cursor-ring {
  position: fixed; top: 0; left: 0; pointer-events: none; z-index: 99999;
  border-radius: 50%; transform: translate(-50%, -50%);
}
.la-cursor-dot { width: 8px; height: 8px; background: #fff; }
.la-cursor-ring {
  width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.45);
  transition: width .25s ease, height .25s ease, background-color .25s ease, border-color .25s ease;
}
.la-cursor-ring.is-hover { width: 64px; height: 64px; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.9); }
@media (hover: none), (max-width: 1024px) {
  .la-cursor-dot, .la-cursor-ring { display: none; }
  html.la-has-cursor, html.la-has-cursor body, html.la-has-cursor a, html.la-has-cursor button { cursor: auto; }
}

/* ---------- Split-text heading reveal ---------- */
.la-split .la-word { display: inline-block; overflow: hidden; vertical-align: bottom; }
.la-split .la-word > span { display: inline-block; transform: translateY(110%); }

/* ---------- Generic reveal-on-scroll ---------- */
.la-reveal { opacity: 0; transform: translateY(40px); }
.la-reveal.la-in { opacity: 1; transform: none; transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }

/* ---------- Marquee strip ---------- */
.la-marquee { overflow: hidden; white-space: nowrap; padding: 28px 0; border-top: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.08); }
.la-marquee__track { display: inline-flex; gap: 3rem; will-change: transform; animation: la-marquee 28s linear infinite; }
.la-marquee__track span {
  font-family: "Space Grotesk", sans-serif; font-weight: 700; font-size: clamp(28px, 5vw, 64px);
  color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.35); text-transform: uppercase; letter-spacing: .02em;
}
.la-marquee__track span.la-solid { color: #fff; -webkit-text-stroke: 0; }
@keyframes la-marquee { to { transform: translateX(-50%); } }

/* ---------- Card hover lift (services / projects / reviews) ---------- */
.la-lift { transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease, border-color .45s ease; }
.la-lift:hover { transform: translateY(-8px); box-shadow: 0 24px 60px rgba(0,0,0,.45); }

/* ---------- Featured PSB video review ---------- */
.la-featured-review {
  position: relative; border-radius: 24px; overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(145deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  box-shadow: 0 30px 80px rgba(0,0,0,.5);
}
.la-featured-review .la-badge {
  position: absolute; top: 18px; left: 18px; z-index: 3;
  font: 700 11px/1 "Space Grotesk", sans-serif; letter-spacing: .14em; text-transform: uppercase;
  color: #0b0b0c; background: #fff; padding: 8px 14px; border-radius: 100px;
}
.la-featured-review video { display: block; width: 100%; height: auto; }
.la-featured-review .la-caption { padding: 18px 22px 22px; }
.la-featured-review .la-caption strong { color: #fff; font-family: "Space Grotesk", sans-serif; }
.la-featured-review .la-caption em { color: rgba(255,255,255,.55); font-style: normal; font-size: .9em; }

/* ---------- Service cards: click active state ---------- */
.la-svc-card { cursor: pointer; transition: background-color .45s ease, border-color .45s ease, transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease; }
.la-svc-card .elementor-heading-title a { color: inherit; text-decoration: none; transition: opacity .25s ease; }
.la-svc-card .elementor-heading-title a:hover { opacity: .75; }
.la-svc-card.la-active { background-color: #FFFFFF !important; border-color: #FFFFFF !important; }
.la-svc-card.la-active .elementor-heading-title,
.la-svc-card.la-active .elementor-heading-title a { color: #0B0B0C !important; }
.la-svc-card.la-active .elementor-widget-text-editor,
.la-svc-card.la-active .elementor-widget-text-editor * { color: #3A3A40 !important; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .la-reveal, .la-reveal.la-in { opacity: 1; transform: none; transition: none; }
  .la-marquee__track { animation: none; }
  .la-split .la-word > span { transform: none; }
}
