/* ==========================================================================
   Prodware – Scroll Reveal Animations
   Subtle fade-up / fade-in for widgets as they enter the viewport.
   JS adds `.prodware-reveal` (initial state) on init, then `.is-revealed`
   when the IntersectionObserver fires.

   Honors prefers-reduced-motion (animations are disabled, content visible).
   ========================================================================== */

/* Smooth scroll for in-page anchors (#contact etc.) */
html {
	scroll-behavior: smooth;
}

/* Initial hidden state — element starts slightly translated + invisible */
.prodware-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
	            transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

/* Revealed state — slides back to its natural position */
.prodware-reveal.is-revealed {
	opacity: 1;
	transform: translateY(0);
}

/* Variants — opt-in via data-reveal="fade|up|left|right|zoom" */
[data-reveal="fade"].prodware-reveal             { transform: none; }
[data-reveal="up"].prodware-reveal               { transform: translateY(24px); }
[data-reveal="left"].prodware-reveal             { transform: translateX(-24px); }
[data-reveal="right"].prodware-reveal            { transform: translateX(24px); }
[data-reveal="zoom"].prodware-reveal             { transform: scale(0.96); }
[data-reveal="fade"].prodware-reveal.is-revealed,
[data-reveal="up"].prodware-reveal.is-revealed,
[data-reveal="left"].prodware-reveal.is-revealed,
[data-reveal="right"].prodware-reveal.is-revealed { transform: translate(0, 0); }
[data-reveal="zoom"].prodware-reveal.is-revealed { transform: scale(1); }

/* Stagger — children animate in sequence (cards, list items, etc.) */
.prodware-reveal-stagger > * {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1),
	            transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.prodware-reveal-stagger.is-revealed > * { opacity: 1; transform: translateY(0); }
.prodware-reveal-stagger.is-revealed > *:nth-child(1) { transition-delay: 0.00s; }
.prodware-reveal-stagger.is-revealed > *:nth-child(2) { transition-delay: 0.08s; }
.prodware-reveal-stagger.is-revealed > *:nth-child(3) { transition-delay: 0.16s; }
.prodware-reveal-stagger.is-revealed > *:nth-child(4) { transition-delay: 0.24s; }
.prodware-reveal-stagger.is-revealed > *:nth-child(5) { transition-delay: 0.32s; }
.prodware-reveal-stagger.is-revealed > *:nth-child(6) { transition-delay: 0.40s; }
.prodware-reveal-stagger.is-revealed > *:nth-child(7) { transition-delay: 0.48s; }
.prodware-reveal-stagger.is-revealed > *:nth-child(n+8) { transition-delay: 0.56s; }

/* Reduced motion — disable transitions completely, show content immediately */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.prodware-reveal,
	.prodware-reveal-stagger > * {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* In the Elementor editor, never hide content (would be confusing while editing) */
.elementor-editor-active .prodware-reveal,
.elementor-editor-active .prodware-reveal-stagger > * {
	opacity: 1 !important;
	transform: none !important;
}
