/**
 * Tools Adapter — Étapes / Processus (Process Steps)
 */

.ta-process-steps {
	position: relative;
	width: 100%;
	box-sizing: border-box;
}

/* Grille des étapes */
.ta-process-steps__items {
	display: grid;
	grid-template-columns: repeat(var(--ta-ps-cols, 4), 1fr);
	gap: var(--ta-ps-gap, 32px);
	box-sizing: border-box;
	align-items: start;
	position: relative;
}

/* Étape individuelle */
.ta-process-step {
	position: relative;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
}

/* En-tête : Badge + Ligne de liaison */
.ta-process-step__header {
	position: relative;
	display: flex;
	align-items: center;
	margin-bottom: var(--ta-ps-header-gap, 20px);
	width: 100%;
}

/* Badge (Icône ou Numéro) */
.ta-process-step__badge {
	position: relative;
	z-index: 2;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--ta-ps-badge-size, 60px);
	height: var(--ta-ps-badge-size, 60px);
	background: var(--ta-ps-badge-bg, #7bc81d);
	color: var(--ta-ps-badge-color, #ffffff);
	border-radius: var(--ta-ps-badge-radius, 16px);
	box-shadow: var(--ta-ps-badge-shadow, 0 8px 18px -4px rgba(123, 200, 29, 0.35));
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
				box-shadow 0.3s ease;
	box-sizing: border-box;
}

/* Micro-interaction sur le badge */
.ta-process-steps--hover-zoom .ta-process-step:hover .ta-process-step__badge {
	transform: scale(1.08);
	box-shadow: 0 12px 24px -4px rgba(0, 0, 0, 0.2);
}

/* Rendu de l'icône */
.ta-process-step__badge i,
.ta-process-step__badge svg {
	font-size: var(--ta-ps-icon-size, 26px);
	width: var(--ta-ps-icon-size, 26px);
	height: var(--ta-ps-icon-size, 26px);
	line-height: 1;
	fill: currentColor;
	display: inline-block;
}

/* Rendu du numéro */
.ta-process-step__number {
	font-size: var(--ta-ps-num-size, 20px);
	font-weight: 700;
	line-height: 1;
	color: currentColor;
	letter-spacing: -0.02em;
}

/* Ligne de connexion horizontale par défaut (alignement gauche) */
.ta-process-step__line {
	flex-grow: 1;
	height: 0;
	border: none;
	border-top: var(--ta-ps-line-thickness, 2px) var(--ta-ps-line-style, solid) var(--ta-ps-line-color, #d1d5db);
	background: transparent;
	margin-left: 14px;
	/* Prolonge la ligne dans le gap pour s'arrêter 14px avant le badge suivant */
	margin-right: calc(var(--ta-ps-gap, 32px) * -1 + 14px);
	z-index: 1;
	pointer-events: none;
}

/* Dernière étape : pas de ligne sortante */
.ta-process-step:last-child .ta-process-step__line {
	display: none !important;
}

/* Contenu textuel */
.ta-process-step__content {
	display: flex;
	flex-direction: column;
}

.ta-process-step__title {
	margin: 0 0 10px 0;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--ta-ps-title-color, #0b2545);
	transition: color 0.25s ease;
}

.ta-process-step__title a {
	color: inherit;
	text-decoration: none;
}

.ta-process-step__title a:hover {
	color: var(--ta-ps-badge-bg, #7bc81d);
}

.ta-process-step__description {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--ta-ps-desc-color, #556987);
}

.ta-process-step__description p:last-child {
	margin-bottom: 0;
}

/* Alignement centré sur Bureau & Tablette */
.ta-process-steps--align-center .ta-process-step {
	text-align: center;
	align-items: center;
}

.ta-process-steps--align-center .ta-process-step__header {
	justify-content: center;
	position: relative;
	width: 100%;
}

.ta-process-steps--align-center .ta-process-step__line {
	position: absolute;
	top: 50%;
	/* Démarre à 10px du bord droit du badge centré */
	left: calc(50% + var(--ta-ps-badge-size, 60px) / 2 + 10px);
	/* S'étend pour s'arrêter à 10px avant le bord gauche du badge suivant */
	width: calc(100% + var(--ta-ps-gap, 32px) - var(--ta-ps-badge-size, 60px) - 20px);
	right: auto;
	margin: 0;
	transform: translateY(-50%);
	z-index: 1;
}

.ta-process-steps--align-center .ta-process-step:last-child .ta-process-step__line {
	display: none !important;
}

/* Responsive Tablette (768px - 1024px) */
@media (min-width: 768px) and (max-width: 1024px) {
	.ta-process-steps__items {
		grid-template-columns: repeat(var(--ta-ps-cols-tablet, 2), 1fr);
		gap: var(--ta-ps-gap, 28px);
	}

	/* Masque la ligne qui déborde en fin de ligne si la grille est sur 2 colonnes */
	.ta-process-steps__items[data-cols-tablet="2"] .ta-process-step:nth-child(2n) .ta-process-step__line {
		display: none !important;
	}
}

/* Responsive Mobile (<= 767px) */
@media (max-width: 767px) {
	.ta-process-steps__items {
		grid-template-columns: 1fr !important;
		gap: var(--ta-ps-gap, 28px) !important;
	}

	.ta-process-step {
		display: flex !important;
		flex-direction: row !important;
		align-items: stretch !important;
		gap: 18px !important;
		text-align: left !important;
		position: relative !important;
	}

	.ta-process-step__header {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: flex-start !important;
		flex-shrink: 0 !important;
		width: var(--ta-ps-badge-size, 52px) !important;
		margin-bottom: 0 !important;
		position: relative !important;
		align-self: stretch !important;
	}

	.ta-process-step__badge {
		position: relative !important;
		z-index: 2 !important;
		flex-shrink: 0 !important;
		margin: 0 !important;
	}

	/* Ligne verticale reliant les badges de haut en bas de façon continue */
	.ta-process-step__line {
		display: block !important;
		position: absolute !important;
		top: calc(var(--ta-ps-badge-size, 52px) / 2) !important;
		bottom: calc((var(--ta-ps-gap, 28px) + var(--ta-ps-badge-size, 52px) / 2) * -1) !important;
		left: 50% !important;
		right: auto !important;
		transform: translateX(-50%) !important;
		width: 0 !important;
		height: auto !important;
		margin: 0 !important;
		background: transparent !important;
		border: none !important;
		border-left: var(--ta-ps-line-thickness, 2px) var(--ta-ps-line-style, solid) var(--ta-ps-line-color, #d1d5db) !important;
		z-index: 1 !important;
		pointer-events: none !important;
	}

	.ta-process-step:last-child .ta-process-step__line {
		display: none !important;
	}

	.ta-process-step__content {
		flex: 1 1 auto !important;
		min-width: 0 !important;
		text-align: left !important;
		align-items: flex-start !important;
		padding-top: 4px;
	}

	.ta-process-step__title {
		font-size: 1.05rem;
		text-align: left !important;
	}

	.ta-process-step__description {
		text-align: left !important;
	}
}
