/* Footer dot grid (Homepage v11) */
[data-id="78312ec8"],
.elementor-element-78312ec8 { position: relative; overflow: hidden; }

[data-id="78312ec8"] > :not(.ft-grid-bg),
.elementor-element-78312ec8 > :not(.ft-grid-bg) { position: relative; z-index: 1; }

.ft-grid-bg {
	position: absolute;
	left: 0;
	bottom: 0;
	width: min(900px, 72%);
	height: min(620px, 100%);
	z-index: 0;
	pointer-events: none;
	display: block;
	opacity: .9;
	-webkit-mask-image: radial-gradient(ellipse 100% 100% at 0% 100%, #000 0%, rgba(0,0,0,.55) 42%, transparent 80%);
	mask-image: radial-gradient(ellipse 100% 100% at 0% 100%, #000 0%, rgba(0,0,0,.55) 42%, transparent 80%);
}

@media (max-width: 767.98px) {
	.ft-grid-bg { width: 100%; height: 420px; }
}

/* Rounded page bottom: the page lifts off the dark footer (Ramp-style).
   .ft-page is set by script.js on the element right before the footer. */
:root { --ft-page-radius: 40px; }

.ft-page {
	position: relative;
	z-index: 2;
	background: #fff;
	border-radius: 0 0 var(--ft-page-radius) var(--ft-page-radius);
	overflow: clip;
}

footer[data-elementor-id="145454"] {
	position: relative;
	z-index: 1;
	margin-top: calc(var(--ft-page-radius) * -1);
}

/* Reveal footer: pinned at the bottom, the page slides up off it */
body.ft-reveal footer[data-elementor-id="145454"] { position: sticky; bottom: 0; }
body.ft-reveal .ft-page { box-shadow: 0 30px 60px -30px rgba(0,0,0,.5); }
body.ft-reveal [data-id="78312ec8"] > :not(.ft-grid-bg),
body.ft-reveal .elementor-element-78312ec8 > :not(.ft-grid-bg) { will-change: transform, opacity; }
