/**
 * CDSWerx Process Widget
 * Expanded from Qi Addons for Elementor process-default.min.css
 */

/* Hide line on last item */
.cdswerx-process.cdswerx-grid > .cdswerx-grid-inner > .cdswerx-grid-item:last-child .cdswerx-e-line {
	display: none;
}

/* Grid inner layout */
.cdswerx-process .cdswerx-grid-inner {
	display: grid;
	gap: 30px;
}

/* Default 3-column fallback for horizontal layout */
.cdswerx-process.cdswerx-layout--horizontal .cdswerx-grid-inner {
	grid-template-columns: repeat(3, 1fr);
}

/* Icon holder */
.cdswerx-process .cdswerx-e-icon-holder {
	position: relative;
	z-index: 5;
}

/* Icon circle */
.cdswerx-process .cdswerx-e-icon {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3em;
	height: 3em;
	font-size: 60px;
	background: #f6f6f6;
	border-radius: 50%;
	margin: 0 auto;
	z-index: 3;
}

.cdswerx-process .cdswerx-e-icon > .cdswerx-e-item-icon-text {
	display: flex;
	align-items: center;
	justify-content: center;
}

.cdswerx-process .cdswerx-e-icon svg {
	width: 1em;
	height: auto;
	vertical-align: middle;
	fill: currentColor;
	stroke: currentColor;
	overflow: visible;
}

/* Number badge */
.cdswerx-process .cdswerx-e-number {
	position: absolute;
	top: 0;
	right: 0;
	background: #333;
	width: 2.8em;
	height: 2.8em;
	font-size: 20px;
	color: #fff;
	border-radius: 50%;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Text pill — primary holder auto-width for long text labels */
.cdswerx-process .cdswerx-e-icon--text-label {
	width: auto;
	min-width: 3em;
	min-height: 3em;
	padding-inline: 0.5em;
}

/* Text pill — badge auto-width for long text labels */
.cdswerx-process .cdswerx-e-number--text {
	width: auto;
	min-width: 2.8em;
	min-height: 2.8em;
	padding-inline: 0.4em;
	white-space: nowrap;
}

/* Badge icon support — for swapped mode when icon is in badge */
.cdswerx-process .cdswerx-e-number svg {
	width: 1em;
	height: auto;
	fill: currentColor;
	stroke: currentColor;
}

/* Connector line */
.cdswerx-process .cdswerx-e-line {
	position: absolute;
	z-index: 2;
}

/* Title & text defaults */
.cdswerx-process .cdswerx-e-title {
	margin: 2em 0 0;
}

.cdswerx-process .cdswerx-e-text {
	margin: 0.3em 0 0;
}

/* Subtitle */
.cdswerx-process .cdswerx-e-subtitle {
	display: block;
	margin: 0.5em 0 0;
}

/* =====================================================
   HORIZONTAL LAYOUT
   ===================================================== */

.cdswerx-process.cdswerx-layout--horizontal .cdswerx-e-number {
	width: 2.8em;
	height: 2.8em;
	font-size: 20px;
}

.cdswerx-process.cdswerx-layout--horizontal .cdswerx-e-line {
	top: 50%;
	left: 50%;
	width: 100%;
	height: auto;
}

.cdswerx-process.cdswerx-layout--horizontal .cdswerx-e-line-inner {
	width: 100%;
	height: 100%;
	border-bottom-color: #acacac;
	border-bottom-style: solid;
	position: absolute;
	top: 0;
	left: 0;
}

/* Horizontal appear animation — initial state */
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e .cdswerx-e-line-inner {
	transition: transform 1s;
	transform-origin: left;
	transform: scaleX(0);
}

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e .cdswerx-e-icon {
	transition: transform 0.35s, opacity 0.2s;
	transform: scale(0.8);
	opacity: 0;
}

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e .cdswerx-e-text {
	transition: transform 0.35s, opacity 0.2s;
	transform: translateY(10px);
	opacity: 0;
}

/* Horizontal staggered delays (items 1–20) */
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(1)  { transition-delay: 0s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(1)  .cdswerx-e-line-inner { transition-delay: 0.25s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(1)  .cdswerx-e-icon { transition-delay: 0s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(1)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(1)  .cdswerx-e-text { transition-delay: 0.1s; }

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(2)  { transition-delay: 0.35s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(2)  .cdswerx-e-line-inner { transition-delay: 0.6s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(2)  .cdswerx-e-icon { transition-delay: 0.35s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(2)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(2)  .cdswerx-e-text { transition-delay: 0.45s; }

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(3)  { transition-delay: 0.7s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(3)  .cdswerx-e-line-inner { transition-delay: 0.95s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(3)  .cdswerx-e-icon { transition-delay: 0.7s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(3)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(3)  .cdswerx-e-text { transition-delay: 0.8s; }

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(4)  { transition-delay: 1.05s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(4)  .cdswerx-e-line-inner { transition-delay: 1.3s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(4)  .cdswerx-e-icon { transition-delay: 1.05s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(4)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(4)  .cdswerx-e-text { transition-delay: 1.15s; }

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(5)  { transition-delay: 1.4s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(5)  .cdswerx-e-line-inner { transition-delay: 1.65s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(5)  .cdswerx-e-icon { transition-delay: 1.4s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(5)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(5)  .cdswerx-e-text { transition-delay: 1.5s; }

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(6)  { transition-delay: 1.75s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(6)  .cdswerx-e-line-inner { transition-delay: 2s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(6)  .cdswerx-e-icon { transition-delay: 1.75s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(6)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(6)  .cdswerx-e-text { transition-delay: 1.85s; }

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(7)  { transition-delay: 2.1s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(7)  .cdswerx-e-line-inner { transition-delay: 2.35s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(7)  .cdswerx-e-icon { transition-delay: 2.1s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(7)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(7)  .cdswerx-e-text { transition-delay: 2.2s; }

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(8)  { transition-delay: 2.45s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(8)  .cdswerx-e-line-inner { transition-delay: 2.7s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(8)  .cdswerx-e-icon { transition-delay: 2.45s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(8)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(8)  .cdswerx-e-text { transition-delay: 2.55s; }

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(9)  { transition-delay: 2.8s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(9)  .cdswerx-e-line-inner { transition-delay: 3.05s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(9)  .cdswerx-e-icon { transition-delay: 2.8s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(9)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(9)  .cdswerx-e-text { transition-delay: 2.9s; }

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(10) { transition-delay: 3.15s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(10) .cdswerx-e-line-inner { transition-delay: 3.4s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(10) .cdswerx-e-icon { transition-delay: 3.15s; }
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(10) .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear .cdswerx-e:nth-child(10) .cdswerx-e-text { transition-delay: 3.25s; }

/* Horizontal appeared state */
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear.cdswerx--appeared .cdswerx-e .cdswerx-e-line-inner {
	transform: scaleX(1);
}

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear.cdswerx--appeared .cdswerx-e .cdswerx-e-icon {
	transform: scale(1);
	opacity: 1;
}

.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear.cdswerx--appeared .cdswerx-e .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--horizontal.cdswerx--has-appear.cdswerx--appeared .cdswerx-e .cdswerx-e-text {
	transform: translateY(0);
	opacity: 1;
}

/* =====================================================
   VERTICAL LAYOUT
   ===================================================== */

.cdswerx-process.cdswerx-layout--vertical .cdswerx-grid-inner {
	grid-row-gap: 0;
	grid-template-columns: 1fr !important;
}

.cdswerx-process.cdswerx-layout--vertical .cdswerx-e-content {
	display: flex;
	align-items: stretch;
}

.cdswerx-process.cdswerx-layout--vertical .cdswerx-e-text-wrapper {
	margin-left: 30px;
}

.cdswerx-process.cdswerx-layout--vertical .cdswerx-process-item:not(:last-child) .cdswerx-e-icon-holder {
	padding-bottom: 50px;
}

.cdswerx-process.cdswerx-layout--vertical .cdswerx-e-icon {
	font-size: 40px;
}

.cdswerx-process.cdswerx-layout--vertical .cdswerx-e-line {
	top: 0;
	left: 50%;
	height: 100%;
	transform: translateX(-50%);
}

.cdswerx-process.cdswerx-layout--vertical .cdswerx-e-line-inner {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	border-left: 1px solid #acacac;
}

.cdswerx-process.cdswerx-layout--vertical .cdswerx-e-title {
	margin: 0;
}

/* Vertical appear animation — initial state */
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e .cdswerx-e-line-inner {
	transition: transform 0.8s;
	transform-origin: top;
	transform: scaleY(0);
}

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e .cdswerx-e-icon {
	transition: opacity 0.35s;
	opacity: 0;
}

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e .cdswerx-e-text {
	transition: transform 0.35s, opacity 0.25s;
	transform: translateY(-10px);
	opacity: 0;
}

/* Vertical staggered delays (items 1–10) */
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(1)  { transition-delay: 0s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(1)  .cdswerx-e-line-inner { transition-delay: 0s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(1)  .cdswerx-e-icon { transition-delay: 0s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(1)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(1)  .cdswerx-e-text { transition-delay: 0.15s; }

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(2)  { transition-delay: 0.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(2)  .cdswerx-e-line-inner { transition-delay: 0.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(2)  .cdswerx-e-icon { transition-delay: 0.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(2)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(2)  .cdswerx-e-text { transition-delay: 0.65s; }

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(3)  { transition-delay: 1s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(3)  .cdswerx-e-line-inner { transition-delay: 1s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(3)  .cdswerx-e-icon { transition-delay: 1s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(3)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(3)  .cdswerx-e-text { transition-delay: 1.15s; }

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(4)  { transition-delay: 1.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(4)  .cdswerx-e-line-inner { transition-delay: 1.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(4)  .cdswerx-e-icon { transition-delay: 1.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(4)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(4)  .cdswerx-e-text { transition-delay: 1.65s; }

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(5)  { transition-delay: 2s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(5)  .cdswerx-e-line-inner { transition-delay: 2s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(5)  .cdswerx-e-icon { transition-delay: 2s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(5)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(5)  .cdswerx-e-text { transition-delay: 2.15s; }

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(6)  { transition-delay: 2.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(6)  .cdswerx-e-line-inner { transition-delay: 2.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(6)  .cdswerx-e-icon { transition-delay: 2.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(6)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(6)  .cdswerx-e-text { transition-delay: 2.65s; }

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(7)  { transition-delay: 3s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(7)  .cdswerx-e-line-inner { transition-delay: 3s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(7)  .cdswerx-e-icon { transition-delay: 3s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(7)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(7)  .cdswerx-e-text { transition-delay: 3.15s; }

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(8)  { transition-delay: 3.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(8)  .cdswerx-e-line-inner { transition-delay: 3.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(8)  .cdswerx-e-icon { transition-delay: 3.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(8)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(8)  .cdswerx-e-text { transition-delay: 3.65s; }

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(9)  { transition-delay: 4s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(9)  .cdswerx-e-line-inner { transition-delay: 4s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(9)  .cdswerx-e-icon { transition-delay: 4s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(9)  .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(9)  .cdswerx-e-text { transition-delay: 4.15s; }

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(10) { transition-delay: 4.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(10) .cdswerx-e-line-inner { transition-delay: 4.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(10) .cdswerx-e-icon { transition-delay: 4.5s; }
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(10) .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear .cdswerx-e:nth-child(10) .cdswerx-e-text { transition-delay: 4.65s; }

/* Vertical appeared state */
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear.cdswerx--appeared .cdswerx-e .cdswerx-e-line-inner {
	transform: scaleY(1);
}

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear.cdswerx--appeared .cdswerx-e .cdswerx-e-icon {
	opacity: 1;
}

.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear.cdswerx--appeared .cdswerx-e .cdswerx-e-title,
.cdswerx-process.cdswerx-layout--vertical.cdswerx--has-appear.cdswerx--appeared .cdswerx-e .cdswerx-e-text {
	transform: translateX(0);
	opacity: 1;
}

/* =====================================================
   VERTICAL LAYOUT — Holder Position: Right
   ===================================================== */

.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--right .cdswerx-e-content {
	flex-direction: row-reverse;
}

.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--right .cdswerx-e-text-wrapper {
	margin-left: 0;
	margin-right: 30px;
}

.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--right .cdswerx-e-line {
	left: auto;
	right: 50%;
	transform: translateX(50%);
}

/* =====================================================
   VERTICAL LAYOUT — Holder Position: Above
   Shared rules for both flush-left and centered.

   Strategy: make .cdswerx-process-item the positioning
   context so the line can span the full item height,
   even though the icon-holder is only as tall as the icon.
   ===================================================== */

.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--above .cdswerx-process-item {
	position: relative;
}

/* icon-holder: remove position:relative so .cdswerx-e-line
   escapes up to .cdswerx-process-item as its nearest
   positioned ancestor */
.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--above .cdswerx-e-icon-holder {
	position: static;
	padding-bottom: 0;
}

.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--above .cdswerx-e-content {
	flex-direction: column;
}

/* Line now spans full item height */
.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--above .cdswerx-e-line {
	top: 0;
	height: 100%;
	transform: none;
}

.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--above .cdswerx-e-text-wrapper {
	margin-left: 0;
	margin-top: 15px;
}

/* ── Above: Flush Left ───────────────────────────── */

/* Icon sits at the left edge; no auto-centering */
.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--above.cdswerx-holder-align--flush .cdswerx-e-icon {
	margin: 0;
}

/* Line centered on the icon:
   left = half of holder size. Default icon = 3em * 40px = 120px → 60px.
   --cdswerx-holder-size is set by the slider control. */
.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--above.cdswerx-holder-align--flush .cdswerx-e-line {
	left: calc(var(--cdswerx-holder-size, 120px) / 2);
	transform: translateX(-50%);
}

/* ── Above: Centered ─────────────────────────────── */

.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--above.cdswerx-holder-align--center .cdswerx-e-line {
	left: 50%;
	transform: translateX(-50%);
}

/* ── Above: Appear animation ─────────────────────── */
/* Line already uses scaleY(0→1) with transform-origin:top —
   works identically for both flush and centered above modes.
   No additional overrides needed. */

/* Icon: ensure it sits above the line (z-index context reset
   because icon-holder is now position:static) */
.cdswerx-process.cdswerx-layout--vertical.cdswerx-holder--above .cdswerx-e-icon {
	position: relative;
	z-index: 3;
}
