/* IPA Sticky Element — sticks until next section covers it */

.elementor-element.ipa-sticky-element {
	--ipa-sticky-top: 0px;
	--ipa-sticky-bottom: 0px;
	--ipa-sticky-transition: 0.1s;
	--ipa-sticky-zindex: 1;
	--ipa-sticky-bg: transparent;
	transition:
		background-color var(--ipa-sticky-transition) ease,
		box-shadow var(--ipa-sticky-transition) ease,
		transform var(--ipa-sticky-transition) ease,
		opacity var(--ipa-sticky-transition) ease;
}

.ipa-sticky-placeholder {
	display: none;
	width: 100%;
	pointer-events: none;
	visibility: hidden;
}

.ipa-sticky-placeholder.is-active {
	display: block;
}

.elementor-element.ipa-sticky-element.ipa-sticky-is-fixed {
	position: fixed !important;
	left: 0;
	right: 0;
	width: 100%;
	top: var(--ipa-sticky-top);
	bottom: auto;
	z-index: var(--ipa-sticky-zindex);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.elementor-element.ipa-sticky-element.ipa-sticky-is-fixed[data-ipa-sticky-trigger="bottom"] {
	top: auto;
	bottom: var(--ipa-sticky-bottom);
}

.elementor-element.ipa-sticky-element.ipa-sticky-is-released {
	position: absolute !important;
	left: 0;
	right: 0;
	width: 100%;
	z-index: var(--ipa-sticky-zindex);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* Next sections/layers paint above the sticky block */
.elementor-element.ipa-sticky-element ~ .elementor-element {
	position: relative;
	z-index: 2;
}

.elementor-element.ipa-sticky-element.ipa-sticky-is-stuck {
	background-color: var(--ipa-sticky-bg) !important;
}

.elementor-element.ipa-sticky-element.ipa-sticky-hidden {
	transform: translateY(-110%);
	opacity: 0;
	pointer-events: none;
}

.elementor-element.ipa-sticky-element.ipa-sticky-hidden[data-ipa-sticky-trigger="bottom"] {
	transform: translateY(110%);
}
