/*
 * Shiny Content Motion
 * Nur das, was Elementors v4-Style-Schema nicht ausdrücken kann:
 * Keyframes, pointer-events, white-space, text-shadow, Filter-Übergänge
 * und die vom Skript erzeugten Deko-Ebenen.
 * Alle Farben kommen aus den Elementor Global Variables.
 */

/* ---------- Scroll-Hero ---------- */
body.sc-scrub .sc-hero-wrap { display: block; }
body.sc-scrub .sc-hero { display: none; }

.sc-hero-video { transition: opacity .5s cubic-bezier(.4, 0, .2, 1); will-change: transform; transform: translateZ(0); }
.sc-hero-poster { transition: opacity .6s cubic-bezier(.4, 0, .2, 1); }
.sc-hero-stage.is-video-ready .sc-hero-video { opacity: 1; }
.sc-hero-stage.is-video-ready .sc-hero-poster { opacity: 0; }

.sc-band {
	pointer-events: none;
	text-shadow: 0 1px 2px rgba(5, 5, 10, .95), 0 3px 12px rgba(5, 5, 10, .78), 0 10px 44px rgba(5, 5, 10, .8);
	will-change: opacity, transform;
}
.sc-band .sc-button { text-shadow: none; pointer-events: auto; }
.sc-staccato, .sc-staccato-dot { white-space: nowrap; }

.sc-hero-ring {
	position: absolute; inset-inline-end: 24px; inset-block-end: 24px;
	width: 48px; height: 48px; color: var(--gold, #FFDE59); z-index: 5; pointer-events: none;
}
.sc-hero-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); display: block; }
.sc-hero-ring circle { transition: stroke-dashoffset .2s linear; }
.sc-hero-stage.is-video-ready .sc-hero-ring { display: none; }

.sc-scroll-chevron {
	position: absolute; inset-inline-start: 50%; inset-block-end: 28px;
	width: 26px; height: 26px; margin-inline-start: -13px;
	border-inline-end: 2px solid var(--text-secondary, #CBB9D8);
	border-block-end: 2px solid var(--text-secondary, #CBB9D8);
	transform: rotate(45deg); opacity: .7; pointer-events: none;
	animation: sc-chev-bob 2.4s ease-in-out infinite;
}
@keyframes sc-chev-bob { 0%, 100% { margin-block-start: 0; } 50% { margin-block-start: 8px; } }

/* ---------- Kundenstimmen-Laufband ---------- */
body.sc-anim .sc-testi-marquee { overflow: hidden; }
.sc-testi-row.is-marquee { animation: sc-testi-scroll 62s linear infinite; will-change: transform; }
.sc-testi-row.is-marquee.is-reverse { animation-direction: reverse; animation-duration: 74s; }
.sc-testi-marquee:hover .sc-testi-row.is-marquee,
.sc-testi-marquee:focus-within .sc-testi-row.is-marquee { animation-play-state: paused; }
/* Die Reihe besteht aus zwei gleichen Saetzen mit 20px Luecke dazwischen.
   Nahtlos wird die Schleife erst, wenn wir um einen Satz PLUS halbe Luecke
   verschieben - reine -50% lassen bei jedem Durchlauf 10px springen. */
@keyframes sc-testi-scroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 10px)); } }

body.sc-anim .sc-quote {
	display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden;
}

/* ---------- Markenzeichen polieren ---------- */
.sc-logo-stage { user-select: none; -webkit-user-select: none; touch-action: none; }
body.sc-anim .sc-logo-image { filter: grayscale(1) brightness(.55) contrast(.9); transition: filter .1s linear; }
.sc-logo-panel.is-polished .sc-logo-image { filter: none; }

.sc-polish-sheen {
	position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen;
	background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, .55) 48%, transparent 66%);
	transform: translateX(-120%);
}
.sc-polish-sheen.is-sweeping { animation: sc-sheen-sweep .9s cubic-bezier(.16, .8, .24, 1) forwards; }
@keyframes sc-sheen-sweep { to { transform: translateX(120%); } }

.sc-polish-glow {
	position: absolute; inset: 0; border-radius: 16px; pointer-events: none;
	box-shadow: 0 0 0 0 rgba(247, 65, 147, 0);
	transition: box-shadow .4s cubic-bezier(.4, 0, .2, 1);
}
.sc-logo-panel.is-polished .sc-polish-glow { box-shadow: 0 0 60px 6px rgba(247, 65, 147, .45); }

.sc-polish-track {
	width: min(320px, 70vw); height: 6px; border-radius: 99px; overflow: hidden;
	background: var(--border, rgba(203, 185, 216, .18));
}
.sc-polish-fill {
	height: 100%; width: 0; border-radius: 99px;
	background: linear-gradient(90deg, var(--accent, #F74193), var(--gold, #FFDE59));
}

/* ---------- Weniger Bewegung ---------- */
@media (prefers-reduced-motion: reduce) {
	body.sc-scrub .sc-hero-wrap { display: none; }
	body.sc-scrub .sc-hero { display: block; }
	.sc-testi-row.is-marquee { animation: none; }
	body.sc-anim .sc-testi-marquee { overflow: auto; }
	.sc-scroll-chevron { animation: none; }
	.sc-polish-sheen.is-sweeping { animation: none; }
}
