/**
 * Kova Motion — hover micro-interactions (v2.2.0)
 * -------------------------------------------------------------
 * Pure CSS (GPU-friendly, no JS). Add a class to a button or card.
 *
 * Gated behind @media (hover: hover) so these NEVER apply on touch
 * devices (no stuck hover states on phones), and behind
 * prefers-reduced-motion so they're disabled for users who ask for
 * less motion. Animate only transform / opacity / shadow = smooth.
 *
 * Themeable: set --kva-glow on the element (or globally) to recolor
 * the glow/shadow accents to your brand.
 * -------------------------------------------------------------
 */
@media ( hover: hover ) and ( prefers-reduced-motion: no-preference ) {

	/* ---- Buttons ---------------------------------------------- */
	.kva-hover-lift  { transition: transform .25s ease, box-shadow .25s ease; }
	.kva-hover-lift:hover  { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,.12); }

	.kva-hover-grow  { transition: transform .25s ease; }
	.kva-hover-grow:hover  { transform: scale(1.04); }

	.kva-hover-nudge { transition: transform .25s ease; }
	.kva-hover-nudge:hover { transform: translateX(4px); }

	/* Light sweep — best on solid / coloured buttons. */
	.kva-hover-sheen { position: relative; overflow: hidden; }
	.kva-hover-sheen::after {
		content: ""; position: absolute; top: 0; left: -75%;
		width: 50%; height: 100%; pointer-events: none;
		background: linear-gradient( 120deg, transparent, rgba(255,255,255,.35), transparent );
		transform: skewX(-20deg); transition: left .6s ease;
	}
	.kva-hover-sheen:hover::after { left: 125%; }

	/* ---- Cards ------------------------------------------------- */
	.kva-card-lift  { transition: transform .3s ease, box-shadow .3s ease; }
	.kva-card-lift:hover  { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0,0,0,.12); }

	.kva-card-grow  { transition: transform .3s ease; }
	.kva-card-grow:hover  { transform: scale(1.03); }

	.kva-card-glow  { transition: box-shadow .3s ease, border-color .3s ease; }
	.kva-card-glow:hover  { box-shadow: 0 0 0 2px var(--kva-glow, rgba(28,79,138,.35)), 0 10px 30px rgba(0,0,0,.08); }

	/* Image zoom inside a fixed frame (put on the image's container). */
	.kva-img-zoom { overflow: hidden; }
	.kva-img-zoom img { transition: transform .5s ease; display: block; }
	.kva-img-zoom:hover img { transform: scale(1.06); }
}
