/*!
 * MelyWeb — feuille de style du thème
 * Fichier généré : ne pas modifier directement.
 * Version 1.2.2
 */

/* ==========================================================================
   MELYWEB — Design System
   Identité : « La Grille Lumineuse »
   Base anthracite profond, lumière violette/cyan, matière translucide.
   ========================================================================== */

/* ---------- Polices auto-hébergées (RGPD : aucune requête tierce) -------- */
@font-face {
	font-family: "MW Display";
	src: url("../fonts/space-grotesk-latin-700-normal.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "MW Display";
	src: url("../fonts/space-grotesk-latin-600-normal.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "MW Display";
	src: url("../fonts/space-grotesk-latin-500-normal.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "MW Text";
	src: url("../fonts/inter-latin-400-normal.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "MW Text";
	src: url("../fonts/inter-latin-500-normal.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "MW Text";
	src: url("../fonts/inter-latin-600-normal.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "MW Text";
	src: url("../fonts/inter-latin-700-normal.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* ------------------- Polices de repli calibrées --------------------------
   Le temps que les polices du thème arrivent, le navigateur affiche une
   police système. Si ses proportions diffèrent, tout le texte se réajuste
   à l'arrivée du fichier : c'est un décalage de mise en page (CLS), pénalisé
   par Google et désagréable à l'œil.

   Les valeurs ci-dessous sont calculées à partir des métriques réelles des
   deux fichiers (unitsPerEm, ascent, descent, largeur moyenne) rapportées à
   celles d'Arial. Résultat : le repli occupe exactement la même place, et
   la substitution devient invisible.
   ------------------------------------------------------------------------ */
@font-face {
	font-family: "MW Display Fallback";
	src: local("Arial"), local("Helvetica"), local("Liberation Sans");
	size-adjust: 93.3%;
	ascent-override: 105.4%;
	descent-override: 31.3%;
	line-gap-override: 0%;
}
@font-face {
	font-family: "MW Text Fallback";
	src: local("Arial"), local("Helvetica"), local("Liberation Sans");
	size-adjust: 105.3%;
	ascent-override: 92%;
	descent-override: 22.9%;
	line-gap-override: 0%;
}

/* ---------------------------- Jetons ------------------------------------ */
:root {
	/* Fonds */
	--mw-void: #050508;
	--mw-bg: #07070c;
	--mw-bg-2: #0b0b12;
	--mw-surface: #101019;
	--mw-surface-2: #16161f;
	--mw-elevated: rgba(255, 255, 255, 0.035);

	/* Traits */
	--mw-line: rgba(255, 255, 255, 0.09);
	--mw-line-soft: rgba(255, 255, 255, 0.055);
	--mw-line-strong: rgba(255, 255, 255, 0.16);

	/* Texte */
	--mw-ink: #f4f5fb;
	--mw-ink-2: #c3c6d6;
	--mw-muted: #9296ac;
	/* 5,27:1 minimum sur toutes nos surfaces — au-dessus du seuil AA (4,5:1).
	   L'ancienne valeur #6a6e85 tombait à 3,77:1 et était refusée. */
	--mw-faint: #8186a0;

	/* Lumière de marque */
	--mw-violet: #6c4bff;
	--mw-violet-soft: #a78bfa;
	--mw-blue: #3b6bff;
	--mw-cyan: #22d3ee;
	--mw-cyan-soft: #67e8f9;

	/* Dégradés */
	--mw-grad: linear-gradient(120deg, #6c4bff 0%, #3b6bff 48%, #22d3ee 100%);
	--mw-grad-soft: linear-gradient(120deg, rgba(108, 75, 255, 0.22), rgba(34, 211, 238, 0.14));
	--mw-grad-text: linear-gradient(100deg, #ffffff 10%, #c7b8ff 45%, #7ae7ff 92%);

	/* États */
	--mw-ok: #34d399;
	--mw-warn: #fbbf24;
	--mw-err: #fb7185;

	/* Typographie */
	--mw-font-display: "MW Display", "MW Display Fallback", "Space Grotesk", ui-sans-serif, system-ui, "Segoe UI", sans-serif;
	--mw-font-text: "MW Text", "MW Text Fallback", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--mw-font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;

	--mw-h1: clamp(2.4rem, 5vw, 4.4rem);
	--mw-h2: clamp(1.95rem, 4.4vw, 3.4rem);
	--mw-h3: clamp(1.2rem, 2vw, 1.55rem);
	--mw-lead: clamp(1.05rem, 1.55vw, 1.3rem);
	--mw-body: 1.0625rem;

	/* Rythme */
	--mw-wrap: 1240px;
	--mw-wrap-narrow: 860px;
	--mw-gutter: clamp(1.15rem, 4vw, 2.5rem);
	--mw-section: clamp(4.5rem, 10vw, 9rem);

	/* Formes */
	--mw-r-sm: 10px;
	--mw-r: 16px;
	--mw-r-lg: 22px;
	--mw-r-xl: 30px;
	--mw-r-pill: 999px;

	/* Ombres */
	--mw-shadow: 0 18px 50px -22px rgba(0, 0, 0, 0.9);
	--mw-shadow-lg: 0 40px 90px -30px rgba(0, 0, 0, 0.95);
	--mw-glow: 0 0 0 1px rgba(108, 75, 255, 0.35), 0 22px 60px -24px rgba(108, 75, 255, 0.65);

	/* Mouvement — 150 à 400 ms */
	--mw-fast: 160ms;
	--mw-mid: 260ms;
	--mw-slow: 400ms;
	--mw-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--mw-ease-out: cubic-bezier(0.16, 1, 0.3, 1);

	--mw-header-h: 74px;

	color-scheme: dark;
}

/* ============================== Base ==================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Indispensable : dès qu'une classe fixe un `display`, elle l'emporte sur la
   feuille du navigateur et l'attribut `hidden` cesse de masquer quoi que ce
   soit. Sans cette règle, les trois boutons du formulaire de devis
   s'afficheraient tous en même temps. */
[hidden] {
	display: none !important;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--mw-header-h) + 24px);
}

body {
	margin: 0;
	background: var(--mw-bg);
	color: var(--mw-ink);
	font-family: var(--mw-font-text);
	font-size: var(--mw-body);
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
	text-rendering: optimizeLegibility;
}

/* Voile de grain : donne de la matière au noir, 1,4 Ko, aucune requête. */
body::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 9998;
	pointer-events: none;
	opacity: 0.035;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

img,
svg,
video,
canvas {
	max-width: 100%;
	height: auto;
	display: block;
}

/* Taille par défaut des icônes du thème. Indispensable : un SVG qui porte
   un viewBox sans dimension s'étire sinon sur toute la largeur disponible. */
.mw-i {
	display: inline-block;
	width: 1.15em;
	height: 1.15em;
	flex: none;
	vertical-align: -0.17em;
}

/* Les médias réservent leur place : aucun décalage de mise en page (CLS). */
img[width][height] {
	height: auto;
}

a {
	color: var(--mw-violet-soft);
	text-decoration: none;
	transition: color var(--mw-fast) var(--mw-ease);
}
a:hover {
	color: var(--mw-cyan-soft);
}

h1,
h2,
h3,
h4,
h5 {
	font-family: var(--mw-font-display);
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: -0.035em;
	margin: 0 0 0.5em;
	color: var(--mw-ink);
	text-wrap: balance;
}

h1 {
	font-size: var(--mw-h1);
	letter-spacing: -0.045em;
	line-height: 0.98;
}
h2 {
	font-size: var(--mw-h2);
}
h3 {
	font-size: var(--mw-h3);
	letter-spacing: -0.02em;
	line-height: 1.25;
}
h4 {
	font-size: 1.075rem;
	letter-spacing: -0.015em;
	line-height: 1.35;
}

p {
	margin: 0 0 1.1em;
	color: var(--mw-ink-2);
	text-wrap: pretty;
}
p:last-child {
	margin-bottom: 0;
}

strong,
b {
	font-weight: 600;
	color: var(--mw-ink);
}

ul,
ol {
	padding-left: 1.15rem;
	color: var(--mw-ink-2);
}
li {
	margin-bottom: 0.45em;
}

hr {
	border: 0;
	height: 1px;
	background: var(--mw-line);
	margin: 2.5rem 0;
}

blockquote {
	margin: 1.75rem 0;
	padding: 1.1rem 1.4rem;
	border-left: 2px solid var(--mw-violet);
	background: var(--mw-elevated);
	border-radius: 0 var(--mw-r) var(--mw-r) 0;
	color: var(--mw-ink);
	font-size: 1.08rem;
}

code,
kbd {
	font-family: var(--mw-font-mono);
	font-size: 0.9em;
	background: rgba(255, 255, 255, 0.06);
	padding: 0.15em 0.4em;
	border-radius: 6px;
	color: var(--mw-cyan-soft);
}

table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.97rem;
}
th,
td {
	text-align: left;
	padding: 0.85rem 1rem;
	border-bottom: 1px solid var(--mw-line-soft);
}
th {
	font-family: var(--mw-font-display);
	font-weight: 600;
	color: var(--mw-ink);
	letter-spacing: -0.01em;
}

::selection {
	background: rgba(108, 75, 255, 0.45);
	color: #fff;
}

/* ---------------------- Accessibilité : focus visible -------------------- */
:focus {
	outline: none;
}
:focus-visible {
	outline: 2px solid var(--mw-cyan);
	outline-offset: 3px;
	border-radius: 4px;
}

/* Lien d'évitement : hors écran par translation, jamais par une position
   négative très éloignée — celle-ci élargit le document et provoque une
   barre de défilement horizontale. */
.mw-skip {
	position: fixed;
	left: 0;
	top: 0;
	z-index: 10000;
	background: var(--mw-violet);
	color: #fff;
	padding: 0.85rem 1.4rem;
	border-radius: 0 0 var(--mw-r) 0;
	font-weight: 600;
	transform: translateY(-130%);
	transition: transform var(--mw-fast) var(--mw-ease);
}
.mw-skip:focus {
	transform: none;
	color: #fff;
}

.screen-reader-text,
.mw-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ----------------------------- Mise en page ------------------------------ */
.mw-wrap {
	width: 100%;
	max-width: var(--mw-wrap);
	margin-inline: auto;
	padding-inline: var(--mw-gutter);
}
.mw-wrap--narrow {
	max-width: var(--mw-wrap-narrow);
}

.mw-section {
	position: relative;
	padding-block: var(--mw-section);
	/* Les halos lumineux débordent volontairement du cadre : on les rogne
	   horizontalement. « clip » plutôt que « hidden » — il ne crée pas de
	   conteneur de défilement, donc les éléments collants (sommaire des pages
	   légales, colonne de contact) continuent de fonctionner. */
	overflow-x: clip;
}
.mw-section--tight {
	padding-block: clamp(3rem, 6vw, 5rem);
}
.mw-section--alt {
	background: linear-gradient(180deg, transparent, var(--mw-bg-2) 18%, var(--mw-bg-2) 82%, transparent);
}

.mw-grid {
	display: grid;
	gap: clamp(1rem, 2vw, 1.5rem);
}
.mw-grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.mw-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.mw-grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* --------------------------- Titres de section --------------------------- */
.mw-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--mw-font-display);
	font-size: 0.775rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--mw-violet-soft);
	margin: 0 0 1.1rem;
	padding: 0.4rem 0.85rem 0.4rem 0.6rem;
	border: 1px solid rgba(108, 75, 255, 0.28);
	border-radius: var(--mw-r-pill);
	background: rgba(108, 75, 255, 0.09);
	line-height: 1;
}
.mw-eyebrow::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--mw-cyan);
	box-shadow: 0 0 10px var(--mw-cyan);
}

.mw-head {
	max-width: 760px;
	margin-bottom: clamp(2.25rem, 5vw, 3.75rem);
}
.mw-head--center {
	margin-inline: auto;
	text-align: center;
}
.mw-head p {
	font-size: var(--mw-lead);
	color: var(--mw-muted);
	margin-bottom: 0;
	line-height: 1.6;
}
.mw-head h2 {
	margin-bottom: 0.6rem;
}

.mw-gradient-text {
	background: var(--mw-grad-text);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* Lueurs d'ambiance — positionnées en absolu par les sections. */
.mw-aura {
	position: absolute;
	border-radius: 50%;
	filter: blur(90px);
	pointer-events: none;
	z-index: 0;
	opacity: 0.5;
}
.mw-aura--violet {
	background: radial-gradient(circle, rgba(108, 75, 255, 0.55), transparent 70%);
}
.mw-aura--cyan {
	background: radial-gradient(circle, rgba(34, 211, 238, 0.38), transparent 70%);
}

.mw-section > .mw-wrap {
	position: relative;
	z-index: 1;
}

/* Grille technique en perspective — la signature visuelle de MelyWeb. */
.mw-gridfloor {
	position: absolute;
	inset: auto 0 0 0;
	height: 55%;
	pointer-events: none;
	z-index: 0;
	background-image: linear-gradient(rgba(108, 75, 255, 0.16) 1px, transparent 1px),
		linear-gradient(90deg, rgba(108, 75, 255, 0.16) 1px, transparent 1px);
	background-size: 58px 58px;
	transform: perspective(340px) rotateX(58deg);
	transform-origin: bottom center;
	-webkit-mask-image: linear-gradient(to top, #000 0%, transparent 78%);
	mask-image: linear-gradient(to top, #000 0%, transparent 78%);
	opacity: 0.75;
}

/* ============================== Boutons ================================= */
.mw-btn {
	--mw-btn-x: 50%;
	--mw-btn-y: 50%;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	font-family: var(--mw-font-display);
	font-size: 0.975rem;
	font-weight: 600;
	letter-spacing: -0.015em;
	line-height: 1;
	padding: 1.05rem 1.7rem;
	border-radius: var(--mw-r-pill);
	border: 1px solid transparent;
	cursor: pointer;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	isolation: isolate;
	transition: transform var(--mw-fast) var(--mw-ease), box-shadow var(--mw-mid) var(--mw-ease),
		background-color var(--mw-mid) var(--mw-ease), border-color var(--mw-mid) var(--mw-ease),
		color var(--mw-mid) var(--mw-ease);
	will-change: transform;
}
.mw-btn:active {
	transform: scale(0.975);
}

/* — Principal : dégradé de marque + halo qui suit le curseur — */
.mw-btn--primary {
	background: var(--mw-grad);
	color: #fff;
	box-shadow: 0 14px 34px -14px rgba(108, 75, 255, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.mw-btn--primary::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(160px circle at var(--mw-btn-x) var(--mw-btn-y), rgba(255, 255, 255, 0.32), transparent 62%);
	opacity: 0;
	transition: opacity var(--mw-mid) var(--mw-ease);
}
.mw-btn--primary:hover {
	color: #fff;
	box-shadow: 0 20px 44px -14px rgba(108, 75, 255, 1), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.mw-btn--primary:hover::before {
	opacity: 1;
}

/* — Secondaire : verre — */
.mw-btn--ghost {
	background: rgba(255, 255, 255, 0.045);
	border-color: var(--mw-line);
	color: var(--mw-ink);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
.mw-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.085);
	border-color: var(--mw-line-strong);
	color: #fff;
}

/* — Tertiaire : lien fléché — */
.mw-btn--link {
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	color: var(--mw-violet-soft);
}
.mw-btn--link .mw-arrow {
	transition: transform var(--mw-mid) var(--mw-ease);
}
.mw-btn--link:hover {
	color: var(--mw-cyan-soft);
}
.mw-btn--link:hover .mw-arrow {
	transform: translateX(5px);
}

.mw-btn--sm {
	padding: 0.72rem 1.25rem;
	font-size: 0.9rem;
}
.mw-btn--lg {
	padding: 1.2rem 2.1rem;
	font-size: 1.05rem;
}
.mw-btn--block {
	display: flex;
	width: 100%;
}
.mw-btn[disabled],
.mw-btn[aria-disabled="true"] {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
}

.mw-arrow {
	width: 1em;
	height: 1em;
	flex: none;
}

.mw-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	align-items: center;
}
.mw-actions--center {
	justify-content: center;
}

/* =============================== Cartes ================================= */
.mw-card {
	--mw-mx: 50%;
	--mw-my: 0%;
	position: relative;
	padding: clamp(1.5rem, 2.4vw, 2rem);
	border-radius: var(--mw-r-lg);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.018));
	border: 1px solid var(--mw-line-soft);
	overflow: hidden;
	isolation: isolate;
	transition: transform var(--mw-mid) var(--mw-ease), border-color var(--mw-mid) var(--mw-ease),
		box-shadow var(--mw-mid) var(--mw-ease);
}

/* Halo qui suit le curseur, purement décoratif. */
.mw-card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(340px circle at var(--mw-mx) var(--mw-my), rgba(108, 75, 255, 0.17), transparent 62%);
	opacity: 0;
	transition: opacity var(--mw-slow) var(--mw-ease);
}
/* Filet lumineux sur le bord haut. */
.mw-card::after {
	content: "";
	position: absolute;
	top: 0;
	left: 12%;
	right: 12%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(167, 139, 250, 0.75), transparent);
	opacity: 0;
	transition: opacity var(--mw-slow) var(--mw-ease);
}
.mw-card:hover,
.mw-card:focus-within {
	transform: translateY(-5px);
	border-color: rgba(255, 255, 255, 0.15);
	box-shadow: var(--mw-shadow-lg);
}
.mw-card:hover::before,
.mw-card:focus-within::before,
.mw-card:hover::after,
.mw-card:focus-within::after {
	opacity: 1;
}

.mw-card h3 {
	margin-bottom: 0.55rem;
}
.mw-card p {
	color: var(--mw-muted);
	font-size: 0.975rem;
	line-height: 1.65;
}
.mw-card--flat:hover {
	transform: none;
}

/* Pastille d'icône */
.mw-ico {
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	border-radius: 14px;
	margin-bottom: 1.25rem;
	background: linear-gradient(140deg, rgba(108, 75, 255, 0.28), rgba(34, 211, 238, 0.14));
	border: 1px solid rgba(167, 139, 250, 0.28);
	color: var(--mw-violet-soft);
	transition: transform var(--mw-mid) var(--mw-ease), color var(--mw-mid) var(--mw-ease);
}
.mw-ico svg {
	width: 24px;
	height: 24px;
}
.mw-card:hover .mw-ico {
	transform: translateY(-2px) scale(1.06);
	color: var(--mw-cyan-soft);
}

/* Numéro d'étape / d'ordre */
.mw-num {
	font-family: var(--mw-font-display);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--mw-faint);
}

/* Liste à coches */
.mw-checks {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.65rem;
}
.mw-checks li {
	position: relative;
	padding-left: 1.75rem;
	margin: 0;
	font-size: 0.95rem;
	color: var(--mw-ink-2);
	line-height: 1.5;
}
.mw-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.36em;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: rgba(108, 75, 255, 0.18);
	border: 1px solid rgba(167, 139, 250, 0.5);
}
.mw-checks li::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 0.62em;
	width: 4px;
	height: 7px;
	border: solid var(--mw-cyan-soft);
	border-width: 0 1.6px 1.6px 0;
	transform: rotate(42deg);
}

/* Étiquettes */
.mw-tag {
	display: inline-block;
	font-family: var(--mw-font-display);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 0.32rem 0.7rem;
	border-radius: var(--mw-r-pill);
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid var(--mw-line);
	color: var(--mw-muted);
	line-height: 1.2;
}
.mw-tag--accent {
	background: rgba(108, 75, 255, 0.16);
	border-color: rgba(167, 139, 250, 0.4);
	color: var(--mw-violet-soft);
}

/* ============================ Révélation au scroll ====================== */
.mw-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 620ms var(--mw-ease-out), transform 620ms var(--mw-ease-out);
	will-change: opacity, transform;
}
.mw-reveal.is-in {
	opacity: 1;
	transform: none;
}
.mw-reveal[data-d="1"] {
	transition-delay: 70ms;
}
.mw-reveal[data-d="2"] {
	transition-delay: 140ms;
}
.mw-reveal[data-d="3"] {
	transition-delay: 210ms;
}
.mw-reveal[data-d="4"] {
	transition-delay: 280ms;
}
.mw-reveal[data-d="5"] {
	transition-delay: 350ms;
}

/* ========================= Curseur personnalisé ========================= */
.mw-cursor {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
	pointer-events: none;
	display: none;
	width: 26px;
	height: 26px;
	margin: -13px 0 0 -13px;
	border-radius: 50%;
	border: 1px solid rgba(167, 139, 250, 0.75);
	background: rgba(108, 75, 255, 0.1);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	transition: width var(--mw-mid) var(--mw-ease), height var(--mw-mid) var(--mw-ease),
		margin var(--mw-mid) var(--mw-ease), background-color var(--mw-mid) var(--mw-ease),
		opacity var(--mw-mid) var(--mw-ease);
}
.mw-cursor span {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	font-family: var(--mw-font-display);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: #fff;
	opacity: 0;
	transition: opacity var(--mw-fast) var(--mw-ease);
}
.mw-cursor.is-label {
	width: 76px;
	height: 76px;
	margin: -38px 0 0 -38px;
	background: rgba(108, 75, 255, 0.9);
	border-color: transparent;
}
.mw-cursor.is-label span {
	opacity: 1;
}
.mw-cursor.is-hover {
	width: 46px;
	height: 46px;
	margin: -23px 0 0 -23px;
	background: rgba(108, 75, 255, 0.2);
}
html.mw-has-cursor .mw-cursor {
	display: block;
}

/* =========================== Barre de progression ======================= */
.mw-scrollbar {
	position: fixed;
	top: 0;
	left: 0;
	height: 2px;
	width: 100%;
	transform: scaleX(0);
	transform-origin: 0 50%;
	background: var(--mw-grad);
	z-index: 9997;
	pointer-events: none;
}

/* ============================== En-tête ================================= */
.mw-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 900;
	height: var(--mw-header-h);
	display: flex;
	align-items: center;
	background: transparent;
	border-bottom: 1px solid transparent;
	transition: background-color var(--mw-slow) var(--mw-ease), border-color var(--mw-slow) var(--mw-ease),
		backdrop-filter var(--mw-slow) var(--mw-ease), transform var(--mw-slow) var(--mw-ease);
}
.admin-bar .mw-header {
	top: 32px;
}

/* Verre dépoli au défilement — le « glassmorphism » demandé, dosé. */
.mw-header.is-stuck {
	background: rgba(7, 7, 12, 0.72);
	border-bottom-color: var(--mw-line-soft);
	backdrop-filter: blur(18px) saturate(160%);
	-webkit-backdrop-filter: blur(18px) saturate(160%);
	box-shadow: 0 10px 40px -28px rgba(0, 0, 0, 1);
}
.mw-header.is-hidden {
	transform: translateY(-100%);
}

.mw-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	width: 100%;
	max-width: var(--mw-wrap);
	margin-inline: auto;
	padding-inline: var(--mw-gutter);
}

/* ------------------------------- Logo ----------------------------------- */
.mw-logo {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--mw-font-display);
	font-size: 1.22rem;
	font-weight: 700;
	letter-spacing: -0.035em;
	color: var(--mw-ink);
	flex: none;
}
.mw-logo:hover {
	color: var(--mw-ink);
}
.mw-logo__mark {
	width: 32px;
	height: 32px;
	flex: none;
	transition: transform var(--mw-slow) var(--mw-ease);
}
.mw-logo:hover .mw-logo__mark {
	transform: rotate(-8deg) scale(1.06);
}
.mw-logo__text b {
	font-weight: 700;
}
.mw-logo__text span {
	background: var(--mw-grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.mw-logo img {
	max-height: 40px;
	width: auto;
}

/* ------------------------------ Navigation ------------------------------ */
.mw-nav {
	display: flex;
	align-items: center;
	gap: 0.15rem;
	margin-inline: auto;
}
.mw-nav ul {
	display: flex;
	align-items: center;
	gap: 0.1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.mw-nav li {
	margin: 0;
	position: relative;
}
.mw-nav a {
	position: relative;
	display: block;
	padding: 0.55rem 0.85rem;
	font-size: 0.925rem;
	font-weight: 500;
	color: var(--mw-muted);
	border-radius: var(--mw-r-sm);
	transition: color var(--mw-fast) var(--mw-ease), background-color var(--mw-fast) var(--mw-ease);
	white-space: nowrap;
}
.mw-nav a:hover,
.mw-nav .current-menu-item > a,
.mw-nav .current_page_item > a,
.mw-nav .current-menu-ancestor > a {
	color: var(--mw-ink);
	background: rgba(255, 255, 255, 0.055);
}
.mw-nav .current-menu-item > a::after,
.mw-nav .current_page_item > a::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 2px;
	width: 16px;
	height: 2px;
	margin-left: -8px;
	border-radius: 2px;
	background: var(--mw-grad);
}

/* Sous-menus */
.mw-nav ul ul {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	min-width: 230px;
	flex-direction: column;
	align-items: stretch;
	gap: 0.15rem;
	padding: 0.5rem;
	background: rgba(16, 16, 25, 0.96);
	border: 1px solid var(--mw-line);
	border-radius: var(--mw-r);
	box-shadow: var(--mw-shadow-lg);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity var(--mw-mid) var(--mw-ease), transform var(--mw-mid) var(--mw-ease),
		visibility var(--mw-mid);
}
.mw-nav li:hover > ul,
.mw-nav li:focus-within > ul {
	opacity: 1;
	visibility: visible;
	transform: none;
}
.mw-nav ul ul a {
	padding: 0.6rem 0.8rem;
	white-space: normal;
}

.mw-header__cta {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	flex: none;
}

/* ------------------------- Bouton menu (mobile) -------------------------- */
.mw-burger {
	display: none;
	width: 44px;
	height: 44px;
	flex: none;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid var(--mw-line);
	border-radius: 12px;
	cursor: pointer;
	padding: 0;
}
.mw-burger span {
	position: relative;
	display: block;
	width: 18px;
	height: 1.5px;
	background: var(--mw-ink);
	border-radius: 2px;
	transition: transform var(--mw-mid) var(--mw-ease), opacity var(--mw-fast) var(--mw-ease);
}
.mw-burger span::before,
.mw-burger span::after {
	content: "";
	position: absolute;
	left: 0;
	width: 18px;
	height: 1.5px;
	background: var(--mw-ink);
	border-radius: 2px;
	transition: transform var(--mw-mid) var(--mw-ease);
}
.mw-burger span::before {
	top: -6px;
}
.mw-burger span::after {
	top: 6px;
}
.mw-burger[aria-expanded="true"] span {
	background: transparent;
}
.mw-burger[aria-expanded="true"] span::before {
	transform: translateY(6px) rotate(45deg);
}
.mw-burger[aria-expanded="true"] span::after {
	transform: translateY(-6px) rotate(-45deg);
}

/* ---------------------------- Panneau mobile ----------------------------- */
.mw-drawer {
	position: fixed;
	inset: var(--mw-header-h) 0 0 0;
	z-index: 890;
	background: rgba(5, 5, 8, 0.97);
	backdrop-filter: blur(22px);
	-webkit-backdrop-filter: blur(22px);
	padding: 1.5rem var(--mw-gutter) 2.5rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-10px);
	transition: opacity var(--mw-mid) var(--mw-ease), transform var(--mw-mid) var(--mw-ease), visibility var(--mw-mid);
}
.mw-drawer.is-open {
	opacity: 1;
	visibility: visible;
	transform: none;
}
.admin-bar .mw-drawer {
	top: calc(var(--mw-header-h) + 32px);
}
.mw-drawer ul {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
}
.mw-drawer li {
	margin: 0;
	border-bottom: 1px solid var(--mw-line-soft);
}
.mw-drawer a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 0.25rem;
	font-family: var(--mw-font-display);
	font-size: 1.22rem;
	font-weight: 600;
	letter-spacing: -0.025em;
	color: var(--mw-ink);
}
.mw-drawer ul ul {
	margin: 0 0 0.75rem 0.9rem;
	border-left: 1px solid var(--mw-line-soft);
	padding-left: 0.9rem;
}
.mw-drawer ul ul li {
	border: 0;
}
.mw-drawer ul ul a {
	font-family: var(--mw-font-text);
	font-size: 1rem;
	font-weight: 500;
	color: var(--mw-muted);
	padding: 0.55rem 0;
}
.mw-drawer__foot {
	display: grid;
	gap: 0.7rem;
}
.mw-drawer__meta {
	margin-top: 1.75rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--mw-line-soft);
	font-size: 0.9rem;
	color: var(--mw-muted);
	display: grid;
	gap: 0.5rem;
}
.mw-drawer__meta a {
	font-family: var(--mw-font-text);
	font-size: 0.95rem;
	font-weight: 500;
	padding: 0;
	color: var(--mw-violet-soft);
	display: inline;
}

/* ------------------- Barre d'action mobile (CTA toujours à portée) ------- */
.mw-dock {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 880;
	display: none;
	gap: 0.6rem;
	padding: 0.7rem var(--mw-gutter) calc(0.7rem + env(safe-area-inset-bottom));
	background: rgba(7, 7, 12, 0.9);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border-top: 1px solid var(--mw-line-soft);
	transform: translateY(110%);
	transition: transform var(--mw-slow) var(--mw-ease);
}
.mw-dock.is-on {
	transform: none;
}
.mw-dock .mw-btn {
	flex: 1;
	padding-block: 0.95rem;
	font-size: 0.925rem;
}

/* ================================ HERO ================================== */
.mw-hero {
	position: relative;
	min-height: min(100svh, 920px);
	display: flex;
	align-items: center;
	padding-top: calc(var(--mw-header-h) + clamp(2rem, 6vw, 4.5rem));
	padding-bottom: clamp(3rem, 7vw, 5.5rem);
	overflow: hidden;
	isolation: isolate;
}

.mw-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background: radial-gradient(120% 80% at 50% -10%, rgba(108, 75, 255, 0.22), transparent 58%),
		radial-gradient(90% 60% at 85% 15%, rgba(34, 211, 238, 0.1), transparent 60%), var(--mw-bg);
}
.mw-hero__bg .mw-aura--violet {
	width: 640px;
	height: 640px;
	top: -18%;
	left: -12%;
	animation: mw-drift 22s var(--mw-ease) infinite alternate;
}
.mw-hero__bg .mw-aura--cyan {
	width: 520px;
	height: 520px;
	right: -10%;
	bottom: -22%;
	animation: mw-drift 27s var(--mw-ease) infinite alternate-reverse;
}

@keyframes mw-drift {
	from {
		transform: translate3d(0, 0, 0) scale(1);
	}
	to {
		transform: translate3d(55px, -45px, 0) scale(1.13);
	}
}

/* Faisceau lumineux qui balaie lentement le haut de page. */
.mw-hero__beam {
	position: absolute;
	top: -35%;
	left: 50%;
	width: 140%;
	height: 70%;
	margin-left: -70%;
	pointer-events: none;
	background: conic-gradient(
		from 180deg at 50% 50%,
		transparent 0deg,
		rgba(108, 75, 255, 0.14) 60deg,
		transparent 130deg,
		rgba(34, 211, 238, 0.1) 240deg,
		transparent 320deg
	);
	filter: blur(40px);
	animation: mw-sweep 34s linear infinite;
	z-index: 0;
}
@keyframes mw-sweep {
	to {
		transform: rotate(360deg);
	}
}

.mw-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(2rem, 5vw, 4rem);
	width: 100%;
}

/* ------------------------------ Discours -------------------------------- */
.mw-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.45rem 1rem 0.45rem 0.5rem;
	border-radius: var(--mw-r-pill);
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid var(--mw-line);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--mw-ink-2);
	margin-bottom: 1.5rem;
	line-height: 1;
}
.mw-hero__badge i {
	position: relative;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--mw-cyan);
	flex: none;
	margin-left: 0.35rem;
}
.mw-hero__badge i::after {
	content: "";
	position: absolute;
	inset: -4px;
	border-radius: 50%;
	border: 1px solid var(--mw-cyan);
	opacity: 0;
	animation: mw-ping 2.6s var(--mw-ease) infinite;
}
@keyframes mw-ping {
	0% {
		transform: scale(0.6);
		opacity: 0.9;
	}
	70%,
	100% {
		transform: scale(1.9);
		opacity: 0;
	}
}

.mw-hero h1 {
	/* Plus contenu que le H1 global : la colonne de gauche ne fait que la
	   moitié de la largeur, un titre trop grand y part en cinq lignes. */
	font-size: clamp(2.25rem, 4.25vw, 4rem);
	margin-bottom: 1.35rem;
	max-width: 15ch;
}
.mw-hero__lead {
	font-size: var(--mw-lead);
	color: var(--mw-muted);
	line-height: 1.62;
	max-width: 46ch;
	margin-bottom: 2rem;
}

/* Bandeau de réassurance sous les boutons */
.mw-hero__trust {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem 1.4rem;
	margin-top: 2.15rem;
	padding-top: 1.6rem;
	border-top: 1px solid var(--mw-line-soft);
	font-size: 0.875rem;
	color: var(--mw-faint);
}
.mw-hero__trust span {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}
.mw-hero__trust svg {
	width: 15px;
	height: 15px;
	color: var(--mw-violet-soft);
	flex: none;
}

/* =========================== Scène 3D du HERO =========================== */
.mw-scene {
	position: relative;
	perspective: 1500px;
	perspective-origin: 50% 45%;
	aspect-ratio: 1 / 1;
	width: 100%;
}

.mw-stage {
	--rx: 0deg;
	--ry: 0deg;
	--px: 0;
	--py: 0;
	position: absolute;
	inset: 0;
	transform-style: preserve-3d;
	transform: rotateX(var(--rx)) rotateY(var(--ry));
	transition: transform 480ms var(--mw-ease-out);
}

.mw-stage > * {
	position: absolute;
	transform-style: preserve-3d;
}

/* -- Fenêtre de navigateur, l'objet central -- */
.mw-browser {
	left: 2%;
	top: 17%;
	width: 88%;
	border-radius: 14px;
	overflow: hidden;
	background: linear-gradient(165deg, #15151f, #0b0b12);
	border: 1px solid rgba(255, 255, 255, 0.13);
	box-shadow: 0 50px 90px -40px rgba(0, 0, 0, 1), 0 0 0 1px rgba(108, 75, 255, 0.16),
		0 0 90px -30px rgba(108, 75, 255, 0.55);
	transform: translate3d(calc(var(--px) * 8px), calc(var(--py) * 8px), 0px);
	animation: mw-hover-a 9s var(--mw-ease) infinite alternate;
}
.mw-browser__bar {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 0.8rem;
	background: rgba(255, 255, 255, 0.045);
	border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.mw-browser__dots {
	display: flex;
	gap: 5px;
	flex: none;
}
.mw-browser__dots i {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
}
.mw-browser__dots i:first-child {
	background: rgba(251, 113, 133, 0.65);
}
.mw-browser__dots i:nth-child(2) {
	background: rgba(251, 191, 36, 0.6);
}
.mw-browser__dots i:nth-child(3) {
	background: rgba(52, 211, 153, 0.6);
}
.mw-browser__url {
	flex: 1;
	height: 20px;
	border-radius: var(--mw-r-pill);
	background: rgba(255, 255, 255, 0.06);
	display: flex;
	align-items: center;
	padding: 0 0.6rem;
	font-family: var(--mw-font-mono);
	font-size: 9px;
	color: var(--mw-faint);
	letter-spacing: 0.02em;
	overflow: hidden;
	white-space: nowrap;
}
.mw-browser__url::before {
	content: "";
	width: 7px;
	height: 7px;
	margin-right: 5px;
	flex: none;
	border-radius: 1px;
	border: 1px solid var(--mw-ok);
	border-bottom-width: 3px;
}
.mw-browser__body {
	position: relative;
	padding: 0.95rem;
	display: grid;
	gap: 0.65rem;
	background: radial-gradient(120% 100% at 20% 0%, rgba(108, 75, 255, 0.14), transparent 62%);
}
/* Reflet qui glisse sur l'écran */
.mw-browser__body::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, 0.07) 48%, transparent 60%);
	transform: translateX(-120%);
	animation: mw-sheen 7s var(--mw-ease) infinite;
	pointer-events: none;
}
@keyframes mw-sheen {
	0%,
	62% {
		transform: translateX(-120%);
	}
	88%,
	100% {
		transform: translateX(120%);
	}
}

/* Faux contenu du site présenté à l'écran */
.mw-mini-nav {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	margin-bottom: 0.2rem;
}
.mw-mini-nav b {
	width: 26px;
	height: 7px;
	border-radius: 2px;
	background: var(--mw-grad);
	flex: none;
}
.mw-mini-nav i {
	width: 16px;
	height: 4px;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.14);
}
.mw-mini-nav u {
	margin-left: auto;
	width: 30px;
	height: 11px;
	border-radius: var(--mw-r-pill);
	background: rgba(108, 75, 255, 0.55);
}
.mw-mini-hero {
	display: grid;
	gap: 0.32rem;
	padding: 0.55rem 0 0.35rem;
}
.mw-mini-hero b {
	height: 11px;
	width: 82%;
	border-radius: 3px;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.85), rgba(255, 255, 255, 0.35));
}
.mw-mini-hero b + b {
	width: 58%;
}
.mw-mini-hero i {
	height: 5px;
	width: 68%;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.16);
	margin-top: 2px;
}
.mw-mini-hero u {
	width: 52px;
	height: 15px;
	border-radius: var(--mw-r-pill);
	background: var(--mw-grad);
	margin-top: 5px;
	box-shadow: 0 4px 14px -4px rgba(108, 75, 255, 0.9);
}
.mw-mini-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.45rem;
	margin-top: 0.3rem;
}
.mw-mini-cards div {
	height: 42px;
	border-radius: 7px;
	background: rgba(255, 255, 255, 0.055);
	border: 1px solid rgba(255, 255, 255, 0.07);
	padding: 6px;
	display: grid;
	gap: 4px;
	align-content: start;
}
.mw-mini-cards div::before {
	content: "";
	width: 13px;
	height: 13px;
	border-radius: 4px;
	background: rgba(108, 75, 255, 0.5);
}
.mw-mini-cards div::after {
	content: "";
	height: 3px;
	width: 72%;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.16);
}
.mw-mini-cards div:nth-child(2)::before {
	background: rgba(59, 107, 255, 0.5);
}
.mw-mini-cards div:nth-child(3)::before {
	background: rgba(34, 211, 238, 0.5);
}

/* -- Téléphone flottant -- */
.mw-phone {
	right: 0;
	bottom: 4%;
	width: 23%;
	aspect-ratio: 9 / 18.5;
	border-radius: 18px;
	padding: 5px;
	background: linear-gradient(160deg, #24243a, #0c0c14);
	border: 1px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 40px 70px -30px rgba(0, 0, 0, 1), 0 0 60px -22px rgba(34, 211, 238, 0.5);
	transform: translate3d(calc(var(--px) * 26px), calc(var(--py) * 26px), 110px);
	animation: mw-hover-b 7.5s var(--mw-ease) infinite alternate;
}
.mw-phone__screen {
	height: 100%;
	border-radius: 13px;
	background: linear-gradient(175deg, rgba(108, 75, 255, 0.3), rgba(11, 11, 18, 1) 42%);
	padding: 14px 7px 7px;
	display: grid;
	gap: 5px;
	align-content: start;
	overflow: hidden;
	position: relative;
}
.mw-phone__screen::before {
	content: "";
	position: absolute;
	top: 5px;
	left: 50%;
	width: 26%;
	height: 4px;
	margin-left: -13%;
	border-radius: 3px;
	background: rgba(255, 255, 255, 0.22);
}
.mw-phone__screen b {
	height: 7px;
	width: 74%;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.7);
}
.mw-phone__screen i {
	height: 3.5px;
	width: 90%;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.15);
}
.mw-phone__screen u {
	height: 13px;
	width: 66%;
	border-radius: var(--mw-r-pill);
	background: var(--mw-grad);
	margin-top: 3px;
}
.mw-phone__screen s {
	height: 30px;
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.07);
	margin-top: 4px;
}

/* -- Cartes d'interface en lévitation -- */
.mw-float {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.6rem 0.85rem;
	border-radius: 13px;
	background: rgba(18, 18, 27, 0.82);
	border: 1px solid rgba(255, 255, 255, 0.14);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	box-shadow: 0 26px 50px -26px rgba(0, 0, 0, 1);
	font-family: var(--mw-font-display);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--mw-ink);
	white-space: nowrap;
}
.mw-float svg {
	width: 16px;
	height: 16px;
	flex: none;
}
.mw-float small {
	display: block;
	font-family: var(--mw-font-text);
	font-size: 0.66rem;
	font-weight: 400;
	color: var(--mw-faint);
	letter-spacing: 0;
	line-height: 1.3;
}

.mw-float--a {
	top: 6%;
	left: -4%;
	color: var(--mw-violet-soft);
	transform: translate3d(calc(var(--px) * 40px), calc(var(--py) * 40px), 170px);
	animation: mw-hover-b 6.5s var(--mw-ease) infinite alternate;
}
.mw-float--b {
	top: 31%;
	right: -3%;
	color: var(--mw-cyan-soft);
	transform: translate3d(calc(var(--px) * 34px), calc(var(--py) * 34px), 145px);
	animation: mw-hover-a 8s var(--mw-ease) infinite alternate-reverse;
}
.mw-float--c {
	bottom: 14%;
	left: -6%;
	transform: translate3d(calc(var(--px) * 46px), calc(var(--py) * 46px), 195px);
	animation: mw-hover-c 7s var(--mw-ease) infinite alternate;
}

/* Petite courbe décorative dans la carte « Conversion » */
.mw-spark {
	width: 46px;
	height: 20px;
	flex: none;
}
.mw-spark path {
	fill: none;
	stroke: url(#mwSparkGrad);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-dasharray: 120;
	stroke-dashoffset: 120;
	animation: mw-draw 3.6s var(--mw-ease) infinite;
}
@keyframes mw-draw {
	0% {
		stroke-dashoffset: 120;
	}
	45%,
	80% {
		stroke-dashoffset: 0;
	}
	100% {
		stroke-dashoffset: -120;
	}
}

/* -- Anneau orbital derrière la scène -- */
.mw-orbit {
	inset: 8%;
	border-radius: 50%;
	border: 1px dashed rgba(167, 139, 250, 0.22);
	transform: rotateX(72deg) translateZ(-70px);
	animation: mw-spin 30s linear infinite;
	pointer-events: none;
}
.mw-orbit::after {
	content: "";
	position: absolute;
	top: -4px;
	left: 50%;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--mw-cyan);
	box-shadow: 0 0 16px 3px rgba(34, 211, 238, 0.8);
}
@keyframes mw-spin {
	to {
		transform: rotateX(72deg) translateZ(-70px) rotate(360deg);
	}
}

@keyframes mw-hover-a {
	from {
		translate: 0 -6px;
	}
	to {
		translate: 0 8px;
	}
}
@keyframes mw-hover-b {
	from {
		translate: 0 9px;
	}
	to {
		translate: 0 -7px;
	}
}
@keyframes mw-hover-c {
	from {
		translate: -4px 5px;
	}
	to {
		translate: 4px -6px;
	}
}

/* Indicateur de défilement */
.mw-scrollcue {
	position: absolute;
	left: 50%;
	bottom: 1.75rem;
	transform: translateX(-50%);
	z-index: 2;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--mw-faint);
	font-family: var(--mw-font-display);
	font-weight: 600;
}
.mw-scrollcue i {
	width: 1px;
	height: 34px;
	background: linear-gradient(to bottom, var(--mw-violet-soft), transparent);
	animation: mw-cue 2.2s var(--mw-ease) infinite;
}
@keyframes mw-cue {
	0%,
	100% {
		opacity: 0.3;
		transform: scaleY(0.6);
		transform-origin: top;
	}
	50% {
		opacity: 1;
		transform: scaleY(1);
		transform-origin: top;
	}
}

/* ====================== Bandeau « preuve de valeur » ==================== */
.mw-statement {
	position: relative;
	border-top: 1px solid var(--mw-line-soft);
	border-bottom: 1px solid var(--mw-line-soft);
	background: linear-gradient(180deg, rgba(108, 75, 255, 0.05), transparent);
}
.mw-statement__line {
	font-family: var(--mw-font-display);
	font-size: clamp(1.55rem, 3.6vw, 2.85rem);
	font-weight: 700;
	letter-spacing: -0.04em;
	line-height: 1.12;
	text-align: center;
	max-width: 20ch;
	margin: 0 auto clamp(2.5rem, 5vw, 3.75rem);
}

.mw-pillars {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}
.mw-pillar {
	padding: 1.6rem 1.4rem;
}
.mw-pillar h3 {
	font-size: 1.08rem;
	margin-bottom: 0.4rem;
}
.mw-pillar p {
	font-size: 0.925rem;
	margin: 0;
}

/* ============================== Services ================================ */
.mw-services {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}
.mw-service {
	display: flex;
	flex-direction: column;
	min-height: 100%;
}
.mw-service__link {
	margin-top: auto;
	padding-top: 1.25rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--mw-font-display);
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--mw-violet-soft);
}
.mw-service__link svg {
	width: 14px;
	height: 14px;
	transition: transform var(--mw-mid) var(--mw-ease);
}
.mw-service:hover .mw-service__link svg {
	transform: translateX(4px);
}
/* Rend toute la carte cliquable sans casser la sémantique du lien */
.mw-service__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
}

/* ============================ Réalisations ============================== */
.mw-projects {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.6rem);
}
.mw-project {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow: hidden;
}
.mw-project__visual {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: radial-gradient(110% 90% at 30% 0%, rgba(108, 75, 255, 0.28), transparent 62%), #0a0a11;
	border-bottom: 1px solid var(--mw-line-soft);
	display: grid;
	place-items: center;
	padding: clamp(1.3rem, 3vw, 2.2rem) clamp(1.3rem, 3vw, 2.2rem) 0;
}
.mw-project__visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	transition: transform var(--mw-slow) var(--mw-ease);
}
.mw-project:hover .mw-project__visual img {
	transform: scale(1.035);
}

/* Maquette d'ordinateur portable dessinée en CSS (aucune image à charger) */
.mw-laptop {
	width: 100%;
	transform: perspective(900px) rotateX(6deg);
	transition: transform var(--mw-slow) var(--mw-ease);
}
.mw-project:hover .mw-laptop {
	transform: perspective(900px) rotateX(2deg) translateY(-6px);
}
.mw-laptop__screen {
	border-radius: 10px 10px 3px 3px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-bottom: 0;
	background: linear-gradient(165deg, #16161f, #09090f);
	padding: 7px 7px 0;
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 1);
}
/* La maquette est dessinée en proportions, pas en pixels : le faux contenu
   remplit l'écran quelle que soit la largeur de la carte. */
.mw-laptop__inner {
	border-radius: 5px;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: #0b0b12;
	display: grid;
	grid-template-rows: 7% 4% 4% 9% 1fr;
	gap: 3.5%;
	padding: 6% 6.5%;
}
.mw-laptop__base {
	height: 8px;
	border-radius: 0 0 9px 9px;
	background: linear-gradient(180deg, #2a2a3c, #14141d);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-top: 0;
	margin: 0 -3%;
	position: relative;
}
.mw-laptop__base::after {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 16%;
	height: 3px;
	margin-left: -8%;
	border-radius: 0 0 4px 4px;
	background: rgba(255, 255, 255, 0.14);
}
.mw-skel-h {
	border-radius: 3px;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.25));
	width: 70%;
}
.mw-skel-t {
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.14);
	width: 88%;
	align-self: center;
	height: 45%;
}
.mw-skel-t.is-short {
	width: 55%;
}
.mw-skel-b {
	width: 26%;
	border-radius: var(--mw-r-pill);
	background: var(--mw-grad);
	align-self: center;
	height: 78%;
	box-shadow: 0 6px 16px -6px rgba(108, 75, 255, 0.9);
}
.mw-skel-row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 4%;
}
.mw-skel-row span {
	border-radius: 5px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.07);
}

.mw-project__body {
	padding: clamp(1.35rem, 2.4vw, 1.85rem);
	display: flex;
	flex-direction: column;
	flex: 1;
}
.mw-project__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-bottom: 0.9rem;
}
.mw-project h3 {
	margin-bottom: 0.55rem;
}
.mw-project__goal {
	font-size: 0.95rem;
	color: var(--mw-muted);
	margin-bottom: 1.1rem;
}
.mw-project__foot {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 1.1rem;
	border-top: 1px solid var(--mw-line-soft);
	font-size: 0.875rem;
	color: var(--mw-faint);
}
.mw-project__foot a {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-family: var(--mw-font-display);
	font-weight: 600;
	text-align: right;
}
.mw-projects__note {
	margin-top: 1.5rem;
	font-size: 0.88rem;
	color: var(--mw-faint);
	text-align: center;
}

/* ============================ Avant / Après ============================= */
.mw-ba {
	position: relative;
	border-radius: var(--mw-r-xl);
	overflow: hidden;
	border: 1px solid var(--mw-line);
	background: #0a0a11;
	box-shadow: var(--mw-shadow-lg);
	user-select: none;
	touch-action: pan-y;
}
.mw-ba__pane {
	position: relative;
	/* Proche des proportions d'un écran de bureau : avec un cadre trop haut,
	   les deux maquettes laissent de grandes zones vides. */
	aspect-ratio: 16 / 8.4;
	min-height: 300px;
}
.mw-ba__side {
	position: absolute;
	inset: 0;
	padding: clamp(1.1rem, 3vw, 2.4rem);
	overflow: hidden;
}
.mw-ba__side--after {
	clip-path: inset(0 0 0 var(--mw-split, 50%));
}
.mw-ba__side--before {
	clip-path: inset(0 calc(100% - var(--mw-split, 50%)) 0 0);
}
.mw-ba__label {
	position: absolute;
	top: 1rem;
	z-index: 4;
	font-family: var(--mw-font-display);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.4rem 0.8rem;
	border-radius: var(--mw-r-pill);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.mw-ba__label--before {
	left: 1rem;
	background: rgba(0, 0, 0, 0.6);
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: var(--mw-muted);
}
.mw-ba__label--after {
	right: 1rem;
	background: rgba(108, 75, 255, 0.28);
	border: 1px solid rgba(167, 139, 250, 0.5);
	color: #fff;
}

/* Poignée */
.mw-ba__handle {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--mw-split, 50%);
	width: 2px;
	margin-left: -1px;
	background: linear-gradient(to bottom, transparent, var(--mw-violet-soft) 14%, var(--mw-cyan) 86%, transparent);
	z-index: 6;
	cursor: ew-resize;
}
.mw-ba__grip {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 46px;
	height: 46px;
	margin: -23px 0 0 -23px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: rgba(12, 12, 20, 0.92);
	border: 1px solid rgba(167, 139, 250, 0.6);
	box-shadow: 0 0 28px -4px rgba(108, 75, 255, 0.9);
	color: var(--mw-ink);
	cursor: ew-resize;
	transition: transform var(--mw-mid) var(--mw-ease);
}
.mw-ba__grip:hover,
.mw-ba__grip:focus-visible {
	transform: scale(1.1);
}
.mw-ba__grip svg {
	width: 20px;
	height: 20px;
	pointer-events: none;
}
.mw-ba__range {
	position: absolute;
	inset: auto 0 0 0;
	z-index: 7;
	width: 100%;
	opacity: 0;
	height: 44px;
	margin: 0;
	cursor: ew-resize;
}
.mw-ba__range:focus-visible + .mw-ba__handle .mw-ba__grip {
	outline: 2px solid var(--mw-cyan);
	outline-offset: 3px;
}

/* Rendu du « site vieillissant » */
.mw-old {
	height: 100%;
	display: flex;
	flex-direction: column;
	background: #e9e9e6;
	border-radius: 8px;
	padding: 0.9rem 1.1rem;
	font-family: "Times New Roman", Times, serif;
	color: #1b1b1b;
	overflow: hidden;
}
.mw-old__body {
	flex: 1;
}
.mw-old__links {
	margin: 0.5rem 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1rem;
	font-family: Verdana, Geneva, sans-serif;
	font-size: clamp(0.66rem, 1.3vw, 0.78rem);
}
.mw-old__links li {
	margin: 0;
}
.mw-old__links span {
	color: #2c4a86;
	text-decoration: underline;
}
.mw-old__bar {
	background: #2c4a86;
	color: #fff;
	font-size: 0.78rem;
	padding: 0.4rem 0.6rem;
	margin: -0.9rem -1.1rem 0.7rem;
	display: flex;
	gap: 0.9rem;
	flex-wrap: wrap;
	font-family: Verdana, Geneva, sans-serif;
}
.mw-old__bar span:first-child {
	font-weight: bold;
	text-decoration: underline;
}
.mw-old h4 {
	font-family: "Times New Roman", Times, serif;
	color: #8b1a1a;
	font-size: clamp(1rem, 2.2vw, 1.4rem);
	margin: 0 0 0.4rem;
	letter-spacing: 0;
	text-shadow: 1px 1px 0 #ccc;
}
.mw-old p {
	color: #333;
	font-size: clamp(0.72rem, 1.5vw, 0.86rem);
	line-height: 1.45;
	margin-bottom: 0.6rem;
}
.mw-old__img {
	width: 32%;
	aspect-ratio: 4/3;
	float: left;
	margin: 0 0.7rem 0.4rem 0;
	background: repeating-linear-gradient(45deg, #cfcfcf, #cfcfcf 8px, #c2c2c2 8px, #c2c2c2 16px);
	border: 2px ridge #999;
	display: grid;
	place-items: center;
	font-size: 0.65rem;
	color: #666;
	font-family: Verdana, sans-serif;
}
.mw-old__btn {
	display: inline-block;
	background: linear-gradient(#f7f7f7, #d8d8d8);
	border: 2px outset #bbb;
	padding: 0.2rem 0.7rem;
	font-size: 0.75rem;
	font-family: Verdana, sans-serif;
	color: #222;
}
.mw-old__foot {
	clear: both;
	margin-top: 0.6rem;
	padding-top: 0.4rem;
	border-top: 1px solid #bbb;
	font-size: 0.62rem;
	color: #777;
	font-family: Verdana, sans-serif;
}

/* Rendu du « site refait » */
.mw-new {
	height: 100%;
	border-radius: 10px;
	padding: 1rem 1.2rem;
	background: linear-gradient(165deg, #101019, #07070c);
	border: 1px solid rgba(255, 255, 255, 0.1);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	position: relative;
}
.mw-new::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(90% 70% at 80% 0%, rgba(108, 75, 255, 0.3), transparent 62%);
	pointer-events: none;
}
.mw-new__bar {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--mw-font-display);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--mw-muted);
	margin-bottom: auto;
	position: relative;
}
.mw-new__bar b {
	color: var(--mw-ink);
	font-size: 0.9rem;
	letter-spacing: -0.02em;
}
.mw-new__bar u {
	margin-left: auto;
	text-decoration: none;
	padding: 0.3rem 0.7rem;
	border-radius: var(--mw-r-pill);
	background: var(--mw-grad);
	color: #fff;
	font-size: 0.68rem;
}

/* Le contenu occupe toute la largeur : quelle que soit la position du
   curseur, la moitié visible montre quelque chose de parlant. */
.mw-new__body {
	position: relative;
	flex: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(0.8rem, 2vw, 1.8rem);
	align-items: center;
	padding: clamp(0.6rem, 2vw, 1.4rem) 0;
}
.mw-new h4 {
	position: relative;
	font-size: clamp(1.05rem, 2.5vw, 1.7rem);
	letter-spacing: -0.035em;
	line-height: 1.08;
	margin: 0 0 0.5rem;
}
.mw-new p {
	position: relative;
	font-size: clamp(0.72rem, 1.3vw, 0.86rem);
	color: var(--mw-muted);
	margin-bottom: 0.85rem;
}

/* Colonne de droite : un empilement de cartes d'interface. */
.mw-new__stack {
	display: grid;
	gap: 0.5rem;
}
.mw-new__stack div {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.6rem 0.7rem;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.09);
	font-size: clamp(0.62rem, 1.1vw, 0.76rem);
	color: var(--mw-ink-2);
}
.mw-new__stack div::before {
	content: "";
	flex: none;
	width: 22px;
	height: 22px;
	border-radius: 7px;
	background: linear-gradient(140deg, rgba(108, 75, 255, 0.6), rgba(34, 211, 238, 0.4));
}
.mw-new__stack div:nth-child(2)::before {
	background: linear-gradient(140deg, rgba(59, 107, 255, 0.6), rgba(108, 75, 255, 0.4));
}
.mw-new__stack div:nth-child(3)::before {
	background: linear-gradient(140deg, rgba(34, 211, 238, 0.55), rgba(59, 107, 255, 0.4));
}
.mw-new__stack b {
	display: block;
	color: var(--mw-ink);
	font-family: var(--mw-font-display);
	font-weight: 600;
	letter-spacing: -0.01em;
}
.mw-new__cta {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	align-self: flex-start;
	padding: 0.5rem 1rem;
	border-radius: var(--mw-r-pill);
	background: var(--mw-grad);
	color: #fff;
	font-family: var(--mw-font-display);
	font-size: 0.78rem;
	font-weight: 600;
	box-shadow: 0 10px 24px -10px rgba(108, 75, 255, 0.9);
}
.mw-new__tiles {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.45rem;
	padding-top: 0.9rem;
	border-top: 1px solid rgba(255, 255, 255, 0.07);
}
.mw-new__tiles span {
	padding: 0.45rem 0.5rem;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.08);
	font-size: 0.62rem;
	color: var(--mw-ink-2);
	font-family: var(--mw-font-display);
	font-weight: 600;
	text-align: center;
}

.mw-ba__caption {
	margin-top: 1.5rem;
	text-align: center;
	font-size: var(--mw-lead);
	color: var(--mw-muted);
	max-width: 62ch;
	margin-inline: auto;
}

/* ============================ Méthode / Timeline ======================== */
.mw-steps {
	position: relative;
	display: grid;
	gap: 0;
	counter-reset: mwstep;
}
.mw-steps::before {
	content: "";
	position: absolute;
	left: 27px;
	top: 12px;
	bottom: 12px;
	width: 1px;
	background: var(--mw-line);
}
.mw-steps__fill {
	position: absolute;
	left: 27px;
	top: 12px;
	width: 1px;
	height: 0;
	background: linear-gradient(to bottom, var(--mw-violet), var(--mw-cyan));
	box-shadow: 0 0 12px rgba(108, 75, 255, 0.8);
	transition: height 420ms var(--mw-ease-out);
	z-index: 1;
}
.mw-step {
	position: relative;
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	gap: 1.5rem;
	padding-block: clamp(1.15rem, 2.4vw, 1.7rem);
	align-items: start;
}
.mw-step + .mw-step {
	border-top: 1px solid var(--mw-line-soft);
}
.mw-step__dot {
	position: relative;
	z-index: 2;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--mw-bg);
	border: 1px solid var(--mw-line);
	font-family: var(--mw-font-display);
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--mw-faint);
	letter-spacing: -0.02em;
	transition: color var(--mw-slow) var(--mw-ease), border-color var(--mw-slow) var(--mw-ease),
		box-shadow var(--mw-slow) var(--mw-ease), background-color var(--mw-slow) var(--mw-ease);
}
.mw-step.is-in .mw-step__dot {
	color: #fff;
	border-color: rgba(167, 139, 250, 0.6);
	background: rgba(108, 75, 255, 0.2);
	box-shadow: 0 0 0 4px rgba(108, 75, 255, 0.09), 0 0 26px -6px rgba(108, 75, 255, 0.9);
}
.mw-step h3 {
	margin-bottom: 0.35rem;
}
.mw-step p {
	color: var(--mw-muted);
	margin: 0;
	max-width: 60ch;
}
.mw-step__aside {
	margin-top: 0.7rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

/* ================================ Tarifs ================================ */
.mw-plans {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
	align-items: stretch;
}
.mw-plan {
	display: flex;
	flex-direction: column;
	padding: clamp(1.5rem, 2.2vw, 1.9rem);
}
.mw-plan--featured {
	background: linear-gradient(180deg, rgba(108, 75, 255, 0.16), rgba(255, 255, 255, 0.02));
	border-color: rgba(167, 139, 250, 0.42);
	box-shadow: 0 0 0 1px rgba(108, 75, 255, 0.18), 0 34px 80px -34px rgba(108, 75, 255, 0.6);
}
.mw-plan--featured::after {
	opacity: 1;
}
.mw-plan__flag {
	position: absolute;
	top: 1rem;
	right: 1rem;
	z-index: 3;
}
.mw-plan h3 {
	font-size: 1.2rem;
	margin-bottom: 0.3rem;
}
.mw-plan__for {
	font-size: 0.88rem;
	color: var(--mw-muted);
	margin-bottom: 1.35rem;
	min-height: 2.6em;
}
.mw-plan__price {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
	flex-wrap: wrap;
	padding-bottom: 1.3rem;
	margin-bottom: 1.3rem;
	border-bottom: 1px solid var(--mw-line-soft);
}
.mw-plan__from {
	font-size: 0.78rem;
	color: var(--mw-faint);
	width: 100%;
	margin-bottom: 0.15rem;
	font-family: var(--mw-font-display);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.mw-plan__amount {
	font-family: var(--mw-font-display);
	font-size: clamp(2rem, 3.4vw, 2.6rem);
	font-weight: 700;
	letter-spacing: -0.045em;
	line-height: 1;
	color: var(--mw-ink);
}
.mw-plan--featured .mw-plan__amount {
	background: var(--mw-grad-text);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.mw-plan__unit {
	width: 100%;
	font-size: 0.85rem;
	color: var(--mw-faint);
}
.mw-plan .mw-checks {
	margin-bottom: 1.6rem;
}
.mw-plan__cta {
	margin-top: auto;
}
.mw-plans__note {
	margin-top: 1.5rem;
	font-size: 0.88rem;
	color: var(--mw-faint);
	text-align: center;
	max-width: 70ch;
	margin-inline: auto;
}

/* ============================== Comparatif ============================== */
.mw-versus {
	border-radius: var(--mw-r-xl);
	border: 1px solid var(--mw-line);
	overflow: hidden;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent);
}
.mw-versus__head,
.mw-versus__row {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: 1rem;
	padding: 1.05rem clamp(1.1rem, 2.4vw, 1.9rem);
}
.mw-versus__head {
	background: rgba(255, 255, 255, 0.04);
	border-bottom: 1px solid var(--mw-line);
	font-family: var(--mw-font-display);
	font-weight: 600;
	font-size: 0.95rem;
	letter-spacing: -0.015em;
}
.mw-versus__head span:nth-child(3) {
	color: var(--mw-violet-soft);
}
.mw-versus__row + .mw-versus__row,
.mw-versus__row {
	border-top: 1px solid var(--mw-line-soft);
	transition: background-color var(--mw-mid) var(--mw-ease);
}
.mw-versus__row:hover {
	background: rgba(255, 255, 255, 0.025);
}
.mw-versus__crit {
	font-weight: 500;
	color: var(--mw-ink);
	font-size: 0.97rem;
}
.mw-versus__old,
.mw-versus__new {
	font-size: 0.93rem;
	line-height: 1.45;
}
/* Icône et texte sur la même ligne, à toutes les largeurs. */
.mw-versus__old > span:last-child,
.mw-versus__new > span:last-child {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
}
.mw-versus__old {
	color: var(--mw-faint);
}
.mw-versus__new {
	color: var(--mw-ink);
}
.mw-versus__old svg,
.mw-versus__new svg {
	width: 17px;
	height: 17px;
	flex: none;
	margin-top: 0.15em;
}
.mw-versus__old svg {
	color: #7c7f93;
}
.mw-versus__new svg {
	color: var(--mw-cyan);
}
.mw-versus__label {
	display: none;
	font-family: var(--mw-font-display);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--mw-faint);
	margin-bottom: 0.25rem;
}

/* ============================== Confiance =============================== */
.mw-trust {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 0.9rem;
}
.mw-trust__item {
	display: flex;
	align-items: flex-start;
	gap: 0.8rem;
	padding: 1.1rem 1.2rem;
	border-radius: var(--mw-r);
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid var(--mw-line-soft);
	transition: border-color var(--mw-mid) var(--mw-ease), background-color var(--mw-mid) var(--mw-ease);
}
.mw-trust__item:hover {
	border-color: var(--mw-line-strong);
	background: rgba(255, 255, 255, 0.05);
}
.mw-trust__item svg {
	width: 20px;
	height: 20px;
	flex: none;
	color: var(--mw-violet-soft);
	margin-top: 0.15em;
}
.mw-trust__item b {
	display: block;
	font-family: var(--mw-font-display);
	font-size: 0.97rem;
	font-weight: 600;
	letter-spacing: -0.015em;
	margin-bottom: 0.15rem;
}
.mw-trust__item span {
	font-size: 0.87rem;
	color: var(--mw-muted);
	line-height: 1.5;
}

/* ================================= FAQ ================================== */
.mw-faq {
	display: grid;
	gap: 0.65rem;
	max-width: 900px;
	margin-inline: auto;
}
.mw-acc {
	border-radius: var(--mw-r);
	border: 1px solid var(--mw-line-soft);
	background: rgba(255, 255, 255, 0.028);
	overflow: hidden;
	transition: border-color var(--mw-mid) var(--mw-ease), background-color var(--mw-mid) var(--mw-ease);
}
.mw-acc[open],
.mw-acc:hover {
	border-color: var(--mw-line-strong);
	background: rgba(255, 255, 255, 0.045);
}
.mw-acc__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.2rem 1.4rem;
	cursor: pointer;
	list-style: none;
	font-family: var(--mw-font-display);
	font-size: 1.02rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--mw-ink);
	line-height: 1.35;
}
.mw-acc__q::-webkit-details-marker {
	display: none;
}
.mw-acc__q::after {
	content: "";
	flex: none;
	width: 11px;
	height: 11px;
	border: solid var(--mw-violet-soft);
	border-width: 0 1.8px 1.8px 0;
	transform: rotate(45deg) translateY(-3px);
	transition: transform var(--mw-mid) var(--mw-ease);
}
.mw-acc[open] .mw-acc__q::after {
	transform: rotate(-135deg) translateY(-3px);
}
.mw-acc__a {
	padding: 0 1.4rem 1.35rem;
	color: var(--mw-muted);
	font-size: 0.97rem;
	max-width: 74ch;
}
.mw-acc[open] .mw-acc__a {
	animation: mw-fade 320ms var(--mw-ease-out);
}
@keyframes mw-fade {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}
}

/* ============================== CTA final =============================== */
.mw-final {
	position: relative;
	overflow: hidden;
	text-align: center;
	isolation: isolate;
	border-top: 1px solid var(--mw-line-soft);
}
.mw-final__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(80% 120% at 50% 110%, rgba(108, 75, 255, 0.34), transparent 62%),
		radial-gradient(60% 80% at 15% 0%, rgba(34, 211, 238, 0.12), transparent 60%);
}
.mw-final h2 {
	max-width: 22ch;
	margin-inline: auto;
	margin-bottom: 1.1rem;
}
.mw-final p {
	font-size: var(--mw-lead);
	color: var(--mw-muted);
	max-width: 52ch;
	margin: 0 auto 2.25rem;
}
.mw-final__ring {
	position: absolute;
	left: 50%;
	bottom: -46%;
	width: min(780px, 130%);
	aspect-ratio: 1;
	margin-left: min(-390px, -65%);
	border-radius: 50%;
	border: 1px solid rgba(167, 139, 250, 0.18);
	z-index: -1;
	pointer-events: none;
}
.mw-final__ring::before,
.mw-final__ring::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	border: 1px solid rgba(167, 139, 250, 0.12);
}
.mw-final__ring::before {
	inset: 14%;
}
.mw-final__ring::after {
	inset: 28%;
	border-color: rgba(34, 211, 238, 0.14);
}
.mw-final__meta {
	margin-top: 2rem;
	font-size: 0.88rem;
	color: var(--mw-faint);
}
.mw-final__meta a {
	color: var(--mw-ink-2);
	font-weight: 500;
}

/* ============================== Formulaires ============================= */
.mw-form {
	position: relative;
	border-radius: var(--mw-r-xl);
	border: 1px solid var(--mw-line);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.012));
	padding: clamp(1.4rem, 3.2vw, 2.6rem);
	box-shadow: var(--mw-shadow-lg);
	overflow: hidden;
}
.mw-form::before {
	content: "";
	position: absolute;
	top: 0;
	left: 10%;
	right: 10%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(167, 139, 250, 0.7), transparent);
}

/* -------------------------- Barre de progression ------------------------ */
.mw-prog {
	margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}
.mw-prog__meta {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.7rem;
	font-family: var(--mw-font-display);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mw-faint);
}
.mw-prog__meta b {
	color: var(--mw-violet-soft);
}
.mw-prog__track {
	height: 4px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.08);
	overflow: hidden;
}
.mw-prog__bar {
	height: 100%;
	width: 20%;
	border-radius: 4px;
	background: var(--mw-grad);
	box-shadow: 0 0 14px rgba(108, 75, 255, 0.8);
	transition: width var(--mw-slow) var(--mw-ease-out);
}

/* ------------------------------- Étapes --------------------------------- */
.mw-step-panel {
	display: none;
}
.mw-step-panel.is-active {
	display: block;
	animation: mw-slide 340ms var(--mw-ease-out);
}
@keyframes mw-slide {
	from {
		opacity: 0;
		transform: translateX(14px);
	}
}
/* Les questions sont des titres de niveau 2 (le niveau 1 est le titre de la
   page) : la hiérarchie reste correcte pour les lecteurs d'écran, la taille
   est ramenée à celle d'un intertitre. */
.mw-step-titre {
	font-size: clamp(1.3rem, 2.6vw, 1.75rem);
	margin-bottom: 0.4rem;
}
.mw-step-panel .mw-step-hint {
	color: var(--mw-muted);
	font-size: 0.95rem;
	margin-bottom: 1.5rem;
}
.mw-done h2 {
	font-size: clamp(1.35rem, 2.6vw, 1.8rem);
}

/* --------------------------- Choix en cartes ---------------------------- */
.mw-choices {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 0.7rem;
}
.mw-choice {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1.05rem 1.15rem;
	border-radius: var(--mw-r);
	border: 1px solid var(--mw-line);
	background: rgba(255, 255, 255, 0.03);
	cursor: pointer;
	font-size: 0.97rem;
	font-weight: 500;
	color: var(--mw-ink-2);
	transition: border-color var(--mw-fast) var(--mw-ease), background-color var(--mw-fast) var(--mw-ease),
		transform var(--mw-fast) var(--mw-ease), color var(--mw-fast) var(--mw-ease);
	line-height: 1.35;
}
.mw-choice:hover {
	border-color: var(--mw-line-strong);
	background: rgba(255, 255, 255, 0.055);
	transform: translateY(-2px);
}
.mw-choice input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}
.mw-choice__box {
	flex: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 1.5px solid var(--mw-line-strong);
	display: grid;
	place-items: center;
	transition: border-color var(--mw-fast) var(--mw-ease), background-color var(--mw-fast) var(--mw-ease);
}
.mw-choice__box::after {
	content: "";
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: #fff;
	transform: scale(0);
	transition: transform var(--mw-fast) var(--mw-ease);
}
.mw-choice input:checked ~ .mw-choice__box {
	border-color: transparent;
	background: var(--mw-grad);
}
.mw-choice input:checked ~ .mw-choice__box::after {
	transform: scale(1);
}
.mw-choice:has(input:checked) {
	border-color: rgba(167, 139, 250, 0.6);
	background: rgba(108, 75, 255, 0.13);
	color: var(--mw-ink);
}
.mw-choice input:focus-visible ~ .mw-choice__box {
	outline: 2px solid var(--mw-cyan);
	outline-offset: 3px;
}

/* ---------------------------- Champs classiques ------------------------- */
.mw-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}
.mw-field {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}
.mw-field--full {
	grid-column: 1 / -1;
}
.mw-field label {
	font-family: var(--mw-font-display);
	font-size: 0.83rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--mw-ink-2);
}
.mw-field label .mw-req {
	color: var(--mw-violet-soft);
	margin-left: 0.15rem;
}

.mw-input,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="number"],
textarea,
select {
	width: 100%;
	padding: 0.9rem 1.05rem;
	border-radius: var(--mw-r-sm);
	border: 1px solid var(--mw-line);
	background: rgba(0, 0, 0, 0.28);
	color: var(--mw-ink);
	font-family: var(--mw-font-text);
	font-size: 1rem;
	line-height: 1.45;
	transition: border-color var(--mw-fast) var(--mw-ease), box-shadow var(--mw-fast) var(--mw-ease),
		background-color var(--mw-fast) var(--mw-ease);
	-webkit-appearance: none;
	appearance: none;
}
textarea {
	min-height: 130px;
	resize: vertical;
}
select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239296ac' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
	background-size: 18px;
	padding-right: 2.6rem;
}
.mw-input:focus,
input:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: rgba(167, 139, 250, 0.7);
	box-shadow: 0 0 0 3px rgba(108, 75, 255, 0.16);
	background: rgba(0, 0, 0, 0.4);
}
::placeholder {
	color: var(--mw-faint);
	opacity: 1;
}
.mw-field.has-error .mw-input,
.mw-field.has-error input,
.mw-field.has-error textarea {
	border-color: var(--mw-err);
	box-shadow: 0 0 0 3px rgba(251, 113, 133, 0.14);
}
.mw-error {
	font-size: 0.82rem;
	color: var(--mw-err);
}

/* Case de consentement */
.mw-consent {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	font-size: 0.88rem;
	color: var(--mw-muted);
	line-height: 1.55;
	cursor: pointer;
}
.mw-consent input {
	flex: none;
	width: 19px;
	height: 19px;
	margin-top: 0.15em;
	accent-color: var(--mw-violet);
	cursor: pointer;
}

/* Piège à robots — invisible pour l'humain, pas de CAPTCHA intrusif. */
.mw-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* --------------------------- Navigation du formulaire ------------------- */
.mw-form__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.8rem;
	margin-top: 1.8rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--mw-line-soft);
	flex-wrap: wrap;
}
.mw-form__nav .mw-btn--ghost[hidden] {
	display: none;
}
.mw-form__msg {
	margin-top: 1.25rem;
	padding: 1rem 1.15rem;
	border-radius: var(--mw-r);
	font-size: 0.95rem;
	display: none;
}
.mw-form__msg.is-ok {
	display: block;
	background: rgba(52, 211, 153, 0.1);
	border: 1px solid rgba(52, 211, 153, 0.35);
	color: #a7f3d0;
}
.mw-form__msg.is-ko {
	display: block;
	background: rgba(251, 113, 133, 0.1);
	border: 1px solid rgba(251, 113, 133, 0.35);
	color: #fecdd3;
}

/* Récapitulatif avant envoi */
.mw-recap {
	display: grid;
	gap: 0.45rem;
	margin-bottom: 1.4rem;
	padding: 1rem 1.15rem;
	border-radius: var(--mw-r);
	background: rgba(108, 75, 255, 0.08);
	border: 1px solid rgba(167, 139, 250, 0.25);
	font-size: 0.9rem;
}
.mw-recap div {
	display: flex;
	gap: 0.6rem;
	justify-content: space-between;
	color: var(--mw-muted);
}
.mw-recap b {
	color: var(--mw-ink);
	text-align: right;
	font-weight: 500;
}

/* Écran de confirmation */
.mw-done {
	display: none;
	text-align: center;
	padding: clamp(1.5rem, 4vw, 3rem) 0;
}
.mw-done.is-on {
	display: block;
	animation: mw-fade 400ms var(--mw-ease-out);
}
.mw-done__check {
	width: 70px;
	height: 70px;
	margin: 0 auto 1.4rem;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: rgba(52, 211, 153, 0.13);
	border: 1px solid rgba(52, 211, 153, 0.4);
	color: var(--mw-ok);
}
.mw-done__check svg {
	width: 32px;
	height: 32px;
}

/* ============================ Bandeau cookies =========================== */
.mw-cookies {
	position: fixed;
	left: 50%;
	bottom: 1rem;
	z-index: 9500;
	width: min(640px, calc(100% - 2rem));
	transform: translate(-50%, calc(100% + 2rem));
	padding: 1.35rem 1.5rem;
	border-radius: var(--mw-r-lg);
	background: rgba(12, 12, 20, 0.97);
	border: 1px solid var(--mw-line-strong);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	box-shadow: var(--mw-shadow-lg);
	transition: transform var(--mw-slow) var(--mw-ease-out);
	visibility: hidden;
}
.mw-cookies.is-on {
	transform: translate(-50%, 0);
	visibility: visible;
}
.mw-cookies h2 {
	font-size: 1.05rem;
	margin-bottom: 0.45rem;
}
.mw-cookies p {
	font-size: 0.9rem;
	color: var(--mw-muted);
	margin-bottom: 1.1rem;
}
.mw-cookies__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}
.mw-cookies__actions .mw-btn {
	flex: 1 1 auto;
	padding-block: 0.85rem;
	font-size: 0.9rem;
}
.mw-cookies__link {
	background: none;
	border: 0;
	padding: 0;
	margin-top: 0.9rem;
	font-size: 0.82rem;
	color: var(--mw-faint);
	text-decoration: underline;
	cursor: pointer;
	font-family: inherit;
}

/* ========================== En-tête de page interne ===================== */
.mw-pagehead {
	position: relative;
	padding-top: calc(var(--mw-header-h) + clamp(3rem, 8vw, 6rem));
	padding-bottom: clamp(2.5rem, 6vw, 4.5rem);
	overflow: hidden;
	border-bottom: 1px solid var(--mw-line-soft);
	background: radial-gradient(100% 90% at 50% -20%, rgba(108, 75, 255, 0.2), transparent 62%);
}
.mw-pagehead__inner {
	position: relative;
	z-index: 2;
	max-width: 820px;
}
.mw-pagehead--center .mw-pagehead__inner {
	margin-inline: auto;
	text-align: center;
}
.mw-pagehead h1 {
	margin-bottom: 1rem;
}
.mw-pagehead__lead {
	font-size: var(--mw-lead);
	color: var(--mw-muted);
	max-width: 58ch;
	line-height: 1.6;
	margin-bottom: 0;
}
.mw-pagehead--center .mw-pagehead__lead {
	margin-inline: auto;
}
.mw-pagehead .mw-actions {
	margin-top: 2rem;
}
.mw-pagehead--center .mw-actions {
	justify-content: center;
}

/* Fil d'Ariane */
.mw-crumbs {
	font-size: 0.84rem;
	color: var(--mw-faint);
	margin-bottom: 1.5rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem;
}
.mw-crumbs a {
	color: var(--mw-muted);
}
.mw-crumbs a:hover {
	color: var(--mw-violet-soft);
}
.mw-crumbs svg {
	width: 12px;
	height: 12px;
	opacity: 0.5;
}
.mw-pagehead--center .mw-crumbs {
	justify-content: center;
}

/* ============================ Contenu éditorial ========================= */
.mw-prose {
	max-width: 74ch;
	font-size: 1.06rem;
	line-height: 1.78;
}
.mw-prose > * + * {
	margin-top: 1.15em;
}
.mw-prose h2 {
	font-size: clamp(1.5rem, 2.8vw, 2.05rem);
	margin-top: 2.4em;
	margin-bottom: 0.55em;
	padding-top: 1.6rem;
	border-top: 1px solid var(--mw-line-soft);
}
.mw-prose h2:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}
.mw-prose h3 {
	margin-top: 1.9em;
	margin-bottom: 0.4em;
}
.mw-prose ul,
.mw-prose ol {
	padding-left: 1.3rem;
}
.mw-prose li::marker {
	color: var(--mw-violet-soft);
}
.mw-prose a {
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: rgba(167, 139, 250, 0.4);
}
.mw-prose img {
	border-radius: var(--mw-r);
	border: 1px solid var(--mw-line-soft);
}
.mw-prose table {
	display: block;
	overflow-x: auto;
	white-space: nowrap;
}

/* Sommaire latéral des pages longues (mentions, CGV…) */
.mw-doc {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}
.mw-toc {
	position: sticky;
	top: calc(var(--mw-header-h) + 24px);
	padding: 1.25rem 1.3rem;
	border-radius: var(--mw-r);
	border: 1px solid var(--mw-line-soft);
	background: rgba(255, 255, 255, 0.025);
	font-size: 0.9rem;
}
.mw-toc b {
	display: block;
	font-family: var(--mw-font-display);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--mw-faint);
	margin-bottom: 0.8rem;
}
.mw-toc ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.15rem;
}
.mw-toc li {
	margin: 0;
}
.mw-toc a {
	display: block;
	padding: 0.35rem 0;
	color: var(--mw-muted);
	line-height: 1.35;
}
.mw-toc a:hover,
.mw-toc a.is-active {
	color: var(--mw-violet-soft);
}

/* ========================= Pages services (gabarit) ===================== */
.mw-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}
.mw-split__media {
	position: relative;
}
.mw-split--rev .mw-split__media {
	order: -1;
}

.mw-bullets {
	display: grid;
	gap: 1.1rem;
	margin-top: 1.8rem;
}
.mw-bullet {
	display: flex;
	gap: 0.9rem;
	align-items: flex-start;
}
.mw-bullet__ico {
	flex: none;
	width: 38px;
	height: 38px;
	border-radius: 11px;
	display: grid;
	place-items: center;
	background: rgba(108, 75, 255, 0.15);
	border: 1px solid rgba(167, 139, 250, 0.25);
	color: var(--mw-violet-soft);
}
.mw-bullet__ico svg {
	width: 18px;
	height: 18px;
}
.mw-bullet b {
	display: block;
	font-family: var(--mw-font-display);
	font-size: 1rem;
	letter-spacing: -0.02em;
	margin-bottom: 0.15rem;
}
.mw-bullet p {
	font-size: 0.93rem;
	color: var(--mw-muted);
	margin: 0;
}

/* Bloc d'appel intermédiaire */
.mw-inline-cta {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-radius: var(--mw-r-xl);
	border: 1px solid rgba(167, 139, 250, 0.28);
	background: linear-gradient(120deg, rgba(108, 75, 255, 0.18), rgba(34, 211, 238, 0.07));
}
.mw-inline-cta h3 {
	margin-bottom: 0.3rem;
	max-width: 26ch;
}
.mw-inline-cta p {
	margin: 0;
	color: var(--mw-muted);
	font-size: 0.95rem;
	max-width: 52ch;
}

/* ============================== Contact ================================= */
.mw-contact {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
	gap: clamp(2rem, 4vw, 3.25rem);
	align-items: start;
}
.mw-contact__aside {
	position: sticky;
	top: calc(var(--mw-header-h) + 28px);
	display: grid;
	gap: 0.75rem;
}
.mw-contact__card {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	padding: 1.15rem 1.25rem;
	border-radius: var(--mw-r);
	border: 1px solid var(--mw-line-soft);
	background: rgba(255, 255, 255, 0.03);
	transition: border-color var(--mw-mid) var(--mw-ease);
}
.mw-contact__card:hover {
	border-color: rgba(167, 139, 250, 0.4);
}
.mw-contact__card svg {
	width: 19px;
	height: 19px;
	flex: none;
	color: var(--mw-violet-soft);
	margin-top: 0.2em;
}
.mw-contact__card b {
	display: block;
	font-family: var(--mw-font-display);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--mw-faint);
	margin-bottom: 0.2rem;
}
.mw-contact__card a,
.mw-contact__card span {
	font-size: 1rem;
	color: var(--mw-ink);
	font-weight: 500;
}
.mw-contact__card a:hover {
	color: var(--mw-violet-soft);
}

/* =============================== Blog =================================== */
.mw-posts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
}
.mw-post {
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow: hidden;
}
.mw-post__thumb {
	aspect-ratio: 16 / 9;
	background: radial-gradient(100% 100% at 30% 0%, rgba(108, 75, 255, 0.3), transparent 65%), #0a0a11;
	border-bottom: 1px solid var(--mw-line-soft);
	overflow: hidden;
}
.mw-post__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--mw-slow) var(--mw-ease);
}
.mw-post:hover .mw-post__thumb img {
	transform: scale(1.04);
}
.mw-post__body {
	padding: 1.4rem;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.mw-post__date {
	font-family: var(--mw-font-display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mw-faint);
	margin-bottom: 0.6rem;
}
.mw-post h3 {
	font-size: 1.12rem;
	margin-bottom: 0.5rem;
}
.mw-post h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.mw-post p {
	font-size: 0.93rem;
	color: var(--mw-muted);
	margin-bottom: 0;
}

.mw-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4rem;
	margin-top: 3rem;
}
.mw-pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding: 0 0.7rem;
	border-radius: var(--mw-r-sm);
	border: 1px solid var(--mw-line-soft);
	color: var(--mw-muted);
	font-family: var(--mw-font-display);
	font-weight: 600;
	font-size: 0.9rem;
	transition: border-color var(--mw-fast) var(--mw-ease), color var(--mw-fast) var(--mw-ease),
		background-color var(--mw-fast) var(--mw-ease);
}
.mw-pagination .page-numbers:hover {
	color: var(--mw-ink);
	border-color: var(--mw-line-strong);
}
.mw-pagination .page-numbers.current {
	background: var(--mw-grad);
	border-color: transparent;
	color: #fff;
}

/* ================================ 404 =================================== */
.mw-404 {
	position: relative;
	min-height: 80svh;
	display: grid;
	place-items: center;
	text-align: center;
	padding-top: var(--mw-header-h);
	overflow: hidden;
}
.mw-404__code {
	font-family: var(--mw-font-display);
	font-size: clamp(6rem, 22vw, 15rem);
	font-weight: 700;
	line-height: 0.85;
	letter-spacing: -0.06em;
	background: var(--mw-grad-text);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	margin-bottom: 1rem;
	filter: drop-shadow(0 20px 50px rgba(108, 75, 255, 0.5));
}
.mw-404__links {
	margin-top: 2.5rem;
	padding-top: 1.75rem;
	border-top: 1px solid var(--mw-line-soft);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 1.5rem;
	font-size: 0.92rem;
}

/* ================================ Pied de page ========================== */
.mw-footer {
	position: relative;
	margin-top: 0;
	padding-top: clamp(3.5rem, 7vw, 5.5rem);
	border-top: 1px solid var(--mw-line-soft);
	background: linear-gradient(180deg, var(--mw-bg), var(--mw-void));
	overflow: hidden;
}
.mw-footer__glow {
	position: absolute;
	top: -180px;
	left: 50%;
	width: 900px;
	height: 360px;
	margin-left: -450px;
	background: radial-gradient(closest-side, rgba(108, 75, 255, 0.2), transparent);
	pointer-events: none;
}
.mw-footer__top {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: clamp(1.75rem, 4vw, 3rem);
	padding-bottom: clamp(2.5rem, 5vw, 3.5rem);
}
.mw-footer__brand p {
	font-size: 0.94rem;
	color: var(--mw-muted);
	max-width: 36ch;
	margin: 1.1rem 0 1.4rem;
}
.mw-footer__col b {
	display: block;
	font-family: var(--mw-font-display);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--mw-ink);
	margin-bottom: 1.1rem;
}
.mw-footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.6rem;
}
.mw-footer__col li {
	margin: 0;
}
.mw-footer__col a {
	font-size: 0.93rem;
	color: var(--mw-muted);
}
.mw-footer__col a:hover {
	color: var(--mw-ink);
}
.mw-footer__contact {
	display: grid;
	gap: 0.55rem;
	font-size: 0.93rem;
	color: var(--mw-muted);
}
.mw-footer__contact a {
	color: var(--mw-ink-2);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.mw-footer__contact a:hover {
	color: var(--mw-violet-soft);
}
.mw-footer__contact svg {
	width: 15px;
	height: 15px;
	color: var(--mw-violet-soft);
	flex: none;
}

.mw-social {
	display: flex;
	gap: 0.5rem;
	margin-top: 1.25rem;
}
.mw-social a {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 11px;
	border: 1px solid var(--mw-line);
	color: var(--mw-muted);
	transition: border-color var(--mw-fast) var(--mw-ease), color var(--mw-fast) var(--mw-ease),
		background-color var(--mw-fast) var(--mw-ease);
}
.mw-social a:hover {
	border-color: rgba(167, 139, 250, 0.5);
	color: var(--mw-violet-soft);
	background: rgba(108, 75, 255, 0.1);
}
.mw-social svg {
	width: 17px;
	height: 17px;
}

.mw-footer__bottom {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 1.5rem;
	border-top: 1px solid var(--mw-line-soft);
	font-size: 0.85rem;
	color: var(--mw-faint);
}
.mw-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.mw-footer__legal li {
	margin: 0;
}
.mw-footer__legal a {
	color: var(--mw-faint);
}
.mw-footer__legal a:hover {
	color: var(--mw-ink-2);
}
.mw-footer__legal button {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: var(--mw-faint);
	cursor: pointer;
	text-decoration: none;
}
.mw-footer__legal button:hover {
	color: var(--mw-ink-2);
}

/* =========================== Widgets WordPress ========================== */
.mw-footer .widget {
	margin-bottom: 1.5rem;
}
.mw-footer .widget-title {
	font-family: var(--mw-font-display);
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin-bottom: 1rem;
}
.mw-footer .widget ul {
	list-style: none;
	padding: 0;
	display: grid;
	gap: 0.55rem;
}

/* ========================================================================
   RESPONSIVE — le mobile n'est pas une réduction du bureau.
   ======================================================================== */

/* ------------------------------ ≤ 1180 px ------------------------------- */
@media (max-width: 1180px) {
	.mw-nav a {
		padding-inline: 0.65rem;
		font-size: 0.89rem;
	}
	.mw-plans {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.mw-pillars {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ------------------------------ ≤ 1024 px ------------------------------- */
@media (max-width: 1024px) {
	:root {
		--mw-header-h: 66px;
	}

	/* La navigation passe en panneau */
	.mw-nav,
	.mw-header__cta .mw-btn--ghost {
		display: none;
	}
	.mw-burger {
		display: flex;
	}
	.mw-header {
		background: rgba(7, 7, 12, 0.8);
		border-bottom-color: var(--mw-line-soft);
		backdrop-filter: blur(16px);
		-webkit-backdrop-filter: blur(16px);
	}
	.mw-header.is-hidden {
		transform: none;
	}

	/* HERO : discours d'abord, scène ensuite */
	.mw-hero {
		min-height: auto;
		text-align: left;
	}
	.mw-hero__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: clamp(2.5rem, 7vw, 3.5rem);
	}
	.mw-hero h1 {
		max-width: 20ch;
	}
	.mw-hero__lead {
		max-width: 54ch;
	}
	.mw-scene {
		max-width: 540px;
		margin-inline: auto;
		aspect-ratio: 4 / 3.4;
	}
	.mw-scrollcue {
		display: none;
	}

	.mw-services,
	.mw-posts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.mw-split,
	.mw-contact,
	.mw-doc {
		grid-template-columns: minmax(0, 1fr);
	}
	.mw-split--rev .mw-split__media {
		order: 0;
	}
	.mw-contact__aside,
	.mw-toc {
		position: static;
	}
	.mw-toc {
		display: none;
	}
	.mw-footer__top {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ------------------------------- ≤ 860 px ------------------------------- */
@media (max-width: 860px) {
	.mw-projects {
		grid-template-columns: minmax(0, 1fr);
	}
	.mw-step {
		grid-template-columns: 44px minmax(0, 1fr);
		gap: 1.1rem;
	}
	.mw-step__dot {
		width: 44px;
		height: 44px;
		font-size: 0.85rem;
	}
	.mw-steps::before,
	.mw-steps__fill {
		left: 21px;
	}

	/* Comparatif : une ligne devient une fiche empilée */
	.mw-versus__head {
		display: none;
	}
	.mw-versus__row {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.75rem;
		padding-block: 1.35rem;
	}
	.mw-versus__crit {
		font-family: var(--mw-font-display);
		font-weight: 600;
		font-size: 1.02rem;
		letter-spacing: -0.02em;
	}
	.mw-versus__label {
		display: block;
	}
	.mw-versus__old,
	.mw-versus__new {
		padding: 0.7rem 0.85rem;
		border-radius: var(--mw-r-sm);
		background: rgba(255, 255, 255, 0.03);
		border: 1px solid var(--mw-line-soft);
	}
	.mw-versus__new {
		background: rgba(108, 75, 255, 0.1);
		border-color: rgba(167, 139, 250, 0.28);
	}

	.mw-ba__pane {
		aspect-ratio: 4 / 3.6;
	}

	.mw-inline-cta {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ------------------------------- ≤ 640 px ------------------------------- */
@media (max-width: 640px) {
	:root {
		--mw-section: clamp(3.25rem, 12vw, 4.5rem);
	}

	body {
		font-size: 1rem;
	}

	/* Barre d'action permanente : le devis reste toujours à portée de pouce */
	.mw-dock {
		display: flex;
	}
	body.mw-has-dock {
		padding-bottom: 76px;
	}

	.mw-services,
	.mw-pillars,
	.mw-plans,
	.mw-posts,
	.mw-grid--2,
	.mw-grid--3,
	.mw-grid--4 {
		grid-template-columns: minmax(0, 1fr);
	}
	.mw-fields {
		grid-template-columns: minmax(0, 1fr);
	}
	.mw-footer__top {
		grid-template-columns: minmax(0, 1fr);
		gap: 2rem;
	}
	.mw-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
	}

	/* Cibles tactiles confortables : 48 px minimum */
	.mw-btn {
		padding: 1.05rem 1.5rem;
		min-height: 50px;
	}
	.mw-actions .mw-btn {
		width: 100%;
	}
	.mw-actions--center {
		justify-content: stretch;
	}
	.mw-choices {
		grid-template-columns: minmax(0, 1fr);
	}
	.mw-choice {
		min-height: 56px;
	}
	.mw-acc__q {
		padding: 1.1rem 1.15rem;
		font-size: 0.98rem;
	}
	.mw-acc__a {
		padding: 0 1.15rem 1.2rem;
	}

	/* Scène du HERO allégée : moins de couches, moins de calcul */
	.mw-scene {
		aspect-ratio: 4 / 3.2;
	}
	.mw-float--b,
	.mw-orbit {
		display: none;
	}

	/* La perspective agrandit les éléments proches de l'œil : à 390 px de
	   large, une carte posée à gauche déborde alors du cadre. On réduit la
	   profondeur et on rentre les éléments. */
	.mw-float--a {
		top: 0;
		left: 5%;
		transform: translate3d(0, 0, 70px);
	}
	.mw-float--c {
		bottom: 5%;
		left: 3%;
		transform: translate3d(0, 0, 80px);
	}
	.mw-phone {
		width: 27%;
		right: 3%;
		bottom: 6%;
		transform: translate3d(0, 0, 55px);
	}
	.mw-browser {
		left: 6%;
		width: 86%;
	}
	.mw-browser__body::after {
		display: none;
	}
	.mw-hero__beam {
		display: none;
	}

	.mw-statement__line {
		max-width: 16ch;
	}
	.mw-plan__for {
		min-height: 0;
	}
	.mw-form {
		padding: 1.35rem 1.15rem;
		border-radius: var(--mw-r-lg);
	}
	.mw-form__nav {
		flex-direction: column-reverse;
		align-items: stretch;
	}
	.mw-form__nav .mw-btn {
		width: 100%;
	}
	.mw-cookies {
		width: calc(100% - 1.25rem);
		bottom: 0.65rem;
		padding: 1.15rem 1.2rem;
	}
	.mw-cookies__actions {
		flex-direction: column;
	}
	.mw-prose {
		font-size: 1.02rem;
	}
	.mw-ba__pane {
		aspect-ratio: 3 / 3.6;
		min-height: 340px;
	}
	.mw-ba__grip {
		width: 52px;
		height: 52px;
		margin: -26px 0 0 -26px;
	}
}

/* ------------------------------- ≤ 420 px ------------------------------- */
@media (max-width: 420px) {
	.mw-logo {
		font-size: 1.1rem;
	}
	.mw-logo__mark {
		width: 28px;
		height: 28px;
	}
	.mw-float {
		font-size: 0.7rem;
		padding: 0.5rem 0.65rem;
	}
	.mw-float small {
		display: none;
	}
}

/* Contenus que l'on abrège sur petit écran (texte mobile plus court) */
@media (max-width: 640px) {
	.mw-lg-only {
		display: none !important;
	}
}
@media (min-width: 641px) {
	.mw-sm-only {
		display: none !important;
	}
}

/* ======================= Mouvement réduit (système) ===================== */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	.mw-reveal {
		opacity: 1 !important;
		transform: none !important;
	}
	.mw-stage {
		transform: none !important;
	}
	.mw-cursor {
		display: none !important;
	}
	.mw-hero__beam,
	.mw-browser__body::after {
		display: none;
	}
}

/* =========================== Appareils sans survol ====================== */
@media (hover: none) {
	.mw-card:hover {
		transform: none;
	}
	.mw-cursor {
		display: none !important;
	}
}

/* ================================ Impression ============================ */
@media print {
	.mw-header,
	.mw-drawer,
	.mw-dock,
	.mw-cookies,
	.mw-cursor,
	.mw-scrollbar,
	.mw-hero__bg,
	.mw-scene,
	.mw-final,
	.mw-footer__glow {
		display: none !important;
	}
	body {
		background: #fff;
		color: #111;
	}
	body::after {
		display: none;
	}
	h1,
	h2,
	h3,
	p,
	li {
		color: #111 !important;
	}
	a {
		color: #111 !important;
		text-decoration: underline;
	}
	.mw-section {
		padding-block: 1.5rem;
	}
}

/* ========================================================================
   PACKS — grille tarifaire cliquable, pages de vente, configurateur

   Chaque pack porte une couleur dominante (--pk) posée par une classe sur
   la racine de la page. Tout le reste du fichier s'y réfère : changer la
   classe suffit à retendre l'ambiance de la page entière.
   ======================================================================== */

/* ------------------------- Grille de la page Tarifs --------------------- */
.mw-plans--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
}
.mw-plans--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.mw-plans--1 {
	grid-template-columns: minmax(0, 1fr);
	max-width: 480px;
	margin-inline: auto;
}

/* Carte entièrement cliquable : le lien du titre est étiré sur toute la
   carte. Un seul élément focalisable, donc, et pas de lien imbriqué. */
.mw-plan--clic {
	position: relative;
	transition: transform var(--mw-mid) var(--mw-ease), border-color var(--mw-mid) var(--mw-ease);
}
.mw-plan__titre {
	color: inherit;
	text-decoration: none;
}
.mw-plan__titre::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}
.mw-plan__titre:focus-visible {
	outline: none;
}
.mw-plan__titre:focus-visible::after {
	outline: 2px solid var(--mw-cyan-soft);
	outline-offset: 3px;
}
.mw-plan--clic:hover,
.mw-plan--clic:focus-within {
	transform: translateY(-4px);
	border-color: rgba(167, 139, 250, 0.5);
}

/* Le formulaire passe au-dessus du lien étiré : le bouton reste cliquable. */
.mw-plan__form {
	position: relative;
	z-index: 2;
	display: grid;
	gap: 0.55rem;
}
.mw-plan__form .mw-btn {
	width: 100%;
	justify-content: center;
}
.mw-plan__note {
	font-size: 0.8rem;
	color: var(--mw-faint);
	text-align: center;
	line-height: 1.4;
}

/* Cartes de comparaison, en bas des pages de pack. Le nombre de cartes
   dépend du nombre de packs : la grille s'ajuste et reste centrée. */
.mw-plans--mini {
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	max-width: 860px;
	margin-inline: auto;
}
.mw-plan--link {
	text-decoration: none;
	color: inherit;
	transition: transform var(--mw-mid) var(--mw-ease), border-color var(--mw-mid) var(--mw-ease);
}
.mw-plan--link:hover {
	transform: translateY(-4px);
	border-color: rgba(167, 139, 250, 0.5);
}
.mw-plan--link .mw-plan__price {
	border-bottom: 0;
	margin-bottom: 0.6rem;
	padding-bottom: 0;
}
.mw-plan__more {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--mw-font-display);
	font-weight: 600;
	font-size: 0.92rem;
	color: var(--mw-violet-soft);
}

/* ------------------------- Bandeau « sur mesure » ----------------------- */
.mw-custom {
	position: relative;
	overflow: hidden;
	margin-top: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
	padding: clamp(1.6rem, 3vw, 2.4rem);
	border-radius: var(--mw-r-xl);
	border: 1px solid var(--mw-line);
	background: linear-gradient(120deg, rgba(108, 75, 255, 0.14), rgba(34, 211, 238, 0.07));
}
.mw-custom__txt {
	max-width: 62ch;
}
.mw-custom__txt h3 {
	font-size: clamp(1.25rem, 2.2vw, 1.75rem);
	margin-bottom: 0.5rem;
}
.mw-custom__txt p {
	color: var(--mw-ink-2);
	font-size: 0.98rem;
	margin: 0;
}
.mw-custom__cta {
	position: relative;
	z-index: 2;
	flex-shrink: 0;
}

/* ========================== Page d'un pack ============================== */
.mw-pack {
	--pk: var(--mw-violet);
	--pk-soft: var(--mw-violet-soft);
	--pk-glow: rgba(108, 75, 255, 0.5);
}
.mw-pack--cyan {
	--pk: #22d3ee;
	--pk-soft: #8ceefb;
	--pk-glow: rgba(34, 211, 238, 0.42);
}
.mw-pack--ambre {
	--pk: #f5a524;
	--pk-soft: #fcd28a;
	--pk-glow: rgba(245, 165, 36, 0.4);
}
.mw-pack--rose {
	--pk: #fb7185;
	--pk-soft: #fda4b0;
	--pk-glow: rgba(251, 113, 133, 0.42);
}
.mw-pack .mw-aura--violet {
	background: radial-gradient(circle, var(--pk-glow) 0%, transparent 68%);
}
.mw-pack .mw-eyebrow {
	color: var(--pk-soft);
}

/* ------------------------------- Hero ----------------------------------- */
.mw-pack__hero {
	position: relative;
	overflow-x: clip;
	padding-top: calc(var(--mw-header-h) + clamp(2.5rem, 6vw, 5rem));
	padding-bottom: clamp(2.5rem, 6vw, 4.5rem);
}
.mw-pack__heroGrid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}
.mw-pack__intro h1 {
	font-size: clamp(2.1rem, 4vw, 3.4rem);
	margin-block: 0.6rem 1rem;
}
.mw-pack__lead {
	font-size: var(--mw-lead);
	color: var(--mw-ink-2);
	max-width: 56ch;
	margin-bottom: 1.75rem;
}
.mw-pack__price {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 3vw, 2rem);
	flex-wrap: wrap;
	padding: 1.1rem 1.3rem;
	margin-bottom: 1.6rem;
	border-radius: var(--mw-r-lg);
	border: 1px solid var(--mw-line);
	background: var(--mw-elevated);
}
.mw-pack__amount {
	display: block;
	font-family: var(--mw-font-display);
	font-weight: 700;
	font-size: clamp(2.2rem, 4vw, 3rem);
	letter-spacing: -0.045em;
	line-height: 1;
}
.mw-pack__unit {
	display: block;
	font-size: 0.85rem;
	color: var(--mw-faint);
	margin-top: 0.3rem;
}
.mw-pack__deposit {
	padding-left: clamp(1rem, 3vw, 2rem);
	border-left: 1px solid var(--mw-line);
}
.mw-pack__deposit b {
	display: block;
	font-family: var(--mw-font-display);
	font-size: 1.5rem;
	line-height: 1.1;
	color: var(--pk-soft);
}
.mw-pack__deposit span {
	display: block;
	font-size: 0.82rem;
	color: var(--mw-faint);
	max-width: 22ch;
	margin-top: 0.2rem;
}
.mw-pack__trust {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.4rem;
}
.mw-pack__trust li {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.86rem;
	color: var(--mw-muted);
}
.mw-pack__trust svg {
	color: var(--pk-soft);
	flex-shrink: 0;
}
.mw-pack__stats {
	list-style: none;
	padding: 0;
	margin: clamp(2.5rem, 5vw, 4rem) 0 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	background: var(--mw-line-soft);
	border: 1px solid var(--mw-line-soft);
	border-radius: var(--mw-r-lg);
	overflow: hidden;
}
.mw-pack__stats li {
	background: var(--mw-bg);
	padding: 1.2rem 1.3rem;
}
.mw-pack__stats b {
	display: block;
	font-family: var(--mw-font-display);
	font-size: clamp(1.35rem, 2.4vw, 1.9rem);
	letter-spacing: -0.03em;
	line-height: 1.1;
	color: var(--mw-ink);
}
.mw-pack__stats span {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.85rem;
	color: var(--mw-faint);
}

/* --------------------- Maquette dessinée en CSS -------------------------- */
.mw-demo {
	position: relative;
	padding-bottom: 2.5rem;
}
.mw-demo__halo {
	position: absolute;
	inset: 8% -6% 12% -6%;
	border-radius: 50%;
	background: radial-gradient(circle, var(--pk-glow) 0%, transparent 70%);
	filter: blur(50px);
	opacity: 0.55;
	pointer-events: none;
}
.mw-demo__figure {
	position: relative;
	margin: 0;
	border-radius: var(--mw-r-lg);
	overflow: hidden;
	border: 1px solid var(--mw-line);
	box-shadow: var(--mw-shadow-lg);
}
.mw-demo__img {
	display: block;
	width: 100%;
	height: auto;
}
.mw-demo__browser {
	position: relative;
	border-radius: var(--mw-r-lg);
	border: 1px solid var(--mw-line-strong);
	background: var(--mw-surface);
	box-shadow: var(--mw-shadow-lg);
	overflow: hidden;
}
.mw-demo__bar {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.6rem 0.85rem;
	background: rgba(255, 255, 255, 0.04);
	border-bottom: 1px solid var(--mw-line-soft);
}
.mw-demo__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	flex-shrink: 0;
}
.mw-demo__url {
	margin-left: 0.5rem;
	padding: 0.18rem 0.7rem;
	border-radius: var(--mw-r-pill);
	background: rgba(255, 255, 255, 0.05);
	font-size: 0.7rem;
	/* Texte petit sur fond translucide : il faut monter jusqu'à la teinte
	   « ink-2 » pour rester au-dessus du seuil AA de 4,5:1. */
	color: var(--mw-ink-2);
	font-family: var(--mw-font-mono);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 60%;
}
.mw-demo__screen {
	padding: 1.3rem 1.4rem 1.6rem;
	display: grid;
	gap: 0.7rem;
	background: linear-gradient(165deg, rgba(108, 75, 255, 0.1), transparent 55%);
	min-height: 230px;
	align-content: start;
}
.mw-demo__phone {
	position: absolute;
	right: -4%;
	bottom: 0;
	width: 26%;
	max-width: 120px;
	aspect-ratio: 1 / 2.02;
	border-radius: 20px;
	border: 1px solid var(--mw-line-strong);
	background: var(--mw-surface-2);
	box-shadow: var(--mw-shadow-lg);
	padding: 7px;
}
.mw-demo__phoneScreen {
	height: 100%;
	border-radius: 14px;
	background: linear-gradient(170deg, rgba(34, 211, 238, 0.12), rgba(7, 7, 12, 0.9) 60%);
	padding: 0.7rem 0.6rem;
	display: grid;
	gap: 0.45rem;
	align-content: start;
	overflow: hidden;
}

/* Blocs gris du squelette de maquette */
.mw-sk {
	display: block;
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.09);
}
.mw-sk--nav {
	height: 10px;
	width: 62%;
	background: rgba(255, 255, 255, 0.14);
	margin-bottom: 0.5rem;
}
.mw-sk--h {
	height: 18px;
	width: 82%;
	border-radius: 7px;
	background: linear-gradient(90deg, var(--pk-soft), rgba(255, 255, 255, 0.2));
	opacity: 0.75;
}
.mw-sk--t {
	height: 8px;
	width: 95%;
}
.mw-sk--t.is-short {
	width: 64%;
}
.mw-sk--btn {
	height: 22px;
	width: 40%;
	border-radius: var(--mw-r-pill);
	background: linear-gradient(100deg, var(--pk), var(--mw-cyan));
	margin-top: 0.3rem;
}
.mw-sk--row {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	gap: 0.5rem;
	background: none;
	margin-top: 0.5rem;
}
.mw-sk--row i {
	display: block;
	height: 44px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid var(--mw-line-soft);
}
.mw-sk--row2 i {
	height: 30px;
}
.mw-demo__phoneScreen .mw-sk--h {
	height: 12px;
}
.mw-demo__phoneScreen .mw-sk--t {
	height: 6px;
}
.mw-demo__phoneScreen .mw-sk--btn {
	height: 15px;
	width: 70%;
}
.mw-demo__phoneScreen .mw-sk--row i {
	height: 34px;
}

/* --------------------- Triptyque ordinateur / tablette / mobile ---------- */
.mw-devices {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: clamp(1rem, 3vw, 2.5rem);
	padding-block: 1rem;
}
.mw-devices__screen {
	border-radius: var(--mw-r);
	border: 1px solid var(--mw-line-strong);
	background: var(--mw-surface);
	box-shadow: var(--mw-shadow-lg);
	padding: 1rem;
	display: grid;
	gap: 0.55rem;
	align-content: start;
	overflow: hidden;
}
.mw-devices__screen--desk {
	flex: 1 1 58%;
	max-width: 660px;
	min-height: 320px;
	background: linear-gradient(165deg, rgba(108, 75, 255, 0.14), var(--mw-surface) 60%);
}
.mw-devices__screen--tab {
	flex: 0 1 20%;
	max-width: 210px;
	min-height: 250px;
	padding: 0.85rem;
	gap: 0.45rem;
	background: linear-gradient(165deg, rgba(34, 211, 238, 0.12), var(--mw-surface) 60%);
}
.mw-devices__screen--phone {
	flex: 0 1 13%;
	max-width: 132px;
	min-height: 225px;
	border-radius: 22px;
	padding: 0.75rem 0.65rem;
	gap: 0.4rem;
	background: linear-gradient(170deg, rgba(245, 165, 36, 0.12), var(--mw-surface) 60%);
}

/* Le squelette rétrécit avec l'appareil : sinon un titre de 18 px dans un
   téléphone de 132 px de large paraît deux fois trop gros. */
.mw-devices__screen--tab .mw-sk--h,
.mw-devices__screen--phone .mw-sk--h {
	height: 13px;
}
.mw-devices__screen--tab .mw-sk--t,
.mw-devices__screen--phone .mw-sk--t {
	height: 6px;
}
.mw-devices__screen--tab .mw-sk--btn,
.mw-devices__screen--phone .mw-sk--btn {
	height: 16px;
	width: 62%;
}
.mw-devices__screen--tab .mw-sk--row i,
.mw-devices__screen--phone .mw-sk--row i {
	height: 30px;
}

/* ------------------------ Ce que vous obtenez --------------------------- */
.mw-feat {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.1rem;
}
.mw-feat__item {
	padding: clamp(1.4rem, 2.2vw, 1.8rem);
}
.mw-feat__num {
	display: inline-block;
	font-family: var(--mw-font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	color: var(--pk-soft);
	margin-bottom: 0.8rem;
}
.mw-feat__item h3 {
	font-size: 1.08rem;
	margin-bottom: 0.45rem;
}
.mw-feat__item p {
	font-size: 0.93rem;
	color: var(--mw-ink-2);
	margin: 0;
	line-height: 1.6;
}
.mw-checks--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* ------------------------------ Déroulé --------------------------------- */
.mw-flow {
	list-style: none;
	padding: 0;
	margin-inline: auto;
	display: grid;
	gap: 0;
	max-width: 780px;
}
.mw-flow__item {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr);
	gap: 1.2rem;
	padding-bottom: 1.8rem;
	position: relative;
}
.mw-flow__item:not(:last-child)::before {
	content: "";
	position: absolute;
	left: 22px;
	top: 46px;
	bottom: 0;
	width: 1px;
	background: linear-gradient(180deg, var(--pk-glow), transparent);
}
.mw-flow__dot {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-family: var(--mw-font-display);
	font-weight: 700;
	border: 1px solid var(--mw-line-strong);
	background: var(--mw-surface);
	color: var(--pk-soft);
}
.mw-flow__item h3 {
	font-size: 1.08rem;
	margin-bottom: 0.35rem;
	padding-top: 0.6rem;
}
.mw-flow__item p {
	font-size: 0.95rem;
	color: var(--mw-ink-2);
	margin: 0;
	max-width: 62ch;
}

/* --------------------------- Configurateur ------------------------------ */
.mw-conf {
	position: relative;
	overflow-x: clip;
}
.mw-conf__form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 380px);
	gap: clamp(1.25rem, 3vw, 2.25rem);
	align-items: start;
}
.mw-conf__col {
	display: grid;
	gap: 1rem;
}
.mw-conf__base {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: clamp(1.2rem, 2vw, 1.6rem);
}
.mw-conf__base h3 {
	font-size: 1.15rem;
	margin-block: 0.2rem;
}
.mw-conf__baseTxt {
	font-size: 0.88rem;
	color: var(--mw-muted);
	margin: 0;
	max-width: 48ch;
}
.mw-conf__basePrix {
	font-family: var(--mw-font-display);
	font-weight: 700;
	font-size: 1.5rem;
	white-space: nowrap;
}
.mw-conf__options {
	border: 0;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.6rem;
}
.mw-conf__options legend {
	font-family: var(--mw-font-display);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--mw-faint);
	padding: 0;
	margin-bottom: 0.6rem;
}
.mw-conf__opt {
	position: relative;
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr) auto;
	gap: 0.9rem;
	align-items: start;
	padding: 1rem 1.15rem;
	border-radius: var(--mw-r);
	border: 1px solid var(--mw-line);
	background: var(--mw-elevated);
	cursor: pointer;
	transition: border-color var(--mw-fast) var(--mw-ease), background var(--mw-fast) var(--mw-ease);
}
.mw-conf__opt:hover {
	border-color: var(--mw-line-strong);
}
.mw-conf__opt input {
	position: absolute;
	opacity: 0;
	width: 22px;
	height: 22px;
	margin: 0;
	cursor: pointer;
}
.mw-conf__box {
	width: 22px;
	height: 22px;
	border-radius: 7px;
	border: 1px solid var(--mw-line-strong);
	background: rgba(255, 255, 255, 0.04);
	display: grid;
	place-items: center;
	flex-shrink: 0;
	transition: background var(--mw-fast) var(--mw-ease), border-color var(--mw-fast) var(--mw-ease);
}
.mw-conf__box svg {
	width: 14px;
	height: 14px;
	opacity: 0;
	color: #07070c;
	stroke-width: 3;
	transition: opacity var(--mw-fast) var(--mw-ease);
}
.mw-conf__opt input:checked ~ .mw-conf__box,
.mw-conf__consent input:checked ~ .mw-conf__box {
	background: var(--pk-soft);
	border-color: var(--pk-soft);
}
.mw-conf__opt input:checked ~ .mw-conf__box svg,
.mw-conf__consent input:checked ~ .mw-conf__box svg {
	opacity: 1;
}
.mw-conf__opt input:focus-visible ~ .mw-conf__box,
.mw-conf__consent input:focus-visible ~ .mw-conf__box {
	outline: 2px solid var(--mw-cyan-soft);
	outline-offset: 3px;
}
.mw-conf__opt:has(input:checked) {
	border-color: var(--pk-soft);
	background: linear-gradient(120deg, rgba(108, 75, 255, 0.12), transparent);
}
.mw-conf__optTxt b {
	display: block;
	font-size: 0.98rem;
	font-weight: 600;
}
.mw-conf__optTxt span {
	display: block;
	font-size: 0.86rem;
	color: var(--mw-muted);
	margin-top: 0.2rem;
	line-height: 1.5;
}
.mw-conf__optPrix {
	font-family: var(--mw-font-display);
	font-weight: 600;
	font-size: 0.95rem;
	white-space: nowrap;
	color: var(--pk-soft);
}

/* Récapitulatif : il suit le défilement sur grand écran. */
.mw-conf__recap {
	position: sticky;
	top: calc(var(--mw-header-h) + 1.25rem);
	padding: clamp(1.3rem, 2.2vw, 1.75rem);
	display: grid;
	gap: 0.9rem;
}
.mw-conf__recap h3 {
	font-size: 1.05rem;
	margin: 0;
}
.mw-conf__lignes {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.5rem;
}
.mw-conf__lignes:empty {
	display: none;
}
.mw-conf__lignes li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-size: 0.9rem;
	color: var(--mw-ink-2);
}
.mw-conf__lignes b {
	white-space: nowrap;
	color: var(--mw-ink);
}
.mw-conf__lignes--options li {
	color: var(--mw-muted);
}
.mw-conf__totaux {
	border-top: 1px solid var(--mw-line);
	padding-top: 0.9rem;
	display: grid;
	gap: 0.55rem;
}
.mw-conf__totaux p {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin: 0;
	font-size: 0.9rem;
	color: var(--mw-muted);
}
.mw-conf__total b {
	font-family: var(--mw-font-display);
	font-size: 1.35rem;
	color: var(--mw-ink);
	white-space: nowrap;
}
.mw-conf__acompte {
	padding: 0.75rem 0.9rem;
	border-radius: var(--mw-r-sm);
	background: linear-gradient(110deg, rgba(108, 75, 255, 0.18), rgba(34, 211, 238, 0.08));
	border: 1px solid rgba(167, 139, 250, 0.32);
}
.mw-conf__acompte span {
	color: var(--mw-ink-2);
}
.mw-conf__acompte b {
	font-family: var(--mw-font-display);
	font-size: 1.5rem;
	color: var(--mw-ink);
	white-space: nowrap;
}
.mw-conf__solde b {
	white-space: nowrap;
}
.mw-conf__rappel {
	margin: 0;
	padding: 0.8rem 1rem;
	border-radius: var(--mw-r-sm);
	border: 1px solid rgba(167, 139, 250, 0.4);
	background: rgba(108, 75, 255, 0.12);
	color: var(--mw-ink-2);
	font-size: 0.86rem;
	line-height: 1.5;
}
.mw-conf__avis:empty {
	display: none;
}
.mw-conf__avis {
	max-width: 720px;
	margin: 0 auto 1.5rem;
}
.mw-conf__consent {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	gap: 0.75rem;
	align-items: start;
	font-size: 0.82rem;
	color: var(--mw-muted);
	line-height: 1.5;
	cursor: pointer;
	position: relative;
}
.mw-conf__consent input {
	position: absolute;
	opacity: 0;
	width: 22px;
	height: 22px;
	margin: 0;
	cursor: pointer;
}
.mw-conf__consent a {
	display: inline-block;
	margin-top: 0.25rem;
	color: var(--pk-soft);
}
.mw-conf__submit {
	width: 100%;
	justify-content: center;
	gap: 0.6rem;
}
.mw-conf__submit span {
	display: inline-flex;
	align-items: baseline;
	gap: 0.45rem;
	flex-wrap: wrap;
	justify-content: center;
}
.mw-conf__submit b {
	font-weight: 700;
}
.mw-conf__mention,
.mw-conf__tva {
	font-size: 0.78rem;
	color: var(--mw-faint);
	margin: 0;
	line-height: 1.5;
}
.mw-conf__tva {
	border-top: 1px solid var(--mw-line-soft);
	padding-top: 0.75rem;
}

/* ----------------------- Ce qui n'est pas compris ----------------------- */
.mw-honest {
	padding: clamp(1.6rem, 3vw, 2.4rem);
}
.mw-honest h2 {
	font-size: clamp(1.3rem, 2.4vw, 1.8rem);
	margin-bottom: 0.6rem;
}
.mw-honest > p {
	color: var(--mw-muted);
	font-size: 0.95rem;
	margin-bottom: 1.4rem;
	max-width: 60ch;
}
.mw-crosses {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.6rem;
}
.mw-crosses li {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	font-size: 0.94rem;
	color: var(--mw-ink-2);
	line-height: 1.5;
}
.mw-crosses svg {
	color: var(--mw-faint);
	flex-shrink: 0;
	margin-top: 0.18em;
}

/* -------------------- Barre fixe mobile de la page pack ------------------ */
.mw-packbar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 880;
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.7rem var(--mw-gutter) calc(0.7rem + env(safe-area-inset-bottom));
	background: rgba(7, 7, 12, 0.92);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border-top: 1px solid var(--mw-line-soft);
	transform: translateY(110%);
	transition: transform var(--mw-slow) var(--mw-ease);
}
.mw-packbar.is-on {
	transform: none;
}
.mw-packbar__info b {
	display: block;
	font-family: var(--mw-font-display);
	font-size: 1.15rem;
	line-height: 1.1;
}
.mw-packbar__info span {
	display: block;
	font-size: 0.76rem;
	color: var(--mw-faint);
}
.mw-packbar .mw-btn {
	flex-shrink: 0;
}

/* ========================== Pages WooCommerce ===========================
   Le panier, la commande et le compte client sont fournis par l'extension.
   On ne réécrit pas ses gabarits : on rhabille ses composants avec les
   jetons du thème, pour qu'ils ne détonnent pas au milieu du site.
   ======================================================================== */
.woocommerce-page .mw-main {
	padding-top: calc(var(--mw-header-h) + 2.5rem);
	padding-bottom: 4rem;
}
.woocommerce-page .mw-main > .woocommerce,
.woocommerce-page .entry-content {
	width: min(var(--mw-wrap), 100% - (var(--mw-gutter) * 2));
	margin-inline: auto;
}
.woocommerce table.shop_table,
.woocommerce-checkout .woocommerce-checkout-review-order-table {
	border: 1px solid var(--mw-line);
	border-radius: var(--mw-r);
	border-collapse: separate;
	border-spacing: 0;
	background: var(--mw-elevated);
	width: 100%;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	border-color: var(--mw-line-soft);
	padding: 0.9rem 1rem;
	color: var(--mw-ink-2);
}
.woocommerce table.shop_table th {
	color: var(--mw-ink);
	font-family: var(--mw-font-display);
}
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error {
	border-top: 0;
	border-left: 3px solid var(--mw-violet);
	border-radius: var(--mw-r-sm);
	background: var(--mw-surface);
	color: var(--mw-ink-2);
}
.woocommerce .woocommerce-error {
	border-left-color: var(--mw-err);
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page .select2-container .select2-selection {
	width: 100%;
	padding: 0.85rem 1rem;
	border-radius: var(--mw-r-sm);
	border: 1px solid var(--mw-line);
	background: var(--mw-surface);
	color: var(--mw-ink);
	font-family: var(--mw-font-text);
	font-size: 1rem;
}
.woocommerce form .form-row label {
	color: var(--mw-ink-2);
	font-size: 0.9rem;
	margin-bottom: 0.35rem;
}
.woocommerce #payment,
.woocommerce-checkout #payment {
	background: var(--mw-surface);
	border: 1px solid var(--mw-line);
	border-radius: var(--mw-r);
}
.woocommerce #payment div.payment_box {
	background: var(--mw-surface-2);
	color: var(--mw-ink-2);
}
.woocommerce #payment div.payment_box::before {
	border-bottom-color: var(--mw-surface-2);
}
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #payment #place_order {
	border-radius: var(--mw-r-pill);
	background: var(--mw-grad);
	color: #fff;
	font-family: var(--mw-font-display);
	font-weight: 600;
	padding: 0.9rem 1.6rem;
	border: 0;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #payment #place_order:hover {
	filter: brightness(1.08);
	color: #fff;
}
.mw-checkout-note {
	margin-top: 0.75rem;
	font-size: 0.8rem;
	color: var(--mw-faint);
}

/* ============================== Responsive ============================== */
@media (max-width: 1180px) {
	.mw-plans--3,
	.mw-plans--mini {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.mw-feat {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.mw-pack__heroGrid {
		grid-template-columns: minmax(0, 1fr);
	}
	.mw-pack__visuel {
		max-width: 640px;
		width: 100%;
		margin-inline: auto;
	}
}

@media (max-width: 1024px) {
	.mw-conf__form {
		grid-template-columns: minmax(0, 1fr);
	}
	/* « relative » et non « static » : les cartes du thème créent un contexte
	   d'empilement (isolation: isolate). Repassée en statique, la carte du
	   récapitulatif se retrouvait peinte au-dessus des options et interceptait
	   les clics — les cases à cocher devenaient inutilisables sur téléphone. */
	.mw-conf__recap {
		position: relative;
	}
	.mw-plans--3,
	.mw-plans--mini {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.mw-pack__stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.mw-plans--3,
	.mw-plans--2,
	.mw-plans--mini,
	.mw-feat,
	.mw-checks--2 {
		grid-template-columns: minmax(0, 1fr);
	}
	.mw-devices__screen--tab {
		display: none;
	}
	.mw-conf__base {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.8rem;
	}
	.mw-conf__opt {
		grid-template-columns: 22px minmax(0, 1fr);
		row-gap: 0.4rem;
	}
	.mw-conf__optPrix {
		grid-column: 2;
	}
	.mw-custom {
		flex-direction: column;
		align-items: flex-start;
	}
	.mw-custom__cta .mw-btn {
		width: 100%;
		justify-content: center;
	}
	.mw-pack__price {
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
	}
	.mw-pack__deposit {
		padding-left: 0;
		border-left: 0;
		border-top: 1px solid var(--mw-line);
		padding-top: 0.9rem;
		width: 100%;
	}

	/* La barre du pack remplace la barre d'action générique : deux barres
	   fixes superposées cacheraient la moitié de l'écran. */
	body.single-mw_offre .mw-dock,
	body:has(.mw-packbar) .mw-dock {
		display: none !important;
	}
	.mw-packbar {
		display: flex;
	}
	body.single-mw_offre {
		padding-bottom: 76px;
	}
}

@media (max-width: 480px) {
	.mw-pack__stats {
		grid-template-columns: minmax(0, 1fr);
	}
	.mw-demo__phone {
		display: none;
	}
}

/* --------------------------- Mouvement réduit --------------------------- */
@media (prefers-reduced-motion: reduce) {
	.mw-plan--clic,
	.mw-plan--link,
	.mw-conf__opt,
	.mw-conf__box,
	.mw-packbar {
		transition: none;
	}
	.mw-plan--clic:hover,
	.mw-plan--link:hover {
		transform: none;
	}
}

/* ======================== Rendez-vous avant paiement ====================
   Le visiteur choisit un créneau d'appel puis décrit son projet, dans la
   même colonne que les options. Sans JavaScript les jours s'empilent ;
   avec, ils passent derrière des onglets. Les deux états sont stylés ici.
   ====================================================================== */
.mw-rdv {
	border: 0;
	padding: 1.6rem 0 0;
	margin: 0.6rem 0 0;
	border-top: 1px solid var(--mw-line-soft);
	display: grid;
	gap: 0.9rem;
}
.mw-rdv > legend {
	font-family: var(--mw-font-display);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--mw-ink);
	padding: 0;
	margin-bottom: 0.35rem;
}
.mw-rdv__intro {
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--mw-muted);
	margin: 0;
	max-width: 62ch;
}
.mw-rdv__vide {
	margin: 0;
	padding: 1.05rem 1.2rem;
	border-radius: var(--mw-r);
	border: 1px solid var(--mw-line-strong);
	background: rgba(251, 191, 36, 0.08);
	font-size: 0.92rem;
	line-height: 1.6;
	color: var(--mw-ink-2);
}
.mw-rdv__vide a {
	display: inline-block;
	margin-top: 0.35rem;
	color: var(--pk-soft, var(--mw-violet-soft));
}

/* ------------------------------- Onglets -------------------------------- */
.mw-rdv__onglets {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}
.mw-rdv__onglet {
	font-family: var(--mw-font-display);
	font-size: 0.82rem;
	font-weight: 600;
	line-height: 1;
	padding: 0.6rem 0.85rem;
	border-radius: 999px;
	border: 1px solid var(--mw-line);
	background: var(--mw-elevated);
	color: var(--mw-ink-2);
	cursor: pointer;
	text-transform: capitalize;
	transition: border-color var(--mw-fast) var(--mw-ease), background var(--mw-fast) var(--mw-ease),
		color var(--mw-fast) var(--mw-ease);
}
.mw-rdv__onglet:hover {
	border-color: var(--mw-line-strong);
	color: var(--mw-ink);
}
.mw-rdv__onglet.is-actif {
	background: var(--pk-soft, var(--mw-violet-soft));
	border-color: var(--pk-soft, var(--mw-violet-soft));
	color: #07070c;
}
.mw-rdv__onglet:focus-visible {
	outline: 2px solid var(--mw-cyan-soft);
	outline-offset: 3px;
}

/* ------------------------------- Créneaux ------------------------------- */
.mw-rdv__jours {
	display: grid;
	gap: 1.1rem;
}
.mw-rdv__jour[hidden] {
	display: none;
}
.mw-rdv__date {
	font-family: var(--mw-font-display);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mw-faint);
	margin: 0 0 0.55rem;
}
.mw-rdv__creneaux {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(86px, 1fr));
	gap: 0.5rem;
}
.mw-rdv__creneau {
	position: relative;
	display: block;
	cursor: pointer;
}
.mw-rdv__creneau input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}
.mw-rdv__creneau span {
	display: block;
	text-align: center;
	font-family: var(--mw-font-display);
	font-size: 0.95rem;
	font-weight: 600;
	padding: 0.7rem 0.4rem;
	border-radius: var(--mw-r-sm);
	border: 1px solid var(--mw-line);
	background: var(--mw-elevated);
	color: var(--mw-ink-2);
	transition: border-color var(--mw-fast) var(--mw-ease), background var(--mw-fast) var(--mw-ease),
		color var(--mw-fast) var(--mw-ease);
}
.mw-rdv__creneau:hover span {
	border-color: var(--mw-line-strong);
	color: var(--mw-ink);
}
.mw-rdv__creneau input:checked + span {
	background: var(--pk-soft, var(--mw-violet-soft));
	border-color: var(--pk-soft, var(--mw-violet-soft));
	color: #07070c;
}
.mw-rdv__creneau input:focus-visible + span {
	outline: 2px solid var(--mw-cyan-soft);
	outline-offset: 3px;
}

/* --------------------------------- Brief -------------------------------- */
.mw-rdv__brief {
	display: grid;
	gap: 0.9rem;
	margin-top: 0.3rem;
}
.mw-rdv__brief .mw-field {
	margin: 0;
}
.mw-rdv__brief textarea {
	min-height: 92px;
}
.mw-rdv__possede {
	border: 0;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.45rem;
}
.mw-rdv__possede legend {
	font-family: var(--mw-font-display);
	font-size: 0.83rem;
	font-weight: 600;
	color: var(--mw-ink-2);
	padding: 0;
	margin-bottom: 0.45rem;
}
.mw-conf__opt--mini {
	grid-template-columns: 22px minmax(0, 1fr);
	padding: 0.65rem 0.9rem;
	align-items: center;
}
.mw-conf__opt--mini .mw-conf__optTxt b {
	font-size: 0.92rem;
	font-weight: 500;
}
.mw-rdv__mention {
	font-size: 0.82rem;
	line-height: 1.6;
	color: var(--mw-faint);
	margin: 0;
}

/* ------------------- Rappel dans le récapitulatif ----------------------- */
.mw-conf__rdv {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.9rem;
	margin: 0 0 1rem;
	padding-top: 0.9rem;
	border-top: 1px dashed var(--mw-line);
	font-size: 0.88rem;
	color: var(--mw-muted);
}
.mw-conf__rdv b {
	font-family: var(--mw-font-display);
	font-size: 0.92rem;
	text-align: right;
	color: var(--mw-ink);
}

/* ---------------------- Rappel sur la page de paiement ------------------ */
.mw-checkout-rdv {
	padding: 0.95rem 1.15rem;
	margin-bottom: 1.4rem;
	border-radius: var(--mw-r);
	border: 1px solid var(--mw-line-strong);
	background: var(--mw-elevated);
	font-size: 0.92rem;
	line-height: 1.6;
	color: var(--mw-ink-2);
}

@media (max-width: 480px) {
	.mw-rdv__creneaux {
		grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	}
}

@media (prefers-reduced-motion: reduce) {
	.mw-rdv__onglet,
	.mw-rdv__creneau span {
		transition: none;
	}
}
