/* ── hover.css ───────────────────────────────────
   Every :hover-triggered rule on the site, extracted from zoa.css and
   split into its own file. Linked from index.php with
   media="(hover: hover) and (pointer: fine)" so it's only ever applied
   on devices with a real hover-capable pointer (mouse/trackpad) — on
   touchscreens the browser skips it entirely, so none of these can
   ever get "stuck" active after a tap. */

.cascade-logo-ring:hover {
  border-color: rgba(34, 211, 238, 0.8);
  background: rgba(34, 211, 238, 0.14);
  box-shadow: 0 0 32px rgba(34, 211, 238, 0.35);
}

.cascade-box:hover {
  transform: translateY(-3px);
  box-shadow: 0 3px 8px rgba(34, 211, 238, 0.18);
  border-color: rgba(34, 211, 238, 0.3);
}

.zoa-glow-orange:hover {
  box-shadow: 0 0 10px rgba(235, 139, 35, 0.4);
}
.zoa-glow-orange:hover .zoa-eyebrow-dark-mb-tight {
  color: #EB8B23;
}

.zoa-glow-green:hover {
  box-shadow: 0 0 10px rgba(147, 200, 62, 0.4);
}
.zoa-glow-green:hover .zoa-eyebrow-dark-mb-tight {
  color: #93C83E;
}

.zoa-glow-cyan:hover {
  box-shadow: 0 0 12px rgba(34, 211, 238, 0.4);
  border-color: rgba(34, 211, 238, 0.5);
  background-color: rgba(6, 182, 212, 0.18);
}

.zoa-ctr-link:hover::after {
  transform: scaleX(1);
}

.zoa-ctr-link:hover .zoa-ctr-c { color: #D51F35; }
.zoa-ctr-link:hover .zoa-ctr-t { color: #EB8B23; }
.zoa-ctr-link:hover .zoa-ctr-r { color: #93C83E; }
.zoa-ctr-link:hover .zoa-ctr-group { color: #1BA4EE; }

.zoa-pill-trace:hover svg rect {
  opacity: 1;
  stroke-dashoffset: 0;
  transition: opacity 0.15s ease, stroke-dashoffset 0.6s ease;
}

.zoa-pill-trace-ctr:hover::before {
  transform: scaleX(1);
  transition-delay: 0.6s;
}

.zoa-pill-trace-ctr:hover .zoa-ctr-swipe-text {
  clip-path: inset(0 0 0 0);
  transition-delay: 0.6s;
}

@media (prefers-reduced-motion: reduce) {
  .zoa-pill-trace:hover svg rect { transition: none; }
  .zoa-pill-trace-ctr:hover::before,
  .zoa-pill-trace-ctr:hover .zoa-ctr-swipe-text { transition: none; }
}

[data-zoa-link]:hover::after {
  transform: scaleX(1);
}

.zoa-card:hover {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.zoa-checklist-item:hover {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.zoa-stat-tile:hover {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.zoa-shadow-hover:hover {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.zoa-brand-name:hover {
  --tw-text-opacity: 1;
  color: rgb(22 32 51 / var(--tw-text-opacity, 1));
}

.zoa-footer-logo-link:hover {
  --tw-scale-x: 1.03;
  --tw-scale-y: 1.03;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
