/**
 * Animated Title widget styles.
 *
 * @package VisoopCore
 */

/* ── Text Invert (scroll-scrubbed background-clip reveal) ────────────────── */

/*
 * --visoop-title-color / --visoop-highlight-color are set by Elementor's
 * per-widget selectors (Style tab colour controls) so live editor updates
 * work through the normal renderStyles pipeline — no JS re-init required.
 *
 * The gradient is 200% wide:
 *   left 50%  = full colour
 *   right 50% = 30 % of colour (via color-mix)
 * JS starts background-position-x at 100% (dim half visible) and scrubs
 * it to 0% (full-opacity half visible) as the user scrolls through each line.
 *
 * The `.highlight` inside a line gets its own gradient so highlighted words
 * paint in their own colour instead of inheriting the base title gradient.
 */
.visoop--title.visoop-text-invert .invert-line,
.visoop--title.visoop-text-invert .invert-line .highlight {
	background-size: 200% 100%;
	background-position-x: 100%;
	color: transparent !important;
	background-clip: text !important;
	-webkit-background-clip: text !important;
}

.visoop--title.visoop-text-invert .invert-line {
	background-image: linear-gradient(
		to right,
		var(--visoop-title-color, currentColor) 50%,
		color-mix(in srgb, var(--visoop-title-color, currentColor) 30%, transparent) 50%
	) !important;
}

.visoop--title.visoop-text-invert .invert-line .highlight {
	background-image: linear-gradient(
		to right,
		var(--visoop-highlight-color, var(--visoop-title-color, currentColor)) 50%,
		color-mix(in srgb, var(--visoop-highlight-color, var(--visoop-title-color, currentColor)) 30%, transparent) 50%
	) !important;
}

/* ── Prefix line ─────────────────────────────────────────────────────────── */

.visoop--title.prefix_on_normal,
.visoop--title.prefix_on_hover {
	--prefix-width: 60px;
	--prefix-gap: 10px;
	transition: all 0.5s;
}

.visoop--title.prefix_on_normal:before,
.visoop--title.prefix_on_hover:before {
	content: "";
	position: relative;
	display: inline-block;
	inset-inline-start: 0;
	height: 1px;
	background-color: currentColor;
	transition: width 0.5s, margin 0.5s;
	vertical-align: middle;
}

/* Always visible */
.visoop--title.prefix_on_normal:before {
	width: var( --prefix-width );
	margin-inline-end: var( --prefix-gap );
}

/* Revealed on hover */
.visoop--title.prefix_on_hover:before {
	width: 0;
	margin-inline-end: 0;
}

.visoop--title.prefix_on_hover:hover:before {
	width: var( --prefix-width );
	margin-inline-end: var( --prefix-gap );
}

/* ── Highlight span ──────────────────────────────────────────────────────── */

.visoop--title .highlight {
	display: inline;
	transition: color 0.5s, background 0.5s;
}

/* ── Link wrapper ────────────────────────────────────────────────────────── */

.elementor-widget .visoop--title > a {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	text-decoration: none;
	transition: color 0.5s;
}

/* ── Hover overrides (set via CSS vars from controls) ───────────────────── */

.visoop--title:hover {
	color: var( --title-hover-color, inherit );
}

.visoop--title:hover .highlight {
	color: var( --highlight-hover-color, inherit );
}

.visoop--title.has-link:hover > a,
.visoop--title:hover > a {
	color: var( --title-hover-color, inherit );
}
