/* =============================================================================================
   Landing Nexcade : styles fins (Elementor FREE).
   - Rattachés aux classes nx-* posées dans Elementor (Avancé > Classes CSS), voir docs/CLASSES-CSS.md.
   - Couleurs : Global Colors du kit (var(--e-global-color-<id>)), avec repli sur la valeur Figma.
   - Typo des textes éditables : Global Fonts du kit (réglées dans Elementor). Ici, seulement ce
     qu'Elementor ne sait pas faire (effets, décors, grilles, formulaire, petites étiquettes).
   - Points d'arrêt : mobile ≤ 767 px, tablette 768–1024 px, desktop ≥ 1025 px (référence 1512 et 2191).
   ============================================================================================= */

:root {
	--nx-navy: var(--e-global-color-primary, #0D2535);
	--nx-sauge: var(--e-global-color-secondary, #A2CCB9);
	--nx-texte: var(--e-global-color-text, #4A7A70);
	--nx-teal: var(--e-global-color-accent, #3F6367);
	--nx-profond: var(--e-global-color-nxprofond, #172739);
	--nx-clair: var(--e-global-color-nxclair, #F2FAF8);
	--nx-brume: var(--e-global-color-nxbrume, #BAD5CA);
	--nx-menthe: var(--e-global-color-nxmenthe, #C8E8E0);
	--nx-bordure: var(--e-global-color-nxbordure, #E3F5F0);
	--nx-texte-hero: var(--e-global-color-nxtextehero, rgba(63, 99, 103, .5));
	--nx-frise: var(--e-global-color-nxfrise, #1A3D50);
	--nx-frise-texte: var(--e-global-color-nxfrisetexte, #628392);
	--nx-signal-1: var(--e-global-color-nxsignal1, #86ACA0);
	--nx-signal-2: var(--e-global-color-nxsignal2, #5D7C7A);
	--nx-mention: var(--e-global-color-nxmention, #0D2736);
	--nx-blanc: var(--e-global-color-nxblanc, #FFFFFF);
	--nx-erreur: #B42318;

	--nx-degrade-sombre: linear-gradient(0deg, var(--nx-profond) 0%, var(--nx-teal) 86.403%);
	--nx-img: url("../img/");
	--nx-gouttiere: 24px;
	--nx-header-h: 72px;
}
@media (max-width: 767px) {
	:root { --nx-gouttiere: 16px; --nx-header-h: 60px; }
}

/* ---------------------------------------------------------------------------------------------
   Base
   --------------------------------------------------------------------------------------------- */

html:has(body.nx-landing) { scroll-padding-top: calc(var(--nx-header-h) + 16px); }

body.nx-landing {
	margin: 0;
	background: var(--nx-blanc);
	color: var(--nx-navy);
	font-family: "Inter", system-ui, sans-serif;
	font-optical-sizing: none; /* Inter « texte » de Figma = axe opsz à 14 */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
.nx-landing > .elementor { overflow-x: clip; }

.nx-landing .elementor-widget-text-editor p,
.nx-landing .elementor-widget-text-editor blockquote,
.nx-landing .elementor-heading-title { margin: 0; }
.nx-landing .elementor-widget-text-editor blockquote { padding: 0; border: 0; font-style: normal; }
.nx-landing img { display: block; max-width: 100%; height: auto; }
/* Elementor borne chaque widget à max-width:100% (spécificité élevée) : on passe par --nx-mw. */
.nx-landing .elementor .e-con > .elementor-widget[class*="nx-"] { max-width: var(--nx-mw, 100%); }
.nx-landing .nx-picture { display: contents; }
.nx-landing a { color: inherit; }
.nx-landing :focus-visible { outline: 2px solid var(--nx-teal); outline-offset: 3px; border-radius: 4px; }

.nx-accent { color: var(--nx-sauge); }
.nx-mobile-only, .nx-br-mobile { display: none; }
@media (max-width: 767px) {
	.nx-mobile-only { display: inline; }
	.nx-br-mobile { display: initial; }
	.nx-br-desktop, .nx-hide-mobile { display: none; }
}
@media (max-width: 374px) {
	.nx-br-mobile { display: none; }
}

/* Conteneur centré : contenu de 1280 px max + gouttière (la gouttière n'agit que sous 1328 px) */
.e-con.nx-wrap {
	--padding-left: var(--nx-gouttiere);
	--padding-right: var(--nx-gouttiere);
	max-width: calc(1280px + 2 * var(--nx-gouttiere));
	margin-inline: auto;
}

/* ---------------------------------------------------------------------------------------------
   Boutons (widget Bouton d'Elementor + bouton du formulaire)
   --------------------------------------------------------------------------------------------- */

.nx-btn .elementor-button,
.nx-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	border: 0;
	border-radius: 16px;
	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;
	transition: filter .2s, transform .2s, background-color .2s;
	min-height: 36px;
}
.nx-btn .elementor-button:hover { filter: brightness(1.04); }
.nx-btn .elementor-button:active { transform: translateY(1px); }
.nx-btn .elementor-button-content-wrapper { gap: 12px; align-items: center; }

/* Sauge : bouton de la nav, « Démo », retour accueil */
.nx-btn--nav .elementor-button,
.nx-btn--demo .elementor-button,
.nx-btn--menu .elementor-button,
.nx-btn--primaire .elementor-button {
	background: var(--nx-sauge);
	color: var(--nx-navy);
}
.nx-btn--nav .elementor-button { padding: 8px 20px; border-radius: 12px; }
.nx-btn--demo .elementor-button { padding: 8px 14px; border-radius: 10px; min-height: 30px; }
.nx-btn--primaire .elementor-button,
.nx-btn--menu .elementor-button { padding: 8px 32px; min-height: 44px; filter: drop-shadow(0 25px 25px rgba(0, 200, 150, .25)); }

/* Sombre : boutons des bandeaux CTA, avec flèche */
.nx-btn--sombre .elementor-button {
	background: var(--nx-degrade-sombre);
	color: var(--nx-clair);
	padding: 16px 40px;
}
.nx-btn--sombre .elementor-button-text::after,
.nx-btn--primaire .elementor-button-text::after {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	margin-left: 12px;
	vertical-align: -3px;
	background: currentColor;
	-webkit-mask: url("../img/nx-fleche-bandeau.svg") center / contain no-repeat;
	mask: url("../img/nx-fleche-bandeau.svg") center / contain no-repeat;
	filter: none;
}
.nx-btn--primaire .elementor-button-text::after { width: 16px; height: 16px; }

/* ---------------------------------------------------------------------------------------------
   En-tête (fixe) + menu mobile
   --------------------------------------------------------------------------------------------- */

.e-con.nx-header {
	--position: fixed;
	--z-index: 50;
	--padding-top: 16px;
	--padding-left: var(--nx-gouttiere);
	--padding-right: var(--nx-gouttiere);
	top: 0;
	left: 0;
	right: 0;
	pointer-events: none;
}
.admin-bar .e-con.nx-header { top: 32px; }
.e-con.nx-header > * { pointer-events: auto; }

.e-con.nx-header__bar {
	--flex-direction: row;
	--justify-content: space-between;
	--align-items: center;
	--padding-left: 24px;
	--padding-right: 24px;
	width: 100%;
	max-width: 1280px;
	height: 56px;
	margin-inline: auto;
	border-radius: 16px;
	border: 1px solid rgba(255, 255, 255, .6);
	background: rgba(255, 255, 255, .8);
	-webkit-backdrop-filter: blur(24px);
	backdrop-filter: blur(24px);
	box-shadow: 0 10px 15px rgba(0, 0, 0, .05), 0 4px 6px rgba(0, 0, 0, .05);
}
.nx-header__logo { flex: none; }
.e-con.nx-header__nav { width: auto; }
.nx-landing .nx-header__logo a img[src] { width: 148.5px; max-width: none; height: 22.354px; }
.nx-header__logo a { display: block; }

.nx-landing .elementor-widget.nx-header__links .elementor-icon-list-items { display: flex; gap: 28px; margin: 0; padding: 0; list-style: none; }
.nx-landing .elementor-widget.nx-header__links .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.nx-header__links .elementor-icon-list-item::after { display: none !important; }
.nx-header__links a { color: var(--nx-texte); text-decoration: none; display: inline-block; padding-block: 12px; margin-block: -12px; }
.nx-header__links a:hover { color: var(--nx-navy); }
.nx-header__links .elementor-icon-list-text { color: inherit; }

.e-con.nx-header__actions { --flex-direction: row; --align-items: center; --gap: 12px; --row-gap: 12px; --column-gap: 12px; width: auto; }

.nx-burger {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin: -4px;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--nx-navy);
	cursor: pointer;
}
.nx-burger__barres {
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("../img/nx-burger.svg") center / contain no-repeat;
	mask: url("../img/nx-burger.svg") center / contain no-repeat;
}
.is-menu-open .nx-burger__barres {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 5l10 10M15 5 5 15' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 5l10 10M15 5 5 15' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.e-con.nx-menu { display: none; }

@media (max-width: 767px) {
	.e-con.nx-header {
		--padding-top: 0;
		--padding-left: 0;
		--padding-right: 0;
	}
	.e-con.nx-header__bar {
		--padding-left: 16px;
		--padding-right: 16px;
		height: 60px;
		max-width: none;
		border: 0;
		border-bottom: 1px solid rgba(217, 217, 217, .5);
		border-radius: 0;
		background: rgba(255, 255, 255, .9);
		box-shadow: none;
		-webkit-backdrop-filter: blur(12px);
		backdrop-filter: blur(12px);
	}
	.nx-btn--demo .elementor-button { min-height: 30px; }
	/* Menu ouvert (non maquetté) : panneau blanc sous l'en-tête, dans la charte. */
	.is-menu-open .e-con.nx-menu {
		display: flex;
		--gap: 16px; --row-gap: 16px;
		--padding-top: 8px; --padding-bottom: 20px; --padding-left: 16px; --padding-right: 16px;
		background: rgba(255, 255, 255, .97);
		border-bottom: 1px solid rgba(217, 217, 217, .5);
		box-shadow: 0 16px 24px rgba(13, 37, 53, .08);
		-webkit-backdrop-filter: blur(12px);
		backdrop-filter: blur(12px);
	}
	.nx-menu__links .elementor-icon-list-items { margin: 0; padding: 0; list-style: none; }
	.nx-menu__links .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; border-bottom: 1px solid var(--nx-bordure); }
	.nx-menu__links a {
		display: flex;
		align-items: center;
		min-height: 48px;
		color: var(--nx-navy);
		font: 700 17px/1.2 "Raleway", sans-serif;
		text-decoration: none;
	}
	.nx-btn--menu .elementor-button { width: 100%; }
}

/* ---------------------------------------------------------------------------------------------
   Hero
   --------------------------------------------------------------------------------------------- */

.e-con.nx-hero {
	--padding-top: 224px;
	--padding-bottom: 0px;
	--overflow: hidden;
	min-height: 1142px;
	background:
		url("../img/nx-ellipse-droite.svg") calc(50% + 1115px) -521.68px / 982.36px 982.36px no-repeat,
		url("../img/nx-ellipse-gauche.svg") calc(50% - 273.5px) 12.32px / 1453.36px 1076.36px no-repeat,
		url("../img/nx-grille-hero.svg") calc(50% + .5px) -4px / 2744px 1372px no-repeat,
		linear-gradient(180deg, #FFFFFF 59.98%, var(--nx-brume) 97.94%);
}
.e-con.nx-hero::after {
	content: "";
	position: absolute;
	z-index: 3;
	left: 50%;
	bottom: 0;
	width: max(100%, 2191px);
	height: 121.72px;
	transform: translateX(-50%);
	background: url("../img/nx-vague-hero.svg") center bottom / 100% 100% no-repeat;
	pointer-events: none;
}
.e-con.nx-hero__inner, .e-con.nx-hero__content { --position: static; }
.e-con.nx-hero__inner { width: 100%; }
@media (min-width: 768px) { .e-con.nx-hero__inner, .e-con.nx-merci__inner { --padding-left: calc(var(--nx-gouttiere) + 24px); --padding-right: calc(var(--nx-gouttiere) + 24px); } }
.e-con.nx-hero__content { width: 584px; max-width: 100%; }
.nx-hero__content > .elementor-element:not(.nx-hero__visual) { position: relative; z-index: 4; }

.nx-hero__titre { width: 697px; --nx-mw: none; }
.nx-hero__titre .elementor-heading-title { white-space: nowrap; }
.nx-hero__lead { --nx-pt: 36px; padding-top: var(--nx-pt); --nx-mw: 478px; }
.e-con.nx-hero__form { padding-top: 48px; width: 482px; max-width: 100%; position: relative; z-index: 4; }
.nx-hero__preuve {
	/* Maquette : ligne de 50 px à 22 px du bouton, texte centré verticalement. */
	display: flex;
	align-items: center;
	height: 50px;
	margin-top: 22px;
	color: var(--nx-texte-hero);
	font: 400 14px/20px "Inter", sans-serif;
}
.nx-hero__preuve strong { font-weight: 600; }

/* Visuel : coordonnées Figma ramenées au centre de la page (x − 1095,5) */
.e-con.nx-hero__visual {
	--position: absolute;
	--z-index: 2;
	left: 50%;
	top: 0;
	width: 1000px; /* origine = centre de la page */
	height: 100%;
	pointer-events: none;
}
.nx-hero__visual > .elementor-element { position: absolute; }
.nx-hero__photo { left: -60.5px; top: 278px; width: 870px; }
.nx-hero__photo img { width: 870px; height: auto; }
.nx-badge {
	width: max-content;
	white-space: nowrap;
	transform-origin: 0 0;
}
.nx-badge .elementor-heading-title {
	display: block;
	padding: 8px 20px;
	border-radius: 50px;
	background: linear-gradient(90deg, var(--nx-signal-1), var(--nx-signal-2));
	color: var(--nx-blanc);
}
.nx-badge--levee { left: 473.5px; top: 340px; }
.nx-badge--dsi { left: 534.5px; top: 477px; }
.nx-badge--filiale { left: 27.5px; top: 720px; }

.nx-metrics {
	left: 95.5px;
	top: 529px;
	width: 137.667px;
	padding: 9.178px;
	border: .574px solid #E2E8F0;
	border-radius: 9.178px;
	background: #FFFFFF;
	font-family: "Inter", sans-serif;
	transform-origin: 0 0;
}
.nx-metrics p { margin: 0; line-height: 8px; }
.nx-metrics__label { font-size: 6.31px; font-weight: 700; text-transform: uppercase; color: #64748B; }
.nx-metrics__label--sep { margin-top: 6.883px !important; padding-top: 6.31px; border-top: .574px solid #E2E8F0; }
.nx-metrics p.nx-metrics__valeur { margin-top: 2.294px !important; font-size: 12.619px; line-height: 15px; font-weight: 700; color: #1E293B; }
.nx-metrics__valeur::after {
	content: "";
	display: inline-block;
	width: 9.178px;
	height: 9.178px;
	margin-left: 3.442px;
	background: url("../img/nx-fleche-carte.svg") center / contain no-repeat;
}
.nx-metrics__sous { margin-top: 2.294px !important; font-size: 6.31px; color: #64748B; }

/* Laptop (14") : seul écart de la maquette 1512 */
@media (min-width: 1025px) and (max-width: 1599px) {
	.nx-badge--dsi { left: 526px; }
}

/* ---------------------------------------------------------------------------------------------
   Formulaire (markup du shortcode [nxl_lead_form], contrat dans docs/ARCHITECTURE.md)
   --------------------------------------------------------------------------------------------- */

.nx-form, .nx-form form { margin: 0; }
.nx-form p { margin: 0; }
.nx-form br { display: none; }
.nx-form .wpcf7-form-control-wrap { display: block; position: relative; }
.nx-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.nx-field--your-message { grid-column: 1 / -1; }
.nx-form .nx-input {
	box-sizing: border-box;
	display: block;
	width: 100%;
	height: 53px;
	margin: 0;
	padding: 13.617px 15.814px 13.837px;
	border: .879px solid var(--nx-texte-hero);
	border-radius: 10.543px;
	background: #FFFFFF;
	color: var(--nx-navy);
	font: 500 15.5px/23.25px "Inter", sans-serif;
	box-shadow: none;
	transition: border-color .2s, box-shadow .2s;
	appearance: none;
}
.nx-form .nx-input::placeholder { color: var(--nx-texte-hero); opacity: 1; }
.nx-form .nx-input:hover { border-color: var(--nx-teal); }
.nx-form .nx-input:focus { outline: none; border-color: var(--nx-teal); box-shadow: 0 0 0 3px rgba(162, 204, 185, .55); }
.nx-form .nx-input--textarea { min-height: 53px; resize: vertical; overflow: auto; }
.nx-form .nx-input[aria-invalid="true"] { border-color: var(--nx-erreur); }

.nx-form__submit {
	position: relative;
	width: 100%;
	height: 40px;
	margin-top: 15px;
	padding: 8px 32px;
	background: var(--nx-sauge);
	color: var(--nx-navy);
	font: 700 16px/24px "Raleway", sans-serif;
	filter: drop-shadow(0 25px 25px rgba(0, 200, 150, .25));
}
.nx-form__submit:hover { filter: drop-shadow(0 25px 25px rgba(0, 200, 150, .25)) brightness(1.04); }
.nx-form__submit:disabled { cursor: progress; opacity: .8; }
.nx-form__arrow { flex: none; width: 16px; height: 16px; color: var(--nx-navy); }
.nx-form .wpcf7-spinner { position: absolute; right: 12px; top: 50%; margin: -12px 0 0; }
.nx-form .wpcf7-submit + .wpcf7-spinner, .nx-form__form > .wpcf7-spinner { position: absolute; }

/* Messages Contact Form 7. Le message d'erreur d'un champ est en position absolue sous le champ :
   sa disparition (au blur) ne fait plus bouger le bouton (sinon le clic d'envoi est perdu).
   La place est réservée dès qu'une erreur s'est produite (form.invalid, posé par CF7 à l'envoi). */
.nx-field { position: relative; }
.nx-form .wpcf7-not-valid-tip {
	position: absolute;
	left: 2px;
	top: calc(100% + 2px);
	color: var(--nx-erreur);
	font: 500 11px/14px "Inter", sans-serif;
	white-space: nowrap;
}
.nx-form form.invalid .nx-form__grid { row-gap: 24px; }
.nx-form form.invalid .nx-form__submit { margin-top: 30px; }
.nx-form .wpcf7-response-output {
	margin: 12px 0 0 !important;
	padding: 10px 14px !important;
	border: 1px solid var(--nx-bordure) !important;
	border-radius: 10.543px;
	background: #FFFFFF;
	color: var(--nx-navy);
	font: 500 14px/20px "Inter", sans-serif;
}
.nx-form form.invalid .wpcf7-response-output,
.nx-form form.unaccepted .wpcf7-response-output,
.nx-form form.payment-required .wpcf7-response-output { border-color: #F3C4BF !important; background: #FEF3F2; color: var(--nx-erreur); }
.nx-form form.failed .wpcf7-response-output,
.nx-form form.aborted .wpcf7-response-output,
.nx-form form.spam .wpcf7-response-output { border-color: #F3C4BF !important; background: #FEF3F2; color: var(--nx-erreur); }
.nx-form form.sent .wpcf7-response-output { border-color: var(--nx-sauge) !important; background: var(--nx-clair); color: var(--nx-navy); }

/* ---------------------------------------------------------------------------------------------
   Timing (« Le problème »)
   --------------------------------------------------------------------------------------------- */

.e-con.nx-timing {
	--overflow: clip;
	--padding-bottom: 39px;
	background: var(--nx-clair);
}
.e-con.nx-timing::before {
	content: "";
	position: absolute;
	left: calc(50% + 760.5px);
	top: 47px;
	width: 863px;
	height: 703px;
	opacity: .42;
	background: url("../img/nx-grille-cercle.svg") 0 0 / 100% 100% no-repeat;
	-webkit-mask: radial-gradient(circle at 431.5px 351.5px, #000 215px, rgba(0, 0, 0, .3) 308px, transparent 382px);
	mask: radial-gradient(circle at 431.5px 351.5px, #000 215px, rgba(0, 0, 0, .3) 308px, transparent 382px);
	pointer-events: none;
}
.e-con.nx-timing__inner { --gap: 0px; position: relative; z-index: 1; }
.nx-timing__titre { padding-top: 16px; --nx-mw: 768px; }
.e-con.nx-timing__row {
	--flex-direction: row;
	--column-gap: 23px;
	--gap: 0 23px;
	--align-items: stretch;
	margin-top: 32px;
}
.e-con.nx-timing__col { --justify-content: space-between; width: 735px; flex: none; }
.nx-timing__lead { --nx-mw: 638px; }
.nx-timing__photo { width: 522px; height: 320px; flex: none; border-radius: 24px; overflow: hidden; background: var(--nx-navy); }
.nx-timing__photo img { width: 100%; height: 100%; object-fit: cover; opacity: .95; }

/* Frise « Avec Nexcade » */
.e-con.nx-frise { --gap: 0px; }
.nx-frise__onglet {
	align-self: flex-start;
	width: 176.285px;
	padding: 17.31px;
	border: 1.082px solid rgba(255, 255, 255, .2);
	border-bottom: 0;
	border-radius: 12.983px 12.983px 0 0;
	background: linear-gradient(0deg, var(--nx-teal) 13.597%, var(--nx-profond) 100%);
	-webkit-backdrop-filter: blur(8.655px);
	backdrop-filter: blur(8.655px);
}
.nx-frise__onglet .elementor-heading-title {
	color: var(--nx-sauge);
	font: 700 17.31px/17.31px "JetBrains Mono", monospace;
	letter-spacing: 1.298px;
	text-transform: uppercase;
	white-space: nowrap;
}
.e-con.nx-frise__panneau {
	--flex-direction: row;
	--justify-content: flex-start;
	--gap: 0px;
	position: relative;
	padding: 18.457px;
	border: 1.154px solid rgba(255, 255, 255, .2);
	border-radius: 0 13.843px 13.843px 13.843px;
	background: linear-gradient(0deg, var(--nx-profond) 0%, var(--nx-teal) 86.403%);
	-webkit-backdrop-filter: blur(9.229px);
	backdrop-filter: blur(9.229px);
}
/* Trait de progression : 378,125 px actifs sur 619,065 */
.e-con.nx-frise__panneau::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 32.32px;
	width: 619.065px;
	height: 1.154px;
	transform: translateX(-50%);
	background: linear-gradient(90deg, var(--nx-sauge) 0 378.125px, var(--nx-frise) 378.125px 100%);
}
.e-con.nx-frise__etape {
	--align-items: center;
	--gap: 9.229px;
	--row-gap: 9.229px;
	position: relative;
	z-index: 1;
	width: 172.131px;
	flex: none;
	text-align: center;
}
.e-con.nx-frise__etape::before {
	/* Elementor réserve ::before des conteneurs au voile de fond (position absolue) : on le neutralise. */
	content: "";
	position: relative;
	inset: auto;
	opacity: 1;
	mix-blend-mode: normal;
	transition: none;
	flex: none;
	box-sizing: border-box;
	width: 27.668px;
	height: 27.704px;
	border: 2.307px solid var(--nx-navy) !important;
	border-radius: 999px !important;
	background: var(--nx-frise);
}
.e-con.nx-frise__etape--active::before {
	background: var(--nx-sauge);
	box-shadow: 0 11.536px 17.304px rgba(0, 200, 150, .3), 0 4.614px 6.922px rgba(0, 200, 150, .3);
}
.nx-frise__libelle { --nx-mw: 103px; }
.nx-frise__libelle .elementor-heading-title {
	color: var(--nx-sauge);
	font: 600 11.536px/14.42px "Plus Jakarta Sans", sans-serif;
}
.nx-frise__etape--active .nx-frise__libelle .elementor-heading-title { color: #FFFFFF; }
.nx-frise__sous .elementor-heading-title {
	color: var(--nx-frise-texte);
	font: 400 10.382px/15.573px "JetBrains Mono", monospace;
	white-space: nowrap;
}
.nx-frise__etape--active .nx-frise__sous .elementor-heading-title { color: var(--nx-sauge); }

/* ---------------------------------------------------------------------------------------------
   Bandeaux CTA
   --------------------------------------------------------------------------------------------- */

.nx-timing .e-con.nx-bandeau { margin-top: 97px; } /* 80 + 17 d'écart de colonne (maquette) */
.e-con.nx-bandeau {
	--flex-direction: row;
	--justify-content: space-between;
	--align-items: center;
	--padding-top: 24px;
	--padding-bottom: 24px;
	--padding-left: 40px;
	--padding-right: 40px;
	--gap: 0 24px;
	--column-gap: 24px;
	margin-top: 80px;
	border-radius: 24px;
	background: var(--nx-sauge);
	overflow: hidden;
}
.e-con.nx-bandeau__textes { --gap: 0px; width: auto; flex: 1 1 auto; min-width: 0; }
.nx-bandeau__titre .elementor-heading-title { white-space: nowrap; }
.nx-bandeau__desc { padding-top: 12px; }
.e-con.nx-bandeau__cta { --align-items: center; --gap: 12px; --row-gap: 12px; width: auto; flex: none; }
.nx-bandeau__mention { color: var(--nx-mention); font: 400 12px/16px "Inter", sans-serif; white-space: nowrap; text-align: center; }

/* ---------------------------------------------------------------------------------------------
   Solution
   --------------------------------------------------------------------------------------------- */

.e-con.nx-solution {
	--padding-top: 45px;
	--padding-bottom: 45px;
	background: var(--nx-clair);
}
/* Halo vert très léger (maquette : cercle de 288 px, 5 %, flou 64) */
.e-con.nx-solution::after {
	content: "";
	position: absolute;
	z-index: 0;
	left: calc(50% - 1175.5px);
	top: 253.9px;
	width: 288px;
	height: 288px;
	border-radius: 50%;
	background: rgba(0, 200, 150, .05);
	filter: blur(64px);
	pointer-events: none;
}
/* Grille circulaire « Group 5202 », à cheval sur Timing et Solution, à gauche */
.e-con.nx-solution::before {
	content: "";
	position: absolute;
	z-index: 0;
	left: calc(50% - 1503.5px);
	top: -114px;
	width: 863px;
	height: 703px;
	opacity: .42;
	background: url("../img/nx-grille-cercle.svg") 0 0 / 100% 100% no-repeat;
	-webkit-mask: radial-gradient(circle at 431.5px 351.5px, #000 215px, rgba(0, 0, 0, .3) 308px, transparent 382px);
	mask: radial-gradient(circle at 431.5px 351.5px, #000 215px, rgba(0, 0, 0, .3) 308px, transparent 382px);
	pointer-events: none;
}
.e-con.nx-solution__inner {
	--flex-direction: row;
	--justify-content: space-between;
	--align-items: flex-end;
	position: relative;
	z-index: 1;
}
.e-con.nx-solution__col { width: 600px; flex: none; }
.nx-solution__titre { padding-top: 16px; }
.nx-solution__lead { padding-top: 32px; --nx-mw: 579px; }

.e-con.nx-citation {
	--justify-content: flex-end;
	--padding-top: 25px;
	--padding-bottom: 25px;
	--padding-left: 28px;
	--padding-right: 28px;
	margin-top: 32px;
	height: 224px;
	border-radius: 24px;
	overflow: hidden;
	background: var(--nx-menthe);
	isolation: isolate;
}
.nx-citation__photo { position: absolute !important; inset: 0; z-index: -2; }
.nx-citation__photo img, .nx-citation__photo picture { width: 100%; height: 100%; object-fit: cover; }
.e-con.nx-citation::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgba(13, 37, 53, .7), rgba(13, 37, 53, 0));
}
.nx-citation__texte { --nx-mw: 337px; padding-bottom: 24px; color: #FFFFFF; } /* 24 px : paragraphe d'auteur vide de la maquette */

.e-con.nx-etapes { --gap: 17px; --row-gap: 17px; width: 608px; flex: none; }
.e-con.nx-etape {
	--flex-direction: row;
	--align-items: flex-start;
	--gap: 16px;
	--column-gap: 16px;
	--padding-top: 16px;
	--padding-bottom: 16px;
	--padding-left: 16px;
	--padding-right: 16px;
	background: #FFFFFF;
	border: 1px solid var(--nx-bordure);
	border-radius: 16px;
}
/* Trait de liaison : dans la maquette, seul celui sous la 1re étape est visible (les autres
   passent sous les cartes suivantes). */
.e-con.nx-etape:first-child::after {
	content: "";
	position: absolute;
	left: 28px;
	top: calc(100% + 3.2px);
	width: 1px;
	height: 12px;
	background: var(--nx-menthe);
}
.nx-etape__icone {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	flex: none;
	border-radius: 12px;
	background: var(--nx-bordure);
}
.nx-etape__icone img { width: 22px; height: 22px; }
.e-con.nx-etape__textes { --gap: 0px; width: auto; flex: 1 1 auto; }
.nx-etape__titre .elementor-heading-title {
	font: 700 18px/20px "Inter Display", "Inter", sans-serif;
}
/* Numéro façon liste ordonnée de la maquette : marqueur dans un retrait de 27 px. */
.nx-etape__num { display: inline-block; box-sizing: border-box; width: 23px; padding-left: 6.2px; }
.nx-etape__desc { font: 400 16px/20px "Inter", sans-serif; }
.nx-etape:nth-child(1) .nx-etape__desc,
.nx-etape:nth-child(4) .nx-etape__desc { line-height: 29.25px; }

/* ---------------------------------------------------------------------------------------------
   Produit (avec la vague de transition Solution → Produit en haut)
   --------------------------------------------------------------------------------------------- */

.e-con.nx-produit {
	--padding-top: 121.72px;
	--padding-bottom: 10px;
	--overflow: hidden;
	background:
		url("../img/nx-vague-produit-haut.svg") center top / max(100%, 2191px) 121.72px no-repeat,
		linear-gradient(0deg, var(--nx-profond) 0%, var(--nx-teal) 98.185%) 0 121.72px / 100% calc(100% - 121.72px) no-repeat;
	min-height: calc(921px + 121.72px);
}
.e-con.nx-produit::after {
	content: "";
	position: absolute;
	z-index: 2;
	left: 50%;
	bottom: 0;
	width: max(100%, 2191px);
	height: 91.29px;
	transform: translateX(-50%);
	background: url("../img/nx-vague-produit-bas.svg") center bottom / 100% 100% no-repeat;
	pointer-events: none;
}
.e-con.nx-produit__inner { --align-items: center; text-align: center; }
.nx-landing .elementor-widget.nx-produit__titre { margin-bottom: -7.8px; } /* bloc de 93 px pour 2 lignes de 50,4 (maquette) */
.nx-produit__lead { padding-top: 16px; --nx-mw: 735px; }
.nx-produit__mockup {
	width: 100%;
	margin-top: 38px;
	aspect-ratio: 1280 / 733;
	border-radius: 19px;
	overflow: hidden;
	background: #FFFFFF;
}
.nx-produit__mockup img { width: 100%; height: auto; }

/* ---------------------------------------------------------------------------------------------
   Bénéfices
   --------------------------------------------------------------------------------------------- */

.e-con.nx-benefices {
	--padding-top: 45px;
	--padding-bottom: 112px;
	background: var(--nx-clair);
}
.e-con.nx-benefices__row { --flex-direction: row; --align-items: flex-start; --gap: 0 10px; --column-gap: 10px; }
.e-con.nx-benefices__col { width: 616px; flex: none; }
.nx-benefices__titre { padding-top: 24px; padding-bottom: 51.2px; width: 751px; --nx-mw: none; }
.nx-benefices__lead { padding-block: 24px; --nx-mw: 555px; }
.e-con.nx-stats {
	--display: grid;
	display: grid;
	grid-template-columns: repeat(3, 192px);
	justify-content: center;
	gap: 16px;
	padding-top: 184px;
	width: 663.27px;
	flex: none;
	margin-bottom: -4.8px; /* cartes de 133 dans une rangée de 127 (maquette) */
}
.e-con.nx-stat {
	--align-items: center;
	--justify-content: flex-start;
	--padding-top: 20px;
	--padding-bottom: 20px;
	--padding-left: 20px;
	--padding-right: 20px;
	height: 133px;
	text-align: center;
	background: #FFFFFF;
	border: 1px solid var(--nx-bordure);
	border-radius: 16px;
}
.e-con.nx-stat__textes { --align-items: center; --gap: 0px; }
.nx-stat__emoji .elementor-heading-title { display: block; font: 400 24px/32px "Plus Jakarta Sans", "Apple Color Emoji", "Segoe UI Emoji", sans-serif; }
.nx-stat__valeur { padding-top: 8px; }
.nx-stat__label { padding-top: 2px; }
.nx-stat__label .elementor-heading-title { font: 400 10px/15px "Inter Display", "Inter", sans-serif; }
.nx-stat:nth-child(2) .nx-stat__label { --nx-mw: 136px; }
.nx-stat:nth-child(3) .nx-stat__label { --nx-mw: 94px; }

/* ---------------------------------------------------------------------------------------------
   Pied de page
   --------------------------------------------------------------------------------------------- */

.e-con.nx-footer {
	--padding-top: 56px;
	--padding-bottom: 56px;
	background: var(--nx-degrade-sombre);
	border-top: 1px solid rgba(255, 255, 255, .05);
	color: #FFFFFF;
}
.e-con.nx-footer__top { --gap: 0px; width: 320px; }
.nx-footer__logo { height: 28px; }
.nx-landing .nx-footer__logo img { width: 149px; max-width: none; height: auto; }
.nx-footer__tagline { font: 400 14px/22.75px "Inter", sans-serif; }
.e-con.nx-footer__bottom {
	--flex-direction: row;
	--justify-content: space-between;
	--align-items: center;
	margin-top: 40px;
	padding-top: 32px;
	border-top: 1px solid rgba(255, 255, 255, .5);
}
.nx-landing .elementor-widget.nx-footer__links .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
.nx-landing .elementor-widget.nx-footer__links .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.nx-footer__links .elementor-icon-list-item::after { display: none !important; }
.nx-footer__links a { color: #FFFFFF; text-decoration: none; }
.nx-footer__links a:hover { text-decoration: underline; }
.nx-footer__links .elementor-icon-list-text { color: inherit; font: 400 12px/16px "Inter", sans-serif; }
.nx-footer__copy { color: rgba(255, 255, 255, .5); font: 400 12px/16px "Inter", sans-serif; }

/* ---------------------------------------------------------------------------------------------
   Page /merci/
   --------------------------------------------------------------------------------------------- */

.e-con.nx-merci {
	--padding-top: 200px;
	--padding-bottom: 200px;
	min-height: 0;
	/* Même fond que le Hero, sans l'ellipse blanche de gauche (trop marquée sur un bloc court). */
	background:
		url("../img/nx-ellipse-droite.svg") calc(50% + 1115px) -521.68px / 982.36px 982.36px no-repeat,
		url("../img/nx-grille-hero.svg") calc(50% + .5px) -4px / 2744px 1372px no-repeat,
		linear-gradient(180deg, #FFFFFF 45%, var(--nx-brume) 97.94%);
}
.e-con.nx-merci__inner { --align-items: flex-start; --gap: 40px; --row-gap: 40px; position: relative; z-index: 4; }
.nx-merci__titre { --nx-mw: 820px; }
.e-con.nx-merci__carte {
	--gap: 24px;
	--row-gap: 24px;
	--align-items: flex-start;
	--padding-top: 32px;
	--padding-bottom: 32px;
	--padding-left: 32px;
	--padding-right: 32px;
	max-width: 584px;
	background: #FFFFFF;
	border: 1px solid var(--nx-bordure);
	border-radius: 16px;
	box-shadow: 0 10px 15px rgba(0, 0, 0, .05), 0 4px 6px rgba(0, 0, 0, .05);
}

/* =============================================================================================
   Desktop étroit (1025–1327 px) : le container se resserre, on garde les proportions.
   ============================================================================================= */

@media (min-width: 1025px) and (max-width: 1327px) {
	.nx-hero__titre .elementor-heading-title { font-size: clamp(54px, 5.42vw, 72px); line-height: .95; }
	.nx-hero__titre { width: auto; }
	.e-con.nx-hero__visual { transform: translateX(calc((1328px - 100vw) * .2)) scale(calc(.62 + (100vw - 1025px) / 303px * .38)); transform-origin: 0 278px; }
	.e-con.nx-timing__col { width: auto; flex: 1 1 auto; }
	.nx-timing__photo { width: 40%; height: auto; min-height: 320px; }
	.e-con.nx-frise__etape { width: 25%; flex: 1 1 0; }
	.e-con.nx-frise__panneau::after { width: 75%; }
	.e-con.nx-solution__col { width: 48%; }
	.e-con.nx-etapes { width: 48%; }
	.e-con.nx-benefices__col { width: auto; flex: 1 1 0; }
	.nx-benefices__titre { width: auto; }
	.e-con.nx-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); width: 52%; flex: none; }
	.nx-bandeau__titre .elementor-heading-title, .nx-bandeau__desc { white-space: normal; }
}

/* =============================================================================================
   Tablette (768–1024 px) : dérivée du desktop, Hero empilé, grilles en 1 colonne.
   ============================================================================================= */

@media (min-width: 768px) and (max-width: 1024px) {
	.e-con.nx-hero { --padding-top: 136px; --padding-bottom: 60px; min-height: 0; }
	.e-con.nx-hero::after { width: 100%; height: 60px; }
	.e-con.nx-hero__content { width: 100%; }
	.nx-hero__titre { width: auto; }
	.nx-hero__lead { --nx-pt: 24px; --nx-mw: 560px; }
	.e-con.nx-hero__form { width: 560px; padding-top: 32px; }
	.nx-hero__preuve { margin-top: 12px; }
	/* Visuel : composition mobile agrandie (--k), placée après le formulaire */
	.e-con.nx-hero__visual { --k: 1.9; order: 10; margin: 40px auto 0; }
	.e-con.nx-hero__content { --align-items: flex-start; }
	.e-con.nx-timing__row { --flex-direction: column; --gap: 32px; --row-gap: 32px; }
	.e-con.nx-timing__col { width: 100%; --gap: 32px; --row-gap: 32px; }
	.nx-timing__photo { width: 100%; height: auto; aspect-ratio: 2 / 1; }
	.e-con.nx-frise__panneau { --justify-content: space-between; }
	.e-con.nx-frise__etape { width: 25%; flex: 1 1 0; }
	.e-con.nx-frise__panneau::after { width: 75%; }
	.e-con.nx-bandeau { --flex-direction: column; --align-items: flex-start; --gap: 24px; --row-gap: 24px; }
	.e-con.nx-bandeau__cta { --align-items: flex-start; }
	.nx-bandeau__titre .elementor-heading-title, .nx-bandeau__desc { white-space: normal; }
	.e-con.nx-solution__inner { --flex-direction: column; --align-items: stretch; --gap: 40px; --row-gap: 40px; }
	.e-con.nx-solution__col, .e-con.nx-etapes { width: 100%; }
	.e-con.nx-produit { --padding-top: 80px; min-height: 0; padding-bottom: 60px;
		background:
			url("../img/nx-vague-produit-haut.svg") center top / 100% 60px no-repeat,
			linear-gradient(0deg, var(--nx-profond) 0%, var(--nx-teal) 98.185%) 0 60px / 100% calc(100% - 60px) no-repeat; }
	.e-con.nx-produit::after { width: 100%; height: 50px; }
	.e-con.nx-benefices { --padding-bottom: 80px; }
	.e-con.nx-benefices__row { --flex-direction: column; --gap: 24px; --row-gap: 24px; }
	.e-con.nx-benefices__col { width: 100%; }
	.nx-benefices__titre { width: auto; }
	.e-con.nx-stats { width: 100%; padding-top: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.e-con.nx-footer__bottom { --flex-direction: column; --align-items: flex-start; --gap: 24px; --row-gap: 24px; }
	.e-con.nx-merci { --padding-top: 160px; --padding-bottom: 140px; }
}

/* =============================================================================================
   Composition « mobile » du visuel Hero (mobile et tablette) : boîte de 296 × 247 × --k
   ============================================================================================= */

@media (max-width: 1024px) {
	.e-con.nx-hero__visual {
		--k: 1;
		--position: relative;
		left: auto;
		top: auto;
		width: calc(296px * var(--k));
		height: calc(247px * var(--k));
		margin-left: auto;
		margin-right: calc(-9px * var(--k));
		flex: none;
	}
	.nx-hero__photo { left: 0; top: 0; width: 100%; height: 100%; overflow: hidden; }
	.nx-hero__photo img, .nx-hero__photo picture { width: 100%; height: 100%; object-fit: cover; object-position: top; }
	.nx-badge { transform: scale(calc(.365 * var(--k))); }
	.nx-badge--levee { left: calc(179.6px * var(--k)); top: calc(17px * var(--k)); }
	.nx-badge--dsi { left: calc(212.5px * var(--k)); top: calc(67px * var(--k)); }
	.nx-badge--filiale { left: calc(17px * var(--k)); top: calc(155.6px * var(--k)); }
	.nx-metrics { left: calc(46px * var(--k)); top: calc(80px * var(--k)); transform: scale(calc(.3908 * var(--k))); }
}

@media (min-width: 768px) and (max-width: 1024px) {
	.e-con.nx-hero__visual { --k: 1.9; margin: 40px 0 0; align-self: center; }
	.e-con.nx-hero { --padding-bottom: 100px; }
}

/* =============================================================================================
   Mobile (≤ 767 px), référence 390
   ============================================================================================= */

@media (max-width: 767px) {
	/* Elementor fait passer toutes les rangées en flex-wrap: wrap sur mobile : pas ici. */
	.e-con.nx-header__bar, .e-con.nx-header__actions, .e-con.nx-etape, .e-con.nx-stat, .e-con.nx-frise__panneau { --flex-wrap: nowrap; }

	/* Hero */
	/* Maquette : le Hero commence à 25 px (sous l'en-tête fixe de 60 px), H1 à 73 px du haut. */
	.e-con.nx-hero {
		--margin-top: 25px;
		--padding-top: 48px;
		--padding-bottom: 48px;
		min-height: 920px;
		background:
			url("../img/nx-ellipse-mobile.svg") -514.68px 185.32px / 872.36px 872.36px no-repeat,
			url("../img/nx-grille-hero-mobile.svg") -262.5px -3px / 915px 915px no-repeat,
			linear-gradient(180deg, #FFFFFF 59.98%, var(--nx-brume) 97.94%);
	}
	.e-con.nx-hero::after {
		width: 100%;
		height: 21.67px;
		background-image: url("../img/nx-vague-hero-mobile.svg");
	}
	.e-con.nx-hero__content { width: 100%; }
	.nx-hero__titre { width: auto; }
	.nx-hero__titre .elementor-heading-title { white-space: normal; }
	/* 330 px dans Figma ; 342 px donne en navigateur les mêmes coupures que ref-mobile-390 (330 coupe avant « mouvement »). */
	.nx-hero__lead { --nx-pt: 16px; --nx-mw: 342px; }
	.e-con.nx-hero__visual { margin-top: -20px; margin-bottom: -27px; z-index: 1; }
	.e-con.nx-hero__form { width: 100%; padding-top: 24px; }
	.nx-hero__preuve { font-size: 12px; }
	.nx-form .nx-input { font-size: 16px; }
	.nx-form .nx-input::placeholder { font-size: 13.5px; }

	/* Timing */
	.e-con.nx-timing { --padding-top: 48px; --padding-bottom: 16px; }
	.e-con.nx-timing::before { display: none; }
	.nx-timing__titre { padding-top: 0; --nx-mw: 300px; }
	/* Maquette mobile : H2 Timing en Raleway (Plus Jakarta Sans en desktop, via la police globale). */
	.elementor .elementor-element.nx-timing__titre .elementor-heading-title { font-family: "Raleway", sans-serif; }
	.e-con.nx-timing__row { --flex-direction: column; --gap: 24px; --row-gap: 24px; margin-top: 24px; }
	.e-con.nx-timing__col { width: 100%; --gap: 24px; --row-gap: 24px; --justify-content: flex-start; }
	.nx-timing__photo { width: 100%; height: auto; aspect-ratio: 358 / 200; border-radius: 12px; }
	.nx-timing__photo img { object-position: 50% 0; opacity: 1; } /* image déjà recadrée comme la maquette mobile */
	.nx-frise__onglet { width: 148px; padding: 12px 16px; border-radius: 12px 12px 0 0; }
	.nx-frise__onglet .elementor-heading-title { font-size: 14px; line-height: 16px; letter-spacing: 1.2px; }
	.e-con.nx-frise__panneau {
		--flex-direction: column;
		--justify-content: flex-start;
		--gap: 20px;
		--row-gap: 20px;
		padding: 16px;
		border-width: 1px;
		border-radius: 0 12px 12px 12px;
		/* Mesuré sur l'export de référence : les poignées du dégradé Figma débordent du panneau. */
		background: linear-gradient(0deg, var(--nx-profond) -87px, var(--nx-teal) 182px);
		-webkit-backdrop-filter: blur(8px);
		backdrop-filter: blur(8px);
	}
	.e-con.nx-frise__panneau::after {
		left: 25px;
		top: 8px;
		width: 1px;
		height: 203px;
		transform: none;
		background: linear-gradient(180deg, var(--nx-sauge) 0 124px, var(--nx-frise) 124px 100%);
	}
	.e-con.nx-frise__etape {
		display: grid;
		grid-template-columns: 18px 1fr;
		column-gap: 25px;
		row-gap: 7px;
		width: auto;
		text-align: left;
	}
	.e-con.nx-frise__etape::before {
		grid-row: 1 / span 2;
		align-self: center;
		width: 18px;
		height: 18px;
		border-width: 1.5px;
	}
	.e-con.nx-frise__etape--active::before { box-shadow: 0 7.5px 11.25px rgba(0, 200, 150, .3), 0 3px 4.5px rgba(0, 200, 150, .3); }
	.nx-frise__libelle { --nx-mw: none; }
	.nx-frise__libelle .elementor-heading-title { font-size: 14px; line-height: 13px; }
	.nx-frise__sous .elementor-heading-title { font-size: 13px; line-height: 14px; }

	/* Bandeaux CTA : carte en colonne dans un wrapper de 16 px */
	.e-con.nx-bandeau {
		--flex-direction: column;
		--align-items: stretch;
		--gap: 16px;
		--row-gap: 16px;
		--padding-top: 24px;
		--padding-bottom: 24px;
		--padding-left: 24px;
		--padding-right: 24px;
		border-radius: 16px;
	}
	.nx-landing .e-con.nx-bandeau { margin-top: 32px; }
	.nx-landing .nx-benefices .e-con.nx-bandeau { margin-top: 16px; }
	.nx-bandeau__titre .elementor-heading-title { white-space: normal; }
	.nx-bandeau__desc { padding-top: 16px; --nx-mw: 245px; }
	.e-con.nx-bandeau__cta { --align-items: stretch; --gap: 8px; --row-gap: 8px; width: 100%; }
	.nx-btn--sombre .elementor-button { width: 100%; padding: 12px 24px; border-radius: 8px; color: #FFFFFF; }
	.nx-btn--sombre .elementor-button-text::after { display: none; }
	.nx-bandeau__mention { font-size: 11px; line-height: 13px; color: var(--nx-navy); }

	/* Solution : titre, texte, étapes, citation */
	.e-con.nx-solution { --padding-top: 48px; --padding-bottom: 48px; }
	.e-con.nx-solution::before { display: none; }
	.e-con.nx-solution__inner { --flex-direction: column; --align-items: stretch; --gap: 32px; --row-gap: 32px; }
	.e-con.nx-solution__col, .e-con.nx-etapes { display: contents; }
	.nx-solution__titre { order: 1; padding-top: 0; }
	.nx-solution__lead { order: 2; padding-top: 0; margin-top: -20px; }
	.e-con.nx-etapes { order: 3; }
	.e-con.nx-citation { order: 4; }
	.e-con.nx-etapes > .e-con.nx-etape { order: 3; }
	.e-con.nx-etape:not(:first-child) { margin-top: -20px; }
	.e-con.nx-etape {
		--gap: 12px;
		--column-gap: 12px;
		--padding-top: 15px;
		--padding-bottom: 15px;
		--padding-left: 15px;
		--padding-right: 15px;
		border-radius: 12px;
	}
	.e-con.nx-etape::after { display: none; }
	.nx-etape__icone { width: 32px; height: 32px; border-radius: 6px; }
	.nx-etape__icone img { width: 17.6px; height: 17.6px; }
	.e-con.nx-etape__textes { --gap: 2px; --row-gap: 2px; }
	.nx-etape__titre .elementor-heading-title { padding-left: 0; font: 700 15px/18px "Raleway", sans-serif; }
	.nx-etape__num { display: inline; width: auto; padding-left: 0; }
	.nx-etape__desc, .nx-etape:nth-child(n) .nx-etape__desc { font-size: 13px; line-height: 16px; }
	.e-con.nx-citation {
		--justify-content: flex-start;
		--padding-top: 20px;
		--padding-bottom: 20px;
		--padding-left: 20px;
		--padding-right: 20px;
		margin-top: 0;
		height: auto;
		min-height: 156px;
		border-radius: 16px;
	}
	.e-con.nx-citation::after { background: linear-gradient(90deg, rgba(13, 37, 53, .7) 0%, rgba(13, 37, 53, 0) 181.15%); }
	.nx-citation__texte { --nx-mw: 299px; padding-bottom: 0; }

	/* Produit */
	.e-con.nx-produit {
		--padding-top: 38px;
		--padding-bottom: 0px;
		min-height: 0;
		height: calc(341px + 22px);
		background:
			url("../img/nx-vague-produit-haut-mobile.svg") center top / 100% 22px no-repeat,
			linear-gradient(0deg, var(--nx-profond) 0%, var(--nx-teal) 100%) 0 22px / 100% calc(100% - 22px) no-repeat;
	}
	.e-con.nx-produit::after { width: 100%; height: 22px; background-image: url("../img/nx-vague-produit-bas-mobile.svg"); }
	.e-con.nx-produit__inner { --gap: 0px; }
	.nx-landing .elementor-widget.nx-produit__titre { margin-bottom: 0; }
	.nx-produit__lead { padding-top: 12px; }
	.nx-produit__mockup { margin-top: 24px; aspect-ratio: auto; height: 200px; border-radius: 12px; flex: none; }
	.nx-produit__mockup img, .nx-produit__mockup picture { height: 201.5px; object-fit: cover; object-position: left top; }

	/* Bénéfices */
	.e-con.nx-benefices { --padding-top: 48px; --padding-bottom: 16px; }
	.e-con.nx-benefices__row { --flex-direction: column; --gap: 32px; --row-gap: 32px; }
	.e-con.nx-benefices__col { width: 100%; }
	.nx-benefices__titre { padding-top: 0; padding-bottom: 0; width: auto; }
	.nx-benefices__lead { padding-block: 12px 0; }
	.e-con.nx-stats { display: flex; flex-direction: column; gap: 12px; padding-top: 0; width: 100%; margin: 0; }
	.e-con.nx-stat {
		--flex-direction: row;
		--justify-content: flex-start;
		--gap: 12px;
		--column-gap: 12px;
		--padding-top: 16px;
		--padding-bottom: 16px;
		--padding-left: 16px;
		--padding-right: 16px;
		height: 68px;
		text-align: left;
		border-radius: 12px;
	}
	.e-con.nx-stat__textes { --align-items: flex-start; --gap: 2px; --row-gap: 2px; }
	.nx-stat__emoji .elementor-heading-title { font: 400 20px/20px "Inter", "Apple Color Emoji", "Segoe UI Emoji", sans-serif; }
	.nx-stat__valeur { padding-top: 0; }
	.nx-stat__label { padding-top: 0; }
	.nx-stat:nth-child(n) .nx-stat__label { --nx-mw: none; }
	.nx-stat__label .elementor-heading-title { font: 400 12px/normal "Inter", sans-serif; }

	/* Pied de page */
	.e-con.nx-footer { --padding-top: 39px; --padding-bottom: 40px; } /* 40 − 1 px de bordure haute (bordure intérieure dans Figma) */
	.e-con.nx-footer__inner { --gap: 32px; --row-gap: 32px; }
	.e-con.nx-footer__top { --gap: 20px; --row-gap: 20px; width: 100%; }
	.nx-footer__logo { height: auto; }
	.nx-footer__tagline { font-size: 13px; line-height: 20px; color: rgba(255, 255, 255, .6); }
	.nx-footer__navtitre .elementor-heading-title { color: #FFFFFF; font: 600 14px/normal "Inter", sans-serif; }
	.nx-landing .elementor-widget.nx-footer__navtitre { margin-bottom: -20px; }
	.e-con.nx-footer__bottom { --flex-direction: column; --align-items: stretch; --gap: 32px; --row-gap: 32px; margin-top: 0; padding-top: 0; border-top: 0; }
	.nx-landing .elementor-widget.nx-footer__links .elementor-icon-list-items { flex-direction: column; gap: 8px; }
	/* Élément de liste dont le libellé est marqué <span class="nx-hide-mobile"> (« Blog ») : masqué. */
	.nx-landing .elementor-widget.nx-footer__links .elementor-icon-list-item:has(.nx-hide-mobile) { display: none; }
	.nx-footer__links a { color: rgba(255, 255, 255, .6); display: inline-block; }
	.nx-footer__links .elementor-icon-list-text { font-size: 13px; line-height: normal; }
	.nx-footer__copy { padding-top: 31px; border-top: 1px solid rgba(255, 255, 255, .125); color: rgba(255, 255, 255, .38); line-height: 15px; }

	/* Merci */
	.e-con.nx-merci { --padding-top: 120px; --padding-bottom: 96px; min-height: 0; }
	.e-con.nx-merci__inner { --gap: 24px; --row-gap: 24px; }
	.e-con.nx-merci__carte { --padding-top: 24px; --padding-bottom: 24px; --padding-left: 20px; --padding-right: 20px; }
	.nx-btn--primaire .elementor-button { width: 100%; }
	.e-con.nx-merci__carte .nx-merci__retour { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.nx-landing *, .nx-landing *::before, .nx-landing *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* Le reset de Hello Elementor colore les <button> au survol / focus (#c36) : on garde la charte. */
.nx-landing .nx-burger,
.nx-landing .nx-burger:hover,
.nx-landing .nx-burger:focus { background: transparent; color: var(--nx-navy); border: 0; }
.nx-landing .nx-burger:hover { background: var(--nx-clair); }
.nx-landing .nx-form .nx-form__submit,
.nx-landing .nx-form .nx-form__submit:hover,
.nx-landing .nx-form .nx-form__submit:focus { background: var(--nx-sauge); color: var(--nx-navy); border: 0; }
.nx-landing .nx-form .nx-form__submit:focus-visible { outline: 2px solid var(--nx-teal); outline-offset: 3px; }

/* Cibles tactiles ≥ 44 px sous 768 px, sans changement visuel : zone cliquable agrandie par un
   pseudo-élément transparent. Liens du pied de page : pas vertical de 24 px, la zone remplit l'écart
   (24 px de haut, toute la largeur) pour ne pas chevaucher le lien voisin. */
@media (max-width: 767px) {
	.nx-header__logo a,
	.nx-btn .elementor-button,
	.nx-landing .nx-form .nx-form__submit,
	.nx-footer__links a { position: relative; }
	.nx-header__logo a::after,
	.nx-btn .elementor-button::after,
	.nx-landing .nx-form .nx-form__submit::after,
	.nx-footer__links a::after { content: ""; position: absolute; }
	.nx-header__logo a::after { inset: -11px 0; }
	.nx-btn .elementor-button::after { inset: -2px 0; }
	.nx-btn--demo .elementor-button::after { inset: -7px 0; }
	.nx-landing .nx-form .nx-form__submit::after { inset: -2px 0; }
	.nx-footer__links a::after { inset: -4px -16px -4px 0; }
}
