/* ═══════════════════════════════════════════════════════════════════════
   FCW — Process Steps (fcw-ps)
   Prefix: fcw-ps__*
   Sleek horizontal timeline steps with dynamic connection lines.
 ════════════════════════════════════════════════════════════════════════ */

.fcw-ps {
	--fcw-ps-bg-top: #f9fafb;
	--fcw-ps-bg-bottom: #ffffff;
	--fcw-ps-primary: #862780;
	--fcw-ps-secondary: #6b1f66;
	--fcw-ps-dark: #111827;
	--fcw-ps-mid: #4b5563;
	--fcw-ps-font: 'Inter', sans-serif;

	background: linear-gradient(to bottom, var(--fcw-ps-bg-top), var(--fcw-ps-bg-bottom));
	font-family: var(--fcw-ps-font);
}

.fcw-ps__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 112px 24px;
}

.fcw-ps__header {
	text-align: center;
	margin-bottom: 64px;
}

.fcw-ps__heading {
	font-size: clamp(2rem, 3.5vw, 2.75rem);
	font-weight: 800;
	color: var(--fcw-ps-dark);
	line-height: 1.2;
	margin: 0 0 16px 0;
	letter-spacing: -0.02em;
}

.fcw-ps__subheading {
	font-size: 1.125rem;
	color: var(--fcw-ps-mid);
	max-width: 640px;
	margin: 0 auto;
}

.fcw-ps__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	width: 100%;
}

@media (max-width: 1024px) {
	.fcw-ps__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 48px;
	}
}

@media (max-width: 640px) {
	.fcw-ps__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.fcw-ps__inner {
		padding: 72px 16px;
	}
}

.fcw-ps__step-wrap {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.fcw-ps__number {
	--fcw-ps-num-from: var(--fcw-ps-primary);
	--fcw-ps-num-to: var(--fcw-ps-secondary);

	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--fcw-ps-num-from), var(--fcw-ps-num-to));
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	font-size: 1.5rem;
	font-weight: 800;
	margin-bottom: 24px;
	box-shadow: 0 12px 24px rgba(134, 39, 128, 0.2);
	position: relative;
	z-index: 5;
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.fcw-ps__step-wrap:hover .fcw-ps__number {
	transform: scale(1.1) translateY(-4px);
}

.fcw-ps__title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--fcw-ps-dark);
	margin: 0 0 12px 0;
	line-height: 1.3;
}

.fcw-ps__desc {
	font-size: 0.9375rem;
	color: #6b7280;
	line-height: 1.6;
	margin: 0;
}

/* Timeline Connecting Line */
.fcw-ps__line {
	position: absolute;
	top: 40px;
	left: 60%;
	width: 80%;
	height: 2px;
	background: linear-gradient(to right, var(--fcw-ps-primary), transparent);
	z-index: 1;
}

/* Hide lines in smaller responsive grids */
@media (max-width: 1024px) {
	.fcw-ps__line {
		display: none;
	}
}
