/**
 * WebXtrm Work Process Widget Styles
 */

.wx-wp-wrap {
	width: 100%;
	display: flex;
	justify-content: center;
	box-sizing: border-box;
}

.wx-wp-wrap * {
	box-sizing: border-box;
}

/* ===== GRID ===== */
.wx-wp-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr); /* Elementor selectors override this responsively */
	column-gap: 24px;
	row-gap: 40px;
	max-width: 1200px;
	width: 100%;
}

/* ===== STEP ===== */
.wx-wp-step {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

/* ===== CONNECTOR (horizontal dashed line between circles) ===== */
.wx-wp-grid--connector .wx-wp-step:not(:last-child)::after {
	content: '';
	position: absolute;
	top: 40px; /* roughly center of 80px circle */
	left: calc(50% + 40px);  /* start at right edge of circle (radius=40px) */
	right: calc(-50% + 40px); /* end at left edge of next circle */
	border-top: 1.5px dashed rgba(0, 201, 240, 0.35);
	z-index: 0;
}

/* Adjust top position dynamically with circle size — uses default 80px */
/* If user changes circle size, ::after position calc auto via JS not feasible;
   keep ::after relative to where 80px circle's center is. User customizes
   circle size, the line might be slightly off-center — but that's a CSS limitation.
   To compensate, we use percentage-based vertical positioning via container.
*/

/* ===== CIRCLE WRAP (positions circle + number badge) ===== */
.wx-wp-circle-wrap {
	position: relative;
	z-index: 1; /* above connector line */
	display: inline-block;
	padding-bottom: 14px; /* room for number badge overhanging below */
}

/* ===== CIRCLE ===== */
.wx-wp-circle {
	width: 80px;
	height: 80px;
	border: 1.5px dashed #00c9f0;
	border-radius: 50%;
	background: #080a0e; /* matches dark page bg — masks connector line through it */
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	transition: transform 0.3s ease, border-color 0.3s ease;
}

.wx-wp-step:hover .wx-wp-circle {
	transform: translateY(-3px);
	border-color: #00e8ff;
}

/* ===== ICON ===== */
.wx-wp-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #00c9f0;
}

.wx-wp-icon svg {
	width: 26px;
	height: 26px;
	fill: #00c9f0;
	color: #00c9f0;
	display: block;
}

.wx-wp-icon i {
	font-size: 26px;
	color: #00c9f0;
	line-height: 1;
}

/* ===== NUMBER BADGE (sits at bottom of circle, half overhanging) ===== */
.wx-wp-number {
	position: absolute;
	bottom: -14px;
	left: 50%;
	transform: translateX(-50%);
	width: 28px;
	height: 28px;
	background: #080a0e; /* matches page bg */
	border: 1.5px solid #00c9f0;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Inter', sans-serif;
	font-size: 10px;
	font-weight: 700;
	color: #00c9f0;
	line-height: 1;
	letter-spacing: 0.3px;
	transition: background 0.3s ease, color 0.3s ease;
}

.wx-wp-step:hover .wx-wp-number {
	background: #00c9f0;
	color: #080a0e;
}

/* ===== TITLE ===== */
.wx-wp-title {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: #ffffff;
	line-height: 1.3;
	margin: 32px 0 0 0;
	padding: 0;
}

/* ===== DESCRIPTION ===== */
.wx-wp-desc {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #9aacbd;
	line-height: 1.55;
	margin: 10px auto 0;
	max-width: 220px;
	padding: 0;
}

/* ===== RESPONSIVE: hide connector on mobile (when stacked) ===== */
@media (max-width: 767px) {
	.wx-wp-grid--connector .wx-wp-step::after {
		display: none !important;
	}
}
