/**
 * Parkiraj BL — short-path blur reveals (HumbleScroll-inspired).
 * Replaces Elementor Animate.css travel (~100%) with ~12–16px + blur.
 */

:root {
	--pbl-reveal-duration: 520ms;
	--pbl-reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--pbl-reveal-distance: 14px;
	--pbl-reveal-blur: 10px;
	--pbl-reveal-scale: 0.985;
}

/* -------------------------------------------------------------------------
   Shared pending / in states (CSS transitions, not Animate.css)
   ------------------------------------------------------------------------- */

.pbl-reveal-item {
	opacity: 0;
	filter: blur(var(--pbl-reveal-blur));
	transform: translate3d(0, var(--pbl-reveal-distance), 0);
	transform-origin: center center;
	will-change: opacity, filter, transform;
	pointer-events: none;
	transition:
		opacity var(--pbl-reveal-duration) var(--pbl-reveal-ease),
		filter var(--pbl-reveal-duration) var(--pbl-reveal-ease),
		transform var(--pbl-reveal-duration) var(--pbl-reveal-ease);
}

/*
 * Direct children of padded location sections: no Y-translate while pending.
 * Translate was adding ~14px above titles (Cjenovnik / Galerija / Utisci / How)
 * until IntersectionObserver fired, so section gaps looked uneven.
 */
.site-main--location .e-con.e-parent > .pbl-reveal-item:not(.is-in),
.site-main--location .e-con.e-parent > .e-con-inner > .pbl-reveal-item:not(.is-in) {
	transform: none;
}

.pbl-reveal-item.is-in {
	opacity: 1;
	filter: blur(0);
	transform: none;
	pointer-events: auto;
	will-change: auto;
}

/* Direction / style presets — only while pending */
.pbl-reveal-item[data-pbl-reveal='blur-up']:not(.is-in),
.pbl-reveal-item[data-pbl-reveal='fadeInUp']:not(.is-in),
.pbl-reveal-item[data-pbl-reveal='slideInUp']:not(.is-in) {
	transform: translate3d(0, var(--pbl-reveal-distance), 0);
}

.pbl-reveal-item[data-pbl-reveal='blur-down']:not(.is-in),
.pbl-reveal-item[data-pbl-reveal='fadeInDown']:not(.is-in),
.pbl-reveal-item[data-pbl-reveal='slideInDown']:not(.is-in) {
	transform: translate3d(0, calc(var(--pbl-reveal-distance) * -1), 0);
}

.pbl-reveal-item[data-pbl-reveal='blur-left']:not(.is-in),
.pbl-reveal-item[data-pbl-reveal='fadeInLeft']:not(.is-in),
.pbl-reveal-item[data-pbl-reveal='slideInLeft']:not(.is-in) {
	transform: translate3d(var(--pbl-reveal-distance), 0, 0);
}

.pbl-reveal-item[data-pbl-reveal='blur-right']:not(.is-in),
.pbl-reveal-item[data-pbl-reveal='fadeInRight']:not(.is-in),
.pbl-reveal-item[data-pbl-reveal='slideInRight']:not(.is-in) {
	transform: translate3d(calc(var(--pbl-reveal-distance) * -1), 0, 0);
}

.pbl-reveal-item[data-pbl-reveal='blur-in']:not(.is-in),
.pbl-reveal-item[data-pbl-reveal='fadeIn']:not(.is-in) {
	transform: none;
}

.pbl-reveal-item[data-pbl-reveal='soft-scale']:not(.is-in),
.pbl-reveal-item[data-pbl-reveal='zoomIn']:not(.is-in) {
	transform: scale(var(--pbl-reveal-scale));
	filter: blur(calc(var(--pbl-reveal-blur) * 0.7));
}

/* Duration modifiers */
.pbl-reveal-item[data-pbl-reveal-duration='fast'] {
	--pbl-reveal-duration: 380ms;
}

.pbl-reveal-item[data-pbl-reveal-duration='slow'] {
	--pbl-reveal-duration: 720ms;
}

/* -------------------------------------------------------------------------
   Stagger: hide children until prepared / revealed
   ------------------------------------------------------------------------- */

.pbl-motion-stagger[data-pbl-stagger='1']:not(.pbl-motion-stagger--done):not(.pbl-motion-stagger--reduced)
	> .elementor-element:not(.is-in),
.pbl-motion-stagger[data-pbl-stagger='1']:not(.pbl-motion-stagger--done):not(.pbl-motion-stagger--reduced)
	> .e-con-inner > .elementor-element:not(.is-in),
.pbl-motion-stagger[data-pbl-stagger='1'][data-pbl-stagger-targets='widgets']:not(.pbl-motion-stagger--done):not(.pbl-motion-stagger--reduced)
	.elementor-widget:not(.is-in) {
	opacity: 0;
}

/* -------------------------------------------------------------------------
   Override Elementor Animate.css keyframes (large travel → short + blur)
   for any leftover native entrance animations.
   ------------------------------------------------------------------------- */

@keyframes fadeInUp {
	from {
		opacity: 0;
		filter: blur(var(--pbl-reveal-blur));
		transform: translate3d(0, var(--pbl-reveal-distance), 0);
	}
	to {
		opacity: 1;
		filter: blur(0);
		transform: translate3d(0, 0, 0);
	}
}

@keyframes fadeInDown {
	from {
		opacity: 0;
		filter: blur(var(--pbl-reveal-blur));
		transform: translate3d(0, calc(var(--pbl-reveal-distance) * -1), 0);
	}
	to {
		opacity: 1;
		filter: blur(0);
		transform: translate3d(0, 0, 0);
	}
}

@keyframes fadeInLeft {
	from {
		opacity: 0;
		filter: blur(var(--pbl-reveal-blur));
		transform: translate3d(var(--pbl-reveal-distance), 0, 0);
	}
	to {
		opacity: 1;
		filter: blur(0);
		transform: translate3d(0, 0, 0);
	}
}

@keyframes fadeInRight {
	from {
		opacity: 0;
		filter: blur(var(--pbl-reveal-blur));
		transform: translate3d(calc(var(--pbl-reveal-distance) * -1), 0, 0);
	}
	to {
		opacity: 1;
		filter: blur(0);
		transform: translate3d(0, 0, 0);
	}
}

@keyframes fadeIn {
	from {
		opacity: 0;
		filter: blur(var(--pbl-reveal-blur));
	}
	to {
		opacity: 1;
		filter: blur(0);
	}
}

@keyframes zoomIn {
	from {
		opacity: 0;
		filter: blur(calc(var(--pbl-reveal-blur) * 0.7));
		transform: scale(var(--pbl-reveal-scale));
	}
	to {
		opacity: 1;
		filter: blur(0);
		transform: scale(1);
	}
}

@keyframes slideInUp {
	from {
		opacity: 0;
		filter: blur(var(--pbl-reveal-blur));
		transform: translate3d(0, var(--pbl-reveal-distance), 0);
	}
	to {
		opacity: 1;
		filter: blur(0);
		transform: translate3d(0, 0, 0);
	}
}

@keyframes slideInDown {
	from {
		opacity: 0;
		filter: blur(var(--pbl-reveal-blur));
		transform: translate3d(0, calc(var(--pbl-reveal-distance) * -1), 0);
	}
	to {
		opacity: 1;
		filter: blur(0);
		transform: translate3d(0, 0, 0);
	}
}

@keyframes slideInLeft {
	from {
		opacity: 0;
		filter: blur(var(--pbl-reveal-blur));
		transform: translate3d(var(--pbl-reveal-distance), 0, 0);
	}
	to {
		opacity: 1;
		filter: blur(0);
		transform: translate3d(0, 0, 0);
	}
}

@keyframes slideInRight {
	from {
		opacity: 0;
		filter: blur(var(--pbl-reveal-blur));
		transform: translate3d(calc(var(--pbl-reveal-distance) * -1), 0, 0);
	}
	to {
		opacity: 1;
		filter: blur(0);
		transform: translate3d(0, 0, 0);
	}
}

.animated {
	animation-duration: var(--pbl-reveal-duration) !important;
	animation-timing-function: var(--pbl-reveal-ease) !important;
	animation-fill-mode: both;
}

.animated-fast {
	animation-duration: 380ms !important;
}

.animated-slow {
	animation-duration: 720ms !important;
}

@media (prefers-reduced-motion: reduce) {
	.pbl-reveal-item,
	.pbl-motion-stagger[data-pbl-stagger='1']:not(.pbl-motion-stagger--done)
		> .elementor-element,
	.pbl-motion-stagger[data-pbl-stagger='1']:not(.pbl-motion-stagger--done)
		> .e-con-inner > .elementor-element,
	.pbl-motion-stagger[data-pbl-stagger='1'][data-pbl-stagger-targets='widgets']:not(.pbl-motion-stagger--done)
		.elementor-widget {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		transition: none !important;
		animation: none !important;
		pointer-events: auto !important;
	}
}
