/*
 * Effet "spotlight glow" — halo qui suit le curseur sur les cards interactives.
 * Réimplémentation vanilla (CSS + JS natif, cf. js/glow-cards.js) de l'esprit du
 * composant React "GlowCard"/spotlight-card envoyé par Jordan : ce projet reste
 * PHP/CSS/JS natif (aucune dépendance React/Tailwind/shadcn ajoutée). Palette du
 * site (--nwc-gold / --nwc-gold-deep / --nwc-ember, OKLCH) à la place des teintes
 * bleu/violet/vert/rouge/orange génériques de l'original.
 *
 * Mécanique : js/glow-cards.js met à jour --glow-x/--glow-y (coordonnées EN PX,
 * relatives au coin haut-gauche de CHAQUE card survolée, jamais à la fenêtre
 * entière) et bascule la classe .is-glowing. Ici, uniquement la mise en forme
 * visuelle — deux couches : un halo large flouté (::before) + un liseré net sur
 * la bordure (::after, technique du double masque pour n'allumer qu'un anneau de
 * 1px). Désactivé si prefers-reduced-motion OU si le pointeur n'est pas une
 * souris (hover:hover + pointer:fine) : sur tactile, le survol n'a pas de sens,
 * js/glow-cards.js n'attache même pas son écouteur dans ce cas.
 */

@media (hover: hover) and (pointer: fine) {
	.nwc-upcoming-card__frame,
	.nwc-latest-video__frame,
	.nwc-ministries-card__cover,
	.nwc-eb-card {
		--glow-x: 50%;
		--glow-y: 50%;
		--nwc-glow-color: var(--nwc-gold);
	}

	.nwc-upcoming-card__frame {
		--nwc-glow-color: var(--nwc-ember);
	}

	.nwc-ministries-card__cover {
		--nwc-glow-color: var(--nwc-gold-deep);
	}

	/* Deux <span> injectés par js/glow-cards.js (jamais de ::before/::after
	   générique ici : .nwc-ministries-card__cover utilise déjà ::before
	   pour son propre dégradé de fond texturé — on ne le touche pas). */

	/* Halo large flouté — posé en overlay, jamais intrusif au repos (opacity:0).
	   z-index:0 volontairement BAS (pas au-dessus du texte) : il doit éclairer le
	   fond de la card, jamais laver le titre/texte posés par-dessus (overlay des
	   cards Ministères/Études bibliques en z-index:1 ou plus — cf. leurs feuilles
	   respectives) — contrainte de lisibilité, pas d'esthétique criarde. */
	.nwc-glow-halo {
		position: absolute;
		inset: 0;
		z-index: 0;
		border-radius: inherit;
		pointer-events: none;
		opacity: 0;
		background: radial-gradient(
			circle 220px at var(--glow-x) var(--glow-y),
			var(--nwc-glow-color) 0%,
			transparent 70%
		);
		filter: blur(22px);
		mix-blend-mode: screen;
		transition: opacity var(--nwc-duration-base) var(--nwc-ease);
	}

	/* Liseré net — anneau de 1px allumé localement (double masque : on garde
	   seulement la bande entre le bord et le bord moins 1px). Reste au-dessus de
	   tout : un filet de 1px en bordure ne recouvre jamais le texte (padding des
	   cards), aucun souci de lisibilité à le garder visible en tout temps. */
	.nwc-glow-ring {
		position: absolute;
		inset: 0;
		z-index: 6;
		border-radius: inherit;
		pointer-events: none;
		opacity: 0;
		padding: 1px;
		background: radial-gradient(
			circle 180px at var(--glow-x) var(--glow-y),
			var(--nwc-glow-color) 0%,
			transparent 70%
		);
		-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
		-webkit-mask-composite: xor;
		mask-composite: exclude;
		transition: opacity var(--nwc-duration-base) var(--nwc-ease);
	}

	.is-glowing > .nwc-glow-halo {
		opacity: 0.5;
	}

	.is-glowing > .nwc-glow-ring {
		opacity: 0.9;
	}

	.nwc-upcoming-card__frame,
	.nwc-latest-video__frame,
	.nwc-ministries-card__cover,
	.nwc-eb-card {
		position: relative;
	}
}

/* Hors souris fine (tactile) ou mouvement réduit : aucune couche de glow n'est
   même injectée par le JS (cf. js/glow-cards.js, early return) — cette media
   query garde la feuille cohérente si elle était malgré tout présente. */
@media (prefers-reduced-motion: reduce), not all and (hover: hover) and (pointer: fine) {
	.nwc-glow-halo,
	.nwc-glow-ring {
		display: none !important;
	}
}
