/**
 * Text Scroll Reveal — fade-up por scroll para todos los textos del sitio.
 * Apunta al wrapper .oz-pb-block--text (que contiene .oz-pb-text → h2/p/etc).
 *
 * NOTA: usamos `body :not(.foo)` para evitar pisar reglas con !important
 * del propio plugin/maquetador. Las reglas se aplican al wrapper externo
 * (.oz-pb-block--text), no a los headings internos, así no entran en
 * conflicto con los estilos del título ni del párrafo.
 */

/* Estado inicial — wrapper de bloque de texto del maquetador */
html body .oz-pb-root .oz-pb-block--text.ss-text-reveal,
html body .oz-pb-block--text.ss-text-reveal {
	opacity: 0;
	transform: translate3d(0, 32px, 0);
	transition:
		opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.95s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

html body .oz-pb-root .oz-pb-block--text.ss-text-reveal.is-visible,
html body .oz-pb-block--text.ss-text-reveal.is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* Headings y párrafos sueltos (fuera de .oz-pb-block--text) */
body h1.ss-text-reveal,
body h2.ss-text-reveal,
body h3.ss-text-reveal,
body h4.ss-text-reveal,
body h5.ss-text-reveal,
body h6.ss-text-reveal,
body p.ss-text-reveal,
body li.ss-text-reveal {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition:
		opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

body h1.ss-text-reveal.is-visible,
body h2.ss-text-reveal.is-visible,
body h3.ss-text-reveal.is-visible,
body h4.ss-text-reveal.is-visible,
body h5.ss-text-reveal.is-visible,
body h6.ss-text-reveal.is-visible,
body p.ss-text-reveal.is-visible,
body li.ss-text-reveal.is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* Reduce-motion */
@media (prefers-reduced-motion: reduce) {
	body .ss-text-reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}
