/* ════════════════════════════════════════════════════════════
   CURSEUR PERSONNALISÉ — MyProd
   Actif uniquement en desktop (souris fine + hover), voir cursor.js.
   La classe .has-custom-cursor n'est posée qu'en JS -> si le script ne
   charge pas, le curseur natif reste affiché normalement (jamais de
   curseur invisible par défaut).
   ════════════════════════════════════════════════════════════ */

html.has-custom-cursor,
html.has-custom-cursor * {
	cursor: none !important;
}

/* Parent : uniquement positionné (translateX/Y à chaque frame, voir
   cursor.js). Les enfants gèrent leur propre centrage + taille. */
.custom-cursor {
	position: fixed;
	top: 0;
	left: 0;
	width: 0;
	height: 0;
	pointer-events: none;
	z-index: 10000;
	opacity: 0;
	will-change: transform;
}

/* Le point plein : grossit via width/height directement (pas de
   transform: scale -> pas de flou sur le cercle net).
   Couleur pleine au repos, couleur transparente au survol (voir
   .custom-cursor.is-hovering ci-dessous et cursor.js pour le toggle). */
.custom-cursor__dot {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 16px;
	height: 16px;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	border: 1px solid transparent;
	background: #08b9e0;
	transition: background-color 0.3s ease-out;
}

.custom-cursor.is-hovering .custom-cursor__dot {
	background: #08b8e063;
	border: 1px solid #fefefe;
}

/* L'anneau qui pulse en boucle continue pendant le survol (voir cursor.js) */
.custom-cursor__pulse {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 16px;
	height: 16px;
	transform: translate(-50%, -50%) scale(1);
	border-radius: 50%;
	border: 3px solid #08b9e0;
	box-shadow: 0 0 12px rgba(8, 185, 224, 0.5);
	opacity: 0;
}