/*!
 * Mate Animation 1.0.0 — stati iniziali anti-flash
 * Le regole valgono SOLO se <html> ha la classe .ma-js (aggiunta inline da PHP
 * quando JS è attivo e prefers-reduced-motion non è richiesto) e fuori
 * dall'editor di Elementor. Se il JS fallisce, la classe viene rimossa e
 * tutto torna visibile.
 */

/* --- Effetti di entrata (fade / slide / zoom) ------------------------- */
html.ma-js body:not(.elementor-editor-active) :is(
	.ma-fade, .ma-fade-up, .ma-fade-down, .ma-fade-left, .ma-fade-right, .ma-zoom-in,
	[data-ma="fade"], [data-ma="fade-up"], [data-ma="fade-down"],
	[data-ma="fade-left"], [data-ma="fade-right"], [data-ma="zoom-in"]
) {
	opacity: 0;
}

/* --- Stagger: nasconde i figli diretti del contenitore ----------------- */
html.ma-js body:not(.elementor-editor-active) :is(.ma-stagger, [data-ma="stagger"]) > * {
	opacity: 0;
}

/* --- Reveal: parte ritagliato ------------------------------------------ */
html.ma-js body:not(.elementor-editor-active) :is(.ma-reveal, [data-ma="reveal"]) {
	clip-path: inset(0 0 100% 0);
	overflow: hidden;
}

/* --- Split text: nascosto finché SplitText non ha diviso il testo ------ */
html.ma-js body:not(.elementor-editor-active) :is(
	.ma-split-lines, .ma-split-words, .ma-split-chars,
	[data-ma="split-lines"], [data-ma="split-words"], [data-ma="split-chars"]
) {
	visibility: hidden;
}

/* --- Parallax: evita scrollbar orizzontali da overflow ------------------ */
:is(.ma-parallax, [data-ma="parallax"]) {
	will-change: transform;
}

/* Lenis: raccomandazioni ufficiali */
html.lenis, html.lenis body {
	height: auto;
}
.lenis.lenis-smooth {
	scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
	overscroll-behavior: contain;
}
.lenis.lenis-stopped {
	overflow: hidden;
}
