/**
 * Aurora for Elementor — Cursor Follow: base styles
 *
 * The dot/ring elements themselves are created once by cursor-follow.js
 * and positioned/colored/sized inline (per-instance values can't live in
 * a static stylesheet). This file only provides what has to be static:
 * their fixed positioning and transition timing, hiding the native
 * cursor within any enabled zone, and the reduced-motion guard.
 *
 * @package Aurora
 */

.aurora-cursor-dot,
.aurora-cursor-ring {
	position: fixed;
	top: 0;
	left: 0;
	border-radius: 50%;
	pointer-events: none;
	z-index: 9999;
	opacity: 0;
	will-change: transform, opacity;
}

.aurora-cursor-dot {
	transition: transform 150ms ease, opacity 200ms ease;
}

.aurora-cursor-ring {
	border: 1px solid transparent;
	transition:
		transform var(--aurora-cursor-trail, 150ms) cubic-bezier(0.16, 1, 0.3, 1),
		background-color 150ms ease,
		border-color 150ms ease,
		opacity 200ms ease;
}

/* Any element with Cursor Follow enabled hides the native cursor for
   itself and its descendants, so the custom dot/ring read as the only
   pointer. Scoped strictly to the data-attribute so it never leaks
   outside an explicitly enabled zone. */
[data-aurora-cursor-enable="1"],
[data-aurora-cursor-enable="1"] * {
	cursor: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.aurora-cursor-dot,
	.aurora-cursor-ring {
		display: none !important;
	}

	[data-aurora-cursor-enable="1"],
	[data-aurora-cursor-enable="1"] * {
		cursor: auto !important;
	}
}

@media (hover: none) {
	/* Touch devices have no persistent pointer to follow — never hide
	   the (already absent) cursor or show the dot/ring there. */
	.aurora-cursor-dot,
	.aurora-cursor-ring {
		display: none !important;
	}

	[data-aurora-cursor-enable="1"],
	[data-aurora-cursor-enable="1"] * {
		cursor: auto !important;
	}
}
