/* =========================================================
   Vandeto Gradient Title — texte rempli par un dégradé animé
   Focus texte uniquement, aucun fond imposé.
   ========================================================= */

.vgt-wrap {
	margin: 0;
}

.vgt-link {
	text-decoration: none;
	display: inline-block;
}

/* Le titre : le dégradé est peint DANS les lettres. */
.vgt-title {
	display: inline-block;
	margin: 0;
	background-image: var(--vgt-gradient, linear-gradient(90deg, #8b5cf6, #ec4899));
	background-size: var(--vgt-bg-size, 220%) auto;
	background-repeat: no-repeat;
	background-position: 0% center;

	/* Repli : couleur pleine si background-clip:text non supporté. */
	color: var(--vgt-fallback, #8b5cf6);

	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;

	/* Rendu net des lettres. */
	-webkit-font-smoothing: antialiased;
	will-change: background-position;
}

/* Base animation : hérite durée/sens via variables CSS. */
.vgt-animated {
	animation-duration: var(--vgt-duration, 3s);
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	animation-direction: var(--vgt-direction, normal);
}

/* --- Flow : coulée horizontale continue --- */
.vgt-anim-flow {
	animation-name: vgt-flow;
}
@keyframes vgt-flow {
	from { background-position: 0% center; }
	to   { background-position: 200% center; }
}

/* --- Wave : aller-retour --- */
.vgt-anim-wave {
	animation-name: vgt-wave;
	animation-timing-function: ease-in-out;
}
@keyframes vgt-wave {
	0%   { background-position: 0% center; }
	50%  { background-position: 100% center; }
	100% { background-position: 0% center; }
}

/* --- Pulse : respiration (opacité, GPU) --- */
.vgt-anim-pulse {
	animation-name: vgt-pulse;
	animation-timing-function: ease-in-out;
	animation-direction: normal;
	will-change: opacity;
}
@keyframes vgt-pulse {
	0%, 100% { opacity: 1; }
	50%      { opacity: 0.55; }
}

/* --- Rainbow : rotation de teinte (GPU, filter) --- */
.vgt-anim-rainbow {
	animation-name: vgt-rainbow;
	will-change: filter;
}
@keyframes vgt-rainbow {
	from { filter: hue-rotate(0deg); }
	to   { filter: hue-rotate(360deg); }
}

/* Accessibilité : coupe les animations si l'utilisateur le demande. */
@media (prefers-reduced-motion: reduce) {
	.vgt-animated {
		animation: none !important;
	}
}

/* Compat Yellow Pencil / AdForest : neutralise les overrides d'héritage
   de couleur pouvant casser le remplissage transparent des lettres. */
.yellow-pencil-active .vgt-title,
.wp-admin .vgt-title {
	-webkit-text-fill-color: transparent;
}
