/* fluid-1920 */
/* LP Motion Kit: element effects (Advanced tab) and Pro Form validation feedback.
   Loaded on every Elementor page; everything here is scoped to opt-in classes. */

/* Phones and tablets: live backdrop blur on fixed/sticky bars is the classic cause of scroll stutter
   (the GPU re-blurs the page behind them every frame). Switch it off and use a solid background. */
@media (hover: none) and (pointer: coarse) {
	:root { --lpm-bf-off: none; }
}

/* Background video zooms out as the section scrolls in (CSS scroll-driven animation). */
@keyframes lpm-bgzoom { from { scale: var(--lpm-bgzoom, 1.2); } to { scale: 1; } }
@supports (animation-timeline: view()) {
	.lpm-bgzoom-yes > .elementor-background-video-container :is(video, iframe) {
		animation: lpm-bgzoom linear both;
		animation-timeline: view();
		animation-range: entry 0% cover 50%;
	}
}

/* Scroll effects (script-driven). Stacking cards stick from tablet up. */
@media (min-width: 768px) {
	.lpm-stack-yes { position: sticky !important; top: var(--lpm-stack-top, 96px); transform-origin: 50% 0; }
}
.lpm-settle-yes img { transform-origin: 50% 55%; }

/* Reveal after the loader: hidden under it once it starts, eased in as it opens */
.lpm-afterload-yes { transition: opacity 1s cubic-bezier(.16,1,.3,1) var(--lpm-al-delay, 0ms), translate 1s cubic-bezier(.16,1,.3,1) var(--lpm-al-delay, 0ms); }
html.lpm-loading:not(.lpm-revealed) .lpm-afterload-yes { opacity: 0; translate: 0 26px; transition: none; }

/* Pro Form: live validation feedback */
[data-lpm-validate] .elementor-field-group { position: relative; }
[data-lpm-validate] .lpm-invalid :is(input, textarea, select).elementor-field-textual { border-color: var(--lpm-err, #c9383d) !important; }
[data-lpm-validate] .lpm-valid :is(input, textarea).elementor-field-textual { padding-inline-end: 2.6em; }
[data-lpm-validate] .lpm-valid::after {
	content: ""; position: absolute; inset-inline-end: .9em; top: calc(var(--lpm-input-mid, 50%) - .6em);
	width: 1.2em; height: 1.2em; background: var(--lpm-ok, #1f8a4c);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-1.4 14.2-4.2-4.2 1.4-1.4 2.8 2.8 5.8-5.8 1.4 1.4-7.2 7.2Z'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-1.4 14.2-4.2-4.2 1.4-1.4 2.8 2.8 5.8-5.8 1.4 1.4-7.2 7.2Z'/%3E%3C/svg%3E") center / contain no-repeat;
	animation: lpm-pop .4s cubic-bezier(.34, 1.8, .64, 1);
}
[data-lpm-validate] .lpm-shake { animation: lpm-shake .4s; }
[data-lpm-validate] .lpm-field-msg { flex-basis: 100%; width: 100%; margin-top: 4px; font-size: .85em; color: var(--lpm-err, #b3261e); }
@keyframes lpm-pop { from { scale: 0; } }
@keyframes lpm-shake { 25% { translate: 6px; } 50% { translate: -5px; } 75% { translate: 3px; } }

@media (prefers-reduced-motion: reduce) {
	.lpm-afterload-yes { opacity: 1 !important; translate: none !important; }
	.lpm-bgzoom-yes > .elementor-background-video-container :is(video, iframe) { animation: none; }
	[data-lpm-validate] .lpm-shake, [data-lpm-validate] .lpm-valid::after { animation: none; }
}

/* ---------- Form: styled dropdowns ([data-lpm-select]) ---------- */
[data-lpm-select] .lpm-sel { position: relative; }
[data-lpm-select] .lpm-sel .select-caret-down-wrapper { display: none; }
[data-lpm-select] .lpm-sel__native { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; opacity: 0 !important; pointer-events: none; }
[data-lpm-select] .lpm-sel__btn {
	display: flex !important; align-items: center; justify-content: space-between; gap: .8em;
	width: 100%; margin: 0; text-align: start; cursor: pointer; font: inherit; line-height: 1.3;
	-webkit-tap-highlight-color: transparent;
}
[data-lpm-select] .lpm-sel__btn:focus { outline: none; }
[data-lpm-select] .lpm-sel__btn:focus-visible { outline: 1px solid var(--lpm-sel-accent, currentColor); outline-offset: 3px; }
[data-lpm-select] .lpm-sel__val { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-lpm-select] .lpm-sel__val.is-ph { opacity: .62; }
[data-lpm-select] .lpm-sel__car {
	flex: none; width: .55em; height: .55em; margin-top: -.3em;
	border-right: 1.5px solid var(--lpm-sel-accent, currentColor); border-bottom: 1.5px solid var(--lpm-sel-accent, currentColor);
	transform: rotate(45deg); transition: transform .35s cubic-bezier(.16,1,.3,1), margin .35s;
}
[data-lpm-select] .lpm-sel.is-open .lpm-sel__car { transform: rotate(-135deg); margin-top: .25em; }
[data-lpm-select] .lpm-sel__list {
	position: absolute; z-index: 40; inset-inline: 0; top: calc(100% + 8px);
	margin: 0; padding: 6px; list-style: none; max-height: min(320px, 52vh); overflow: auto; overscroll-behavior: contain;
	background: var(--lpm-sel-bg, #fff); color: var(--lpm-sel-color, #101c31);
	border: 1px solid var(--lpm-sel-border, rgb(0 0 0 / .1)); border-radius: var(--lpm-sel-radius, 0);
	box-shadow: 0 28px 60px -24px rgb(0 0 0 / .55), 0 2px 6px rgb(0 0 0 / .08);
	opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.985); transform-origin: top center;
	transition: opacity .2s ease, transform .35s cubic-bezier(.16,1,.3,1), visibility 0s linear .35s;
}
[data-lpm-select] .lpm-sel.is-open .lpm-sel__list { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
[data-lpm-select] .lpm-sel__opt {
	position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1em;
	padding: .8em .95em; cursor: pointer; line-height: 1.35;
	border-radius: calc(var(--lpm-sel-radius, 0px) * .6);
	transition: background .2s, color .2s, padding .25s cubic-bezier(.16,1,.3,1);
}
[data-lpm-select] .lpm-sel__opt.is-active { background: var(--lpm-sel-hover, rgb(0 0 0 / .05)); padding-inline-start: 1.25em; }
[data-lpm-select] .lpm-sel__opt[aria-selected="true"] { color: var(--lpm-sel-accent, currentColor); font-weight: 600; }
[data-lpm-select] .lpm-sel__opt[aria-selected="true"]::after {
	content: ""; flex: none; width: .75em; height: .4em; margin-top: -.2em;
	border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg);
}
[data-lpm-select] .lpm-sel__opt[aria-disabled="true"] { opacity: .45; cursor: default; }
[data-lpm-select] .lpm-invalid .lpm-sel__btn { border-color: var(--lpm-err, #c9383d) !important; }
@media (prefers-reduced-motion: reduce) {
	[data-lpm-select] .lpm-sel__list, [data-lpm-select] .lpm-sel__car, [data-lpm-select] .lpm-sel__opt { transition: none; }
}
