.els-process-showcase {
	--els-process-text: #2f455c;
	--els-process-muted: #56606f;
	--els-process-accent: #21d0b3;
	--els-process-accent-soft: rgba(33, 208, 179, 0.16);
	--els-process-accent-line: rgba(33, 208, 179, 0.34);
	--els-process-line: rgba(47, 69, 92, 0.14);
	--els-process-panel: rgba(255, 255, 255, 0.94);
	--els-process-panel-height: 100vh;
	--els-process-active-progress: 20%;
	--els-process-runway: 18vh;
	--els-process-content-pad-top: clamp(7.2rem, 13vh, 9rem);
	--els-process-sticky-top: calc(var(--wp-admin--admin-bar--height, 0px) + clamp(7.35rem, 13.5vh, 9rem));
	--els-process-rail-height: min(28rem, 56vh);
	--els-process-rail-pad: 1.45rem;
	--els-process-rail-dot: 9px;
	background: #2f455c;
	background-color: #2f455c;
	border-block: 0;
	box-sizing: border-box;
	color: var(--els-process-text);
	font-family: inherit;
	isolation: isolate;
	margin: 0 auto;
	overflow: clip;
	position: relative;
	scroll-margin-top: clamp(5rem, 11vh, 7rem);
	width: 100%;
}

.els-process-showcase *,
.els-process-showcase *::before,
.els-process-showcase *::after {
	box-sizing: border-box;
}

.elementor-widget-shortcode:has(.els-process-showcase),
.elementor-widget-shortcode:has(.els-process-showcase) > .elementor-widget-container,
.elementor-widget-shortcode:has(.els-process-showcase) .elementor-shortcode {
	margin-block: 0 !important;
	padding-block: 0 !important;
}

.els-process-showcase__inner {
	min-height: calc((var(--els-process-count, 5) * 100vh) + var(--els-process-runway));
	position: relative;
}

.els-process-showcase__backdrop {
	--els-process-pattern-opacity-low: 0.4;
	--els-process-pattern-opacity-high: 0.56;
	background: #2f455c;
	background-color: #2f455c;
	height: var(--els-process-panel-height);
	min-height: 42rem;
	overflow: hidden;
	pointer-events: none;
	position: sticky;
	top: 0;
	z-index: 0;
}

.els-process-showcase__backdrop::before {
	animation: els-process-pattern-drift 24s ease-in-out infinite alternate;
	background-image: url("data:image/svg+xml,%3Csvg width='1600' height='900' viewBox='0 0 1600 900' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%2321D0B3' stroke-opacity='.13' stroke-width='1.35'%3E%3Cpath d='M-120 710 C140 480 340 780 600 520 S1080 250 1740 570'/%3E%3Cpath d='M-80 245 C220 25 455 255 750 165 S1260 155 1680 -90'/%3E%3Cpath d='M120 990 C350 680 640 800 900 535 S1350 425 1670 130'/%3E%3Cpath d='M-160 470 C180 300 430 470 720 355 S1210 350 1700 240'/%3E%3C/g%3E%3Cg fill='%23FFFFFF' fill-opacity='.16'%3E%3Ccircle cx='210' cy='552' r='4'/%3E%3Ccircle cx='600' cy='520' r='4'/%3E%3Ccircle cx='1010' cy='302' r='4'/%3E%3Ccircle cx='1335' cy='410' r='4'/%3E%3Ccircle cx='438' cy='192' r='4'/%3E%3Ccircle cx='900' cy='535' r='4'/%3E%3Ccircle cx='720' cy='355' r='4'/%3E%3C/g%3E%3C/svg%3E");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	content: "";
	display: block;
	inset: 0;
	mask-image: linear-gradient(180deg, transparent 0%, #000000 12%, #000000 88%, transparent 100%);
	opacity: 0.56;
	position: absolute;
	transform-origin: center;
	will-change: opacity, transform;
	z-index: 1;
}

.els-process-showcase__backdrop::after {
	animation: els-process-glow-drift 32s ease-in-out infinite alternate;
	background:
		radial-gradient(circle at 14% 16%, rgba(33, 208, 179, 0.1), transparent 30rem),
		radial-gradient(circle at 82% 40%, rgba(255, 255, 255, 0.035), transparent 34rem),
		linear-gradient(180deg, rgba(47, 69, 92, 0.04), rgba(35, 55, 76, 0.14));
	content: "";
	display: block;
	inset: -3%;
	position: absolute;
	transform-origin: center;
	will-change: transform;
	z-index: 2;
}

@keyframes els-process-pattern-drift {
	from {
		opacity: var(--els-process-pattern-opacity-low);
		transform: translate3d(-0.6%, 0.25%, 0) scale(1.04);
	}

	to {
		opacity: var(--els-process-pattern-opacity-high);
		transform: translate3d(0.65%, -0.35%, 0) scale(1.055);
	}
}

@keyframes els-process-glow-drift {
	from {
		transform: translate3d(-0.45%, 0.25%, 0) scale(1.01);
	}

	to {
		transform: translate3d(0.5%, -0.3%, 0) scale(1.035);
	}
}

.els-process-showcase__content {
	column-gap: clamp(3rem, 6vw, 5.5rem);
	display: grid;
	grid-template-columns: minmax(24rem, 0.9fr) minmax(0, 1fr);
	margin: calc(-1 * var(--els-process-panel-height)) auto 0;
	max-width: 1180px;
	min-height: calc((var(--els-process-count, 5) * 100vh) + var(--els-process-runway));
	padding: var(--els-process-content-pad-top) clamp(1.25rem, 5vw, 4.5rem) clamp(5rem, 10vh, 7rem);
	position: relative;
	width: min(100%, 1180px);
	z-index: 2;
}

.els-process-showcase__rail-column {
	align-self: start;
	grid-column: 1;
	position: sticky;
	top: var(--els-process-sticky-top);
}

.els-process-showcase__header {
	margin: 0 0 clamp(1.7rem, 4vh, 2.65rem);
	max-width: 34rem;
	text-align: left;
}

.els-process-showcase__eyebrow {
	color: var(--els-process-accent);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	margin: 0 0 0.85rem;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.32);
	text-transform: uppercase;
}

.els-process-showcase__title {
	color: rgba(255, 255, 255, 0.96);
	font-size: clamp(2.75rem, 3.4vw, 3.25rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.05;
	margin: 0;
	text-shadow: none;
	text-wrap: balance;
	word-break: normal;
}

.els-process-showcase__title span {
	display: block;
}

.els-process-showcase__title-accent {
	color: var(--els-process-accent);
}

.els-process-showcase__subtitle {
	color: rgba(255, 255, 255, 0.84);
	font-size: clamp(0.98rem, 1.15vw, 1.08rem);
	line-height: 1.65;
	margin: clamp(0.9rem, 2vw, 1.2rem) 0 0;
	max-width: 28rem;
	text-shadow: 0 1px 14px rgba(0, 0, 0, 0.3);
}

.els-process-showcase__rail {
	display: flex;
	flex-direction: column;
	max-width: 26rem;
	min-height: var(--els-process-rail-height);
	padding-left: var(--els-process-rail-pad);
	position: relative;
}

.els-process-showcase__rail::before {
	background: var(--els-process-accent-line);
	bottom: 0;
	content: "";
	left: 0;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 1px;
}

.els-process-showcase__rail::after {
	background: linear-gradient(180deg, var(--els-process-accent), rgba(33, 208, 179, 0.18));
	content: "";
	height: var(--els-process-active-progress);
	left: 0;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	transition: height 0.32s ease;
	width: 1px;
}

.els-process-showcase__rail-mark {
	align-items: start;
	color: rgba(47, 69, 92, 0.66);
	display: grid;
	gap: 0.9rem;
	grid-template-columns: 2.75rem minmax(0, 1fr);
	min-height: calc(var(--els-process-rail-height) / var(--els-process-count, 5));
	padding-bottom: 1rem;
	position: relative;
	transition:
		color 0.25s ease,
		transform 0.25s ease;
}

.els-process-showcase__rail-mark::before {
	background: #ffffff;
	border: 1px solid rgba(47, 69, 92, 0.24);
	border-radius: 2px;
	content: "";
	height: var(--els-process-rail-dot);
	left: calc(-1 * var(--els-process-rail-pad));
	position: absolute;
	top: calc(1.3rem - (var(--els-process-rail-dot) / 2));
	transform: translateX(-50%);
	transition:
		background-color 0.25s ease,
		border-color 0.25s ease,
		box-shadow 0.25s ease;
	width: var(--els-process-rail-dot);
	z-index: 2;
}

.els-process-showcase__rail-mark.is-active {
	color: var(--els-process-text);
	transform: none;
}

.els-process-showcase__rail-mark.is-active::before {
	background: var(--els-process-accent);
	border-color: #ffffff;
	box-shadow: 0 0 0 7px var(--els-process-accent-soft);
}

.els-process-showcase__rail-icon {
	align-items: center;
	background: rgba(33, 208, 179, 0.82);
	border: 1px solid rgba(255, 255, 255, 0.44);
	border-radius: 50%;
	color: var(--els-process-accent);
	display: inline-flex;
	height: 2.6rem;
	justify-content: center;
	width: 2.6rem;
}

.els-process-showcase__rail-icon img,
.els-process-showcase__icon img {
	display: block;
	height: 58%;
	object-fit: contain;
	width: 58%;
}

.els-process-showcase__rail-icon svg,
.els-process-showcase__icon svg {
	display: block;
	fill: none;
	height: 52%;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
	width: 52%;
}

.els-process-showcase__rail-mark.is-active .els-process-showcase__rail-icon {
	background: var(--els-process-accent);
	border-color: var(--els-process-accent);
	color: #ffffff;
}

.els-process-showcase__rail-text,
.els-process-showcase__rail-number,
.els-process-showcase__rail-label {
	display: block;
}

.els-process-showcase__rail-text {
	align-self: start;
	background: rgba(20, 34, 48, 0.44);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 8px;
	box-shadow: 0 10px 24px rgba(20, 34, 48, 0.12);
	color: rgba(255, 255, 255, 0.86);
	max-width: min(17.5rem, 100%);
	padding: 0.48rem 0.7rem 0.56rem;
	transition:
		background-color 0.25s ease,
		border-color 0.25s ease,
		box-shadow 0.25s ease,
		color 0.25s ease;
}

.els-process-showcase__rail-mark.is-active .els-process-showcase__rail-text {
	background: rgba(255, 255, 255, 0.88);
	border-color: rgba(255, 255, 255, 0.72);
	box-shadow: 0 14px 28px rgba(20, 34, 48, 0.16);
	color: var(--els-process-text);
}

.els-process-showcase__rail-number {
	color: currentColor;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	margin-bottom: 0.22rem;
	opacity: 0.72;
}

.els-process-showcase__rail-label {
	color: currentColor;
	font-size: clamp(0.92rem, 1.05vw, 1.02rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.25;
	max-width: 17rem;
	overflow-wrap: break-word;
}

.els-process-showcase__points {
	grid-column: 2;
	justify-self: start;
	max-width: 36rem;
	position: relative;
	width: 100%;
}

.els-process-showcase__point {
	align-items: center;
	color: var(--els-process-text);
	display: flex;
	min-height: 100vh;
	opacity: 0.18;
	padding-block: clamp(4.5rem, 9vh, 6rem);
	transform: translateY(0.35rem);
	transition:
		opacity 0.35s ease,
		transform 0.35s ease;
}

.els-process-showcase__point.is-active {
	opacity: 1;
	transform: translateY(0);
}

.els-process-showcase__point-inner {
	background: var(--els-process-panel);
	border: 1px solid rgba(47, 69, 92, 0.11);
	border-radius: 8px;
	box-shadow: 0 18px 40px rgba(47, 69, 92, 0.1);
	display: grid;
	gap: clamp(1.15rem, 2vw, 1.5rem);
	grid-template-columns: 4rem minmax(0, 1fr);
	isolation: isolate;
	overflow: hidden;
	padding: clamp(1.65rem, 3vw, 2.35rem);
	position: relative;
	width: 100%;
}

.els-process-showcase__point-inner::before {
	background:
		linear-gradient(90deg, rgba(33, 208, 179, 0.085), rgba(33, 208, 179, 0) 44%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0));
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: -1;
}

.els-process-showcase__point-inner::after {
	background: var(--els-process-accent);
	content: "";
	height: 4px;
	left: 0;
	position: absolute;
	top: 0;
	width: clamp(8rem, 19vw, 15rem);
}

.els-process-showcase__point-meta {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
}

.els-process-showcase__icon {
	align-items: center;
	background: var(--els-process-accent);
	border-radius: 50%;
	box-shadow: 0 12px 26px rgba(33, 208, 179, 0.22);
	color: #ffffff;
	display: inline-flex;
	height: 3.7rem;
	justify-content: center;
	width: 3.7rem;
}

.els-process-showcase__number {
	color: rgba(47, 69, 92, 0.42);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
}

.els-process-showcase__copy {
	align-self: center;
	min-width: 0;
}

.els-process-showcase__point-title {
	color: var(--els-process-text);
	font-size: clamp(1.65rem, 2.1vw, 2.05rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.1;
	margin: 0;
	overflow-wrap: break-word;
	text-wrap: normal;
}

.els-process-showcase__text {
	color: var(--els-process-muted);
	font-size: clamp(0.98rem, 1.06vw, 1.08rem);
	line-height: 1.68;
	margin: clamp(0.85rem, 1.6vw, 1.1rem) 0 0;
	max-width: 29rem;
	overflow-wrap: break-word;
}

.els-process-showcase__text > :first-child {
	margin-top: 0;
}

.els-process-showcase__text > :last-child {
	margin-bottom: 0;
}

.els-process-showcase__text p {
	margin: 0 0 1rem;
}

@media (max-width: 1024px) {
	.els-process-showcase__content {
		column-gap: clamp(2rem, 5vw, 3.5rem);
		grid-template-columns: minmax(21rem, 0.88fr) minmax(0, 1fr);
		padding-inline: clamp(1.25rem, 4vw, 3rem);
	}

	.els-process-showcase__point-inner {
		grid-template-columns: 3.55rem minmax(0, 1fr);
		padding: clamp(1.45rem, 2.6vw, 2rem);
	}

	.els-process-showcase__title {
		font-size: clamp(2.75rem, 3.4vw, 3.25rem);
	}

	.els-process-showcase__icon {
		height: 3.25rem;
		width: 3.25rem;
	}
}

@media (max-width: 860px) {
	.els-process-showcase {
		background: #2f455c;
		background-color: #2f455c;
		margin: 0 auto;
		overflow-x: clip;
		overflow-y: visible;
		padding: clamp(8.75rem, 27vw, 10rem) 0 clamp(3.25rem, 9vw, 5rem);
		scroll-margin-top: 5.5rem;
		width: 100%;
	}

	.els-process-showcase__inner {
		margin: 0 auto;
		min-height: 0;
		max-width: 46rem;
		width: calc(100% - 2rem);
	}

	.els-process-showcase__backdrop {
		--els-process-pattern-opacity-low: 0.3;
		--els-process-pattern-opacity-high: 0.42;
		display: block;
		height: auto;
		inset: 0;
		min-height: 0;
		position: absolute;
		top: auto;
	}

	.els-process-showcase__backdrop::before {
		background-position: center top;
		background-size: auto 100%;
		mask-image: none;
		opacity: 0.42;
	}

	.els-process-showcase__backdrop::after {
		background:
			radial-gradient(circle at 8% 8%, rgba(33, 208, 179, 0.09), transparent 18rem),
			linear-gradient(180deg, rgba(47, 69, 92, 0.02), rgba(35, 55, 76, 0.12));
	}

	.els-process-showcase__content {
		display: block;
		margin: 0;
		max-width: 100%;
		min-height: 0;
		min-width: 0;
		padding: 0;
		width: 100%;
	}

	.els-process-showcase__rail-column {
		max-width: 100%;
		min-width: 0;
		position: relative;
		top: auto;
	}

	.els-process-showcase__header {
		margin: 0 0 clamp(2rem, 7vw, 3rem);
		max-width: 38rem;
		min-width: 0;
	}

	.els-process-showcase__title {
		font-size: clamp(1.875rem, 8vw, 2.125rem);
	}

	.els-process-showcase__subtitle {
		max-width: 34rem;
	}

	.els-process-showcase__rail {
		display: none;
	}

	.els-process-showcase__points {
		display: grid;
		gap: 0;
		max-width: 100%;
		min-width: 0;
		padding-left: 4.1rem;
		position: relative;
		width: 100%;
	}

	.els-process-showcase__points::before {
		background: linear-gradient(180deg, rgba(33, 208, 179, 0), rgba(33, 208, 179, 0.62) 8%, rgba(33, 208, 179, 0.62) 92%, rgba(33, 208, 179, 0));
		bottom: 1.65rem;
		content: "";
		left: 1.45rem;
		position: absolute;
		top: 0.45rem;
		width: 1px;
	}

	.els-process-showcase__point,
	.els-process-showcase__point.is-active {
		display: block;
		min-height: 0;
		opacity: 1;
		padding: 0 0 clamp(2rem, 7vw, 3rem);
		transform: none;
	}

	.els-process-showcase__point-inner {
		background: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		display: block;
		max-width: 100%;
		min-width: 0;
		overflow: visible;
		padding: 0;
	}

	.els-process-showcase__point-inner::before,
	.els-process-showcase__point-inner::after {
		display: none;
	}

	.els-process-showcase__point-meta {
		display: block;
		left: -4.1rem;
		position: absolute;
		top: 0;
	}

	.els-process-showcase__icon {
		box-shadow: 0 12px 24px rgba(33, 208, 179, 0.2);
		height: 2.9rem;
		width: 2.9rem;
	}

	.els-process-showcase__number {
		display: none;
	}

	.els-process-showcase__point-title {
		color: #ffffff;
		font-size: clamp(1.38rem, 5vw, 2rem);
		line-height: 1.16;
		max-width: 100%;
	}

	.els-process-showcase__text {
		color: rgba(255, 255, 255, 0.74);
		font-size: 0.98rem;
		line-height: 1.65;
		margin-top: 0.7rem;
		max-width: 34rem;
		width: 100%;
	}
}

@media (max-width: 520px) {
	.els-process-showcase {
		padding: clamp(7.5rem, 27vw, 8.75rem) 0 3rem;
	}

	.els-process-showcase__inner {
		max-width: 46rem;
		width: calc(100% - 1.5rem);
	}

	.els-process-showcase__points {
		padding-left: 3.55rem;
	}

	.els-process-showcase__points::before {
		left: 1.25rem;
	}

	.els-process-showcase__point-meta {
		left: -3.55rem;
	}

	.els-process-showcase__icon {
		height: 2.55rem;
		width: 2.55rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.els-process-showcase__backdrop::before,
	.els-process-showcase__backdrop::after {
		animation: none;
		transform: none;
		will-change: auto;
	}

	.els-process-showcase__rail::after,
	.els-process-showcase__rail-mark,
	.els-process-showcase__rail-mark::before,
	.els-process-showcase__point {
		transition: none;
	}

	.els-process-showcase__point {
		transform: none;
	}
}
