.lgi-fl {
	/*
	 * Palette site : #D3BBA6 + blanc uniquement.
	 * Hex en dur — on n’hérite PAS du Primary Elementor
	 * (défaut Elementor = bleu #6EC1E4).
	 */
	--lgi-fl-accent: #d3bba6;
	--lgi-fl-accent-hover: color-mix(in srgb, #d3bba6 82%, #000);
	--lgi-fl-accent-soft: color-mix(in srgb, #d3bba6 28%, #fff);
	--lgi-fl-border: color-mix(in srgb, #d3bba6 35%, #fff);
	--lgi-fl-border-strong: color-mix(in srgb, #d3bba6 55%, #fff);
	--lgi-fl-text: #1a1a1a;
	--lgi-fl-muted: #6b6b6b;
	--lgi-fl-bg: #ffffff;
	--lgi-fl-bg-soft: #ffffff;
	--lgi-fl-radius: 4px;
	--lgi-fl-radius-lg: 8px;
	--lgi-fl-shadow: 0 12px 40px rgba(26, 26, 26, 0.06);

	/* Échelle typo unique */
	--lgi-fl-font: inherit;
	--lgi-fl-fs-label: 14px;
	--lgi-fl-fs-control: 15px;
	--lgi-fl-fs-help: 13px;
	--lgi-fl-fs-step: 13px;
	--lgi-fl-fs-btn: 13px;
	--lgi-fl-lh: 1.45;
	--lgi-fl-control-h: 48px;
	--lgi-fl-label-gap: 8px;
	--lgi-fl-row-gap: 18px;

	width: 100%;
	max-width: 760px;
	margin: 0 auto;
	padding: 0;
	font-family: var(--lgi-fl-font);
	font-size: var(--lgi-fl-fs-control);
	font-weight: 400;
	line-height: var(--lgi-fl-lh);
	color: var(--lgi-fl-text);
	-webkit-font-smoothing: antialiased;
}

.lgi-fl *,
.lgi-fl *::before,
.lgi-fl *::after {
	box-sizing: border-box;
}

.lgi-fl__card {
	background: var(--lgi-fl-bg);
	border: 1px solid var(--lgi-fl-border);
	border-radius: var(--lgi-fl-radius-lg);
	padding: 32px;
	box-shadow: var(--lgi-fl-shadow);
}

/* —— Stepper —— */
.lgi-fl__stepper {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 28px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--lgi-fl-border);
}

.lgi-fl__step {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	flex-shrink: 0;
	gap: 8px;
	max-width: 42%;
}

.lgi-fl__bubble {
	width: 36px;
	height: 36px;
	border: 1.5px solid var(--lgi-fl-accent);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--lgi-fl-bg);
	color: var(--lgi-fl-accent-hover);
	font-family: var(--lgi-fl-font);
	font-size: var(--lgi-fl-fs-label);
	font-weight: 600;
	line-height: 1;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.lgi-fl__step.is-active .lgi-fl__bubble,
.lgi-fl__step.is-done .lgi-fl__bubble {
	background: var(--lgi-fl-accent);
	border-color: var(--lgi-fl-accent);
	color: #fff;
}

.lgi-fl__step.is-done .lgi-fl__bubble {
	background: var(--lgi-fl-accent-hover);
	border-color: var(--lgi-fl-accent-hover);
}

.lgi-fl__step-label {
	font-family: var(--lgi-fl-font);
	font-size: var(--lgi-fl-fs-step);
	font-weight: 400;
	line-height: 1.35;
	color: var(--lgi-fl-muted);
}

.lgi-fl__step.is-active .lgi-fl__step-label {
	color: var(--lgi-fl-text);
	font-weight: 600;
}

.lgi-fl__line {
	flex: 1;
	height: 2px;
	background: var(--lgi-fl-border);
	margin-top: 17px;
	min-width: 24px;
	transition: background 0.25s ease;
}

.lgi-fl__line.is-active {
	background: var(--lgi-fl-accent);
}

/* —— Sections —— */
.lgi-fl__section {
	margin-bottom: 28px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--lgi-fl-border);
}

.lgi-fl__section--last {
	border-bottom: 0;
	padding-bottom: 0;
	margin-bottom: 8px;
}

.lgi-fl__section .lgi-fl__row:last-child {
	margin-bottom: 0;
}

/* —— Rows / fields —— */
.lgi-fl__row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lgi-fl-row-gap);
	margin-bottom: var(--lgi-fl-row-gap);
}

.lgi-fl__field {
	flex: 1 1 140px;
	display: flex;
	flex-direction: column;
	gap: var(--lgi-fl-label-gap);
	min-width: 0;
}

.lgi-fl__field--grow {
	flex: 2.2 1 220px;
}

.lgi-fl__field--full {
	flex: 1 1 100%;
}

/* Labels : une seule taille partout (contre overrides thème) — hors dropzone */
#lgi-fl-root .lgi-fl__field > label:not(.lgi-fl__dropzone) {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--lgi-fl-font) !important;
	font-size: var(--lgi-fl-fs-label) !important;
	font-weight: 500 !important;
	line-height: 1.35 !important;
	color: var(--lgi-fl-text) !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

.lgi-fl__req {
	color: var(--lgi-fl-accent-hover);
	font-weight: 600;
}

/* Contrôles : même police, taille, hauteur */
#lgi-fl-root .lgi-fl__field input[type="text"],
#lgi-fl-root .lgi-fl__field input[type="email"],
#lgi-fl-root .lgi-fl__field input[type="tel"],
#lgi-fl-root .lgi-fl__field input[type="number"],
#lgi-fl-root .lgi-fl__field select,
#lgi-fl-root .lgi-fl__field textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	height: var(--lgi-fl-control-h);
	margin: 0;
	padding: 0 14px;
	border: 1px solid var(--lgi-fl-border-strong);
	border-radius: var(--lgi-fl-radius);
	background: var(--lgi-fl-bg);
	color: var(--lgi-fl-text);
	font-family: var(--lgi-fl-font);
	font-size: var(--lgi-fl-fs-control);
	font-weight: 400;
	line-height: var(--lgi-fl-lh);
	letter-spacing: 0;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	appearance: none;
	-webkit-appearance: none;
	box-sizing: border-box;
}

#lgi-fl-root .lgi-fl__field textarea {
	height: auto;
	min-height: 120px;
	padding: 12px 14px;
	resize: vertical;
}

#lgi-fl-root .lgi-fl__field select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23D3BBA6' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 12px 8px;
	padding-right: 40px;
	cursor: pointer;
}

#lgi-fl-root .lgi-fl__field input::placeholder,
#lgi-fl-root .lgi-fl__field textarea::placeholder {
	color: #9a9a9a;
	font-family: var(--lgi-fl-font);
	font-size: var(--lgi-fl-fs-control);
	font-weight: 400;
	opacity: 1;
}

#lgi-fl-root .lgi-fl__field input:hover,
#lgi-fl-root .lgi-fl__field select:hover,
#lgi-fl-root .lgi-fl__field textarea:hover {
	border-color: var(--lgi-fl-accent);
}

#lgi-fl-root .lgi-fl__field input:focus,
#lgi-fl-root .lgi-fl__field select:focus,
#lgi-fl-root .lgi-fl__field textarea:focus {
	outline: none;
	border-color: var(--lgi-fl-accent-hover);
	box-shadow: 0 0 0 3px rgba(211, 187, 166, 0.28);
}

#lgi-fl-root .lgi-fl__field.is-invalid input,
#lgi-fl-root .lgi-fl__field.is-invalid select,
#lgi-fl-root .lgi-fl__field.is-invalid textarea {
	border-color: #c45c4a;
	box-shadow: 0 0 0 3px rgba(196, 92, 74, 0.12);
}

/* Superficie : largeur moyenne (ni pleine largeur, ni mini) */
#lgi-fl-root .lgi-fl__field--surface {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	flex: 0 1 auto !important;
	width: auto !important;
	max-width: 100% !important;
}

#lgi-fl-root #lgi-fl-surface-wrap,
#lgi-fl-root .lgi-fl__input-suffix {
	display: flex !important;
	flex-direction: row !important;
	align-items: stretch !important;
	width: 220px !important;
	max-width: 100% !important;
	min-width: 160px !important;
	height: var(--lgi-fl-control-h) !important;
	box-sizing: border-box !important;
}

#lgi-fl-root #lgi-fl-surfaceArea,
#lgi-fl-root .lgi-fl__surface-input,
#lgi-fl-root #lgi-fl-surface-wrap > input,
#lgi-fl-root .lgi-fl__input-suffix > input {
	flex: 1 1 0% !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	height: 100% !important;
	border-radius: var(--lgi-fl-radius) 0 0 var(--lgi-fl-radius) !important;
	border-right: 0 !important;
	box-sizing: border-box !important;
}

#lgi-fl-root #lgi-fl-surfaceArea:focus,
#lgi-fl-root .lgi-fl__input-suffix > input:focus {
	position: relative;
	z-index: 1;
}

#lgi-fl-root .lgi-fl__suffix {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 52px !important;
	width: 52px !important;
	min-width: 52px !important;
	max-width: 52px !important;
	padding: 0 !important;
	background: var(--lgi-fl-accent) !important;
	color: #fff !important;
	border-radius: 0 var(--lgi-fl-radius) var(--lgi-fl-radius) 0 !important;
	font-family: var(--lgi-fl-font) !important;
	font-size: var(--lgi-fl-fs-label) !important;
	font-weight: 600 !important;
	line-height: 1 !important;
}

/* Dropzone : colonne centrée, taille stable */
#lgi-fl-root .lgi-fl__field > label.lgi-fl__dropzone,
#lgi-fl-root label.lgi-fl__dropzone {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 8px !important;
	width: 100% !important;
	min-height: 160px !important;
	margin: 0 !important;
	padding: 36px 20px 28px !important;
	border: 1.5px dashed var(--lgi-fl-border-strong) !important;
	border-radius: var(--lgi-fl-radius-lg) !important;
	background: var(--lgi-fl-bg-soft) !important;
	cursor: pointer;
	text-align: center !important;
	font-weight: 400 !important;
	font-size: inherit !important;
	line-height: inherit !important;
	color: inherit !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
	box-sizing: border-box !important;
}

#lgi-fl-root .lgi-fl__dropzone:hover,
#lgi-fl-root .lgi-fl__dropzone.is-dragover {
	border-color: var(--lgi-fl-accent) !important;
	background: rgba(211, 187, 166, 0.1) !important;
	box-shadow: inset 0 0 0 1px rgba(211, 187, 166, 0.35);
}

#lgi-fl-root .lgi-fl__dropzone input[type="file"] {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	opacity: 0 !important;
	cursor: pointer;
	padding: 0 !important;
	border: 0 !important;
	min-height: 0 !important;
}

#lgi-fl-root .lgi-fl__dropzone-icon {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	align-self: center !important;
	margin: 0 auto 2px !important;
	width: 48px !important;
	height: 48px !important;
	border-radius: 50% !important;
	background: var(--lgi-fl-accent-soft) !important;
	color: var(--lgi-fl-accent-hover) !important;
	flex-shrink: 0 !important;
}

#lgi-fl-root .lgi-fl__dropzone-title {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	text-align: center !important;
	font-family: var(--lgi-fl-font);
	font-size: var(--lgi-fl-fs-label);
	font-weight: 600;
	line-height: 1.35;
	color: var(--lgi-fl-text);
}

#lgi-fl-root .lgi-fl__dropzone-hint,
#lgi-fl-root .lgi-fl__help {
	display: block !important;
	width: 100% !important;
	text-align: center !important;
	font-family: var(--lgi-fl-font);
	font-size: var(--lgi-fl-fs-help);
	font-weight: 400;
	line-height: 1.4;
	color: var(--lgi-fl-muted);
	margin: 6px 0 0;
}

#lgi-fl-root .lgi-fl__dropzone .lgi-fl__dropzone-hint {
	margin: 0 !important;
}

#lgi-fl-root .lgi-fl__field .lgi-fl__help {
	text-align: left !important;
}

#lgi-fl-files-list:not(:empty) {
	color: var(--lgi-fl-accent-hover);
	font-weight: 500;
}

/* —— Boutons —— */
.lgi-fl__actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin-top: 28px;
	padding-top: 4px;
	flex-wrap: wrap;
}

.lgi-fl__actions--end {
	justify-content: flex-end;
}

.lgi-fl__btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: var(--lgi-fl-control-h);
	min-width: 148px;
	padding: 0 28px;
	border: 1.5px solid transparent;
	border-radius: var(--lgi-fl-radius);
	font-family: var(--lgi-fl-font);
	font-size: var(--lgi-fl-fs-btn);
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.15s ease;
}

.lgi-fl__btn:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.lgi-fl__btn--primary {
	background: var(--lgi-fl-accent);
	border-color: var(--lgi-fl-accent);
	color: #fff;
}

.lgi-fl__btn--primary:hover:not(:disabled) {
	background: var(--lgi-fl-accent-hover);
	border-color: var(--lgi-fl-accent-hover);
}

.lgi-fl__btn--primary:active:not(:disabled) {
	transform: translateY(1px);
}

.lgi-fl__btn--secondary {
	background: var(--lgi-fl-bg);
	border-color: var(--lgi-fl-accent);
	color: var(--lgi-fl-accent);
}

.lgi-fl__btn--secondary:hover:not(:disabled) {
	background: var(--lgi-fl-accent);
	border-color: var(--lgi-fl-accent);
	color: #fff;
}

/* —— Feedback —— */
.lgi-fl__alert {
	margin: 20px 0 0;
	padding: 14px 16px;
	border-radius: var(--lgi-fl-radius);
	background: #faf0ee;
	border: 1px solid #e8c4bd;
	color: #8a3a2e;
	font-family: var(--lgi-fl-font);
	font-size: var(--lgi-fl-fs-label);
	font-weight: 400;
	line-height: var(--lgi-fl-lh);
}

.lgi-fl__feedback {
	text-align: center;
	padding: 40px 20px 24px;
}

.lgi-fl__feedback.is-success .lgi-fl__feedback-icon::before,
.lgi-fl__feedback.is-error .lgi-fl__feedback-icon::before {
	display: inline-flex;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	align-items: center;
	justify-content: center;
	font-size: 28px;
	font-weight: 500;
	line-height: 1;
}

.lgi-fl__feedback.is-success .lgi-fl__feedback-icon::before {
	content: "✓";
	background: var(--lgi-fl-accent);
	color: #fff;
}

.lgi-fl__feedback.is-error .lgi-fl__feedback-icon::before {
	content: "✕";
	background: #c45c4a;
	color: #fff;
}

.lgi-fl__feedback-title {
	margin: 20px 0 8px;
	font-family: var(--lgi-fl-font);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--lgi-fl-text);
}

.lgi-fl__feedback-text {
	margin: 0 auto;
	max-width: 420px;
	font-family: var(--lgi-fl-font);
	font-size: var(--lgi-fl-fs-control);
	font-weight: 400;
	line-height: var(--lgi-fl-lh);
	color: var(--lgi-fl-muted);
}

/* —— Responsive —— */
@media (max-width: 900px) {
	#lgi-fl-root.lgi-fl {
		max-width: 100%;
	}

	#lgi-fl-root .lgi-fl__card {
		padding: 28px 20px;
	}

	#lgi-fl-root .lgi-fl__field,
	#lgi-fl-root .lgi-fl__field--grow {
		flex: 1 1 calc(50% - var(--lgi-fl-row-gap));
		min-width: 180px;
	}

	#lgi-fl-root .lgi-fl__field--full,
	#lgi-fl-root .lgi-fl__field--surface {
		flex: 1 1 100% !important;
	}
}

@media (max-width: 640px) {
	#lgi-fl-root.lgi-fl {
		--lgi-fl-row-gap: 16px;
		--lgi-fl-control-h: 48px;
		--lgi-fl-fs-control: 16px; /* évite le zoom iOS */
		--lgi-fl-fs-label: 14px;
		--lgi-fl-fs-step: 12px;
	}

	#lgi-fl-root .lgi-fl__card {
		padding: 20px 14px 22px;
		border-radius: var(--lgi-fl-radius-lg);
		box-shadow: 0 6px 20px rgba(26, 26, 26, 0.05);
	}

	#lgi-fl-root .lgi-fl__stepper {
		gap: 8px;
		margin-bottom: 20px;
		padding-bottom: 16px;
	}

	#lgi-fl-root .lgi-fl__step {
		max-width: 46%;
		gap: 6px;
	}

	#lgi-fl-root .lgi-fl__bubble {
		width: 32px;
		height: 32px;
		font-size: 13px;
	}

	#lgi-fl-root .lgi-fl__line {
		margin-top: 15px;
		min-width: 12px;
	}

	#lgi-fl-root .lgi-fl__step-label {
		font-size: var(--lgi-fl-fs-step);
		line-height: 1.3;
		word-break: break-word;
		hyphens: auto;
	}

	#lgi-fl-root .lgi-fl__section {
		margin-bottom: 20px;
		padding-bottom: 20px;
	}

	#lgi-fl-root .lgi-fl__row {
		flex-direction: column;
		gap: var(--lgi-fl-row-gap);
	}

	#lgi-fl-root .lgi-fl__field,
	#lgi-fl-root .lgi-fl__field--grow,
	#lgi-fl-root .lgi-fl__field--full {
		flex: 1 1 100% !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
	}

	#lgi-fl-root .lgi-fl__field--surface {
		align-items: stretch !important;
		width: 100% !important;
	}

	#lgi-fl-root #lgi-fl-surface-wrap,
	#lgi-fl-root .lgi-fl__input-suffix {
		width: 100% !important;
		max-width: 280px !important;
		min-width: 0 !important;
	}

	#lgi-fl-root .lgi-fl__field input[type="text"],
	#lgi-fl-root .lgi-fl__field input[type="email"],
	#lgi-fl-root .lgi-fl__field input[type="tel"],
	#lgi-fl-root .lgi-fl__field input[type="number"],
	#lgi-fl-root .lgi-fl__field select,
	#lgi-fl-root .lgi-fl__field textarea {
		font-size: 16px !important;
	}

	#lgi-fl-root .lgi-fl__field textarea {
		min-height: 110px;
	}

	#lgi-fl-root .lgi-fl__field > label.lgi-fl__dropzone,
	#lgi-fl-root label.lgi-fl__dropzone {
		min-height: 148px !important;
		padding: 28px 16px 24px !important;
		gap: 6px !important;
	}

	#lgi-fl-root .lgi-fl__dropzone-icon {
		width: 44px !important;
		height: 44px !important;
	}

	#lgi-fl-root .lgi-fl__dropzone-title,
	#lgi-fl-root .lgi-fl__dropzone-hint {
		padding: 0 4px;
		word-wrap: break-word;
		overflow-wrap: anywhere;
	}

	#lgi-fl-root .lgi-fl__actions {
		flex-direction: column-reverse;
		align-items: stretch;
		gap: 12px;
		margin-top: 20px;
	}

	#lgi-fl-root .lgi-fl__actions--end {
		justify-content: stretch;
	}

	#lgi-fl-root .lgi-fl__btn {
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
	}

	#lgi-fl-root .lgi-fl__feedback {
		padding: 28px 12px 16px;
	}

	#lgi-fl-root .lgi-fl__feedback-title {
		font-size: 20px;
	}
}

@media (max-width: 400px) {
	#lgi-fl-root .lgi-fl__card {
		padding: 16px 12px 18px;
	}

	#lgi-fl-root .lgi-fl__step-label {
		font-size: 11px;
	}

	#lgi-fl-root #lgi-fl-surface-wrap,
	#lgi-fl-root .lgi-fl__input-suffix {
		max-width: 100% !important;
	}

	#lgi-fl-root .lgi-fl__field > label.lgi-fl__dropzone,
	#lgi-fl-root label.lgi-fl__dropzone {
		padding: 24px 12px 20px !important;
	}
}
