/* =====================================================================
 *  Smooth Custom Cursor v3.2 — cursor.css
 *  - Einzelnes quadratisches Cursor-Element (kein Ring mehr)
 *  - Über echten Text-Links wird das Quadrat zur nativen Maus-Hand
 *    (Buttons / .et_pb_button ausgenommen -> behalten Skalierung)
 *  - Dezenter, pulsierender Glow in der definierten Farbe
 *  - Barrierearm: native Caret in Eingabefeldern bleibt erhalten,
 *    respektiert prefers-reduced-motion, dekorativ (aria-hidden)
 *  - Touch-freundlich: greift NUR bei feinem Zeiger (Maus/Trackpad)
 *  - Performance: GPU-Compositing über transform/translate3d
 * =================================================================== */

/* Nur aktiv, wenn ein feiner Zeiger (Maus) vorhanden ist.
   Auf reinen Touch-Geräten greift dieser ganze Block nicht. */
@media (hover: hover) and (pointer: fine) {

	/* Nativen Cursor erst ausblenden, wenn JS den Custom-Cursor aktiviert
	   hat (Progressive Enhancement: ohne JS bleibt der System-Cursor). */
	html.scc-active,
	html.scc-active * {
		cursor: none !important;
	}

	/* Barrierefreiheit: In editierbaren Feldern bleibt der native
	   Text-/Auswahlcursor erhalten — wichtig für Tastatur-/Maus-Nutzung. */
	html.scc-active input,
	html.scc-active textarea,
	html.scc-active select,
	html.scc-active [contenteditable="true"],
	html.scc-active [contenteditable=""] {
		cursor: auto !important;
	}

	/* Über echten Text-Links die native Maus-Hand zeigen, damit klar
	   erkennbar ist, dass es ein Link ist. Button-artige Links
	   (.et_pb_button oder role="button") sind ausgenommen. */
	html.scc-active a[href]:not(.et_pb_button):not([role="button"]):hover,
	html.scc-active a[href]:not(.et_pb_button):not([role="button"]):hover * {
		cursor: pointer !important;
	}

	#scc-cursor {
		position: fixed;
		top: 0;
		left: 0;
		width: var(--scc-size, 12px);
		height: var(--scc-size, 12px);
		background: var(--scc-color, #00ffff);
		pointer-events: none;            /* blockiert niemals Klicks/Gesten */
		opacity: 0;                      /* bis zur ersten Mausbewegung */
		border-radius: var(--scc-radius, 0px); /* 0 = Quadrat */
		z-index: 2147483647;
		will-change: transform;          /* GPU-Layer */
		transform: translate3d(-50%, -50%, 0);
		transition: opacity 0.2s ease;
		contain: layout style paint;     /* isoliert Reflows */
	}

	/* Sichtbar, sobald die erste Bewegung registriert wurde. */
	html.scc-ready #scc-cursor { opacity: 1; }

	/* Über einem Text-Link das Quadrat ausblenden — die native
	   Maus-Hand übernimmt (siehe Regel oben). */
	html.scc-link #scc-cursor { opacity: 0 !important; }

	/* ---- Glow (statisch) in der definierten Farbe ---- */
	html.scc-glow-static #scc-cursor {
		box-shadow: 0 0 6px 1px var(--scc-color, #00ffff);
	}

	/* ---- Glow (pulsierend) ---- leicht & ruhig ---- */
	html.scc-pulse #scc-cursor {
		animation: scc-pulse 2s ease-in-out infinite;
	}

	@keyframes scc-pulse {
		0%, 100% { box-shadow: 0 0 5px 0 var(--scc-color, #00ffff); }
		50%      { box-shadow: 0 0 12px 3px var(--scc-color, #00ffff); }
	}

	/* Barrierefreiheit: keine Bewegung, wenn der Nutzer das wünscht.
	   Der statische Glow bleibt, nur das Pulsieren entfällt. */
	@media (prefers-reduced-motion: reduce) {
		html.scc-pulse #scc-cursor {
			animation: none !important;
		}
		#scc-cursor {
			transition: none !important;
		}
	}
}
