/* GG Form Steps : tagline d'étape + barre de progression segmentée */

.gg-steps {
	--gg-accent: var(--e-global-color-primary, currentColor);
	--gg-track: color-mix(in srgb, currentColor 12%, transparent);
	--gg-seg-height: 5px;
	--gg-seg-gap: 8px;
	width: 100%;
	margin-bottom: 24px;
}

.gg-steps__tagline {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	opacity: .6;
}

.gg-steps__bar {
	display: flex;
	gap: var(--gg-seg-gap);
}

.gg-steps__seg {
	flex: 1;
	height: var(--gg-seg-height);
	border-radius: 99px;
	background: var(--gg-track);
	overflow: hidden;
}

/* Double classe : passe devant le style h2 du kit Elementor (.elementor-kit-N h2) */
.gg-steps .gg-steps__title {
	margin: 24px 0 0;
	font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);
	line-height: 1.2;
}

/* Avec un titre, moins d'espace avant les champs */
.gg-steps:has(.gg-steps__title) {
	margin-bottom: 8px;
}

.gg-steps__seg i {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--gg-accent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .5s cubic-bezier(.65, 0, .35, 1);
}

.gg-steps__seg.is-done i,
.gg-steps__seg.is-current i {
	transform: scaleX(1);
}

.gg-steps__tagline.is-changing {
	animation: gg-fade .35s ease;
}

@keyframes gg-fade {
	from { opacity: 0; transform: translateY(4px); }
}

/* Masque l'indicateur natif d'Elementor */
.gg-multistep .e-form__indicators {
	display: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.gg-steps__seg i { transition: none; }
	.gg-steps__tagline.is-changing { animation: none; }
}

/* Formulaire masqué tant que les étapes ne sont pas en place (data-gg-steps posé par form-steps.js).
   Sécurité : affiché de toute façon après 3 s si le JS ne s'est pas initialisé. Pas dans l'éditeur. */
.gg-multistep form.elementor-form,
form.elementor-form:has(.gg-multistep) {
	transition: opacity .2s ease;
}

body:not(.elementor-editor-active) .gg-multistep form.elementor-form:not([data-gg-steps]),
body:not(.elementor-editor-active) form.elementor-form:has(.gg-multistep):not([data-gg-steps]) {
	opacity: 0;
	pointer-events: none;
	animation: gg-steps-reveal 0s 3s forwards;
}

@keyframes gg-steps-reveal {
	to { opacity: 1; pointer-events: auto; }
}

/* ---Champs radio et cases à cocher--- */

/* Cases à cocher et boutons radio "inline" alignés en colonnes */
.gg-multistep .elementor-field-subgroup.elementor-subgroup-inline {
	display: grid;
	grid-template-columns: repeat(var(--gg-option-cols, 3), minmax(0, 1fr));
	gap: 10px 24px;
}

.gg-multistep .elementor-subgroup-inline .elementor-field-option {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0;
	padding: 0;
}

.gg-multistep .elementor-subgroup-inline .elementor-field-option input {
	flex: none;
	margin: .2em 0 0;
}

.gg-multistep .elementor-subgroup-inline .elementor-field-option label {
	line-height: 1.4;
}

/* Tablette : 2 colonnes, mobile : 1 colonne */
@media (max-width: 1024px) {
	.gg-multistep { --gg-option-cols: 2; }
}
@media (max-width: 767px) {
	.gg-multistep { --gg-option-cols: 1; }
}

/* ---FIN FORM GG MULTISTEPS--- */