/* ──────────────────────────────────────────
 * Main Verte — composants
 * ────────────────────────────────────────── */

/* ═════════════════════════════════════════════════
 * RESPONSIVE & ACCESSIBILITÉ — adapté à une clientèle senior
 * Texte 17px par défaut, touch targets 48px min, contraste élevé
 * ═════════════════════════════════════════════════ */

/* Sur mobile, espacements section réduits + padding minimum */
@media (max-width: 767px) {
	.mv-section, section.mv-section, .wp-block-group.mv-section {
		padding: 3.5rem 0 !important;
	}
	.wp-block-heading {
		font-size: clamp(1.6rem, 1.4rem + 1.5vw, 2.4rem) !important;
		line-height: 1.15 !important;
	}
	h1.wp-block-heading {
		font-size: clamp(2rem, 1.8rem + 4vw, 3rem) !important;
	}
	.wp-block-buttons { justify-content: center !important; }
	.wp-block-button__link {
		min-height: 48px;
		display: inline-flex;
		align-items: center;
	}
	.mv-section__lead {
		font-size: 1rem !important;
		padding: 0 0.75rem !important;
	}
}

/* Pour senior — tailles minimales ergonomiques partout */
.wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; gap: 0.5rem; }
a, button { min-height: auto; }
input, select, textarea { font-size: 16px !important; min-height: 48px; } /* iOS no-zoom */
textarea { min-height: 8rem !important; }

/* ===== Header ===== */
.mv-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 90;
	transition: background 0.5s var(--mv-ease), backdrop-filter 0.5s var(--mv-ease), border-color 0.5s var(--mv-ease), box-shadow 0.5s var(--mv-ease);
	background: transparent;
}
.mv-header.is-scrolled {
	background: hsl(var(--mv-background) / 0.95);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	box-shadow: var(--mv-shadow-soft);
	border-bottom: 1px solid hsl(var(--mv-border));
}
.mv-header__topbar {
	background: transparent;
	color: hsl(var(--mv-primary-foreground) / 0.7);
	font-size: 0.85rem;
	transition: max-height 0.4s ease, opacity 0.4s ease;
	max-height: 40px;
	overflow: hidden;
}
.mv-header.is-scrolled .mv-header__topbar { max-height: 0; opacity: 0; }
.mv-header__topbar-inner {
	display: flex;
	justify-content: flex-end;
	padding: 0.4rem 1.5rem;
}
.mv-header__topbar a {
	color: inherit;
	text-decoration: none;
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
}
.mv-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.75rem 1.25rem;
	max-width: 1440px;
	margin: 0 auto;
}
@media (min-width: 1024px) {
	/* Formule de centrage parfait : 1fr - auto - 1fr.
	 * Les côtés ont la MÊME largeur (1fr chacun), donc le milieu (auto = nav)
	 * tombe pile au centre du viewport. Peu importe que le logo (gauche) soit
	 * plus étroit que phone+CTA (droite) : leurs colonnes sont identiques,
	 * seul leur contenu s'aligne start/end aux extrémités. */
	.mv-header__inner {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
		align-items: center;
		gap: 1.5rem;
		padding: 0.85rem 1.5rem;
	}
	.mv-header__inner > .mv-header__brand     { justify-self: start; }
	.mv-header__inner > .mv-header__nav       { justify-self: center; }
	.mv-header__inner > .mv-header__cta-group { justify-self: end; }
}
.mv-header__brand {
	display: inline-flex;
	align-items: center;
	font-family: var(--mv-font-display);
	font-weight: 700;
	color: hsl(var(--mv-on-dark));
	text-decoration: none;
	transition: opacity 0.3s ease;
}
.mv-header__brand img {
	display: block;
	height: clamp(36px, 34px + 0.7vw, 52px);
	width: auto;
	filter: drop-shadow(0 2px 6px rgba(0,0,0,0.45)) brightness(1.05);
	transition: filter 0.3s ease;
}
.mv-header.is-scrolled .mv-header__brand img { filter: none; }

/* Tagline à côté du logo — équilibre visuel avec le bloc CTA droite.
 * Masquée sous 1024px pour libérer la place du burger menu. */
.mv-header__tagline {
	display: none;
	margin-left: 0.75rem;
	padding-left: 0.85rem;
	border-left: 1.5px solid hsl(var(--mv-on-dark) / 0.25);
	font-family: var(--mv-font-display);
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.02em;
	color: hsl(var(--mv-on-dark) / 0.85);
	text-transform: uppercase;
	white-space: nowrap;
}
@media (min-width: 1400px) {
	.mv-header__tagline { display: inline-block; }
}
.mv-header.is-scrolled .mv-header__tagline {
	color: hsl(var(--mv-deep));
	border-left-color: hsl(var(--mv-border));
}

.mv-header__nav {
	display: none;
}
@media (min-width: 1024px) {
	.mv-header__nav {
		display: flex;
		align-items: center;
		gap: 0.4rem;
		background: transparent;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		border-radius: 0;
		padding: 0;
	}
}
.mv-header__nav a,
.mv-header__nav .menu-item > a {
	position: relative;
	font-family: var(--mv-font-body);
	font-weight: 600;
	font-size: 0.95rem;
	padding: 0.5rem 0.4rem;
	text-decoration: none;
	color: hsl(var(--mv-on-dark));
	transition: color 0.25s ease;
}
.mv-header__nav a::after {
	content: "";
	position: absolute;
	left: 0.4rem;
	right: 0.4rem;
	bottom: 0.25rem;
	height: 2px;
	background: hsl(var(--mv-primary));
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.25s ease;
}
.mv-header__nav a:hover {
	color: hsl(var(--mv-primary)) !important;
}
.mv-header__nav a:hover::after { transform: scaleX(1); }
.mv-header.is-scrolled .mv-header__nav a {
	color: hsl(var(--mv-foreground));
}
.mv-header.is-scrolled .mv-header__nav a:hover { color: hsl(var(--mv-deep)) !important; }
.mv-header__nav .current-menu-item > a,
.mv-header__nav a.is-current {
	color: hsl(var(--mv-primary)) !important;
}
.mv-header__nav a.is-current::after { transform: scaleX(1); }
.mv-header.is-scrolled .mv-header__nav a.is-current { color: hsl(var(--mv-deep)) !important; }
.mv-header__cta-group {
	display: none;
	align-items: center;
	gap: 0.85rem;
}
@media (min-width: 1024px) {
	.mv-header__cta-group { display: flex; }
}
.mv-header__phone {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	font-family: var(--mv-font-body);
	font-weight: 700;
	font-size: 0.95rem;
	text-decoration: none;
	color: hsl(var(--mv-on-dark));
	transition: color 0.3s ease;
	white-space: nowrap;
	flex-shrink: 0;
}
.mv-header__cta-group { flex-shrink: 0; }

/* Sur 1024-1399px : phone icône seule (pas de numéro) — équilibrage parfait avec brand seul.
 * Au-dessus de 1400px : numéro visible + tagline gauche affichée → 2 blocs équivalents. */
@media (min-width: 1024px) and (max-width: 1399px) {
	.mv-header__phone {
		font-size: 0;
		width: 2.5rem;
		height: 2.5rem;
		justify-content: center;
		border-radius: 9999px;
		background: hsl(var(--mv-on-dark) / 0.1);
	}
	.mv-header.is-scrolled .mv-header__phone {
		background: hsl(var(--mv-card));
	}
	.mv-header__phone svg { width: 20px; height: 20px; }
}
.mv-header.is-scrolled .mv-header__phone { color: hsl(var(--mv-deep)); }
.mv-header__phone svg { width: 18px; height: 18px; }
.mv-header__cta {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0.5rem !important;
	min-height: 52px !important;
	padding: 0.85rem 1.85rem !important;
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border: 2px solid hsl(var(--mv-primary)) !important;
	border-radius: 9999px !important;
	font-family: var(--mv-font-body) !important;
	font-weight: 700 !important;
	font-size: 0.95rem !important;
	line-height: 1.1 !important;
	text-decoration: none !important;
	transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.2s ease !important;
}
.mv-header__cta:hover {
	background: hsl(var(--mv-primary-glow)) !important;
	border-color: hsl(var(--mv-primary-glow)) !important;
	transform: translateY(-1px);
}

/* Mobile menu toggle */
.mv-header__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem;
	background: transparent;
	border: 0;
	color: hsl(var(--mv-on-dark));
	cursor: pointer;
	position: relative;
	z-index: 10001;
}
.mv-header.is-scrolled .mv-header__toggle { color: hsl(var(--mv-foreground)); }
@media (min-width: 1024px) { .mv-header__toggle { display: none; } }

/* ── Drawer mobile : overlay plein écran, slide-in droite ─────────────── */
.mv-header__mobile {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.3s var(--mv-ease), visibility 0s linear 0.3s;
	pointer-events: none;
}
.mv-header__mobile.is-open {
	visibility: visible;
	opacity: 1;
	transition: opacity 0.3s var(--mv-ease), visibility 0s linear 0s;
	pointer-events: auto;
}
/* Backdrop sombre cliquable pour fermer */
.mv-header__mobile::before {
	content: "";
	position: absolute;
	inset: 0;
	background: hsl(var(--mv-forest) / 0.85);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}
/* Panneau drawer côté droit
 * Note : pas de overflow-y:auto — le drawer doit tenir sans scroll sur tous
 * les écrans courants (iPhone SE ≈ 568px et plus). Les paddings et gaps sont
 * calibrés pour 10 items + 2 CTAs sur ~600px de hauteur utile. */
.mv-header__mobile nav {
	position: relative;
	margin-left: auto;
	width: min(85%, 360px);
	height: 100%;
	background: hsl(var(--mv-background));
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 4rem 1.25rem 1.25rem;
	overflow: hidden;
	box-shadow: -16px 0 32px rgba(0, 0, 0, 0.2);
	transform: translateX(100%);
	transition: transform 0.35s var(--mv-ease);
}
.mv-header__mobile.is-open nav {
	transform: translateX(0);
}
.mv-header__mobile a {
	padding: 0.7rem 1rem;
	border-radius: 0.75rem;
	color: hsl(var(--mv-foreground)) !important;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.97rem;
	letter-spacing: 0.01em;
	transition: background 0.2s ease, color 0.2s ease;
}
.mv-header__mobile a:hover,
.mv-header__mobile a:active {
	background: hsl(var(--mv-card)) !important;
	color: hsl(var(--mv-deep)) !important;
}
/* Phone tel — distinct visuel avec icon */
.mv-header__mobile-cta {
	margin-top: auto;
	border: 1.5px solid hsl(var(--mv-border)) !important;
	color: hsl(var(--mv-deep)) !important;
	text-align: center;
	font-weight: 700 !important;
}
.mv-header__mobile-cta:hover {
	border-color: hsl(var(--mv-primary)) !important;
}
/* Devis gratuit — bouton primary en bas */
.mv-header__mobile .mv-header__cta {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	text-align: center;
	margin-top: 0.4rem;
	border-radius: 9999px !important;
	padding: 0.8rem 1.1rem !important;
	font-weight: 700 !important;
}
.mv-header__mobile .mv-header__cta:hover {
	background: hsl(var(--mv-primary-glow)) !important;
}
/* Bouton X de fermeture flottant en haut-droite du drawer */
.mv-header__mobile-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 9999px;
	border: none;
	background: hsl(var(--mv-card));
	color: hsl(var(--mv-foreground));
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	transition: background 0.2s ease;
}
.mv-header__mobile-close:hover { background: hsl(var(--mv-muted)); }

@media (min-width: 1024px) {
	.mv-header__mobile { display: none !important; }
}

/* Lift body so fixed header doesn't overlap content on inner pages
   (front page hero handles it itself). */
body.mv-has-solid-header { padding-top: 80px; }

/* ── Alignement plein écran : on annule la contrainte WP layout ── */
.alignfull {
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}

/* ── Site-main : aucune contrainte ni padding ── */
.wp-block-group.site-main {
	padding: 0;
	margin: 0;
	max-width: none;
}
main.wp-block-group.site-main { width: 100%; }

/* ── La div post-content (auto-générée par <!-- wp:post-content -->) ── */
.entry-content.wp-block-post-content,
.wp-block-post-content {
	max-width: none !important;
	padding: 0;
}
.entry-content.wp-block-post-content > *,
.wp-block-post-content > * {
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* ── Sections Main Verte (rythme cohérent et resserré) ── */
.wp-block-group.mv-section,
section.wp-block-group.mv-section {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: clamp(2.75rem, 2rem + 2.5vw, 4.5rem) 0;
}
/* Réduire le double padding entre sections "card" successives */
.wp-block-group.mv-section + .wp-block-group.mv-section,
section.wp-block-group.mv-section + section.wp-block-group.mv-section {
	margin-top: 0 !important;
}
.wp-block-group.mv-section.mv-section--card,
section.wp-block-group.mv-section.mv-section--card {
	background: hsl(var(--mv-card));
}
/* Espacement uniforme entre titre, lead et contenu d'une section */
.wp-block-group.mv-section > .wp-block-heading,
section.wp-block-group.mv-section > .wp-block-heading {
	margin-top: 0.4rem !important;
	margin-bottom: 0.4rem !important;
}
.wp-block-group.mv-section > .mv-section__lead,
section.wp-block-group.mv-section > .mv-section__lead {
	margin-bottom: 2rem !important;
}
.wp-block-group.mv-section > .mv-eyebrow,
section.wp-block-group.mv-section > .mv-eyebrow {
	margin-top: 0 !important;
	margin-bottom: 0.5rem !important;
}
/* Réduit le padding interne sur mobile */
@media (max-width: 767px) {
	.wp-block-group.mv-section, section.wp-block-group.mv-section {
		padding: 2.5rem 0 !important;
	}
}

/* ── Container interne (max-width imposé via CSS, pas via layout) ── */
.wp-block-group.mv-container,
section .wp-block-group.mv-container {
	max-width: 1240px !important;
	margin: 0 auto !important;
	padding: 0 1.5rem !important;
	width: 100%;
}
.mv-section .wp-block-group.mv-container > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }

/* ── Headings & paragraphes inside sections : reset constraint ── */
.mv-section .wp-block-heading,
.mv-section .wp-block-heading.has-text-align-center {
	max-width: 60rem !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.mv-section .wp-block-heading.has-text-align-center { text-align: center; }
.mv-section .wp-block-heading:not(.has-text-align-center) { text-align: left; }
.mv-section > .wp-block-heading,
.mv-section > .wp-block-paragraph,
.mv-section > p,
.mv-section > .wp-block-buttons {
	max-width: 1240px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}
.mv-section > .wp-block-buttons { justify-content: center; }
.mv-section .has-text-align-center { text-align: center; }

/* ── Grilles internes : padding latéral pour ne pas coller aux bords ── */
.mv-section .mv-services,
.mv-section .mv-stats,
.mv-section .mv-values,
.mv-section .mv-team,
.mv-section .mv-gallery,
.mv-section .mv-reviews,
.mv-section .mv-beforeafter,
.mv-section .mv-cta-band,
.mv-section .mv-contact-grid,
.mv-section > div[class] {
	max-width: 1240px !important;
	margin: 0 auto !important;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	box-sizing: border-box;
}

/* ── Le wp:cover hero ── */
.wp-block-cover.mv-hero.alignfull,
.wp-block-cover.mv-hero {
	width: 100vw !important;
	max-width: none !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* ── Page hero wrapper ── */
.wp-block-group.alignfull.mv-page-hero-wrap,
div.alignfull.mv-page-hero-wrap {
	padding: 0 !important;
}
.mv-page-hero-wrap > .mv-page-hero { width: 100%; }

/* ── Bouton outline (variante "ghost" sur hero) ── */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: hsl(var(--mv-primary-foreground) / 0.12);
	color: hsl(var(--mv-primary-foreground));
	border: 2px solid hsl(var(--mv-primary-foreground) / 0.5);
	backdrop-filter: blur(6px);
	border-radius: 9999px;
	font-weight: 600;
	padding: 0.95rem 1.85rem;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: hsl(var(--mv-primary-foreground) / 0.2);
	color: hsl(var(--mv-primary-foreground));
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
	border-radius: 9999px;
	padding: 0.95rem 1.85rem;
	font-weight: 600;
	box-shadow: 0 8px 25px -8px hsl(var(--mv-primary) / 0.55);
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: hsl(152 60% 28%);
}

/* ── Page hero : laisser place au header fixé ── */
.mv-page-hero { padding-top: clamp(8rem, 6rem + 4vw, 11rem); }

/* ── Heading center alignement par défaut wp:heading textAlign:center ── */
.wp-block-heading.has-text-align-center { text-align: center; }

/* ── Buttons block layout ── */
.wp-block-buttons { display: flex; gap: 1rem; flex-wrap: wrap; }
.wp-block-cover .wp-block-buttons { justify-content: flex-start; }

/* ═════════════════════════════════════════════════
 * BLOCS NATIFS GUTENBERG — adaptation du design Main Verte
 * Le contenu de chaque page est composé de wp:group / wp:image /
 * wp:heading / wp:paragraph / wp:buttons / wp:list / wp:gallery.
 * Le CSS ci-dessous transforme ces blocs natifs en composants stylés.
 * ═════════════════════════════════════════════════ */

/* === Hero ultra-minimal — image fond pleine + texte centré ============== */
section.mv-hero,
.wp-block-group.mv-hero {
	position: relative;
	min-height: 85vh;
	min-height: 85svh;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
section.mv-hero > .wp-block-image,
section.mv-hero > figure.wp-block-image,
.wp-block-group.mv-hero > .wp-block-image {
	position: absolute !important;
	inset: 0;
	margin: 0 !important;
	z-index: 0;
	overflow: hidden;
}
section.mv-hero > .wp-block-image img,
.wp-block-group.mv-hero > .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.05);
	will-change: transform;
}
/* Overlay sombre uniforme et discret — plus de gradient asymétrique */
section.mv-hero::before,
.wp-block-group.mv-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.55) 100%);
	z-index: 1;
	pointer-events: none;
}
/* Texte en blanc cassé sur fond image */
section.mv-hero h1,
section.mv-hero p,
.wp-block-group.mv-hero h1,
.wp-block-group.mv-hero p {
	color: hsl(var(--mv-on-dark)) !important;
}
.mv-hero h1 em {
	font-style: normal;
	color: hsl(var(--mv-primary)) !important;
	-webkit-text-fill-color: hsl(var(--mv-primary));
	background: none;
}

/* === Service cards (wp:group.mv-service-card) ============================ */
.wp-block-group.mv-services {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	max-width: 1240px;
	margin: 2rem auto 0 !important;
	padding: 0 1.5rem !important;
	width: 100%;
}
@media (min-width: 768px) { .wp-block-group.mv-services { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .wp-block-group.mv-services { grid-template-columns: repeat(3, 1fr); } }

.wp-block-group.mv-service-card {
	position: relative !important;
	border-radius: 1.25rem !important;
	overflow: hidden !important;
	aspect-ratio: 4 / 5;
	min-height: 380px;
	margin: 0 !important;
	padding: 0 !important;
	background: hsl(var(--mv-card));
	box-shadow: var(--mv-shadow-soft);
	transition: transform 0.4s var(--mv-ease), box-shadow 0.4s ease;
}
.wp-block-group.mv-service-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--mv-shadow-elegant);
}
.wp-block-group.mv-service-card > .wp-block-image.mv-service-card__img {
	position: absolute !important;
	inset: 0;
	margin: 0 !important;
	z-index: 0;
}
.wp-block-group.mv-service-card > .wp-block-image.mv-service-card__img img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--mv-ease);
}
.wp-block-group.mv-service-card:hover > .wp-block-image.mv-service-card__img img {
	transform: scale(1.08);
}
.wp-block-group.mv-service-card > .wp-block-group.mv-service-card__content {
	position: absolute !important;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 1.75rem 1.5rem !important;
	color: #ffffff !important;
	background: linear-gradient(
		to top,
		rgba(0,0,0,0.92) 0%,
		rgba(0,0,0,0.78) 25%,
		rgba(0,0,0,0.4) 60%,
		rgba(0,0,0,0.05) 100%
	);
	transition: background 0.5s var(--mv-ease);
}
/* Au survol → overlay sombre full-card pour que la description et la liste soient lisibles */
.wp-block-group.mv-service-card:hover > .wp-block-group.mv-service-card__content {
	background: linear-gradient(
		to top,
		rgba(0,0,0,0.94) 0%,
		rgba(0,0,0,0.86) 50%,
		rgba(0,0,0,0.7) 100%
	);
}
.mv-service-card__content > * { color: inherit !important; max-width: none !important; }
.mv-service-card__title {
	font-family: var(--mv-font-display) !important;
	font-weight: 800 !important;
	font-size: clamp(1.35rem, 1.1rem + 0.5vw, 1.65rem) !important;
	line-height: 1.2 !important;
	margin: 0 0 0.6rem !important;
	color: #ffffff !important;
	text-shadow: 0 2px 12px rgba(0,0,0,0.7), 0 1px 2px rgba(0,0,0,0.6);
}
.mv-service-card__desc {
	font-size: 0.95rem !important;
	color: #ffffff !important;
	margin: 0 0 0.6rem !important;
	line-height: 1.55 !important;
	text-shadow: 0 1px 6px rgba(0,0,0,0.7);
	font-weight: 500 !important;
}
.mv-service-card__details {
	margin: 0 0 0.85rem !important;
	padding: 0 !important;
	list-style: none !important;
	color: #ffffff !important;
	display: grid;
	gap: 0.35rem;
}
.mv-service-card__details li {
	position: relative;
	padding-left: 1.1rem !important;
	font-size: 0.85rem !important;
	line-height: 1.45 !important;
	list-style: none !important;
	text-shadow: 0 1px 4px rgba(0,0,0,0.7);
	color: #ffffff !important;
	font-weight: 500 !important;
}
.mv-service-card__details li::marker { content: ''; }
.mv-service-card__details li::before {
	content: "";
	position: absolute;
	left: 0; top: 0.55em;
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 9999px;
	background: hsl(var(--mv-primary));
	box-shadow: 0 0 8px hsl(var(--mv-primary) / 0.6);
}
.wp-block-group.mv-service-card .wp-block-buttons {
	margin: 0 !important;
}
.wp-block-group.mv-service-card .wp-block-button__link {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border-radius: 9999px !important;
	padding: 0.5rem 1rem !important;
	font-size: 0.78rem !important;
	font-weight: 600 !important;
}

/* === Stats / Values / Team / Reviews (wp:group grids) ================== */
.wp-block-group.mv-stats,
.wp-block-group.mv-values,
.wp-block-group.mv-team,
.wp-block-group.mv-reviews {
	display: grid !important;
	max-width: 1240px;
	margin: 0 auto !important;
	padding: 0 1.5rem !important;
	width: 100%;
	gap: 1.25rem;
	grid-template-columns: 1fr;
}
@media (min-width: 640px) {
	.wp-block-group.mv-stats { grid-template-columns: repeat(2, 1fr); }
	.wp-block-group.mv-values { grid-template-columns: repeat(2, 1fr); }
	.wp-block-group.mv-team { grid-template-columns: repeat(3, 1fr); }
	.wp-block-group.mv-reviews { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
	.wp-block-group.mv-stats { grid-template-columns: repeat(4, 1fr); }
	.wp-block-group.mv-values { grid-template-columns: repeat(4, 1fr); }
}

.wp-block-group.mv-stat,
.wp-block-group.mv-value,
.wp-block-group.mv-review,
.wp-block-group.mv-team__card {
	background: hsl(var(--mv-card)) !important;
	border: 1px solid hsl(var(--mv-border)) !important;
	border-radius: 1.25rem !important;
	padding: 1.75rem 1.25rem !important;
	margin: 0 !important;
	text-align: center;
	transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.wp-block-group.mv-stat:hover,
.wp-block-group.mv-value:hover,
.wp-block-group.mv-review:hover {
	border-color: hsl(var(--mv-primary) / 0.35) !important;
	transform: translateY(-2px);
	box-shadow: var(--mv-shadow-soft);
}

.mv-stat__num {
	font-family: var(--mv-font-display) !important;
	font-weight: 700 !important;
	font-size: clamp(2.2rem, 1.6rem + 1.6vw, 3.25rem) !important;
	background: linear-gradient(135deg, hsl(var(--mv-primary)), hsl(var(--mv-leaf))) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	-webkit-text-fill-color: transparent !important;
	color: transparent !important;
	margin: 0 0 0.4rem !important;
	line-height: 1 !important;
}
.mv-stat__label {
	font-size: 0.9rem !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 !important;
}

.mv-value__title {
	font-size: 1.1rem !important;
	margin: 0 0 0.5rem !important;
}
.mv-value__desc {
	color: hsl(var(--mv-muted-foreground)) !important;
	font-size: 0.92rem !important;
	margin: 0 !important;
}

.wp-block-group.mv-team__card {
	text-align: center;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
}
.wp-block-group.mv-team__card .wp-block-image.mv-team__photo {
	width: 100%;
	margin: 0 0 1rem !important;
}
.wp-block-group.mv-team__card .wp-block-image.mv-team__photo img {
	width: 100%;
	aspect-ratio: 3 / 4;
	border-radius: 1.25rem;
	object-fit: cover;
	box-shadow: var(--mv-shadow-soft);
}
.mv-team__name { font-size: 1.1rem !important; margin: 0 0 .2rem !important; }
.mv-team__role {
	color: hsl(var(--mv-primary)) !important;
	font-weight: 600 !important;
	font-size: 0.9rem !important;
	margin: 0 0 0.3rem !important;
}
.mv-team__desc {
	color: hsl(var(--mv-muted-foreground)) !important;
	font-size: 0.9rem !important;
	margin: 0 !important;
}

.wp-block-group.mv-review { text-align: left; }
.mv-review__stars {
	color: #f7b733 !important;
	font-size: 1.05rem !important;
	letter-spacing: 0.1em;
	margin: 0 0 0.85rem !important;
}
.mv-review__text {
	font-size: 1rem !important;
	line-height: 1.6 !important;
	margin: 0 0 1rem !important;
	color: hsl(var(--mv-foreground) / 0.9) !important;
}
.mv-review__author {
	font-weight: 700 !important;
	font-family: var(--mv-font-display) !important;
	margin: 0 !important;
	font-size: 1rem !important;
}

/* === CTA band (wp:group.mv-cta-band) =================================== */
.wp-block-group.mv-cta-band {
	background: linear-gradient(135deg, hsl(var(--mv-deep)) 0%, hsl(var(--mv-forest)) 100%) !important;
	color: hsl(var(--mv-on-dark)) !important;
	padding: clamp(3rem, 2.2rem + 2.5vw, 5.5rem) 1.5rem !important;
	border-radius: clamp(1.25rem, 1rem + 1vw, 2rem) !important;
	max-width: 1240px;
	margin: 0 auto !important;
	text-align: center;
	position: relative;
	overflow: hidden;
	box-shadow: var(--mv-shadow-elegant);
}
.wp-block-group.mv-cta-band::before {
	content: "";
	position: absolute;
	inset: -50%;
	background: radial-gradient(circle at 30% 30%, hsl(var(--mv-primary) / 0.18), transparent 60%);
	pointer-events: none;
}
.wp-block-group.mv-cta-band > * {
	position: relative;
	color: inherit !important;
	max-width: 60ch !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.wp-block-group.mv-cta-band h2 {
	color: hsl(var(--mv-on-dark)) !important;
	font-size: clamp(1.75rem, 1.3rem + 2vw, 2.75rem) !important;
	margin: 0 0 0.85rem !important;
	font-weight: 700 !important;
	letter-spacing: -0.01em;
}
.wp-block-group.mv-cta-band p {
	color: hsl(var(--mv-on-dark) / 0.88) !important;
	margin: 0 auto 1.75rem !important;
	font-size: 1.05rem !important;
}
.wp-block-group.mv-cta-band .wp-block-buttons {
	justify-content: center !important;
	gap: 0.85rem !important;
}
.wp-block-group.mv-cta-band .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	box-shadow: 0 8px 25px -8px hsl(var(--mv-primary) / 0.55), 0 0 0 0 hsl(var(--mv-primary) / 0.4) !important;
}
.wp-block-group.mv-cta-band .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: hsl(var(--mv-primary-glow)) !important;
}
.wp-block-group.mv-cta-band .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	border: 2px solid hsl(var(--mv-on-dark) / 0.6) !important;
	color: hsl(var(--mv-on-dark)) !important;
}
.wp-block-group.mv-cta-band .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: hsl(var(--mv-on-dark) / 0.12) !important;
	border-color: hsl(var(--mv-on-dark)) !important;
}

/* Variante recrutement (page Équipe) — accent vert primary */
.wp-block-group.mv-cta-band.mv-cta-band--join {
	background: linear-gradient(135deg, hsl(var(--mv-forest)) 0%, hsl(var(--mv-deep)) 100%) !important;
}
.wp-block-group.mv-cta-band.mv-cta-band--join::before {
	background: radial-gradient(circle at 70% 30%, hsl(var(--mv-primary) / 0.28), transparent 60%);
}
.wp-block-group.mv-cta-band.mv-cta-band--join .mv-eyebrow {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	box-shadow: 0 4px 18px hsl(var(--mv-primary) / 0.45);
}

/* === Page hero (sub-pages) — wp:group.mv-page-hero ===================== */
section.mv-page-hero,
.wp-block-group.mv-page-hero {
	position: relative;
	padding: clamp(8rem, 6rem + 4vw, 11rem) 1.5rem 5rem !important;
	color: hsl(var(--mv-on-dark)) !important;
	overflow: hidden;
	background: hsl(var(--mv-forest));
	margin: 0 !important;
	width: 100vw !important;
	max-width: 100vw !important;
}
section.mv-page-hero > .wp-block-image,
.wp-block-group.mv-page-hero > .wp-block-image {
	position: absolute !important;
	inset: 0;
	margin: 0 !important;
	z-index: 0;
}
section.mv-page-hero > .wp-block-image img,
.wp-block-group.mv-page-hero > .wp-block-image img {
	width: 100%; height: 100%;
	object-fit: cover;
}
section.mv-page-hero::after,
.wp-block-group.mv-page-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, hsl(var(--mv-forest) / 0.85) 0%, hsl(var(--mv-forest) / 0.65) 60%, hsl(var(--mv-forest) / 0.85) 100%),
		linear-gradient(135deg, hsl(var(--mv-hero-overlay) / 0.6), transparent);
	z-index: 1;
}
.mv-page-hero__inner {
	position: relative;
	z-index: 2;
	max-width: 1240px;
	margin: 0 auto !important;
	color: hsl(var(--mv-on-dark)) !important;
	text-align: left;
}
.mv-page-hero__inner > * { color: inherit !important; }
.mv-page-hero__inner h1.wp-block-heading {
	color: hsl(var(--mv-on-dark)) !important;
	font-size: clamp(2.25rem, 1.6rem + 3vw, 4.5rem) !important;
	margin: 0.5rem 0 1rem !important;
	max-width: 16ch !important;
	line-height: 1.05 !important;
	text-shadow: 0 2px 30px hsl(var(--mv-forest) / 0.6);
}
.mv-page-hero__breadcrumb {
	display: inline-block !important;
	font-size: 0.78rem !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color: hsl(var(--mv-on-dark)) !important;
	background: hsl(var(--mv-primary) / 0.95) !important;
	padding: 0.4rem 0.95rem !important;
	border-radius: 9999px !important;
	font-weight: 700 !important;
	margin: 0 0 0.5rem !important;
	max-width: max-content !important;
	color: hsl(var(--mv-primary-foreground)) !important;
}
.mv-page-hero__lead {
	color: hsl(var(--mv-on-dark) / 0.92) !important;
	max-width: 60ch !important;
	font-size: 1.15rem !important;
	margin: 0 !important;
	line-height: 1.6 !important;
	text-shadow: 0 2px 20px hsl(var(--mv-forest) / 0.5);
}

/* === Quote philosophie (À propos) — wp:quote natif ===================== */
.wp-block-quote.mv-quote {
	position: relative;
	border: none !important;
	background: hsl(var(--mv-card)) !important;
	border-radius: 1rem;
	padding: 3rem 2.5rem 2rem !important;
	margin: 2.5rem auto !important;
	max-width: 50rem !important;
	text-align: center;
}
/* Gros guillemet décoratif en haut */
.wp-block-quote.mv-quote::before {
	content: '\201C';
	position: absolute;
	top: -0.5rem;
	left: 50%;
	transform: translateX(-50%);
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 5rem;
	line-height: 1;
	color: hsl(var(--mv-primary));
	background: hsl(var(--mv-card));
	width: 4rem;
	height: 4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 2px solid hsl(var(--mv-primary) / 0.25);
}
.wp-block-quote.mv-quote p {
	font-family: var(--mv-font-display);
	font-size: clamp(1.1rem, 1rem + 0.6vw, 1.4rem) !important;
	line-height: 1.55 !important;
	font-style: italic;
	font-weight: 500;
	color: hsl(var(--mv-foreground)) !important;
	margin: 0 0 1.25rem !important;
	max-width: 42rem;
	margin-left: auto !important;
	margin-right: auto !important;
}
.wp-block-quote.mv-quote cite {
	display: block;
	font-size: 0.85rem !important;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: hsl(var(--mv-deep)) !important;
	font-style: normal !important;
	font-weight: 700;
}
.wp-block-quote.mv-quote cite::before {
	content: '— ';
	color: hsl(var(--mv-primary));
}
@media (max-width: 640px) {
	.wp-block-quote.mv-quote { padding: 2.5rem 1.5rem 1.5rem !important; margin: 2rem 1rem !important; }
	.wp-block-quote.mv-quote::before { width: 3rem; height: 3rem; font-size: 3.5rem; top: -0.25rem; }
}

/* === Checklist (À propos) ============================================== */
.wp-block-list.mv-checklist {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 auto !important;
	max-width: 60ch !important;
	display: grid;
	gap: 0.75rem;
}
.wp-block-list.mv-checklist li {
	position: relative;
	padding-left: 1.75rem !important;
	list-style: none !important;
	font-size: 1rem !important;
}
.wp-block-list.mv-checklist li::marker { content: ''; }
.wp-block-list.mv-checklist li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: hsl(var(--mv-primary));
	font-weight: 700;
	font-size: 1.1rem;
}

/* === Jobs (Nous rejoindre) ============================================== */
.wp-block-group.mv-jobs {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	max-width: 60rem !important;
	margin: 0 auto !important;
	padding: 0 1.5rem !important;
	width: 100%;
}
@media (min-width: 768px) {
	.wp-block-group.mv-jobs { grid-template-columns: repeat(3, 1fr); }
}
.wp-block-group.mv-job {
	background: hsl(var(--mv-card)) !important;
	border: 1px solid hsl(var(--mv-border)) !important;
	border-radius: 1.25rem !important;
	padding: 1.75rem !important;
	margin: 0 !important;
	transition: border-color 0.3s ease, transform 0.3s ease;
}
.wp-block-group.mv-job:hover {
	border-color: hsl(var(--mv-primary)) !important;
	transform: translateY(-3px);
}
.wp-block-group.mv-job h3 { margin: 0 0 .35rem !important; font-size: 1.15rem !important; }
.wp-block-group.mv-job p { color: hsl(var(--mv-muted-foreground)) !important; line-height: 1.55 !important; margin: 0 0 1rem !important; }
.mv-job__tag {
	display: inline-block !important;
	font-size: 0.78rem !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	color: hsl(var(--mv-primary)) !important;
	background: hsl(var(--mv-primary) / 0.1) !important;
	padding: 0.3rem 0.75rem !important;
	border-radius: 9999px !important;
	font-weight: 600 !important;
	margin: 0 !important;
}

/* === Contact grid (form + info) ========================================= */
.wp-block-group.mv-contact-grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 2rem;
	max-width: 1240px;
	margin: 0 auto !important;
	padding: 0 1.5rem !important;
	width: 100%;
}
@media (min-width: 1024px) {
	.wp-block-group.mv-contact-grid { grid-template-columns: 1.3fr 1fr; }
}
.wp-block-group.mv-contact-form-col { margin: 0 !important; }
.wp-block-group.mv-contact-form-col h2 {
	font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem) !important;
	margin: 0 0 1.25rem !important;
}

/* Contact info aside (rendu via shortcode mv_contact_info) */
.mv-contact-info {
	background: linear-gradient(160deg, hsl(var(--mv-deep)) 0%, hsl(var(--mv-forest)) 100%) !important;
	color: hsl(var(--mv-on-dark)) !important;
	border-radius: 1.5rem;
	padding: 2.5rem;
	box-shadow: var(--mv-shadow-elegant);
	position: relative;
	overflow: hidden;
}
.mv-contact-info::before {
	content: "";
	position: absolute;
	inset: -50%;
	background: radial-gradient(circle at 80% 0%, hsl(var(--mv-primary) / 0.18), transparent 50%);
	pointer-events: none;
}
.mv-contact-info > * { position: relative; }
.mv-contact-info h3 {
	color: hsl(var(--mv-on-dark)) !important;
	margin: 0 0 1.5rem !important;
	font-size: 1.45rem !important;
	font-family: var(--mv-font-display) !important;
	font-weight: 700 !important;
}
.mv-contact-info ul {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: grid;
	gap: 1.1rem;
	font-size: 0.98rem;
}
.mv-contact-info ul li {
	color: hsl(var(--mv-on-dark) / 0.92) !important;
	line-height: 1.55;
}
.mv-contact-info a {
	color: hsl(var(--mv-primary)) !important;
	text-decoration: none !important;
	border-bottom: 1px solid hsl(var(--mv-primary) / 0.4);
	padding-bottom: 1px;
	transition: color 0.25s, border-color 0.25s;
}
.mv-contact-info a:hover {
	color: hsl(var(--mv-primary-glow)) !important;
	border-bottom-color: hsl(var(--mv-primary-glow));
}
.mv-contact-info__phone {
	font-weight: 800 !important;
	font-size: 1.4rem !important;
	display: inline-block;
	color: hsl(var(--mv-primary)) !important;
	border-bottom: 0 !important;
	padding-bottom: 0 !important;
}
.mv-contact-info ul li strong {
	color: hsl(var(--mv-on-dark)) !important;
	font-weight: 700;
}
.mv-contact-info__zone {
	border-top: 1px solid hsl(var(--mv-on-dark) / 0.2);
	margin-top: 1.75rem;
	padding-top: 1.75rem;
	font-size: 0.95rem;
	line-height: 1.65;
}
.mv-contact-info__zone p { color: hsl(var(--mv-on-dark) / 0.85) !important; margin: 0 0 0.5rem !important; }
.mv-contact-info__zone p strong {
	color: hsl(var(--mv-primary)) !important;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-size: 0.85rem;
}

/* Carte Google Maps (rendu via shortcode mv_map) */
.mv-map-wrap {
	aspect-ratio: 16 / 9;
	border-radius: 1.25rem;
	overflow: hidden;
	box-shadow: var(--mv-shadow-soft);
	max-width: 1240px;
	margin: 0 auto;
}
.mv-map-wrap iframe { width: 100%; height: 100%; border: 0; display: block; }

/* === Eyebrow (petit titre coloré au-dessus des h2) ===================== */
.mv-eyebrow {
	display: inline-block !important;
	font-family: var(--mv-font-body) !important;
	font-size: 0.85rem !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	color: hsl(var(--mv-deep)) !important;
	font-weight: 600 !important;
	background: hsl(var(--mv-primary) / 0.18);
	padding: 0.45rem 1rem !important;
	border-radius: 9999px;
	margin: 0 auto 1rem !important;
	max-width: max-content !important;
}
.has-text-align-center .mv-eyebrow,
.mv-eyebrow.has-text-align-center { display: block; }

/* === Trust bar (sous le hero) ========================================== */
.wp-block-group.mv-trust {
	background: linear-gradient(135deg, hsl(var(--mv-deep)), hsl(var(--mv-forest))) !important;
	color: hsl(var(--mv-deep-foreground)) !important;
	padding: 1.5rem 1rem !important;
	margin: 0 !important;
	width: 100vw !important;
	max-width: 100vw !important;
}
.wp-block-group.mv-trust__inner {
	max-width: 1240px;
	margin: 0 auto !important;
	padding: 0 1rem !important;
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 1rem 1.5rem;
	width: 100%;
}
@media (min-width: 768px) {
	.wp-block-group.mv-trust__inner { grid-template-columns: repeat(4, 1fr); }
}
.wp-block-group.mv-trust__item {
	margin: 0 !important;
	padding: 0.5rem !important;
	text-align: center;
	border-right: 1px solid hsl(var(--mv-primary-foreground) / 0.12);
}
.wp-block-group.mv-trust__item:last-child { border-right: 0; }
@media (max-width: 767px) {
	.wp-block-group.mv-trust__item:nth-child(2n) { border-right: 0; }
}
.mv-trust__title {
	color: hsl(var(--mv-primary)) !important;
	font-size: clamp(1.15rem, 0.95rem + 0.6vw, 1.55rem) !important;
	font-weight: 800 !important;
	margin: 0 0 0.3rem !important;
	letter-spacing: -0.01em !important;
}
.mv-trust__sub {
	color: hsl(var(--mv-on-dark)) !important;
	font-size: 0.88rem !important;
	margin: 0 !important;
	line-height: 1.4 !important;
	font-weight: 500 !important;
	opacity: 0.92;
}

/* === Process / méthodologie — timeline horizontale ==================== */
.wp-block-group.mv-steps {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	max-width: 1240px;
	margin: 3rem auto 0 !important;
	padding: 0 1.5rem !important;
	width: 100%;
	position: relative;
}
/* Ligne pointillée connectrice horizontale en desktop */
@media (min-width: 1100px) {
	.wp-block-group.mv-steps {
		grid-template-columns: repeat(5, 1fr);
		gap: 0;
	}
	.wp-block-group.mv-steps::before {
		content: "";
		position: absolute;
		top: 2rem;
		left: 10%;
		right: 10%;
		height: 2px;
		background-image: linear-gradient(to right, hsl(var(--mv-primary)) 50%, transparent 50%);
		background-size: 12px 2px;
		background-repeat: repeat-x;
		z-index: 0;
	}
}
@media (min-width: 768px) and (max-width: 1099px) {
	.wp-block-group.mv-steps { grid-template-columns: repeat(2, 1fr); }
}

.wp-block-group.mv-step {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 1rem !important;
	margin: 0 !important;
	position: relative;
	z-index: 1;
	text-align: center;
	transition: transform 0.3s ease;
}
.wp-block-group.mv-step:hover { transform: translateY(-4px); }

/* Le numéro devient une pastille verte ronde, point d'ancrage de la timeline */
.mv-step__num {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 4rem !important;
	height: 4rem !important;
	margin: 0 auto 1.25rem !important;
	border-radius: 9999px !important;
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	font-family: var(--mv-font-display) !important;
	font-size: 1.4rem !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	box-shadow:
		0 0 0 4px hsl(var(--mv-background)),
		0 0 0 6px hsl(var(--mv-primary) / 0.3),
		0 12px 28px -8px hsl(var(--mv-primary) / 0.45);
	-webkit-text-stroke: 0;
	transition: transform 0.3s ease, background 0.3s ease;
}
.wp-block-group.mv-step:hover .mv-step__num {
	transform: scale(1.08);
	background: hsl(var(--mv-deep)) !important;
}

.mv-step__title {
	font-size: 1.1rem !important;
	margin: 0 0 0.5rem !important;
	color: hsl(var(--mv-foreground)) !important;
	font-weight: 700 !important;
}
.mv-step__desc {
	font-size: 0.92rem !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	line-height: 1.55 !important;
	margin: 0 auto !important;
	max-width: 18rem;
}

/* === À propos split — image + storytelling + stats inline ============= */
.wp-block-group.mv-about-split {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	max-width: 1240px;
	margin: 0 auto !important;
	padding: 0 1.5rem !important;
	width: 100%;
	align-items: center;
}
@media (min-width: 900px) {
	.wp-block-group.mv-about-split {
		grid-template-columns: 5fr 6fr;
		gap: 4rem;
	}
}
.wp-block-group.mv-about-split__media {
	position: relative !important;
	margin: 0 !important;
	padding: 0 !important;
}
.wp-block-group.mv-about-split__media .wp-block-image.mv-about__photo {
	margin: 0 !important;
	border-radius: 1.5rem;
	overflow: hidden;
	box-shadow: var(--mv-shadow-elegant);
	aspect-ratio: 4 / 5;
}
.wp-block-group.mv-about-split__media .wp-block-image.mv-about__photo img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block;
	border-radius: 1.5rem;
}
.wp-block-group.mv-about-split__badge {
	position: absolute !important;
	bottom: -1rem;
	right: -1rem;
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	padding: 1.25rem 1.75rem !important;
	border-radius: 1.25rem !important;
	box-shadow: 0 12px 30px -10px hsl(var(--mv-deep) / 0.4);
	margin: 0 !important;
	text-align: center;
}
.mv-about-split__badge-label {
	font-size: 0.7rem !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	font-weight: 700 !important;
	margin: 0 !important;
	color: hsl(var(--mv-deep)) !important;
}
.mv-about-split__badge-year {
	font-family: var(--mv-font-display) !important;
	font-size: 2.25rem !important;
	font-weight: 800 !important;
	margin: 0 !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	line-height: 1 !important;
}
.wp-block-group.mv-about-split__content {
	margin: 0 !important;
	padding: 0 !important;
}
.wp-block-group.mv-about-split__content > .mv-eyebrow { margin-left: 0 !important; }
.wp-block-group.mv-about-split__content h2 {
	font-size: clamp(1.85rem, 1.4rem + 1.5vw, 2.75rem) !important;
	margin: 0 0 1.25rem !important;
	line-height: 1.15 !important;
}
.wp-block-group.mv-about-split__content p {
	font-size: 1.05rem !important;
	line-height: 1.65 !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 0 1rem !important;
	max-width: none !important;
}
.wp-block-group.mv-about-split__content .wp-block-buttons {
	margin-top: 1.5rem !important;
}

/* Stats inline (3 chiffres en ligne, séparateurs verticaux) */
.wp-block-group.mv-stats-inline {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	margin: 1.75rem 0 !important;
	padding: 1.5rem 0 !important;
	border-top: 1px solid hsl(var(--mv-border));
	border-bottom: 1px solid hsl(var(--mv-border));
}
.wp-block-group.mv-stat-inline {
	margin: 0 !important;
	padding: 0 1rem !important;
	border-right: 1px solid hsl(var(--mv-border));
	text-align: left;
}
.wp-block-group.mv-stat-inline:first-child { padding-left: 0 !important; }
.wp-block-group.mv-stat-inline:last-child  { border-right: 0; padding-right: 0 !important; }
.mv-stat-inline__num {
	font-family: var(--mv-font-display) !important;
	font-size: clamp(1.85rem, 1.4rem + 1vw, 2.5rem) !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	margin: 0 0 0.25rem !important;
	color: hsl(var(--mv-deep)) !important;
}
.mv-stat-inline__label {
	font-size: 0.82rem !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
}
@media (max-width: 640px) {
	.mv-stat-inline__num { font-size: 1.6rem !important; }
	.mv-stat-inline__label { font-size: 0.72rem !important; }
}

/* === FAQ accordion (markup natif wp:group + JS toggle .is-open) =========
 * Design original restauré :
 *  - pastille numérotée (CSS counter) à gauche, ::before sur .mv-faq__q
 *  - chevron à droite, ::after sur .mv-faq__q
 *  - tout en pseudo-éléments → 0 markup supplémentaire, le client édite juste H3 + P
 * ========================================================================= */
.wp-block-group.mv-faq {
	counter-reset: mv-faq;
	max-width: 56rem;
	margin: 0 auto !important;
	padding: 0 1.5rem !important;
	width: 100%;
	display: grid !important;
	gap: 0.9rem;
}
.wp-block-group.mv-faq__item {
	counter-increment: mv-faq;
	background: #ffffff;
	border: 1.5px solid hsl(var(--mv-border));
	border-radius: 0.85rem;
	overflow: hidden;
	padding: 0 !important;
	margin: 0 !important;
	transition: border-color 0.25s ease, transform 0.2s ease;
}
.wp-block-group.mv-faq__item:hover {
	border-color: hsl(var(--mv-primary));
	transform: translateY(-1px);
}
.wp-block-group.mv-faq__item.is-open {
	border-color: hsl(var(--mv-primary));
}

/* La question : h3.wp-block-heading.mv-faq__q sert de bouton accordéon */
.mv-faq__q {
	display: flex !important;
	align-items: center;
	gap: 1rem;
	padding: 1.35rem 1.5rem !important;
	margin: 0 !important;
	cursor: pointer;
	font-family: var(--mv-font-display);
	font-size: 1.08rem !important;
	font-weight: 600;
	color: hsl(var(--mv-foreground));
	line-height: 1.4;
	user-select: none;
	letter-spacing: 0;
	transition: background 0.2s ease, color 0.2s ease;
	position: relative;
}
.mv-faq__q:hover { color: hsl(var(--mv-deep)); }
.mv-faq__q:focus-visible {
	outline: 2px solid hsl(var(--mv-primary));
	outline-offset: -2px;
}
/* Pastille numérotée à gauche (CSS counter) */
.mv-faq__q::before {
	content: counter(mv-faq);
	flex-shrink: 0;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 9999px;
	background: hsl(var(--mv-primary) / 0.18);
	color: hsl(var(--mv-deep));
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--mv-font-display);
	font-weight: 800;
	font-size: 1.1rem;
	line-height: 1;
	transition: background 0.25s ease, color 0.25s ease, transform 0.3s ease;
}
/* Chevron à droite (CSS pur) */
.mv-faq__q::after {
	content: '';
	flex-shrink: 0;
	margin-left: auto;
	width: 0.7rem;
	height: 0.7rem;
	border-right: 2.5px solid hsl(var(--mv-deep));
	border-bottom: 2.5px solid hsl(var(--mv-deep));
	transform: rotate(45deg);
	transition: transform 0.35s var(--mv-ease), border-color 0.25s ease;
	margin-bottom: 0.25rem;
}
.wp-block-group.mv-faq__item.is-open .mv-faq__q {
	color: hsl(var(--mv-deep));
}
.wp-block-group.mv-faq__item.is-open .mv-faq__q::before {
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
	transform: rotate(360deg);
}
.wp-block-group.mv-faq__item.is-open .mv-faq__q::after {
	transform: rotate(-135deg);
	border-color: hsl(var(--mv-primary));
	margin-top: 0.25rem;
	margin-bottom: 0;
}

/* La réponse : p.mv-faq__a, repliée par défaut.
 * Indentée pour s'aligner sous le texte de la question (après la pastille).
 */
.mv-faq__a {
	max-height: 0;
	overflow: hidden;
	padding: 0 1.5rem 0 calc(1.5rem + 2.4rem + 1rem) !important;
	margin: 0 !important;
	color: hsl(var(--mv-muted-foreground));
	line-height: 1.7;
	font-size: 1rem;
	background: transparent;
	transition: max-height 0.35s var(--mv-ease), padding 0.35s var(--mv-ease);
}
.wp-block-group.mv-faq__item.is-open .mv-faq__a {
	max-height: 600px;
	padding: 1.35rem 1.5rem 1.5rem calc(1.5rem + 2.4rem + 1rem) !important;
}

@media (max-width: 640px) {
	.mv-faq__q {
		padding: 1.1rem 1rem !important;
		font-size: 0.98rem !important;
		gap: 0.75rem;
	}
	.mv-faq__q::before { width: 2rem; height: 2rem; font-size: 0.95rem; }
	.mv-faq__q::after { width: 0.6rem; height: 0.6rem; }
	.mv-faq__a {
		padding: 0 1rem 0 calc(1rem + 2rem + 0.75rem) !important;
	}
	.wp-block-group.mv-faq__item.is-open .mv-faq__a {
		padding: 1.1rem 1rem 1.25rem calc(1rem + 2rem + 0.75rem) !important;
		font-size: 0.95rem;
	}
}

/* === Labels & partenaires — cartes en wp:group natifs ================== */
.wp-block-group.mv-partners-grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1rem;
	max-width: 1240px;
	margin: 2.25rem auto 0 !important;
	padding: 0 1.5rem !important;
	width: 100%;
}
@media (min-width: 600px)  { .wp-block-group.mv-partners-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 980px)  { .wp-block-group.mv-partners-grid { grid-template-columns: repeat(4, 1fr); } }

.wp-block-group.mv-partner {
	position: relative;
	background: #ffffff !important;
	border: 1.5px solid hsl(var(--mv-border)) !important;
	border-radius: 0.85rem !important;
	padding: 1.5rem 1.4rem 1.4rem !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column;
	gap: 0.55rem;
	transition: transform 0.3s var(--mv-ease), border-color 0.25s ease, background 0.3s ease;
	min-height: 100%;
	overflow: hidden;
}
.wp-block-group.mv-partner::before {
	content: "";
	position: absolute;
	top: 0; left: 0; bottom: 0;
	width: 4px;
	background: hsl(var(--mv-primary));
	transition: width 0.3s var(--mv-ease);
}
.wp-block-group.mv-partner:hover {
	transform: translateY(-3px);
	border-color: hsl(var(--mv-primary)) !important;
	background: hsl(var(--mv-primary) / 0.04) !important;
}
.wp-block-group.mv-partner:hover::before { width: 7px; }

/* Eyebrow paragraphe avec le ✓ en plein texte */
.mv-partner__eyebrow {
	font-size: 0.7rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: hsl(var(--mv-deep)) !important;
	margin: 0 !important;
	line-height: 1.3;
}
.mv-partner__name {
	font-family: var(--mv-font-display) !important;
	font-size: 1.25rem !important;
	font-weight: 800 !important;
	color: hsl(var(--mv-foreground)) !important;
	margin: 0.15rem 0 0 !important;
	letter-spacing: -0.01em;
	line-height: 1.15;
}
.mv-partner__desc {
	font-size: 0.88rem !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	line-height: 1.5 !important;
	margin: 0 !important;
	flex-grow: 1;
}
.mv-partner__stat {
	display: inline-block !important;
	font-size: 0.78rem !important;
	font-weight: 700 !important;
	color: hsl(var(--mv-deep)) !important;
	background: hsl(var(--mv-primary) / 0.12) !important;
	padding: 0.3rem 0.7rem !important;
	border-radius: 9999px !important;
	line-height: 1.3 !important;
	margin: 0.5rem 0 0 !important;
	max-width: max-content !important;
}

/* Palette unifiée — toutes les cartes en vert primary (cohérence brand) */
.mv-partner {
	--mv-partner-color: hsl(var(--mv-deep));
	--mv-partner-bg: hsl(var(--mv-primary) / 0.12);
}

/* === Sticky CTA mobile (téléphone + devis fixés en bas) ================ */
.mv-sticky-cta {
	display: none;
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 80;
	background: hsl(var(--mv-background) / 0.97);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-top: 1px solid hsl(var(--mv-border));
	box-shadow: 0 -10px 30px -8px hsl(var(--mv-foreground) / 0.18);
	padding: 0.6rem;
	gap: 0.5rem;
	align-items: stretch;
}
@media (max-width: 1023px) {
	.mv-sticky-cta { display: flex; }
	body { padding-bottom: 80px; }
}
.mv-sticky-cta a {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	text-decoration: none;
	font-family: var(--mv-font-body);
	font-weight: 700;
	font-size: 0.95rem;
	border-radius: 9999px;
	padding: 0.85rem 0.6rem;
	min-height: 48px;
	transition: transform 0.2s ease;
}
.mv-sticky-cta a:active { transform: scale(0.97); }
.mv-sticky-cta__phone {
	background: hsl(var(--mv-card));
	color: hsl(var(--mv-deep)) !important;
	border: 2px solid hsl(var(--mv-primary));
}
.mv-sticky-cta__phone svg { color: hsl(var(--mv-deep)); }
.mv-sticky-cta__phone span { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.1; }
.mv-sticky-cta__phone span strong { font-size: 1.05rem; }
.mv-sticky-cta__phone span span { font-size: 0.7rem; color: hsl(var(--mv-muted-foreground)); font-weight: 500; }
.mv-sticky-cta__devis {
	background: hsl(var(--mv-deep)) !important;
	color: hsl(var(--mv-deep-foreground)) !important;
	box-shadow: 0 8px 25px -8px hsl(var(--mv-deep) / 0.55);
}
.mv-sticky-cta__devis:hover { background: hsl(var(--mv-foreground)) !important; }

/* === Boutons globaux : nouveau vert (texte foncé sur primary clair) ==== */
.wp-block-button:not(.is-style-outline) .wp-block-button__link,
.wp-block-cover.mv-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link,
section.mv-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border-radius: 9999px !important;
	padding: 0.95rem 1.85rem !important;
	font-weight: 700 !important;
	box-shadow: 0 8px 25px -8px hsl(var(--mv-primary) / 0.55);
	transition: transform 0.2s ease, box-shadow 0.3s ease, background 0.3s ease;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: hsl(var(--mv-primary-glow)) !important;
	transform: translateY(-2px);
}

/* === Features row (réassurance 3 colonnes — blocs natifs) ============= */
.wp-block-group.mv-features {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	max-width: 1200px;
	margin: 0 auto !important;
	padding: 0 1.5rem !important;
	width: 100%;
}
@media (min-width: 768px) { .wp-block-group.mv-features { grid-template-columns: repeat(3, 1fr); } }
.wp-block-group.mv-feature {
	background: hsl(var(--mv-card)) !important;
	border: 1px solid hsl(var(--mv-border)) !important;
	border-radius: 1.25rem !important;
	padding: 2rem 1.75rem !important;
	margin: 0 !important;
	text-align: left;
	transition: transform 0.3s ease, border-color 0.3s ease;
	display: flex !important;
	flex-direction: column;
	gap: 0.4rem;
}
.wp-block-group.mv-feature:hover {
	transform: translateY(-4px);
	border-color: hsl(var(--mv-primary)) !important;
}
.mv-feature__icon,
.mv-feature__emoji {
	font-size: 0 !important;
	line-height: 1 !important;
	margin: 0 0 0.6rem !important;
	width: 3rem;
	height: 3rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: hsl(var(--mv-primary) / 0.18);
	border-radius: 0.85rem;
	color: hsl(var(--mv-deep)) !important;
}
.mv-feature__icon svg,
.mv-feature__emoji svg {
	width: 1.5rem;
	height: 1.5rem;
	display: block;
}
.mv-feature__title {
	font-size: 1.15rem !important;
	font-weight: 700 !important;
	margin: 0 !important;
	font-family: var(--mv-font-display) !important;
	color: hsl(var(--mv-foreground)) !important;
}
.mv-feature__desc {
	font-size: 0.95rem !important;
	line-height: 1.55 !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 !important;
}

/* === Timeline (À propos) — markup natif wp:group ====================== */
.wp-block-group.mv-timeline {
	max-width: 56rem;
	margin: 2rem auto 0 !important;
	padding: 0 1.5rem !important;
	width: 100%;
	position: relative;
}
.wp-block-group.mv-timeline::before {
	content: "";
	position: absolute;
	left: calc(1.5rem + 5rem + 0.5rem);
	top: 0; bottom: 0;
	width: 2px;
	background: linear-gradient(to bottom, transparent, hsl(var(--mv-primary)) 5%, hsl(var(--mv-primary)) 95%, transparent);
}
@media (max-width: 640px) {
	.wp-block-group.mv-timeline::before { left: 1.5rem; }
}
/* Chaque ligne : year (col 1) + dot (col 2 via ::before) + title (col 3 row 1) + desc (col 3 row 2) */
.wp-block-group.mv-timeline__row {
	display: grid !important;
	grid-template-columns: 5rem 1.5rem 1fr;
	grid-template-rows: auto auto;
	align-items: start;
	column-gap: 1rem;
	row-gap: 0.3rem;
	padding: 1rem 0 1.5rem !important;
	margin: 0 !important;
	position: relative;
	background: transparent !important;
	border: none !important;
}
/* Le "dot" sur la spine, généré en pseudo-element — pas besoin de markup */
.wp-block-group.mv-timeline__row::before {
	content: "";
	grid-column: 2;
	grid-row: 1 / span 2;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 9999px;
	background: hsl(var(--mv-primary));
	border: 4px solid #ffffff;
	margin-top: 0.4rem;
	justify-self: center;
	align-self: start;
	z-index: 1;
}
.mv-timeline__year {
	grid-column: 1;
	grid-row: 1 / span 2;
	font-family: var(--mv-font-display) !important;
	font-size: 1.25rem !important;
	font-weight: 800;
	color: hsl(var(--mv-deep));
	text-align: right;
	padding-right: 0.5rem;
	padding-top: 0.2rem;
	margin: 0 !important;
	align-self: start;
}
.mv-timeline__title {
	grid-column: 3;
	grid-row: 1;
	font-size: 1.1rem !important;
	font-weight: 700;
	margin: 0 !important;
	color: hsl(var(--mv-foreground));
	font-family: var(--mv-font-display);
	line-height: 1.3;
}
.mv-timeline__desc {
	grid-column: 3;
	grid-row: 2;
	font-size: 0.95rem;
	line-height: 1.55;
	color: hsl(var(--mv-muted-foreground));
	margin: 0 !important;
}
@media (max-width: 640px) {
	.wp-block-group.mv-timeline__row {
		grid-template-columns: 0 1.5rem 1fr;
		column-gap: 0.75rem;
	}
	.mv-timeline__year {
		grid-column: 3;
		grid-row: 1;
		text-align: left;
		font-size: 0.85rem !important;
		color: hsl(var(--mv-primary));
		letter-spacing: 0.08em;
		text-transform: uppercase;
		padding-right: 0;
	}
	.mv-timeline__title {
		grid-row: 2;
	}
	.mv-timeline__desc {
		grid-row: 3;
	}
	.wp-block-group.mv-timeline__row::before {
		grid-row: 1 / span 3;
		margin-top: 0.25rem;
	}
}

/* === Quick contact cards (Contact) — blocs natifs ===================== */
.wp-block-group.mv-qc-grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	max-width: 1200px;
	margin: 2rem auto 0 !important;
	padding: 0 1.5rem !important;
	width: 100%;
}
@media (min-width: 768px) { .wp-block-group.mv-qc-grid { grid-template-columns: repeat(3, 1fr); } }
.wp-block-group.mv-qc-card {
	display: flex !important;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.4rem;
	background: #ffffff !important;
	border: 1.5px solid hsl(var(--mv-border)) !important;
	border-radius: 1.25rem !important;
	padding: 1.75rem !important;
	margin: 0 !important;
	transition: transform 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}
.wp-block-group.mv-qc-card:hover {
	transform: translateY(-4px);
	border-color: hsl(var(--mv-primary)) !important;
	background: hsl(var(--mv-card)) !important;
}
.mv-qc-card__icon {
	font-size: 0 !important;
	line-height: 1 !important;
	width: 3rem;
	height: 3rem;
	border-radius: 0.85rem;
	background: hsl(var(--mv-primary) / 0.18);
	color: hsl(var(--mv-deep));
	display: flex !important;
	align-items: center;
	justify-content: center;
	margin: 0 0 0.5rem !important;
}
.mv-qc-card__icon svg {
	width: 1.5rem;
	height: 1.5rem;
	display: block;
}
.mv-qc-card__eyebrow {
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	color: hsl(var(--mv-primary)) !important;
	margin: 0 !important;
}
.mv-qc-card__title {
	font-family: var(--mv-font-display) !important;
	font-size: 1.4rem !important;
	font-weight: 800 !important;
	color: hsl(var(--mv-deep)) !important;
	line-height: 1.2 !important;
	margin: 0 !important;
}
.mv-qc-card__sub {
	font-size: 0.9rem !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	line-height: 1.45 !important;
	margin: 0 0 0.85rem !important;
}
.wp-block-group.mv-qc-card .wp-block-buttons { margin-top: auto !important; width: 100%; }
.wp-block-group.mv-qc-card .wp-block-button { width: 100%; }
.wp-block-group.mv-qc-card .wp-block-button__link {
	width: 100%;
	min-height: 44px !important;
	padding: 0.55rem 1rem !important;
	font-size: 0.88rem !important;
}

/* === Benefits (Nous rejoindre) — blocs natifs ========================= */
.wp-block-group.mv-benefits {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	max-width: 1200px;
	margin: 2rem auto 0 !important;
	padding: 0 1.5rem !important;
	width: 100%;
}
@media (min-width: 640px)  { .wp-block-group.mv-benefits { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .wp-block-group.mv-benefits { grid-template-columns: repeat(3, 1fr); } }
.wp-block-group.mv-benefit {
	background: hsl(var(--mv-card)) !important;
	border: 1px solid hsl(var(--mv-border)) !important;
	border-radius: 1.25rem !important;
	padding: 1.75rem !important;
	margin: 0 !important;
	transition: transform 0.3s ease, border-color 0.3s ease;
}
.wp-block-group.mv-benefit:hover {
	transform: translateY(-3px);
	border-color: hsl(var(--mv-primary)) !important;
}
.mv-benefit__icon,
.mv-benefit__emoji {
	font-size: 0 !important;
	margin: 0 0 0.8rem !important;
	line-height: 1 !important;
	width: 3rem;
	height: 3rem;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: hsl(var(--mv-primary) / 0.18);
	border-radius: 0.85rem;
	color: hsl(var(--mv-deep)) !important;
}
.mv-benefit__icon svg,
.mv-benefit__emoji svg {
	width: 1.5rem;
	height: 1.5rem;
	display: block;
}
.mv-benefit__title {
	font-size: 1.15rem !important;
	font-weight: 700 !important;
	margin: 0 0 0.4rem !important;
	color: hsl(var(--mv-foreground)) !important;
	font-family: var(--mv-font-display) !important;
}
.mv-benefit__desc {
	font-size: 0.92rem !important;
	line-height: 1.55 !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 !important;
}

/* === Testimonial (markup wp:quote natif) =============================== */
.wp-block-quote.mv-testimonial {
	max-width: 56rem;
	margin: 0 auto !important;
	padding: 0 1.5rem !important;
	text-align: center;
	position: relative;
	border: none !important;
	background: transparent;
}
/* Guillemets décoratifs en CSS pur */
.wp-block-quote.mv-testimonial::before {
	content: '\201C';
	display: block;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 5rem;
	line-height: 0.8;
	color: hsl(var(--mv-primary));
	opacity: 0.55;
	margin-bottom: 0.5rem;
}
/* La citation (premier <p> inséré par wp:paragraph) */
.wp-block-quote.mv-testimonial > p {
	font-family: var(--mv-font-display);
	font-size: clamp(1.2rem, 1rem + 0.8vw, 1.65rem);
	font-style: italic;
	font-weight: 500;
	line-height: 1.5;
	color: hsl(var(--mv-foreground));
	margin: 0 auto 1.5rem !important;
	max-width: 50rem;
	padding: 0 !important;
	border: none !important;
}
/* L'auteur (cite) */
.wp-block-quote.mv-testimonial cite {
	display: block;
	font-style: normal;
	font-weight: 700;
	font-size: 0.95rem;
	color: hsl(var(--mv-deep));
	letter-spacing: 0.04em;
}

/* === Trombinoscope (page Équipe) — markup natif Gutenberg =============== */
.wp-block-group.mv-trombi {
	max-width: 1240px;
	margin: 2rem auto 0 !important;
	padding: 0 1.5rem !important;
	display: grid !important;
	gap: 3rem;
	width: 100%;
}
.wp-block-group.mv-trombi__row {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	background: #ffffff !important;
	border: 1px solid hsl(var(--mv-border)) !important;
	border-radius: 1.5rem !important;
	padding: 2rem !important;
	margin: 0 !important;
	transition: transform 0.4s var(--mv-ease), border-color 0.3s ease;
}
.wp-block-group.mv-trombi__row:hover {
	transform: translateY(-3px);
	border-color: hsl(var(--mv-primary)) !important;
}
@media (min-width: 900px) {
	.wp-block-group.mv-trombi__row {
		grid-template-columns: 5fr 6fr;
		gap: 3rem;
		align-items: center;
	}
}

/* Bloc chef à gauche : portrait + info en 2 sous-colonnes */
.wp-block-group.mv-trombi__chef {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	align-items: start;
	margin: 0 !important;
	padding: 0 !important;
}
@media (min-width: 640px) {
	.wp-block-group.mv-trombi__chef { grid-template-columns: 9rem 1fr; gap: 1.5rem; }
}

/* Portrait wp:image avec className mv-trombi__portrait */
.wp-block-image.mv-trombi__portrait {
	margin: 0 !important;
	width: 100%;
	max-width: 9rem;
	aspect-ratio: 1;
	border-radius: 1.25rem;
	overflow: hidden;
	background: hsl(var(--mv-card));
}
.wp-block-image.mv-trombi__portrait img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 1.25rem;
}

/* Bloc info (eyebrow + name + role + bio + expertise) */
.wp-block-group.mv-trombi__info {
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
}
.mv-trombi__eyebrow {
	display: inline-block !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	color: hsl(var(--mv-deep)) !important;
	background: hsl(var(--mv-primary) / 0.18) !important;
	padding: 0.3rem 0.75rem !important;
	border-radius: 9999px !important;
	margin: 0 0 0.5rem !important;
	max-width: max-content !important;
}
.mv-trombi__name {
	font-family: var(--mv-font-display) !important;
	font-size: clamp(1.6rem, 1.3rem + 0.8vw, 2.1rem) !important;
	font-weight: 800 !important;
	margin: 0 0 0.3rem !important;
	color: hsl(var(--mv-foreground)) !important;
	letter-spacing: -0.02em;
}
.mv-trombi__role {
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	color: hsl(var(--mv-primary)) !important;
	margin: 0 0 0.85rem !important;
}
.mv-trombi__bio {
	font-size: 0.95rem !important;
	line-height: 1.55 !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 0 1rem !important;
}
.wp-block-list.mv-trombi__expertise {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.4rem;
}
.wp-block-list.mv-trombi__expertise li {
	font-size: 0.78rem;
	font-weight: 600;
	background: hsl(var(--mv-card));
	border: 1px solid hsl(var(--mv-border));
	color: hsl(var(--mv-foreground));
	padding: 0.3rem 0.75rem;
	border-radius: 9999px;
	list-style: none !important;
}
.wp-block-list.mv-trombi__expertise li::marker { content: ''; }

/* Bloc "Son équipe en action" : titre + wp:gallery */
.wp-block-group.mv-trombi__team-wrap {
	border-top: 1px dashed hsl(var(--mv-border));
	padding-top: 1.5rem !important;
	margin: 0 !important;
}
@media (min-width: 900px) {
	.wp-block-group.mv-trombi__team-wrap {
		border-top: 0;
		border-left: 1px dashed hsl(var(--mv-border));
		padding-top: 0 !important;
		padding-left: 2rem !important;
	}
}
.mv-trombi__team-label {
	font-size: 0.78rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.15em !important;
	text-transform: uppercase !important;
	color: hsl(var(--mv-deep)) !important;
	margin: 0 0 0.85rem !important;
}
.wp-block-gallery.mv-trombi__team-gallery {
	margin: 0 !important;
	padding: 0 !important;
	gap: 0.6rem !important;
}
.wp-block-gallery.mv-trombi__team-gallery .wp-block-image {
	border-radius: 0.75rem;
	overflow: hidden;
	margin: 0 !important;
}
.wp-block-gallery.mv-trombi__team-gallery .wp-block-image img {
	aspect-ratio: 1;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0.75rem;
	transition: transform 0.3s ease;
}
.wp-block-gallery.mv-trombi__team-gallery .wp-block-image:hover img {
	transform: scale(1.05);
}

/* === Portfolio filtre riche (page Réalisations) ====================== */
.mv-portfolio {
	max-width: 1240px;
	margin: 2rem auto 0;
	padding: 0 1.5rem;
	width: 100%;
}
.mv-portfolio__toolbar {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.85rem;
	margin-bottom: 1.25rem;
}
@media (min-width: 768px) {
	.mv-portfolio__toolbar { grid-template-columns: 1fr auto; align-items: center; }
}
.mv-portfolio__search {
	position: relative;
	display: flex;
	align-items: center;
}
.mv-portfolio__search svg {
	position: absolute;
	left: 1rem;
	color: hsl(var(--mv-muted-foreground));
	pointer-events: none;
}
.mv-portfolio__search input {
	width: 100%;
	padding: 0.85rem 1rem 0.85rem 3rem !important;
	border: 1.5px solid hsl(var(--mv-border));
	border-radius: 9999px;
	background: #ffffff;
	font-size: 0.98rem !important;
	min-height: 48px;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.mv-portfolio__search input:focus {
	border-color: hsl(var(--mv-primary));
	box-shadow: 0 0 0 4px hsl(var(--mv-primary) / 0.15);
	outline: none;
}
.mv-portfolio__sort {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	white-space: nowrap;
}
.mv-portfolio__sort label {
	font-size: 0.85rem;
	font-weight: 600;
	color: hsl(var(--mv-muted-foreground));
}
.mv-portfolio__sort select {
	padding: 0.6rem 1rem !important;
	border: 1.5px solid hsl(var(--mv-border));
	border-radius: 9999px;
	background: #ffffff;
	font-size: 0.9rem !important;
	min-height: 44px;
	cursor: pointer;
	font-weight: 600;
}
.mv-portfolio__sort select:focus {
	border-color: hsl(var(--mv-primary));
	outline: none;
}

.mv-portfolio__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1rem;
}
.mv-filter-chip {
	background: #ffffff;
	border: 1.5px solid hsl(var(--mv-border));
	color: hsl(var(--mv-foreground));
	padding: 0.55rem 1.1rem;
	border-radius: 9999px;
	font-size: 0.88rem;
	font-weight: 600;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	transition: all 0.2s ease;
}
.mv-filter-chip:hover {
	border-color: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary));
}
.mv-filter-chip.is-active {
	background: hsl(var(--mv-primary));
	border-color: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
	box-shadow: 0 4px 12px -4px hsl(var(--mv-primary) / 0.5);
}
.mv-filter-chip__count {
	background: hsl(var(--mv-foreground) / 0.08);
	color: inherit;
	padding: 0.1rem 0.5rem;
	border-radius: 9999px;
	font-size: 0.72rem;
	font-weight: 700;
}
.mv-filter-chip.is-active .mv-filter-chip__count {
	background: hsl(var(--mv-primary-foreground) / 0.25);
}

.mv-portfolio__counter {
	font-size: 0.92rem;
	color: hsl(var(--mv-muted-foreground));
	margin-bottom: 1.25rem;
	padding: 0.5rem 0.85rem;
	border-left: 3px solid hsl(var(--mv-primary));
	background: hsl(var(--mv-primary) / 0.08);
	border-radius: 0 0.5rem 0.5rem 0;
	display: inline-block;
}
.mv-portfolio__counter strong {
	font-size: 1.1rem;
	font-weight: 800;
	color: hsl(var(--mv-deep));
}

/* Masonry CSS pur — chaque image garde son ratio naturel */
.mv-portfolio__grid {
	column-count: 1;
	column-gap: 1rem;
	width: 100%;
}
@media (min-width: 640px)  { .mv-portfolio__grid { column-count: 2; } }
@media (min-width: 1024px) { .mv-portfolio__grid { column-count: 3; column-gap: 1.25rem; } }
@media (min-width: 1400px) { .mv-portfolio__grid { column-count: 4; } }

.mv-portfolio__card {
	display: inline-block;
	width: 100%;
	margin: 0 0 1rem;
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	background: #ffffff;
	border: 1px solid hsl(var(--mv-border));
	border-radius: 1.1rem;
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.25s ease;
}
@media (min-width: 1024px) {
	.mv-portfolio__card { margin-bottom: 1.25rem; }
}
.mv-portfolio__card:hover {
	transform: translateY(-4px);
	box-shadow: var(--mv-shadow-elegant);
	border-color: hsl(var(--mv-primary));
}
.mv-portfolio__card.is-hidden { display: none; }

.mv-portfolio__card figure {
	margin: 0;
	overflow: hidden;
	aspect-ratio: auto;
	background: hsl(var(--mv-card));
}
.mv-portfolio__card figure img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: auto;
	object-fit: contain;
	transition: transform 0.6s var(--mv-ease);
}
.mv-portfolio__card:hover figure img { transform: scale(1.06); }
.mv-portfolio__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.85rem 1.1rem;
	gap: 0.5rem;
}
.mv-portfolio__cat {
	font-size: 0.85rem;
	font-weight: 700;
	color: hsl(var(--mv-deep));
	font-family: var(--mv-font-display);
}
.mv-portfolio__year {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: hsl(var(--mv-primary));
	background: hsl(var(--mv-primary) / 0.15);
	padding: 0.25rem 0.65rem;
	border-radius: 9999px;
}

.mv-portfolio__empty {
	text-align: center;
	padding: 3rem 1.5rem;
	color: hsl(var(--mv-muted-foreground));
}
.mv-portfolio__empty svg { color: hsl(var(--mv-muted-foreground)); opacity: 0.5; margin-bottom: 1rem; }
.mv-portfolio__empty p { font-size: 1.05rem; margin: 0; }

/* === Flyer / brochure téléchargeable ================================== */
.mv-flyer {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	align-items: center;
	max-width: 1100px;
	margin: 2rem auto 0;
	padding: 2rem 1.75rem;
	background: linear-gradient(135deg, hsl(var(--mv-card)), #ffffff);
	border: 1px solid hsl(var(--mv-border));
	border-radius: 1.5rem;
	box-shadow: var(--mv-shadow-soft);
	position: relative;
	overflow: hidden;
}
.mv-flyer::before {
	content: "";
	position: absolute;
	top: -40%;
	right: -20%;
	width: 60%;
	height: 200%;
	background: radial-gradient(circle, hsl(var(--mv-primary) / 0.12), transparent 70%);
	pointer-events: none;
}
@media (min-width: 768px) {
	.mv-flyer {
		grid-template-columns: auto 1fr auto;
		gap: 2rem;
		padding: 2.25rem 2.5rem;
	}
}
.mv-flyer__visual {
	width: 5rem;
	height: 5rem;
	border-radius: 1.25rem;
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 12px 28px -8px hsl(var(--mv-primary) / 0.55);
	position: relative;
	z-index: 1;
}
.mv-flyer__visual svg { width: 60%; height: 60%; }
.mv-flyer__content { position: relative; z-index: 1; min-width: 0; }
.mv-flyer__eyebrow {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: hsl(var(--mv-primary)) !important;
	background: hsl(var(--mv-primary) / 0.15);
	padding: 0.3rem 0.75rem;
	border-radius: 9999px;
	margin: 0 0 0.5rem !important;
}
.mv-flyer__title {
	font-family: var(--mv-font-display);
	font-size: 1.45rem;
	font-weight: 800;
	margin: 0 0 0.5rem;
	color: hsl(var(--mv-foreground));
}
.mv-flyer__desc {
	color: hsl(var(--mv-muted-foreground));
	font-size: 0.95rem;
	line-height: 1.55;
	margin: 0 0 0.85rem;
}
.mv-flyer__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}
.mv-flyer__tag {
	font-size: 0.78rem;
	font-weight: 600;
	color: hsl(var(--mv-deep));
	background: hsl(var(--mv-primary) / 0.12);
	padding: 0.25rem 0.7rem;
	border-radius: 9999px;
	white-space: nowrap;
}
.mv-flyer__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	padding: 0.95rem 1.6rem;
	background: hsl(var(--mv-deep));
	color: hsl(var(--mv-deep-foreground)) !important;
	border-radius: 9999px;
	text-decoration: none;
	font-weight: 700;
	font-size: 0.95rem;
	transition: transform 0.2s ease, background 0.25s ease, box-shadow 0.3s ease;
	box-shadow: 0 8px 24px -8px hsl(var(--mv-deep) / 0.55);
	position: relative;
	z-index: 1;
	white-space: nowrap;
}
.mv-flyer__btn:hover {
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground)) !important;
	transform: translateY(-2px);
}
.mv-flyer__btn svg { flex-shrink: 0; }

/* === Formulaire CV (Nous rejoindre) =================================== */
.mv-cv-form {
	max-width: 56rem;
	margin: 1.5rem auto 0;
	padding: 0 1.5rem;
	display: grid;
	gap: 1rem;
}
.mv-cv-form__row-2 {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
@media (min-width: 640px) {
	.mv-cv-form__row-2 { grid-template-columns: 1fr 1fr; }
}
.mv-cv-field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}
.mv-cv-field label {
	font-size: 0.88rem;
	font-weight: 600;
	color: hsl(var(--mv-foreground));
}
.mv-cv-field input[type="text"],
.mv-cv-field input[type="email"],
.mv-cv-field input[type="tel"],
.mv-cv-field select,
.mv-cv-field textarea {
	width: 100%;
	padding: 0.85rem 1rem !important;
	border: 1.5px solid hsl(var(--mv-border)) !important;
	border-radius: 0.85rem !important;
	background: #ffffff !important;
	font-family: var(--mv-font-body) !important;
	font-size: 1rem !important;
	color: hsl(var(--mv-foreground)) !important;
	min-height: 48px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.mv-cv-field input:focus,
.mv-cv-field select:focus,
.mv-cv-field textarea:focus {
	outline: none;
	border-color: hsl(var(--mv-primary)) !important;
	box-shadow: 0 0 0 4px hsl(var(--mv-primary) / 0.15);
}
.mv-cv-field--upload {
	background: hsl(var(--mv-card));
	border: 2px dashed hsl(var(--mv-border));
	border-radius: 1rem;
	padding: 1.25rem;
	transition: border-color 0.25s ease, background 0.25s ease;
}
.mv-cv-field--upload:hover {
	border-color: hsl(var(--mv-primary));
	background: hsl(var(--mv-primary) / 0.05);
}
.mv-cv-field--upload input[type="file"] {
	width: 100%;
	padding: 0.5rem 0 !important;
	background: transparent !important;
	border: 0 !important;
	font-size: 0.92rem !important;
}
.mv-cv-field--upload input[type="file"]::file-selector-button {
	background: hsl(var(--mv-deep));
	color: hsl(var(--mv-deep-foreground));
	border: 0;
	border-radius: 0.6rem;
	padding: 0.6rem 1rem;
	font-weight: 700;
	cursor: pointer;
	margin-right: 1rem;
	font-family: var(--mv-font-body);
	font-size: 0.9rem;
	transition: background 0.25s ease;
}
.mv-cv-field--upload input[type="file"]::file-selector-button:hover {
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
}
.mv-cv-field--upload small {
	display: block;
	margin-top: 0.4rem;
	font-size: 0.82rem;
	color: hsl(var(--mv-muted-foreground));
}
.mv-cv-field--checkbox label {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	font-weight: 500;
	font-size: 0.92rem;
	color: hsl(var(--mv-muted-foreground));
	line-height: 1.45;
	cursor: pointer;
}
.mv-cv-field--checkbox input[type="checkbox"] {
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.15rem;
	accent-color: hsl(var(--mv-primary));
	flex-shrink: 0;
}
.mv-cv-form .mv-btn {
	margin-top: 0.5rem;
	justify-self: stretch;
	min-height: 56px;
	font-size: 1.05rem !important;
}
@media (min-width: 640px) {
	.mv-cv-form .mv-btn { justify-self: center; padding: 1.05rem 2.5rem !important; }
}

.mv-cv-msg {
	padding: 1rem 1.25rem;
	border-radius: 0.85rem;
	font-weight: 600;
	font-size: 0.95rem;
}
.mv-cv-msg--success {
	background: hsl(var(--mv-primary) / 0.18);
	color: hsl(var(--mv-deep));
	border: 1.5px solid hsl(var(--mv-primary));
}
.mv-cv-msg--error {
	background: rgba(220, 38, 38, 0.1);
	color: rgb(150, 20, 20);
	border: 1.5px solid rgb(220, 38, 38);
}

/* === Lightbox =========================================================== */
.mv-lightbox {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: clamp(1rem, 2vw, 2.5rem);
	background: rgba(10, 14, 8, 0.94);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	opacity: 0;
	transition: opacity 0.25s ease;
}
.mv-lightbox.is-open {
	display: flex;
	opacity: 1;
}

.mv-lightbox__stage {
	margin: 0;
	max-width: min(1400px, 92vw);
	max-height: 88vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	animation: mv-lb-pop 0.35s var(--mv-ease);
}
@keyframes mv-lb-pop {
	from { opacity: 0; transform: scale(0.95); }
	to   { opacity: 1; transform: scale(1); }
}
.mv-lightbox__img {
	max-width: 100%;
	max-height: 80vh;
	object-fit: contain;
	border-radius: 0.85rem;
	box-shadow: 0 30px 80px -20px rgba(0,0,0,0.7);
	background: #000;
}
.mv-lightbox__caption {
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.95rem;
	text-align: center;
	max-width: 60ch;
	line-height: 1.45;
	margin: 0;
	padding: 0 1rem;
}

.mv-lightbox__close,
.mv-lightbox__nav {
	position: absolute;
	background: rgba(0, 0, 0, 0.55);
	border: 1.5px solid rgba(255, 255, 255, 0.25);
	color: #fff;
	width: 52px;
	height: 52px;
	border-radius: 9999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.mv-lightbox__close { top: clamp(1rem, 2vw, 1.5rem); right: clamp(1rem, 2vw, 1.5rem); }
.mv-lightbox__nav   { top: 50%; transform: translateY(-50%); }
.mv-lightbox__nav--prev { left: clamp(0.75rem, 2vw, 2rem); }
.mv-lightbox__nav--next { right: clamp(0.75rem, 2vw, 2rem); }

.mv-lightbox__close:hover,
.mv-lightbox__nav:hover {
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
	border-color: hsl(var(--mv-primary));
	transform: scale(1.06);
}
.mv-lightbox__nav:hover { transform: translateY(-50%) scale(1.06); }

.mv-lightbox__counter {
	position: absolute;
	top: clamp(1rem, 2vw, 1.5rem);
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255, 255, 255, 0.85);
	font-family: var(--mv-font-body);
	font-size: 0.88rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	background: rgba(0, 0, 0, 0.5);
	padding: 0.5rem 1rem;
	border-radius: 9999px;
	border: 1px solid rgba(255, 255, 255, 0.15);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

@media (max-width: 640px) {
	.mv-lightbox__close, .mv-lightbox__nav {
		width: 44px;
		height: 44px;
	}
	.mv-lightbox__nav--prev { left: 0.5rem; }
	.mv-lightbox__nav--next { right: 0.5rem; }
	.mv-lightbox__close { top: 0.75rem; right: 0.75rem; }
	.mv-lightbox__counter { top: 0.75rem; font-size: 0.78rem; padding: 0.35rem 0.75rem; }
	.mv-lightbox__img { max-height: 70vh; }
}

/* Cursor zoom-in sur images cliquables (en plus du JS) */
.entry-content figure.wp-block-image img,
.wp-block-post-content figure.wp-block-image img,
main figure.wp-block-image img {
	transition: transform 0.4s var(--mv-ease);
}

/* === wp:gallery = Galerie de réalisations =============================== */
.wp-block-gallery.has-nested-images {
	max-width: 1240px;
	margin: 1rem auto 1.5rem !important;
	padding: 0 1.5rem !important;
	gap: 1rem !important;
}
.wp-block-gallery.has-nested-images .wp-block-image {
	border-radius: 1.25rem;
	overflow: hidden;
	box-shadow: var(--mv-shadow-soft);
	transition: transform 0.4s var(--mv-ease), box-shadow 0.4s ease;
	background: hsl(var(--mv-card));
	margin: 0 !important;
}
.wp-block-gallery.has-nested-images .wp-block-image:hover {
	transform: translateY(-4px);
	box-shadow: var(--mv-shadow-elegant);
}
.wp-block-gallery.has-nested-images .wp-block-image img {
	border-radius: 1.25rem;
	transition: transform 0.7s var(--mv-ease);
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block;
	aspect-ratio: 4 / 3;
}
.wp-block-gallery.has-nested-images .wp-block-image:hover img {
	transform: scale(1.05);
}
@media (min-width: 768px) {
	.wp-block-gallery.has-nested-images.columns-3 .wp-block-image,
	.wp-block-gallery.has-nested-images.columns-4 .wp-block-image {
		aspect-ratio: 4 / 3;
	}
}

/* === Hero (section.mv-hero — full-bleed, parallax bg, gradient overlay) ===== */
section.mv-hero,
.wp-block-group.mv-hero {
	position: relative;
	min-height: 700px;
	height: 100vh;
	overflow: hidden;
	color: hsl(var(--mv-primary-foreground));
	display: flex;
	align-items: center;
	padding: 0;
	margin: 0 !important;
	width: 100vw !important;
	max-width: 100vw !important;
}
/* Inner : 1 colonne centrée, plus de grille split */
section.mv-hero > .mv-hero__inner,
.wp-block-group.mv-hero > .mv-hero__inner {
	width: 100%;
	max-width: 56rem;
	margin: 0 auto;
	padding: 5rem 1.5rem;
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.mv-hero__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 42rem;
	margin: 0 auto;
}

/* H1 imposant mais simple, sans glow excessif */
section.mv-hero h1,
.wp-block-group.mv-hero h1 {
	font-size: clamp(2.25rem, 5vw + 0.5rem, 4.25rem) !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	margin: 0 0 1.25rem !important;
	letter-spacing: -0.02em;
	max-width: 18ch;
}

/* Sous-titre : sobre, lisible */
.mv-hero__lead,
section.mv-hero .mv-hero__lead,
.wp-block-group.mv-hero .mv-hero__lead {
	font-size: clamp(1rem, 1.1vw + 0.5rem, 1.25rem) !important;
	line-height: 1.55 !important;
	color: hsl(var(--mv-on-dark) / 0.85) !important;
	margin: 0 0 1.75rem !important;
	max-width: 38rem;
	font-weight: 400;
}

/* Trust line discrète — étoiles + cert + chiffres sur une ligne */
.mv-hero__trust-wrap,
section.mv-hero .mv-hero__trust-wrap,
.wp-block-group.mv-hero .mv-hero__trust-wrap {
	font-size: 0.88rem !important;
	color: hsl(var(--mv-on-dark) / 0.75) !important;
	margin: 0 0 2rem !important;
	letter-spacing: 0.01em;
}
.mv-hero__trust {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	flex-wrap: wrap;
	justify-content: center;
}
.mv-hero__trust strong {
	color: hsl(var(--mv-on-dark)) !important;
	font-weight: 600;
}
.mv-hero__trust-sep {
	color: hsl(var(--mv-on-dark) / 0.4);
	margin: 0 0.15rem;
}
.mv-hero__trust svg { flex-shrink: 0; }

/* Boutons centrés — 2 actions (primary + outline) */
section.mv-hero .wp-block-buttons,
.wp-block-group.mv-hero .wp-block-buttons {
	justify-content: center !important;
	gap: 0.75rem !important;
	margin: 0 !important;
	flex-wrap: wrap;
}
section.mv-hero .wp-block-button__link {
	padding: 0.95rem 2rem !important;
	font-size: 1rem !important;
	font-weight: 600;
	border-radius: 9999px !important;
	transition: background 0.25s ease, transform 0.25s ease, color 0.25s ease, border-color 0.25s ease;
	min-height: 50px;
	display: inline-flex;
	align-items: center;
}
/* Primary : bouton vert plein */
section.mv-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border: none !important;
}
section.mv-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: hsl(var(--mv-primary-glow)) !important;
	transform: translateY(-2px);
}
/* Secondary : bouton outline blanc */
section.mv-hero .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: hsl(var(--mv-on-dark)) !important;
	border: 1.5px solid hsl(var(--mv-on-dark) / 0.5) !important;
}
section.mv-hero .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: hsl(var(--mv-on-dark) / 0.1) !important;
	border-color: hsl(var(--mv-on-dark)) !important;
	color: hsl(var(--mv-on-dark)) !important;
}

/* Mobile : ajustements de spacing */
@media (max-width: 767px) {
	section.mv-hero,
	.wp-block-group.mv-hero {
		min-height: calc(100svh - 80px);
		min-height: calc(100vh - 80px);
	}
	section.mv-hero > .mv-hero__inner {
		padding: 3rem 1.25rem !important;
	}
	section.mv-hero h1 {
		font-size: clamp(2rem, 8vw, 2.75rem) !important;
		margin: 0 0 1rem !important;
	}
	.mv-hero__lead {
		margin: 0 0 2rem !important;
		font-size: 1rem !important;
	}
}

/* ── Collage photo asymétrique droite ─────────── */
.mv-hero__collage {
	display: none;
	position: relative;
	width: 100%;
	max-width: 30rem;
	justify-self: end;
	aspect-ratio: 1 / 1.05;
	z-index: 3;
}
@media (min-width: 1024px) { .mv-hero__collage { display: block; } }

.mv-hero__collage-img {
	position: absolute;
	border-radius: 1.25rem;
	overflow: hidden;
	margin: 0;
	background: #fff;
	border: 6px solid #ffffff;
}
.mv-hero__collage-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.mv-hero__collage-img--back {
	top: 0;
	right: 5%;
	width: 60%;
	aspect-ratio: 3 / 4;
	transform: rotate(4deg);
	z-index: 1;
}
.mv-hero__collage-img--front {
	bottom: 0;
	left: 0;
	width: 70%;
	aspect-ratio: 4 / 3;
	transform: rotate(-3deg);
	z-index: 2;
}

/* Badge circulaire vert "30+ ans" */
.mv-hero__badge {
	position: absolute;
	top: 38%;
	right: -2%;
	width: 8.5rem;
	height: 8.5rem;
	border-radius: 9999px;
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.1rem;
	transform: rotate(-8deg);
	border: 5px solid #ffffff;
	z-index: 4;
}
.mv-hero__badge-leaf { color: hsl(var(--mv-primary-foreground)); opacity: 0.55; margin-bottom: 0.1rem; }
.mv-hero__badge strong {
	font-family: var(--mv-font-display);
	font-size: 1.85rem;
	font-weight: 800;
	line-height: 1;
}
.mv-hero__badge span {
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-align: center;
	line-height: 1.2;
	opacity: 0.85;
}

/* Texte circulaire qui tourne lentement */
.mv-hero__rotating-text {
	position: absolute;
	bottom: -3rem;
	left: 4rem;
	width: 9rem;
	height: 9rem;
	color: #ffffff;
	opacity: 0.85;
	animation: mv-rotate 20s linear infinite;
	z-index: 5;
}
.mv-hero__rotating-text svg { width: 100%; height: 100%; display: block; }
@keyframes mv-rotate {
	from { transform: rotate(0deg); }
	to   { transform: rotate(360deg); }
}

/* ── Décor SVG : retiré (rendu buggé) ─────────────── */

/* ── Preuves rapides sous CTA ────────────── */
.mv-hero__proof {
	list-style: none;
	margin: 1.75rem 0 0;
	padding: 1rem 1.25rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 1.5rem;
	background: rgba(0,0,0,0.32);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255,255,255,0.15);
	border-radius: 9999px;
	max-width: max-content;
}
.mv-hero__proof li {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.88rem;
	color: rgba(255,255,255,0.92);
	line-height: 1.3;
}
.mv-hero__proof li svg {
	color: hsl(var(--mv-primary));
	flex-shrink: 0;
}
.mv-hero__proof li strong {
	font-weight: 700;
	color: #ffffff;
	margin-right: 0.25rem;
}
@media (max-width: 640px) {
	.mv-hero__proof { border-radius: 1rem; flex-direction: column; gap: 0.5rem; }
}

/* ── Carte flottante droite (showcase) ────── */
.mv-hero__showcase {
	background: rgba(255,255,255,0.95);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border: 1px solid rgba(255,255,255,0.6);
	border-radius: 1.25rem;
	padding: 1.5rem 1.6rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	max-width: 22rem;
	width: 100%;
	justify-self: end;
	animation: mv-float 6s ease-in-out infinite;
}
@keyframes mv-float {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-10px); }
}
@media (max-width: 1023px) { .mv-hero__showcase { justify-self: start; animation: none; } }

.mv-hero__showcase-head {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid hsl(var(--mv-border));
}
.mv-hero__showcase-eyebrow {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: hsl(var(--mv-primary));
}
.mv-hero__showcase-title {
	font-family: var(--mv-font-display);
	font-size: 1.25rem;
	font-weight: 800;
	color: hsl(var(--mv-deep));
	margin: 0;
	line-height: 1.2;
}

.mv-hero__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
}
.mv-hero__stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.1rem;
}
.mv-hero__stat strong {
	font-family: var(--mv-font-display);
	font-size: 1.25rem;
	font-weight: 800;
	color: hsl(var(--mv-deep));
	line-height: 1;
}
.mv-hero__stat span {
	font-size: 0.72rem;
	color: hsl(var(--mv-muted-foreground));
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-weight: 600;
}

.mv-hero__call {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	background: hsl(var(--mv-deep));
	color: hsl(var(--mv-deep-foreground)) !important;
	padding: 0.85rem 1.1rem;
	border-radius: 9999px;
	text-decoration: none;
	transition: background 0.25s ease;
}
.mv-hero__call:hover { background: hsl(var(--mv-primary)); color: hsl(var(--mv-primary-foreground)) !important; }
.mv-hero__call svg { flex-shrink: 0; color: hsl(var(--mv-primary)); }
.mv-hero__call:hover svg { color: hsl(var(--mv-primary-foreground)); }
.mv-hero__call span { display: flex; flex-direction: column; line-height: 1.15; }
.mv-hero__call-label { font-size: 0.7rem; opacity: 0.85; letter-spacing: 0.05em; text-transform: uppercase; }
.mv-hero__call strong { font-size: 1.05rem; font-weight: 800; letter-spacing: 0.01em; }

/* ── Scroll indicator (bouton flottant en bas) ── */
.mv-hero__scroll {
	position: absolute;
	bottom: 4rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 5;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	color: rgba(255,255,255,0.85);
	font-size: 0.72rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	text-decoration: none;
	font-weight: 700;
	cursor: pointer;
}
.mv-hero__scroll svg {
	animation: mv-bounce 1.8s ease-in-out infinite;
}
@keyframes mv-bounce {
	0%, 100% { transform: translateY(0); opacity: 0.6; }
	50%      { transform: translateY(8px); opacity: 1; }
}
.mv-hero__scroll:hover { color: hsl(var(--mv-primary)); }
@media (max-width: 1023px) { .mv-hero__scroll { bottom: 2rem; } }

/* ── Wave séparateur en bas du hero ────────── */
.mv-hero__wave {
	position: absolute;
	bottom: -1px;
	left: 0;
	right: 0;
	width: 100%;
	height: 60px;
	color: hsl(var(--mv-background));
	z-index: 3;
	pointer-events: none;
}
@media (max-width: 767px) { .mv-hero__wave { height: 40px; } }
section.mv-hero h1, section.mv-hero h2, section.mv-hero p {
	color: #ffffff !important;
}
section.mv-hero h1 {
	font-size: clamp(3rem, 1.8rem + 6vw, 6.5rem) !important;
	line-height: 0.95 !important;
	letter-spacing: -0.02em !important;
	margin: 0 0 1.5rem !important;
	max-width: 18ch !important;
	font-weight: 700 !important;
	color: #ffffff !important;
	text-shadow: 0 4px 30px rgba(0,0,0,0.55), 0 2px 8px rgba(0,0,0,0.4);
}
section.mv-hero p {
	font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.3rem) !important;
	color: #ffffff !important;
	max-width: 50ch !important;
	line-height: 1.6 !important;
	margin: 0 0 2rem !important;
	font-weight: 500 !important;
	text-shadow: 0 2px 18px rgba(0,0,0,0.6), 0 1px 4px rgba(0,0,0,0.4);
}
section.mv-hero .wp-block-buttons {
	gap: 1rem;
	display: flex;
	flex-wrap: wrap;
}
section.mv-hero .wp-block-button__link {
	border-radius: 9999px;
	padding: 0.95rem 1.85rem;
	font-weight: 600;
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
	box-shadow: 0 8px 25px -8px hsl(var(--mv-primary) / 0.55);
}
section.mv-hero .wp-block-button.is-style-outline .wp-block-button__link,
section.mv-hero .wp-block-button__link.is-style-outline {
	background: hsl(var(--mv-primary-foreground) / 0.12);
	color: hsl(var(--mv-primary-foreground));
	border: 2px solid hsl(var(--mv-primary-foreground) / 0.45);
	backdrop-filter: blur(6px);
	box-shadow: none;
}
section.mv-hero .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: hsl(var(--mv-primary-foreground) / 0.2);
}
section.mv-hero .gradient-text {
	background: linear-gradient(135deg, hsl(var(--mv-primary-glow)), hsl(var(--mv-leaf)));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}
.mv-hero__bg {
	position: absolute;
	inset: 0;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	transform: scale(1.15);
	will-change: transform;
}
.mv-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(135deg, hsl(var(--mv-hero-overlay) / 0.7), hsl(var(--mv-hero-overlay) / 0.3));
}
.mv-hero__skew {
	position: absolute;
	top: 0; right: 0;
	width: 33%;
	height: 100%;
	background: hsl(var(--mv-primary) / 0.1);
	transform: skewX(-6deg) translateX(80px);
	display: none;
}
@media (min-width: 1024px) { .mv-hero__skew { display: block; } }
.mv-hero__inner {
	position: relative; z-index: 2;
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 5rem 1.5rem 3rem;
	display: block;
}
.mv-hero__inner > * {
	max-width: 60ch;
}
.mv-hero__inner > .wp-block-buttons {
	max-width: none;
	margin: 0;
}
.mv-hero__eyebrow {
	display: inline-block;
	padding: 0.45rem 1rem;
	background: hsl(var(--mv-primary) / 0.2);
	border: 1px solid hsl(var(--mv-primary-foreground) / 0.2);
	backdrop-filter: blur(8px);
	border-radius: 9999px;
	font-size: 0.85rem;
	font-weight: 500;
	color: hsl(var(--mv-primary-foreground));
	letter-spacing: 0.02em;
	margin-bottom: 1.5rem;
}
.mv-hero__title {
	font-family: var(--mv-font-display);
	font-weight: 700;
	font-size: clamp(3rem, 1.8rem + 6vw, 7rem);
	line-height: 0.95;
	margin: 0 0 1.5rem;
	color: hsl(var(--mv-primary-foreground));
	max-width: 18ch;
}
.mv-hero__title .gradient-text {
	background: linear-gradient(135deg, hsl(var(--mv-primary-glow)), hsl(var(--mv-leaf)));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}
.mv-hero__lead {
	font-family: var(--mv-font-body);
	font-size: clamp(1rem, 0.9rem + 0.4vw, 1.25rem);
	color: hsl(var(--mv-primary-foreground) / 0.85);
	max-width: 48ch;
	margin: 0 0 2.5rem;
	line-height: 1.6;
}
.mv-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}
.mv-hero__scroll {
	position: absolute;
	bottom: 2rem;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	color: hsl(var(--mv-primary-foreground) / 0.7);
	font-size: 0.7rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	animation: mv-bounce 2s infinite;
}
@keyframes mv-bounce {
	0%, 100% { transform: translate(-50%, 0); }
	50% { transform: translate(-50%, -10px); }
}

/* ===== Buttons (utilitaires Main Verte) ===== */
.mv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-family: var(--mv-font-body);
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	padding: 0.95rem 1.85rem;
	border-radius: 9999px;
	border: 2px solid transparent;
	transition: transform 0.2s ease, box-shadow 0.3s ease, background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
	cursor: pointer;
}
.mv-btn--primary {
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
	box-shadow: 0 8px 25px -8px hsl(var(--mv-primary) / 0.55);
}
.mv-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 12px 30px -8px hsl(var(--mv-primary) / 0.6); }
.mv-btn--ghost {
	background: hsl(var(--mv-primary-foreground) / 0.1);
	color: hsl(var(--mv-primary-foreground));
	border-color: hsl(var(--mv-primary-foreground) / 0.4);
	backdrop-filter: blur(6px);
}
.mv-btn--ghost:hover { background: hsl(var(--mv-primary-foreground) / 0.18); }
.mv-btn--outline {
	background: transparent;
	color: hsl(var(--mv-primary));
	border-color: hsl(var(--mv-primary) / 0.3);
}
.mv-btn--outline:hover { background: hsl(var(--mv-primary)); color: hsl(var(--mv-primary-foreground)); border-color: hsl(var(--mv-primary)); }
.mv-btn--lg { padding: 1.05rem 2.1rem; font-size: 1.05rem; }

/* ===== Sections génériques ===== */
.mv-section {
	padding: clamp(4rem, 3rem + 4vw, 7rem) 0;
}
.mv-section--card { background: hsl(var(--mv-card)); }
.mv-container {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 1.5rem;
}
.mv-eyebrow {
	display: inline-block;
	font-family: var(--mv-font-body);
	font-size: 0.78rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: hsl(var(--mv-primary));
	margin-bottom: 1rem;
	font-weight: 600;
}
.mv-section-heading {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1rem;
}
.mv-section-heading::before,
.mv-section-heading::after {
	content: "";
	height: 1px;
	background: hsl(var(--mv-border));
	flex: 1;
}
.mv-section-heading h2 {
	font-size: clamp(1.85rem, 1.2rem + 2vw, 3rem);
	margin: 0;
	font-weight: 700;
}
.mv-section__lead {
	font-size: 1.05rem;
	color: hsl(var(--mv-muted-foreground));
	max-width: 60ch;
	margin: 0 auto 3rem;
	text-align: center;
}

/* ===== Stats bar ===== */
.mv-stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
}
@media (min-width: 768px) {
	.mv-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.mv-stat {
	background: hsl(var(--mv-card));
	border: 1px solid hsl(var(--mv-border));
	border-radius: var(--mv-radius);
	padding: 1.75rem 1.25rem;
	text-align: center;
}
.mv-stat__num {
	display: block;
	font-family: var(--mv-font-display);
	font-weight: 700;
	font-size: clamp(2.2rem, 1.6rem + 1.6vw, 3.25rem);
	background: linear-gradient(135deg, hsl(var(--mv-primary)), hsl(var(--mv-leaf)));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
	margin-bottom: 0.4rem;
}
.mv-stat__label {
	font-family: var(--mv-font-body);
	color: hsl(var(--mv-muted-foreground));
	font-size: 0.9rem;
}

/* ===== Grille de services (cartes plein-image 4:5 façon maquette moderne) ===== */
.mv-services {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}
@media (min-width: 768px) { .mv-services { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .mv-services { grid-template-columns: repeat(3, 1fr); } }
.mv-service-card {
	position: relative;
	display: block;
	border-radius: 1.25rem;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	text-decoration: none;
	color: hsl(var(--mv-primary-foreground));
	isolation: isolate;
	cursor: pointer;
}
.mv-service-card__img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--mv-ease);
	z-index: 0;
}
.mv-service-card:hover .mv-service-card__img { transform: scale(1.1); }
.mv-service-card__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(to top, hsl(var(--mv-foreground) / 0.92) 0%, hsl(var(--mv-foreground) / 0.45) 45%, transparent 70%);
	z-index: 1;
}
.mv-service-card__content {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	padding: 1.75rem 1.5rem;
	z-index: 2;
}
.mv-service-card__title {
	font-family: var(--mv-font-display);
	font-weight: 700;
	font-size: clamp(1.3rem, 1.1rem + 0.4vw, 1.6rem);
	line-height: 1.2;
	margin: 0 0 0.6rem;
	color: hsl(var(--mv-primary-foreground));
}
.mv-service-card__desc {
	font-size: 0.92rem;
	color: hsl(var(--mv-primary-foreground) / 0.85);
	margin: 0;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height 0.55s var(--mv-ease), opacity 0.55s ease, margin 0.55s ease;
	line-height: 1.55;
}
.mv-service-card:hover .mv-service-card__desc {
	max-height: 12rem;
	opacity: 1;
	margin-bottom: 0.85rem;
}
.mv-service-card__details {
	margin: 0;
	padding: 0;
	list-style: none;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height 0.7s var(--mv-ease), opacity 0.7s ease;
}
.mv-service-card:hover .mv-service-card__details {
	max-height: 16rem;
	opacity: 1;
}
.mv-service-card__details li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.78rem;
	color: hsl(var(--mv-primary-foreground) / 0.75);
	line-height: 1.45;
	padding: 0.15rem 0;
}
.mv-service-card__details li::before {
	content: "";
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 9999px;
	background: hsl(var(--mv-primary-glow));
	flex-shrink: 0;
}
.mv-service-card__arrow {
	position: absolute;
	top: 1rem; right: 1rem;
	width: 2.75rem; height: 2.75rem;
	border-radius: 9999px;
	background: hsl(var(--mv-primary) / 0.92);
	color: hsl(var(--mv-primary-foreground));
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.3s ease, transform 0.3s ease;
	box-shadow: 0 10px 25px -8px hsl(var(--mv-primary) / 0.6);
}
.mv-service-card:hover .mv-service-card__arrow {
	opacity: 1; transform: translateY(0);
}

/* ===== Valeurs (icônes) ===== */
.mv-values {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
@media (min-width: 640px) { .mv-values { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .mv-values { grid-template-columns: repeat(4, 1fr); } }
.mv-value {
	background: hsl(var(--mv-card));
	border: 1px solid hsl(var(--mv-border));
	border-radius: var(--mv-radius);
	padding: 1.75rem 1.25rem;
	text-align: center;
	transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.mv-value:hover {
	border-color: hsl(var(--mv-primary) / 0.35);
	box-shadow: var(--mv-shadow-soft);
	transform: translateY(-2px);
}
.mv-value__icon {
	width: 3.5rem; height: 3.5rem;
	margin: 0 auto 1rem;
	background: hsl(var(--mv-primary) / 0.1);
	border-radius: var(--mv-radius);
	display: flex; align-items: center; justify-content: center;
	color: hsl(var(--mv-primary));
	transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}
.mv-value:hover .mv-value__icon {
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
	transform: scale(1.08);
}
.mv-value__title { margin: 0 0 0.5rem; font-size: 1.1rem; }
.mv-value__desc { color: hsl(var(--mv-muted-foreground)); font-size: 0.92rem; margin: 0; }

/* ===== Galerie / cards de réalisations ===== */
.mv-gallery {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
@media (min-width: 640px) { .mv-gallery { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .mv-gallery { grid-template-columns: repeat(3, 1fr); } }
.mv-gallery__item {
	position: relative;
	overflow: hidden;
	border-radius: 1.25rem;
	aspect-ratio: 4 / 3;
	display: block;
	cursor: pointer;
	box-shadow: var(--mv-shadow-soft);
	transition: transform 0.4s var(--mv-ease), box-shadow 0.4s ease;
}
.mv-gallery__item:hover {
	transform: translateY(-4px);
	box-shadow: var(--mv-shadow-elegant);
}
.mv-gallery__item img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--mv-ease);
}
.mv-gallery__item:hover img { transform: scale(1.08); }
.mv-gallery__item::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(to top, hsl(var(--mv-foreground) / 0.45), transparent 50%);
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.4s ease;
}
.mv-gallery__item:hover::after { opacity: 1; }
.mv-gallery__cat {
	position: absolute;
	top: 1rem; left: 1rem;
	background: hsl(var(--mv-primary) / 0.92);
	color: hsl(var(--mv-primary-foreground));
	font-size: 0.7rem;
	padding: 0.45rem 0.95rem;
	border-radius: 9999px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 700;
	backdrop-filter: blur(6px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.15);
	z-index: 1;
}
.mv-gallery__item.is-hidden { display: none; }

/* ===== Filtres galerie ===== */
.mv-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	margin-bottom: 2.5rem;
}
.mv-filters button {
	background: hsl(var(--mv-background));
	border: 1px solid hsl(var(--mv-border));
	color: hsl(var(--mv-foreground));
	padding: 0.65rem 1.4rem;
	border-radius: 9999px;
	font-family: var(--mv-font-body);
	font-size: 0.88rem;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.2s ease;
}
.mv-filters button:hover {
	border-color: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary));
	transform: translateY(-1px);
}
.mv-filters button.is-active {
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
	border-color: hsl(var(--mv-primary));
	box-shadow: 0 6px 16px -6px hsl(var(--mv-primary) / 0.5);
}

/* ===== Avant/Après slider interactif ===== */
.mv-ba,
.wp-block-group.mv-ba {
	position: relative !important;
	overflow: hidden !important;
	cursor: ew-resize;
	user-select: none;
	touch-action: none;
	border-radius: 1.25rem !important;
	aspect-ratio: 16 / 10;
	background: hsl(var(--mv-card));
	box-shadow: var(--mv-shadow-soft);
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;          /* override is-layout-flow */
	width: 100%;
	max-width: 100%;
}
.wp-block-group.mv-ba > * {
	margin: 0 !important;
	max-width: none !important;
}
/* Figures = layers absolues, pas en flow */
.mv-ba > figure.wp-block-image,
.wp-block-group.mv-ba > figure.wp-block-image {
	position: absolute !important;
	inset: 0 !important;
	margin: 0 !important;
	padding: 0;
	width: 100%;
	height: 100%;
	display: block;
}
.mv-ba > figure.wp-block-image img,
.mv-ba__before-wrap > figure.wp-block-image img,
.mv-ba .mv-ba__after img,
.mv-ba .mv-ba__before img {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	pointer-events: none;
	margin: 0 !important;
	max-width: none !important;
	border-radius: 0 !important;
}
.mv-ba .mv-ba__after { z-index: 0; }
.mv-ba__before-wrap {
	position: absolute !important;
	inset: 0 !important;
	margin: 0 !important;
	overflow: hidden;
	clip-path: inset(0 50% 0 0);
	will-change: clip-path;
	z-index: 1;
}
.mv-ba__before-wrap > figure.wp-block-image,
.mv-ba__before-wrap .mv-ba__before {
	position: absolute !important;
	inset: 0 !important;
	margin: 0 !important;
	z-index: 1;
}
/* Visibility / z-index of the line + handle injected by JS */
.mv-ba__line { z-index: 5; }
.mv-ba__handle { z-index: 6; }
.mv-ba__label { z-index: 7; }
.mv-ba__hint { z-index: 8; }
.mv-ba__line {
	position: absolute;
	top: 0; bottom: 0;
	width: 4px;
	left: 50%;
	margin-left: -2px;
	background: #ffffff;
	box-shadow:
		0 0 0 1px hsl(var(--mv-deep) / 0.25),
		0 0 14px hsl(0 0% 0% / 0.35);
	pointer-events: none;
	z-index: 5;
}
.mv-ba__handle {
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	width: 64px; height: 64px;
	border-radius: 9999px;
	background: #ffffff;
	border: 3px solid hsl(var(--mv-primary));
	box-shadow:
		0 12px 28px -6px rgba(0,0,0,0.5),
		0 0 0 6px hsl(0 0% 100% / 0.18);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	color: hsl(var(--mv-deep));
	pointer-events: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	z-index: 6;
}
.mv-ba__handle svg {
	display: block;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	stroke: hsl(var(--mv-deep));
	stroke-width: 3;
	fill: none;
}
.mv-ba__handle svg:first-child { margin-right: -2px; }
.mv-ba__handle svg:last-child  { margin-left:  -2px; }
.mv-ba:hover .mv-ba__handle {
	transform: translate(-50%, -50%) scale(1.1);
	background: hsl(var(--mv-primary));
	box-shadow:
		0 14px 32px -4px rgba(0,0,0,0.55),
		0 0 0 10px hsl(var(--mv-primary) / 0.22);
}
.mv-ba:hover .mv-ba__handle svg { stroke: hsl(var(--mv-primary-foreground)); }
.mv-ba__label {
	position: absolute;
	top: 1rem;
	padding: 0.55rem 1.25rem;
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-weight: 800;
	border-radius: 9999px;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 6px 20px rgba(0,0,0,0.3);
	transition: opacity 0.3s ease;
	z-index: 7;
}
.mv-ba__label--avant {
	left: 1rem;
	background: hsl(0 0% 0% / 0.7);
	color: #ffffff;
	border: 1px solid hsl(0 0% 100% / 0.15);
}
.mv-ba__label--apres {
	right: 1rem;
	background: hsl(var(--mv-primary) / 0.95);
	color: hsl(var(--mv-primary-foreground));
	border: 1px solid hsl(var(--mv-primary-glow) / 0.5);
}
.mv-ba__hint {
	position: absolute;
	bottom: 1rem; left: 50%;
	transform: translateX(-50%);
	background: hsl(0 0% 0% / 0.65);
	color: #ffffff;
	padding: 0.5rem 1.25rem;
	border-radius: 9999px;
	font-size: 0.78rem;
	font-weight: 600;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	pointer-events: none;
	transition: opacity 0.4s ease;
	box-shadow: 0 6px 20px rgba(0,0,0,0.3);
	z-index: 8;
}
.mv-ba.is-touched .mv-ba__hint { opacity: 0; }

/* Pair de sliders sur 2 colonnes (page Réalisations) */
.wp-block-group.mv-ba-pair {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	max-width: 1240px;
	margin: 0 auto !important;
	padding: 0 1.5rem !important;
	width: 100%;
}
@media (min-width: 768px) {
	.wp-block-group.mv-ba-pair { grid-template-columns: repeat(2, 1fr); }
}

/* ===== Équipe ===== */
.mv-team {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}
@media (min-width: 640px) { .mv-team { grid-template-columns: repeat(3, 1fr); } }
.mv-team__card {
	text-align: center;
}
.mv-team__photo {
	width: 100%;
	aspect-ratio: 3 / 4;
	border-radius: 1.25rem;
	object-fit: cover;
	margin-bottom: 1rem;
	box-shadow: var(--mv-shadow-soft);
}
.mv-team__name { margin: 0 0 0.15rem; font-size: 1.1rem; }
.mv-team__role { color: hsl(var(--mv-primary)); font-weight: 600; font-size: 0.9rem; margin: 0 0 0.3rem; }
.mv-team__desc { color: hsl(var(--mv-muted-foreground)); font-size: 0.9rem; margin: 0; }

/* ===== CTA bandeau ===== */
.mv-cta-band {
	background: var(--mv-gradient-primary);
	color: hsl(var(--mv-primary-foreground));
	padding: clamp(3rem, 2.2rem + 2.5vw, 5rem) 1.5rem;
	text-align: center;
	border-radius: clamp(1.25rem, 1rem + 1vw, 2rem);
	margin: 0 auto;
	max-width: 1240px;
}
.mv-cta-band h2 {
	color: hsl(var(--mv-primary-foreground));
	font-size: clamp(1.75rem, 1.3rem + 2vw, 3rem);
	margin: 0 0 0.75rem;
}
.mv-cta-band p {
	color: hsl(var(--mv-primary-foreground) / 0.9);
	max-width: 50ch;
	margin: 0 auto 1.75rem;
}
.mv-cta-band .mv-btn--primary {
	background: hsl(var(--mv-primary-foreground));
	color: hsl(var(--mv-primary));
}
.mv-cta-band .mv-btn--primary:hover { background: hsl(var(--mv-cream)); }
.mv-cta-band .mv-btn--ghost {
	background: transparent;
	border-color: hsl(var(--mv-primary-foreground) / 0.6);
	color: hsl(var(--mv-primary-foreground));
}

/* ===== Reviews ===== */
.mv-reviews {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
@media (min-width: 768px) { .mv-reviews { grid-template-columns: repeat(3, 1fr); } }
.mv-review {
	background: hsl(var(--mv-card));
	border: 1px solid hsl(var(--mv-border));
	border-radius: 1.25rem;
	padding: 1.75rem;
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.mv-review:hover { border-color: hsl(var(--mv-primary) / 0.3); box-shadow: var(--mv-shadow-soft); }
.mv-review__stars {
	display: flex; gap: 0.15rem;
	margin-bottom: 0.85rem;
	color: #f7b733;
}
.mv-review__text {
	font-size: 1rem;
	line-height: 1.6;
	margin: 0 0 1rem;
	color: hsl(var(--mv-foreground) / 0.9);
}
.mv-review__author {
	font-weight: 700;
	font-family: var(--mv-font-display);
}

/* ===== Footer ===== */
.mv-footer {
	background: hsl(var(--mv-footer-bg));
	color: hsl(var(--mv-on-dark)) !important;
}

/* === Ligne principale : 4 colonnes équilibrées === */
.mv-footer__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 4.5rem 1.5rem 2.5rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
}
@media (min-width: 640px)  { .mv-footer__inner { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .mv-footer__inner { grid-template-columns: 1.5fr 1fr 1.2fr 1fr; gap: 3rem; } }

.mv-footer h3 {
	color: hsl(var(--mv-on-dark)) !important;
	margin: 0 0 0.85rem !important;
	font-size: 1.4rem !important;
	font-family: var(--mv-font-display) !important;
	font-weight: 700 !important;
}
.mv-footer h4 {
	color: hsl(var(--mv-primary)) !important;
	margin: 0 0 1.1rem !important;
	font-size: 0.85rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.mv-footer p {
	color: hsl(var(--mv-on-dark) / 0.78) !important;
	font-size: 0.92rem !important;
	line-height: 1.65 !important;
	margin: 0 0 1.25rem !important;
}
.mv-footer ul { list-style: none; padding: 0; margin: 0; }
.mv-footer li {
	margin-bottom: 0.55rem;
	font-size: 0.92rem;
	color: hsl(var(--mv-on-dark) / 0.78);
	line-height: 1.5;
}
.mv-footer a {
	color: hsl(var(--mv-on-dark) / 0.78) !important;
	text-decoration: none;
	transition: color 0.25s ease;
}
.mv-footer a:hover { color: hsl(var(--mv-primary)) !important; }

/* === Brand column : certifs + Google rating === */
.mv-footer__brand p {
	max-width: 32ch;
}
.mv-footer__certs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.25rem !important;
}
.mv-footer__cert {
	display: inline-flex !important;
	align-items: center;
	gap: 0.35rem;
	padding: 0.35rem 0.7rem !important;
	background: hsl(var(--mv-on-dark) / 0.06) !important;
	border: 1px solid hsl(var(--mv-on-dark) / 0.12);
	border-radius: 9999px;
	font-size: 0.78rem !important;
	font-weight: 600;
	color: hsl(var(--mv-on-dark) / 0.85) !important;
	transition: border-color 0.25s ease, background 0.25s ease, color 0.25s ease;
}
.mv-footer__cert:hover {
	border-color: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary)) !important;
	background: hsl(var(--mv-primary) / 0.08) !important;
}
.mv-footer__cert svg { color: hsl(var(--mv-primary)); flex-shrink: 0; }

.mv-footer__rating {
	display: inline-flex !important;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.82rem !important;
	color: hsl(var(--mv-on-dark) / 0.7) !important;
	text-decoration: none !important;
}
.mv-footer__rating svg { flex-shrink: 0; }
.mv-footer__rating span { margin-left: 0.4rem; }

/* === Contact column === */
.mv-footer__contact-line {
	display: flex; gap: 0.65rem; align-items: flex-start;
	color: hsl(var(--mv-on-dark) / 0.85) !important;
	line-height: 1.5;
}
.mv-footer__contact-line svg {
	flex-shrink: 0;
	margin-top: 0.2rem;
	width: 1rem; height: 1rem;
	color: hsl(var(--mv-primary)) !important;
}
.mv-footer__contact-line a { color: hsl(var(--mv-on-dark)) !important; }

.mv-footer__cta-btn {
	display: inline-flex !important;
	align-items: center;
	margin-top: 1rem;
	padding: 0.65rem 1.1rem !important;
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border-radius: 9999px;
	font-weight: 600;
	font-size: 0.88rem !important;
	text-decoration: none !important;
	transition: background 0.25s ease, transform 0.25s ease;
	gap: 0.3rem;
}
.mv-footer__cta-btn:hover {
	background: hsl(var(--mv-primary-glow)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	transform: translateY(-1px);
}

/* === Plan du site : 2 colonnes sur mobile pour densifier === */
.mv-footer__sitemap {
	column-count: 1;
}
@media (max-width: 639px) {
	.mv-footer__sitemap { column-count: 2; gap: 2rem; }
}

/* === Section Zones d'intervention pleine largeur === */
.mv-footer__zones {
	border-top: 1px solid hsl(var(--mv-on-dark) / 0.12);
	border-bottom: 1px solid hsl(var(--mv-on-dark) / 0.08);
}
.mv-footer__zones-inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 2rem 1.5rem;
}
.mv-footer__zones h4 {
	margin: 0 0 1rem !important;
	font-size: 0.78rem !important;
	letter-spacing: 0.12em;
}
.mv-footer__zones ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	padding: 0;
	margin: 0;
}
.mv-footer__zones li {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}
.mv-footer__zones a {
	display: inline-block;
	padding: 0.4rem 0.85rem !important;
	background: hsl(var(--mv-on-dark) / 0.06) !important;
	border-radius: 9999px;
	font-size: 0.85rem !important;
	font-weight: 500;
	transition: background 0.25s ease, color 0.25s ease;
}
.mv-footer__zones a:hover {
	background: hsl(var(--mv-primary) / 0.18) !important;
	color: hsl(var(--mv-primary)) !important;
}
.mv-footer__badge {
	font-size: 0.7rem;
	color: hsl(var(--mv-primary)) !important;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.mv-footer__bottom {
	max-width: 1240px;
	margin: 0 auto;
	padding: 1.5rem;
	border-top: 1px solid hsl(var(--mv-on-dark) / 0.12);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	align-items: center;
	justify-content: space-between;
	font-size: 0.82rem;
	color: hsl(var(--mv-on-dark) / 0.55);
}
@media (min-width: 768px) { .mv-footer__bottom { flex-direction: row; } }
.mv-footer__legal { display: flex; flex-wrap: wrap; gap: 1.25rem; align-items: center; }
.mv-footer__legal a { color: hsl(var(--mv-on-dark) / 0.6) !important; text-decoration: none; transition: color 0.25s ease; }
.mv-footer__legal a:hover { color: hsl(var(--mv-primary)) !important; }
.mv-footer__legal-btn {
	background: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
	color: hsl(var(--mv-on-dark) / 0.6);
	font-family: inherit;
	font-size: inherit;
	transition: color 0.25s ease;
}
.mv-footer__legal-btn:hover { color: hsl(var(--mv-primary)); }

/* ===== Animations (reveal) ===== */
.mv-reveal {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.8s var(--mv-ease), transform 0.8s var(--mv-ease);
}
.mv-reveal.is-revealed { opacity: 1; transform: translateY(0); }

.mv-stagger > * {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.6s var(--mv-ease), transform 0.6s var(--mv-ease);
}
.mv-stagger.is-revealed > *:nth-child(1) { transition-delay: 0s;     opacity: 1; transform: translateY(0); }
.mv-stagger.is-revealed > *:nth-child(2) { transition-delay: 0.08s;  opacity: 1; transform: translateY(0); }
.mv-stagger.is-revealed > *:nth-child(3) { transition-delay: 0.16s;  opacity: 1; transform: translateY(0); }
.mv-stagger.is-revealed > *:nth-child(4) { transition-delay: 0.24s;  opacity: 1; transform: translateY(0); }
.mv-stagger.is-revealed > *:nth-child(5) { transition-delay: 0.32s;  opacity: 1; transform: translateY(0); }
.mv-stagger.is-revealed > *:nth-child(6) { transition-delay: 0.4s;   opacity: 1; transform: translateY(0); }
.mv-stagger.is-revealed > *:nth-child(n+7) { transition-delay: 0.48s; opacity: 1; transform: translateY(0); }

@keyframes mv-clip-reveal {
	from { clip-path: inset(0 100% 0 0); }
	to   { clip-path: inset(0 0 0 0); }
}
.mv-clip-reveal {
	animation: mv-clip-reveal 1.2s cubic-bezier(0.77, 0, 0.175, 1) both;
}

/* ===== Form ===== */
.mv-form {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
@media (min-width: 640px) { .mv-form .mv-form__row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; } }
.mv-form input,
.mv-form textarea,
.mv-form select {
	width: 100%;
	padding: 0.85rem 1rem;
	border-radius: 0.75rem;
	border: 1px solid hsl(var(--mv-border));
	background: hsl(var(--mv-background));
	font-family: var(--mv-font-body);
	font-size: 0.95rem;
	color: hsl(var(--mv-foreground));
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.mv-form input:focus,
.mv-form textarea:focus,
.mv-form select:focus {
	outline: none;
	border-color: hsl(var(--mv-primary));
	box-shadow: 0 0 0 4px hsl(var(--mv-primary) / 0.12);
}
.mv-form textarea { min-height: 8rem; resize: vertical; }
.mv-form label {
	font-size: 0.85rem;
	font-weight: 500;
	color: hsl(var(--mv-foreground));
	display: block;
	margin-bottom: 0.35rem;
}

/* ===== Liste de prestations sur la page-service détail ===== */
.mv-service-detail-list {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
	max-width: 50rem;
}
@media (min-width: 640px) {
	.mv-service-detail-list { grid-template-columns: 1fr 1fr; }
}
.mv-service-detail-list li {
	position: relative;
	padding: 0.85rem 1rem 0.85rem 2.5rem;
	background: hsl(var(--mv-card));
	border: 1px solid hsl(var(--mv-border));
	border-radius: 0.85rem;
	font-size: 0.95rem;
	line-height: 1.4;
	transition: border-color 0.25s ease, transform 0.25s ease;
}
.mv-service-detail-list li::before {
	content: "";
	position: absolute;
	left: 1rem;
	top: 50%;
	transform: translateY(-50%);
	width: 0.7rem;
	height: 0.7rem;
	border-radius: 9999px;
	background: hsl(var(--mv-primary));
	box-shadow: 0 0 0 4px hsl(var(--mv-primary) / 0.15);
}
.mv-service-detail-list li:hover {
	border-color: hsl(var(--mv-primary) / 0.4);
	transform: translateX(2px);
}

/* ===== Page hero (sub-pages) ===== */
.mv-page-hero {
	position: relative;
	padding: 8rem 1.5rem 5rem;
	color: hsl(var(--mv-primary-foreground));
	background-position: center;
	background-size: cover;
	background-color: hsl(var(--mv-forest));
	overflow: hidden;
}
.mv-page-hero::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(135deg, hsl(var(--mv-hero-overlay) / 0.7), hsl(var(--mv-hero-overlay) / 0.3));
}
.mv-page-hero > .mv-container { position: relative; z-index: 1; }
.mv-page-hero h1 {
	color: hsl(var(--mv-primary-foreground));
	font-size: clamp(2.25rem, 1.6rem + 3vw, 4.5rem);
	margin: 0.5rem 0;
	max-width: 16ch;
}
.mv-page-hero p {
	color: hsl(var(--mv-primary-foreground) / 0.85);
	max-width: 60ch;
	font-size: 1.1rem;
}
.mv-page-hero__breadcrumb {
	font-size: 0.78rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: hsl(var(--mv-primary-foreground) / 0.7);
}

/* ===== Contact split ===== */
.mv-contact-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
}
@media (min-width: 1024px) { .mv-contact-grid { grid-template-columns: 1.3fr 1fr; } }
.mv-contact-info {
	background: hsl(var(--mv-forest));
	color: hsl(var(--mv-primary-foreground));
	border-radius: 1.25rem;
	padding: 2.5rem;
}
.mv-contact-info h3 { color: hsl(var(--mv-primary-foreground)); margin-top: 0; }
.mv-contact-info p, .mv-contact-info li { color: hsl(var(--mv-primary-foreground) / 0.85); }
.mv-contact-info a { color: hsl(var(--mv-primary-foreground)); text-decoration: underline; }

/* ===== Page d'archive simple ===== */
.mv-prose {
	max-width: 70ch;
	margin: 0 auto;
}
.mv-prose p { line-height: 1.75; color: hsl(var(--mv-foreground) / 0.85); margin: 0 0 1.25rem; }
.mv-prose h2, .mv-prose h3 { margin-top: 2.5rem; }

/* ===== Misc utilities ===== */
.mv-text-balance { text-wrap: balance; }
.mv-rule { display: block; width: 60px; height: 2px; background: hsl(var(--mv-primary)); border-radius: 9999px; margin-bottom: 1rem; }

/* ═════════════════════════════════════════════════
 * DESIGN PLAT — pas d'ombres portées
 * (overrides finaux pour les shadow hardcodées)
 * ═════════════════════════════════════════════════ */
.mv-header, .mv-header *,
.mv-hero, .mv-hero *,
.mv-page-hero, .mv-page-hero *,
.mv-services *, .mv-service-card, .mv-service-card *,
.mv-trust, .mv-trust *, .mv-trust__item,
.mv-stats *, .mv-stat,
.mv-values *, .mv-value,
.mv-team *, .mv-team__card, .mv-team__photo,
.mv-reviews *, .mv-review,
.mv-cta-band, .mv-cta-band *,
.mv-footer, .mv-footer *,
.mv-ba, .mv-ba__handle, .mv-ba__line, .mv-ba__label, .mv-ba__hint,
.mv-faq *, details.mv-faq__item, summary.mv-faq__q,
.mv-trombi__row, .mv-trombi__portrait, .mv-trombi__years, .mv-trombi__team-photo,
.mv-portfolio *, .mv-portfolio__card, .mv-filter-chip,
.mv-steps *, .mv-step,
.mv-partners-grid *, .mv-partner, .mv-partner *,
.mv-feature, .mv-features *,
.mv-qc-card, .mv-qc-grid *,
.mv-benefit, .mv-benefits *,
.mv-jobs *, .mv-job,
.mv-testimonial, .mv-testimonial *,
.mv-timeline *, .mv-timeline__dot, .mv-timeline__content,
.mv-flyer, .mv-flyer *,
.mv-cv-form *, .mv-cv-msg,
.mv-map-wrap, .mv-map-wrap iframe,
.mv-contact-info, .mv-contact-info *,
.mv-contact-grid *,
.wp-block-buttons .wp-block-button__link,
figure.wp-block-image,
.wp-block-gallery *,
.wp-block-cover, .wp-block-cover *,
.mv-sticky-cta, .mv-sticky-cta *,
.mv-about-split *, .mv-about-split__badge, .mv-about-split__photo,
.mv-stats-inline, .mv-stats-inline *,
.mv-lightbox__img,
.mv-section, .mv-section *,
section.mv-section, section.mv-section *,
.wp-block-quote, .wp-block-quote * {
	box-shadow: none !important;
	text-shadow: none !important;
	filter: none !important;
}

/* Restaurations ciblées : text-shadow uniquement sur les cartes plein-image
   où le texte est superposé directement sur la photo. Le hero et page-hero
   ont un voile (gradient overlay) suffisant pour la lisibilité. */
.mv-service-card__title,
.mv-service-card__desc,
.mv-service-card__details li {
	text-shadow: 0 2px 12px rgba(0,0,0,0.6) !important;
}

/* ═════════════════════════════════════════════════
 * UNIFORMITÉ DES BOUTONS — même hauteur, même radius,
 * même padding partout sur le site.
 * Hauteur 52px ; radius pill 9999px ; padding 0.85rem 1.85rem.
 * ═════════════════════════════════════════════════ */
.wp-block-button__link,
.wp-block-button .wp-block-button__link,
.mv-btn,
a.mv-btn,
.mv-header__cta,
.mv-flyer__btn,
.mv-cv-form button[type="submit"],
.mv-sticky-cta__phone,
.mv-sticky-cta__devis,
.mv-hero__call {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0.5rem !important;
	min-height: 52px !important;
	padding: 0.85rem 1.85rem !important;
	border-radius: 9999px !important;
	font-family: var(--mv-font-body) !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	text-decoration: none !important;
	border: 2px solid transparent !important;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.2s ease !important;
	cursor: pointer !important;
	white-space: nowrap;
}

/* Variantes : primary (vert plein), outline (vide), ghost (translucide) */
.wp-block-button:not(.is-style-outline) .wp-block-button__link,
.mv-btn--primary,
.mv-header__cta,
.mv-sticky-cta__devis,
.mv-cv-form button[type="submit"] {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border-color: hsl(var(--mv-primary)) !important;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.mv-btn--primary:hover,
.mv-header__cta:hover,
.mv-sticky-cta__devis:hover,
.mv-cv-form button[type="submit"]:hover {
	background: hsl(var(--mv-primary-glow)) !important;
	border-color: hsl(var(--mv-primary-glow)) !important;
	transform: translateY(-2px);
}

.wp-block-button.is-style-outline .wp-block-button__link,
.mv-btn--outline,
.mv-sticky-cta__phone {
	background: transparent !important;
	color: hsl(var(--mv-deep)) !important;
	border-color: hsl(var(--mv-primary)) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.mv-btn--outline:hover,
.mv-sticky-cta__phone:hover {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
}

/* Variante sur fond sombre (hero, CTA band, page-hero) — outline blanc */
section.mv-hero .wp-block-button.is-style-outline .wp-block-button__link,
section.mv-page-hero .wp-block-button.is-style-outline .wp-block-button__link,
.mv-cta-band .wp-block-button.is-style-outline .wp-block-button__link {
	background: rgba(255,255,255,0.12) !important;
	color: #ffffff !important;
	border-color: rgba(255,255,255,0.5) !important;
}
section.mv-hero .wp-block-button.is-style-outline .wp-block-button__link:hover,
section.mv-page-hero .wp-block-button.is-style-outline .wp-block-button__link:hover,
.mv-cta-band .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: rgba(255,255,255,0.22) !important;
	border-color: #ffffff !important;
	color: #ffffff !important;
}

/* CTA en pleine couleur sur fond sombre : texte sombre sur fond primary clair */
section.mv-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link,
section.mv-page-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.mv-cta-band .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border-color: hsl(var(--mv-primary)) !important;
}

/* Bouton tel/appel dans le hero — exception légèrement plus petite avec icône */
.mv-hero__call {
	min-height: 52px !important;
	padding: 0.65rem 1.1rem !important;
	background: hsl(var(--mv-deep)) !important;
	color: #ffffff !important;
	border-color: hsl(var(--mv-deep)) !important;
}
.mv-hero__call:hover {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border-color: hsl(var(--mv-primary)) !important;
}

/* Card downloads (flyer) — bouton de la même famille */
.mv-flyer__btn {
	background: hsl(var(--mv-deep)) !important;
	color: hsl(var(--mv-deep-foreground)) !important;
	border-color: hsl(var(--mv-deep)) !important;
}
.mv-flyer__btn:hover {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border-color: hsl(var(--mv-primary)) !important;
}

/* Bouton dans les cartes services (petit) — exception clairement marquée */
.wp-block-group.mv-service-card .wp-block-button__link {
	min-height: 40px !important;
	padding: 0.5rem 1.1rem !important;
	font-size: 0.82rem !important;
}

/* Sticky CTA mobile — boutons à hauteur identique 48px */
.mv-sticky-cta a {
	min-height: 48px !important;
	padding: 0.7rem 0.9rem !important;
	font-size: 0.95rem !important;
}

/* ═════════════════════════════════════════════════════════════════════
 * Bannière de consentement cookies (RGPD)
 * ═══════════════════════════════════════════════════════════════════ */
.mv-cookie-banner {
	position: fixed;
	left: 1rem;
	right: 1rem;
	bottom: 1rem;
	z-index: 9999;
	max-width: 56rem;
	margin: 0 auto;
	background: hsl(var(--mv-forest));
	color: hsl(var(--mv-on-dark));
	border-radius: 1rem;
	padding: 1.5rem;
	font-size: 0.95rem;
	line-height: 1.55;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.3s var(--mv-ease), transform 0.3s var(--mv-ease);
}
.mv-cookie-banner.is-visible { opacity: 1; transform: translateY(0); }
.mv-cookie-banner.is-leaving { opacity: 0; transform: translateY(20px); }

.mv-cookie-banner__inner {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
.mv-cookie-banner__text strong {
	display: block;
	font-family: var(--mv-font-display);
	font-size: 1.1rem;
	margin-bottom: 0.4rem;
	color: hsl(var(--mv-on-dark));
}
.mv-cookie-banner__text p {
	margin: 0;
	color: hsl(var(--mv-on-dark-muted));
}
.mv-cookie-banner__text a {
	color: hsl(var(--mv-primary)) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Customize panel — checkboxes (hidden par défaut, révélé au clic) */
.mv-cookie-banner__customize[hidden] { display: none !important; }
.mv-cookie-banner__customize {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	padding: 1rem;
	background: hsl(var(--mv-on-dark) / 0.08);
	border-radius: 0.6rem;
}
.mv-cookie-banner__btn[hidden] { display: none !important; }
.mv-cookie-banner__customize label {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	font-size: 0.9rem;
	cursor: pointer;
	color: hsl(var(--mv-on-dark));
}
.mv-cookie-banner__customize label input[type="checkbox"] {
	margin-top: 0.2rem;
	accent-color: hsl(var(--mv-primary));
	width: 1.1rem;
	height: 1.1rem;
}
.mv-cookie-banner__customize label strong { font-weight: 700; }
.mv-cookie-banner__customize label span {
	display: block;
	color: hsl(var(--mv-on-dark-muted));
	font-size: 0.82rem;
	margin-left: 0.4rem;
}

/* Actions */
.mv-cookie-banner__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	justify-content: flex-end;
}
.mv-cookie-banner__btn {
	padding: 0.7rem 1.1rem;
	border-radius: 9999px;
	border: 1.5px solid transparent;
	font-size: 0.92rem;
	font-weight: 600;
	cursor: pointer;
	font-family: var(--mv-font-body);
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	min-height: 44px;
}
.mv-cookie-banner__btn--reject {
	background: transparent;
	color: hsl(var(--mv-on-dark-muted));
	border-color: hsl(var(--mv-on-dark) / 0.25);
}
.mv-cookie-banner__btn--reject:hover {
	color: hsl(var(--mv-on-dark));
	border-color: hsl(var(--mv-on-dark) / 0.6);
}
.mv-cookie-banner__btn--customize {
	background: transparent;
	color: hsl(var(--mv-on-dark));
	border-color: hsl(var(--mv-on-dark) / 0.5);
}
.mv-cookie-banner__btn--customize:hover { background: hsl(var(--mv-on-dark) / 0.1); }
.mv-cookie-banner__btn--accept,
.mv-cookie-banner__btn--save {
	background: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary-foreground));
	border-color: hsl(var(--mv-primary));
}
.mv-cookie-banner__btn--accept:hover,
.mv-cookie-banner__btn--save:hover { background: hsl(var(--mv-primary-glow)); }

@media (min-width: 768px) {
	.mv-cookie-banner { padding: 1.75rem; }
	.mv-cookie-banner__inner { gap: 1.5rem; }
}

/* Catégorie de cookies dans la page /cookies/ */
h3.mv-cookie-cat {
	font-size: 1.15rem !important;
	color: hsl(var(--mv-deep)) !important;
	margin: 2rem 0 0.5rem !important;
	font-family: var(--mv-font-display);
}

/* ═════════════════════════════════════════════════════════════════════
 * 404 — page d'erreur sur une seule fenêtre (no scroll), fond sombre
 * → la navbar blanche reste lisible sur le fond forest dark.
 * → on colorise body + html pour supprimer le strip blanc en haut/bas
 *   que WP / le thème laissent par défaut.
 * ═══════════════════════════════════════════════════════════════════ */
body.error404,
body.error404 html,
html:has(body.error404),
body.search-no-results,
body.search-results {
	background: hsl(var(--mv-forest)) !important;
}
body.error404 .wp-site-blocks,
body.search-no-results .wp-site-blocks,
body.search-results .wp-site-blocks {
	background: hsl(var(--mv-forest)) !important;
}

.mv-404 {
	background: hsl(var(--mv-forest));
	min-height: 100vh;
	min-height: 100svh;
	display: flex !important;
	flex-direction: column;
	margin: 0 !important;
	padding: 0 !important;
}

.wp-block-group.mv-404__hero {
	position: relative;
	flex: 1 1 auto;
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 5rem 1.5rem 3rem !important;
	margin: 0 !important;
	text-align: center;
	background:
		radial-gradient(ellipse at 30% 20%, hsl(var(--mv-leaf) / 0.18), transparent 60%),
		radial-gradient(ellipse at 70% 80%, hsl(var(--mv-primary) / 0.10), transparent 60%),
		linear-gradient(180deg, hsl(var(--mv-forest)) 0%, hsl(var(--mv-hero-overlay)) 100%);
	overflow: hidden;
	min-height: calc(100vh - 80px);
	min-height: calc(100svh - 80px);
}

/* Le chiffre 404 en filigrane lumineux derrière le contenu */
.mv-404__code {
	position: absolute !important;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-family: var(--mv-font-display) !important;
	font-size: clamp(16rem, 35vw, 32rem) !important;
	font-weight: 900;
	line-height: 0.85 !important;
	color: hsl(var(--mv-primary) / 0.12) !important;
	margin: 0 !important;
	pointer-events: none;
	user-select: none;
	z-index: 0;
	letter-spacing: -0.05em;
	white-space: nowrap;
}

.wp-block-group.mv-404__inner {
	position: relative;
	z-index: 1;
	max-width: 48rem;
	width: 100%;
	margin: 0 auto !important;
	padding: 0 !important;
}

.mv-404__eyebrow {
	display: inline-block;
	font-size: 0.82rem !important;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: hsl(var(--mv-primary)) !important;
	background: hsl(var(--mv-primary) / 0.18);
	padding: 0.4rem 1rem;
	border-radius: 9999px;
	margin: 0 auto 1.5rem !important;
}

.mv-404__title {
	font-size: clamp(2rem, 5vw, 3.5rem) !important;
	font-weight: 700;
	margin: 0 auto 1.5rem !important;
	color: hsl(var(--mv-on-dark)) !important;
	max-width: 30ch;
	line-height: 1.15;
}

.mv-404__lead {
	font-size: clamp(1rem, 1.5vw, 1.15rem) !important;
	line-height: 1.6;
	color: hsl(var(--mv-on-dark-muted)) !important;
	max-width: 42rem;
	margin: 0 auto 2.25rem !important;
}

/* Boutons : primaire vert + outline blanc — lisibles sur fond sombre */
.mv-404__cta { gap: 0.75rem !important; margin-bottom: 2rem; }
.mv-404__cta .wp-block-button__link {
	padding: 0.85rem 1.75rem !important;
	font-weight: 600;
	border-radius: 9999px !important;
	min-height: 48px;
	display: inline-flex;
	align-items: center;
}
.mv-404__cta .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
}
.mv-404__cta .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: hsl(var(--mv-primary-glow)) !important;
}
.mv-404__cta .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: hsl(var(--mv-on-dark)) !important;
	border: 1.5px solid hsl(var(--mv-on-dark)) !important;
}
.mv-404__cta .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: hsl(var(--mv-on-dark) / 0.1) !important;
	color: hsl(var(--mv-on-dark)) !important;
}

/* Petits liens secondaires séparés par · */
.mv-404__links {
	font-size: 0.92rem !important;
	color: hsl(var(--mv-on-dark-muted)) !important;
	margin: 0 !important;
	letter-spacing: 0.02em;
}
.mv-404__links a {
	color: hsl(var(--mv-on-dark)) !important;
	text-decoration: none !important;
	border-bottom: 1px solid transparent;
	transition: border-color 0.25s ease, color 0.25s ease;
	padding: 0.1rem 0;
}
.mv-404__links a:hover {
	color: hsl(var(--mv-primary)) !important;
	border-bottom-color: hsl(var(--mv-primary));
}

.mv-404, .mv-404 *, .mv-404__code {
	box-shadow: none !important;
	text-shadow: none !important;
}

/* ═════════════════════════════════════════════════════════════════════
 * Search — page résultats sur une seule fenêtre, fond sombre
 * ═══════════════════════════════════════════════════════════════════ */
.mv-search {
	background: hsl(var(--mv-forest));
	min-height: 100vh;
	min-height: 100svh;
	display: flex !important;
	flex-direction: column;
	margin: 0 !important;
	padding: 0 !important;
}

.wp-block-group.mv-search__hero {
	flex: 1 1 auto;
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 5rem 1.5rem 3rem !important;
	margin: 0 !important;
	text-align: center;
	background:
		radial-gradient(ellipse at 30% 20%, hsl(var(--mv-leaf) / 0.18), transparent 60%),
		radial-gradient(ellipse at 70% 80%, hsl(var(--mv-primary) / 0.10), transparent 60%),
		linear-gradient(180deg, hsl(var(--mv-forest)) 0%, hsl(var(--mv-hero-overlay)) 100%);
	min-height: calc(100vh - 80px);
	min-height: calc(100svh - 80px);
}

.wp-block-group.mv-search__inner {
	max-width: 48rem;
	width: 100%;
	margin: 0 auto !important;
	padding: 0 !important;
}

.mv-search__eyebrow {
	display: inline-block;
	font-size: 0.82rem !important;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: hsl(var(--mv-primary)) !important;
	background: hsl(var(--mv-primary) / 0.18);
	padding: 0.4rem 1rem;
	border-radius: 9999px;
	margin: 0 auto 1.5rem !important;
}
.mv-search__title {
	font-size: clamp(2rem, 4vw, 3rem) !important;
	font-weight: 700;
	margin: 0 auto 1.75rem !important;
	color: hsl(var(--mv-on-dark)) !important;
}
.mv-search__empty {
	font-size: 1rem !important;
	color: hsl(var(--mv-on-dark-muted)) !important;
	margin: 2rem auto 0 !important;
	max-width: 36rem;
}
.mv-search__empty a {
	color: hsl(var(--mv-primary)) !important;
	text-decoration: none !important;
	border-bottom: 1px solid hsl(var(--mv-primary) / 0.4);
}
.mv-search__empty a:hover { border-bottom-color: hsl(var(--mv-primary)); }
.mv-search__item {
	background: hsl(var(--mv-on-dark) / 0.06);
	border: 1px solid hsl(var(--mv-on-dark) / 0.15);
	border-radius: 0.85rem;
	padding: 1rem 1.25rem !important;
	transition: border-color 0.25s ease, transform 0.25s ease;
}
.mv-search__item:hover { border-color: hsl(var(--mv-primary)); transform: translateY(-2px); }
.mv-search__item .wp-block-post-title { font-size: 1.05rem !important; margin: 0 0 0.4rem !important; line-height: 1.3; font-family: var(--mv-font-display); }
.mv-search__item .wp-block-post-title a { color: hsl(var(--mv-on-dark)) !important; text-decoration: none !important; }
.mv-search__item .wp-block-post-title a:hover { color: hsl(var(--mv-primary)) !important; }
.mv-search__item .wp-block-post-excerpt { font-size: 0.88rem !important; color: hsl(var(--mv-on-dark-muted)) !important; line-height: 1.5; margin: 0 !important; }
/* Barre de recherche — fond clair sur hero sombre */
.mv-search__hero .wp-block-search { max-width: 36rem; margin: 0 auto 2rem; }
.mv-search__hero .wp-block-search__inside-wrapper {
	border: 1.5px solid hsl(var(--mv-on-dark) / 0.25) !important;
	border-radius: 9999px;
	background: hsl(var(--mv-on-dark));
	padding: 0.25rem 0.25rem 0.25rem 1.25rem;
	transition: border-color 0.25s ease;
}
.mv-search__hero .wp-block-search__inside-wrapper:focus-within {
	border-color: hsl(var(--mv-primary)) !important;
}
.mv-search__hero .wp-block-search__input {
	border: none !important;
	background: transparent;
	font-size: 1rem !important;
	padding: 0.85rem 0.5rem !important;
	color: hsl(var(--mv-foreground)) !important;
}
.mv-search__hero .wp-block-search__button {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border: none !important;
	border-radius: 9999px !important;
	padding: 0.7rem 1rem !important;
	min-height: 44px; min-width: 44px;
	cursor: pointer;
}
.mv-search__hero .wp-block-search__button:hover { background: hsl(var(--mv-primary-glow)) !important; }

/* Résultats */
.wp-block-group.mv-search__results {
	padding: 3rem 1.5rem 5rem !important;
	margin: 0 !important;
}
.mv-search__results .wp-block-query { max-width: 1200px; margin: 0 auto; }

.mv-search__item {
	background: #ffffff;
	border: 1px solid hsl(var(--mv-border));
	border-radius: 0.85rem;
	padding: 0 !important;
	overflow: hidden;
	transition: border-color 0.25s ease, transform 0.25s ease;
}
.mv-search__item:hover { border-color: hsl(var(--mv-primary)); transform: translateY(-3px); }
.mv-search__item .mv-search__thumb img,
.mv-search__item .wp-block-post-featured-image img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
}
.mv-search__item .mv-search__item-title,
.mv-search__item .wp-block-post-title {
	font-size: 1.15rem !important;
	font-weight: 700;
	font-family: var(--mv-font-display);
	margin: 1rem 1.25rem 0.5rem !important;
	line-height: 1.3;
}
.mv-search__item .wp-block-post-title a {
	color: hsl(var(--mv-foreground)) !important;
	text-decoration: none !important;
}
.mv-search__item .wp-block-post-title a:hover { color: hsl(var(--mv-deep)) !important; }
.mv-search__item .mv-search__excerpt,
.mv-search__item .wp-block-post-excerpt {
	font-size: 0.92rem !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	line-height: 1.55;
	margin: 0 1.25rem 0.75rem !important;
}
.mv-search__item .mv-search__date,
.mv-search__item .wp-block-post-date {
	font-size: 0.8rem;
	color: hsl(var(--mv-muted-foreground));
	margin: 0 1.25rem 1.25rem !important;
	letter-spacing: 0.05em;
}

/* État no-results */
.wp-block-group.mv-search__empty {
	max-width: 64rem;
	margin: 2rem auto !important;
	padding: 3rem 1.5rem !important;
	text-align: center;
}
.mv-search__empty-icon {
	font-size: 4rem !important;
	margin: 0 0 1rem !important;
	line-height: 1 !important;
	opacity: 0.7;
}

.wp-block-group.mv-search__suggestions {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1rem;
	max-width: 56rem;
	margin: 2.5rem auto 0 !important;
	padding: 0 !important;
}
@media (min-width: 720px) { .wp-block-group.mv-search__suggestions { grid-template-columns: repeat(3, 1fr); } }

.mv-search__suggestion {
	display: block !important;
	padding: 1.5rem 1.25rem !important;
	background: #ffffff;
	border: 1.5px solid hsl(var(--mv-border));
	border-radius: 0.85rem;
	text-decoration: none !important;
	color: hsl(var(--mv-foreground));
	transition: border-color 0.25s ease, transform 0.25s ease;
	margin: 0 !important;
}
.mv-search__suggestion:hover { border-color: hsl(var(--mv-primary)); transform: translateY(-3px); color: hsl(var(--mv-foreground)); }
.mv-search__suggestion-title {
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	margin: 0 0 0.4rem !important;
	color: hsl(var(--mv-deep)) !important;
	font-family: var(--mv-font-display);
}
.mv-search__suggestion-title::after { content: ' →'; color: hsl(var(--mv-primary)); }
.mv-search__suggestion p {
	font-size: 0.9rem !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 !important;
	line-height: 1.5;
}

/* Pagination */
.wp-block-query-pagination.mv-search__pagination {
	margin: 3rem auto 0 !important;
	max-width: 1200px;
	gap: 0.5rem !important;
	flex-wrap: wrap;
}
.mv-search__pagination a,
.mv-search__pagination span {
	padding: 0.6rem 1rem !important;
	border-radius: 0.5rem !important;
	border: 1.5px solid hsl(var(--mv-border));
	background: #ffffff;
	color: hsl(var(--mv-foreground)) !important;
	text-decoration: none !important;
	font-weight: 600;
	transition: border-color 0.25s ease, background 0.25s ease;
}
.mv-search__pagination a:hover {
	border-color: hsl(var(--mv-primary));
	background: hsl(var(--mv-card));
}
.mv-search__pagination .current {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border-color: hsl(var(--mv-primary));
}

.mv-search, .mv-search *, .mv-search__item, .mv-search__suggestion {
	box-shadow: none !important;
	text-shadow: none !important;
}

/* ═════════════════════════════════════════════════════════════════════
 * BLOG — Archive index + Single post
 * ═══════════════════════════════════════════════════════════════════ */

/* ---------- Archive / Index blog ---------- */
.mv-blog { background: hsl(var(--mv-background)); }

.wp-block-group.mv-blog__hero {
	padding: 5rem 1.5rem 3rem !important;
	margin: 0 !important;
	text-align: center;
	background: linear-gradient(180deg, hsl(var(--mv-card)) 0%, hsl(var(--mv-background)) 100%);
}
@media (min-width: 768px) {
	.wp-block-group.mv-blog__hero { padding: 7rem 1.5rem 4rem !important; }
}

.mv-blog__eyebrow {
	display: inline-block;
	font-size: 0.85rem !important;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: hsl(var(--mv-deep)) !important;
	background: hsl(var(--mv-primary) / 0.18);
	padding: 0.4rem 1rem;
	border-radius: 9999px;
	margin: 0 auto 1.25rem !important;
}
.mv-blog__title {
	font-size: clamp(2.2rem, 5vw, 3.5rem) !important;
	font-weight: 700;
	margin: 0 auto 1.25rem !important;
	color: hsl(var(--mv-foreground));
	max-width: 28ch;
	line-height: 1.15;
}
.mv-blog__lead {
	font-size: 1.1rem !important;
	line-height: 1.65;
	color: hsl(var(--mv-muted-foreground)) !important;
	max-width: 50rem;
	margin: 0 auto !important;
}

/* Liste des articles */
.wp-block-group.mv-blog__list {
	padding: 3rem 1.5rem 5rem !important;
	margin: 0 !important;
}
.mv-blog__list .wp-block-query { max-width: 1200px; margin: 0 auto; }
.mv-blog__list .mv-blog__grid {
	gap: 2rem !important;
}

/* Carte article */
.wp-block-group.mv-blog__card,
article.mv-blog__card {
	background: #ffffff !important;
	border: 1px solid hsl(var(--mv-border)) !important;
	border-radius: 1rem !important;
	padding: 0 !important;
	overflow: hidden;
	transition: border-color 0.25s ease, transform 0.25s ease;
	display: flex !important;
	flex-direction: column !important;
}
.wp-block-group.mv-blog__card:hover,
article.mv-blog__card:hover {
	border-color: hsl(var(--mv-primary)) !important;
	transform: translateY(-4px);
}
/* Image featured : conteneur ET image à dimensions fixes — sinon l'aspect-ratio
 * du template (16/9) entre en conflit avec height fixe. On force tout à 220px. */
.mv-blog__card .wp-block-post-featured-image,
.mv-blog__card .mv-blog__thumb {
	margin: 0 !important;
	width: 100%;
	height: 220px !important;
	aspect-ratio: auto !important;  /* override inline style aspectRatio:16/9 */
	overflow: hidden;
	display: block;
}
.mv-blog__card .wp-block-post-featured-image a,
.mv-blog__card .mv-blog__thumb a,
.mv-blog__card .wp-block-post-featured-image img,
.mv-blog__card .mv-blog__thumb img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block;
	border-radius: 0 !important;
	aspect-ratio: auto !important;
}

/* Grille : tous les items en stretch pour hauteur uniforme */
.mv-blog__grid {
	align-items: stretch !important;
}
.mv-blog__grid .mv-blog__card { height: 100%; }
.mv-blog__card-body,
.wp-block-group.mv-blog__card-body {
	padding: 1.25rem 1.5rem 1.5rem !important;
	display: flex !important;
	flex-direction: column;
	gap: 0.4rem;
	flex: 1;
}
.mv-blog__cat,
.mv-blog__card .wp-block-post-terms {
	font-size: 0.72rem !important;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: hsl(var(--mv-primary)) !important;
	margin: 0 !important;
}
.mv-blog__cat a,
.mv-blog__card .wp-block-post-terms a {
	color: hsl(var(--mv-primary)) !important;
	text-decoration: none !important;
}
.mv-blog__card-title,
.mv-blog__card .wp-block-post-title {
	font-size: 1.2rem !important;
	font-weight: 700 !important;
	margin: 0.2rem 0 0.3rem !important;
	line-height: 1.3;
	font-family: var(--mv-font-display);
}
.mv-blog__card .wp-block-post-title a {
	color: hsl(var(--mv-foreground)) !important;
	text-decoration: none !important;
}
.mv-blog__card .wp-block-post-title a:hover { color: hsl(var(--mv-deep)) !important; }
.mv-blog__card-excerpt,
.mv-blog__card .wp-block-post-excerpt {
	font-size: 0.95rem !important;
	line-height: 1.55;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 0 0.75rem !important;
	flex: 1;
}
.mv-blog__card-excerpt p,
.mv-blog__card .wp-block-post-excerpt p { margin: 0 !important; }
.mv-blog__card .wp-block-post-excerpt__more-link {
	font-size: 0.88rem !important;
	font-weight: 600;
	color: hsl(var(--mv-deep)) !important;
	text-decoration: none !important;
	margin-top: 0.4rem;
	display: inline-block;
}
.mv-blog__card-date,
.mv-blog__card .wp-block-post-date {
	font-size: 0.78rem;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 !important;
	letter-spacing: 0.04em;
}

/* Pagination — style minimal textuel : "← Précédent  Page X sur Y  Suivant →" */
.wp-block-query-pagination.mv-blog__pagination {
	margin: 4rem auto 0 !important;
	max-width: 36rem;
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 1rem !important;
	padding: 1.5rem 0 0 !important;
	border-top: 1px solid hsl(var(--mv-border));
}

/* Liens précédent / suivant — texte simple avec flèche, sans bouton */
.mv-blog__pagination a.wp-block-query-pagination-previous,
.mv-blog__pagination a.wp-block-query-pagination-next {
	display: inline-flex !important;
	align-items: center;
	gap: 0.5rem;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	color: hsl(var(--mv-foreground)) !important;
	text-decoration: none !important;
	font-weight: 600;
	font-size: 0.95rem;
	letter-spacing: 0.01em;
	transition: color 0.2s ease, gap 0.2s ease;
}
.mv-blog__pagination a.wp-block-query-pagination-previous:hover,
.mv-blog__pagination a.wp-block-query-pagination-next:hover {
	color: hsl(var(--mv-primary)) !important;
}
.mv-blog__pagination a.wp-block-query-pagination-previous:hover { gap: 0.75rem; }
.mv-blog__pagination a.wp-block-query-pagination-next:hover { gap: 0.75rem; }

/* Quand le lien n'existe pas (1ère ou dernière page), wp affiche un <span> désactivé.
 * On le rend invisible mais on garde la place pour le space-between. */
.mv-blog__pagination span.wp-block-query-pagination-previous,
.mv-blog__pagination span.wp-block-query-pagination-next {
	visibility: hidden;
	pointer-events: none;
}

/* Flèches — utilise l'arrow texte WP ou injecte une via CSS si besoin */
.mv-blog__pagination .wp-block-query-pagination-previous-arrow,
.mv-blog__pagination .wp-block-query-pagination-next-arrow {
	font-size: 1.1rem;
	margin: 0 !important;
	transition: transform 0.2s ease;
	display: inline-block;
}

/* Indicateur central "Page X sur Y" — injecté en JS */
.mv-blog__page-indicator {
	font-size: 0.88rem;
	letter-spacing: 0.06em;
	color: hsl(var(--mv-muted-foreground)) !important;
	font-weight: 500;
	text-transform: uppercase;
	flex: 0 0 auto;
}

@media (max-width: 540px) {
	.wp-block-query-pagination.mv-blog__pagination {
		gap: 0.6rem !important;
		padding: 1.25rem 0 0 !important;
	}
	.mv-blog__pagination a.wp-block-query-pagination-previous,
	.mv-blog__pagination a.wp-block-query-pagination-next { font-size: 0.88rem; }
	.mv-blog__page-indicator { font-size: 0.8rem; }
}

/* Grille — handle remainder gracefully.
 * Quand le dernier élément est seul (n %3 == 1) → on l'étire sur 2 colonnes pour équilibrer.
 * Quand reste 2 éléments → ils restent à leur place (centrage géré par grid). */
@media (min-width: 768px) {
	/* 1 seul élément en dernière ligne (3 cols) → centrer */
	.mv-blog__grid > .mv-blog__card:last-child:nth-child(3n + 1) {
		grid-column-start: 2;
	}
}
.mv-blog__empty {
	font-size: 1.05rem;
	color: hsl(var(--mv-muted-foreground));
	max-width: 36rem;
	margin: 2rem auto !important;
}

/* ---------- Single post ---------- */
.mv-post { background: hsl(var(--mv-background)); }

.wp-block-group.mv-post__hero {
	padding: 5rem 1.5rem 2.5rem !important;
	margin: 0 !important;
	background: hsl(var(--mv-card));
	text-align: center;
}
@media (min-width: 768px) {
	.wp-block-group.mv-post__hero { padding: 6rem 1.5rem 3rem !important; }
}
.wp-block-group.mv-post__hero-inner {
	max-width: 56rem;
	margin: 0 auto !important;
	padding: 0 !important;
}
.mv-post__cat,
.mv-post__hero .wp-block-post-terms {
	display: inline-block;
	font-size: 0.78rem !important;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: hsl(var(--mv-deep)) !important;
	background: hsl(var(--mv-primary) / 0.18);
	padding: 0.4rem 1rem;
	border-radius: 9999px;
	margin: 0 auto 1.25rem !important;
}
.mv-post__cat a, .mv-post__hero .wp-block-post-terms a {
	color: hsl(var(--mv-deep)) !important;
	text-decoration: none !important;
}
.mv-post__title,
.mv-post__hero .wp-block-post-title {
	font-size: clamp(1.8rem, 4vw, 2.75rem) !important;
	font-weight: 700;
	margin: 0 auto 1rem !important;
	color: hsl(var(--mv-foreground));
	max-width: 30ch;
	line-height: 1.2;
	font-family: var(--mv-font-display);
}
.mv-post__meta,
.wp-block-group.mv-post__meta {
	display: flex !important;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
	font-size: 0.9rem;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 !important;
	padding: 0 !important;
	flex-wrap: wrap;
}
.mv-post__meta p { margin: 0 !important; }
.mv-post__sep { opacity: 0.5; }

/* Featured image — calé sur la largeur du contenu (720px) pour minimiser l'étirement
 * sur les images sources de 480-700px. object-fit: cover + height fixe = rendu homogène. */
.mv-post__cover,
.wp-block-post-featured-image.mv-post__cover {
	max-width: 760px !important;
	width: 100% !important;
	margin: -2rem auto 0 !important;
	padding: 0 1.5rem !important;
	box-sizing: border-box;
}
.mv-post__cover img {
	width: 100% !important;
	height: 400px !important;
	max-height: 400px !important;
	object-fit: cover !important;
	border-radius: 1rem !important;
	display: block;
	margin: 0;
	image-rendering: auto;
}
@media (max-width: 600px) {
	.mv-post__cover img { height: 260px !important; }
}

/* Body content */
.wp-block-group.mv-post__body {
	padding: 3rem 1.5rem 4rem !important;
	margin: 0 !important;
	background: hsl(var(--mv-background));
}
.wp-block-group.mv-post__content {
	max-width: 720px;
	margin: 0 auto !important;
	padding: 0 !important;
	font-size: 1.05rem;
	line-height: 1.75;
	color: hsl(var(--mv-foreground));
}
.mv-post__content h2,
.mv-post__content .wp-block-heading {
	font-size: 1.6rem !important;
	font-weight: 700;
	margin: 2.5rem 0 0.75rem !important;
	color: hsl(var(--mv-foreground));
	font-family: var(--mv-font-display);
	line-height: 1.25;
}
.mv-post__content h3 {
	font-size: 1.2rem !important;
	font-weight: 700;
	margin: 1.75rem 0 0.5rem !important;
	color: hsl(var(--mv-deep));
}
.mv-post__content p { margin: 0 0 1.25rem !important; }
.mv-post__content a {
	color: hsl(var(--mv-deep)) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: hsl(var(--mv-primary) / 0.4);
}
.mv-post__content a:hover {
	color: hsl(var(--mv-primary)) !important;
	text-decoration-color: hsl(var(--mv-primary));
}
.mv-post__content strong { font-weight: 700; color: hsl(var(--mv-foreground)); }
.mv-post__content ul,
.mv-post__content .wp-block-list {
	margin: 0 0 1.5rem !important;
	padding-left: 1.25rem !important;
}
.mv-post__content li { margin-bottom: 0.5rem; }

/* Images, galleries, sliders dans le post */
.mv-post__content figure.wp-block-image,
.mv-post__content .wp-block-gallery {
	margin: 2rem 0 !important;
}
.mv-post__content figure.wp-block-image img {
	width: 100%;
	border-radius: 0.75rem;
	display: block;
}
.mv-post__content .mv-ba {
	margin: 2rem auto !important;
	max-width: 100%;
	border-radius: 0.75rem;
	overflow: hidden;
}

/* Quote */
.mv-post__content blockquote.wp-block-quote {
	border-left: 4px solid hsl(var(--mv-primary));
	padding: 0 0 0 1.5rem !important;
	margin: 2rem 0 !important;
	font-style: italic;
	color: hsl(var(--mv-muted-foreground));
}
.mv-post__content blockquote cite {
	display: block;
	font-style: normal;
	font-size: 0.9rem;
	margin-top: 0.5rem;
	color: hsl(var(--mv-deep));
	font-weight: 600;
}

/* Buttons in body */
.mv-post__content .wp-block-buttons {
	margin: 2.5rem 0 !important;
	gap: 0.75rem !important;
}

/* Retour au blog — au-dessus du titre */
.mv-post__back {
	margin: 0 0 1rem !important;
	font-size: 0.88rem;
	color: hsl(var(--mv-muted-foreground)) !important;
	letter-spacing: 0.04em;
}
.mv-post__back a {
	color: hsl(var(--mv-deep)) !important;
	text-decoration: none !important;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s ease, color 0.2s ease;
	padding: 0.25rem 0;
}
.mv-post__back a:hover {
	border-bottom-color: hsl(var(--mv-primary));
	color: hsl(var(--mv-primary)) !important;
}

/* ── CTA "Un projet similaire ?" — bande verte deep, design distinctif ── */
.wp-block-group.mv-post__cta-band {
	padding: 0 !important;
	margin: 0 !important;
	background: hsl(var(--mv-deep));
	color: hsl(var(--mv-on-dark));
	position: relative;
	overflow: hidden;
}
.wp-block-group.mv-post__cta-band::before {
	content: "";
	position: absolute;
	top: -50%;
	right: -10%;
	width: 40rem;
	height: 40rem;
	background: radial-gradient(circle, hsl(var(--mv-primary) / 0.15) 0%, transparent 70%);
	pointer-events: none;
}
.wp-block-group.mv-post__cta-inner {
	position: relative;
	z-index: 1;
	max-width: 56rem;
	margin: 0 auto !important;
	padding: 4rem 1.5rem !important;
	text-align: center;
}
@media (min-width: 768px) {
	.wp-block-group.mv-post__cta-inner { padding: 5rem 1.5rem !important; }
}
.mv-post__cta-eyebrow {
	display: inline-block;
	font-size: 0.85rem !important;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: hsl(var(--mv-primary)) !important;
	background: hsl(var(--mv-primary) / 0.15);
	padding: 0.4rem 1rem;
	border-radius: 9999px;
	margin: 0 auto 1.5rem !important;
}
.mv-post__cta-title {
	font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
	font-weight: 700;
	color: hsl(var(--mv-on-dark)) !important;
	margin: 0 auto 0.75rem !important;
	max-width: 28ch;
	line-height: 1.2;
}
.mv-post__cta-lead {
	font-size: 1.05rem !important;
	color: hsl(var(--mv-on-dark-muted)) !important;
	margin: 0 auto 2rem !important;
	max-width: 36rem;
}
.mv-post__cta-buttons,
.wp-block-buttons.mv-post__cta-buttons {
	justify-content: center !important;
	gap: 0.75rem !important;
	margin: 0 !important;
}
.mv-post__cta-buttons .wp-block-button__link {
	padding: 0.95rem 1.85rem !important;
	font-weight: 600;
	border-radius: 9999px !important;
	min-height: 48px;
	display: inline-flex;
	align-items: center;
}
.mv-post__cta-buttons .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: hsl(var(--mv-primary)) !important;
	color: hsl(var(--mv-primary-foreground)) !important;
	border: none !important;
}
.mv-post__cta-buttons .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: hsl(var(--mv-primary-glow)) !important;
}
.mv-post__cta-buttons .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: hsl(var(--mv-on-dark)) !important;
	border: 1.5px solid hsl(var(--mv-on-dark) / 0.5) !important;
}
.mv-post__cta-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: hsl(var(--mv-on-dark) / 0.1) !important;
	border-color: hsl(var(--mv-on-dark)) !important;
	color: hsl(var(--mv-on-dark)) !important;
}

/* ── Related — "À découvrir aussi" — section claire ── */
.wp-block-group.mv-post__related {
	padding: 4rem 1.5rem 5rem !important;
	margin: 0 !important;
	background: hsl(var(--mv-background));
}
.mv-post__related-eyebrow {
	display: inline-block;
	font-size: 0.82rem !important;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: hsl(var(--mv-deep)) !important;
	background: hsl(var(--mv-primary) / 0.18);
	padding: 0.35rem 0.9rem;
	border-radius: 9999px;
	margin: 0 auto 1rem !important;
}
.mv-post__related-title {
	font-size: clamp(1.6rem, 3vw, 2.25rem) !important;
	font-weight: 700;
	color: hsl(var(--mv-foreground));
	margin: 0 auto 2.5rem !important;
	font-family: var(--mv-font-display);
}
.mv-post__related .wp-block-query {
	max-width: 1200px;
	margin: 0 auto;
}
.mv-post__related-cta {
	margin: 2.5rem auto 0 !important;
	font-size: 0.95rem;
}
.mv-post__related-cta a {
	color: hsl(var(--mv-deep)) !important;
	text-decoration: none !important;
	font-weight: 600;
	letter-spacing: 0.04em;
	border-bottom: 1.5px solid hsl(var(--mv-primary));
	padding-bottom: 0.2rem;
	transition: color 0.25s ease;
}
.mv-post__related-cta a:hover {
	color: hsl(var(--mv-primary)) !important;
}

/* Shadow + text-shadow reset */
.mv-blog, .mv-blog *, .mv-blog__card,
.mv-post, .mv-post * {
	box-shadow: none !important;
	text-shadow: none !important;
}

/* ═════════════════════════════════════════════════════════════════════
 * Why-choose Main Verte — grid 4 cartes engagement (page contact)
 * ═══════════════════════════════════════════════════════════════════ */
.wp-block-group.mv-why-grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	max-width: 1100px;
	margin: 2.5rem auto 0 !important;
	padding: 0 !important;
}
@media (min-width: 600px)  { .wp-block-group.mv-why-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } }
@media (min-width: 1024px) { .wp-block-group.mv-why-grid { grid-template-columns: repeat(4, 1fr); } }

.wp-block-group.mv-why {
	background: #ffffff !important;
	border: 1px solid hsl(var(--mv-border)) !important;
	border-radius: 1rem !important;
	padding: 1.75rem 1.5rem !important;
	margin: 0 !important;
	transition: border-color 0.3s ease, transform 0.3s ease;
	display: flex !important;
	flex-direction: column;
	gap: 0.6rem;
	text-align: left;
}
.wp-block-group.mv-why:hover {
	border-color: hsl(var(--mv-primary)) !important;
	transform: translateY(-3px);
}
.mv-why__icon {
	font-size: 0 !important;
	margin: 0 0 0.4rem !important;
	line-height: 1 !important;
	width: 3.25rem;
	height: 3.25rem;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: hsl(var(--mv-primary) / 0.18);
	border-radius: 0.85rem;
	color: hsl(var(--mv-deep)) !important;
}
.mv-why__icon svg { width: 1.5rem; height: 1.5rem; display: block; }
.mv-why__title {
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	margin: 0 !important;
	color: hsl(var(--mv-foreground)) !important;
	font-family: var(--mv-font-display);
	line-height: 1.3;
}
.mv-why__desc {
	font-size: 0.92rem !important;
	line-height: 1.55 !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 !important;
}
.mv-why__desc a {
	color: hsl(var(--mv-deep)) !important;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: hsl(var(--mv-primary) / 0.4);
}
.mv-why__desc a:hover { color: hsl(var(--mv-primary)) !important; }
.mv-why, .mv-why * { box-shadow: none !important; text-shadow: none !important; }

/* ─── Archive (category / tag) ──────────────────────────────────────── */
.mv-archive__back {
	background: transparent !important;
	padding: 0 !important;
	margin: 0 0 0.5rem !important;
	font-size: 0.82rem !important;
	letter-spacing: 0.05em !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	text-transform: none !important;
	font-weight: 600 !important;
}
.mv-archive__back a {
	color: hsl(var(--mv-deep)) !important;
	text-decoration: none !important;
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s ease, color 0.2s ease;
	padding: 0.25rem 0;
}
.mv-archive__back a:hover {
	color: hsl(var(--mv-primary)) !important;
	border-bottom-color: hsl(var(--mv-primary));
}

/* La WP query-title (h1 auto = "Catégorie : Conseils") */
.mv-archive .wp-block-query-title,
.mv-blog .wp-block-query-title.mv-blog__title {
	font-size: clamp(2rem, 4.5vw, 3.25rem) !important;
	font-weight: 700;
	margin: 0 auto 1rem !important;
	color: hsl(var(--mv-foreground));
	max-width: 28ch;
	line-height: 1.15;
	font-family: var(--mv-font-display);
	text-align: center;
}

/* Description de la catégorie (term description) */
.mv-archive .wp-block-term-description,
.mv-blog__lead {
	font-size: 1.1rem !important;
	line-height: 1.65;
	color: hsl(var(--mv-muted-foreground)) !important;
	max-width: 50rem;
	margin: 0 auto !important;
	text-align: center;
}
.mv-archive .wp-block-term-description p { margin: 0 !important; }

/* Section "Autres catégories" en bas */
.wp-block-group.mv-archive__categories {
	padding: 3.5rem 1.5rem 5rem !important;
	margin: 0 !important;
	background: hsl(var(--mv-card) / 0.5);
}
.mv-archive__cats-title {
	font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
	font-weight: 700;
	color: hsl(var(--mv-foreground));
	margin: 0 auto 2rem !important;
	font-family: var(--mv-font-display);
}
.wp-block-group.mv-archive__cats {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1rem;
	max-width: 1100px;
	margin: 0 auto !important;
	padding: 0 !important;
}
@media (min-width: 600px) { .wp-block-group.mv-archive__cats { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; } }
@media (min-width: 1100px) { .wp-block-group.mv-archive__cats { grid-template-columns: repeat(5, 1fr); } }
.mv-archive__cat {
	display: block !important;
	padding: 1.5rem 1.25rem !important;
	background: #ffffff;
	border: 1.5px solid hsl(var(--mv-border));
	border-radius: 0.85rem;
	text-decoration: none !important;
	color: hsl(var(--mv-foreground));
	transition: border-color 0.25s ease, transform 0.25s ease;
	margin: 0 !important;
}
.mv-archive__cat:hover {
	border-color: hsl(var(--mv-primary));
	transform: translateY(-3px);
	color: hsl(var(--mv-foreground));
}
.mv-archive__cat-name {
	font-size: 1.02rem !important;
	font-weight: 700 !important;
	margin: 0 0 0.4rem !important;
	color: hsl(var(--mv-deep)) !important;
	font-family: var(--mv-font-display);
}
.mv-archive__cat p {
	font-size: 0.88rem !important;
	color: hsl(var(--mv-muted-foreground)) !important;
	margin: 0 !important;
	line-height: 1.5;
}

.mv-archive, .mv-archive *, .mv-archive__cat {
	box-shadow: none !important;
	text-shadow: none !important;
}

/* ============================================================
 * TROMBINOSCOPE — équipe Main Verte (22 personnes, 4 sections)
 * Grille uniforme · cards quali · placeholder monogramme pour
 * les personnes sans photo · stats discrètes en intro */

/* Stats inline en tête de page */
.mv-team-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	max-width: 720px;
	margin: 1.5rem auto 3rem;
	padding: 1.5rem 1.25rem;
	background: linear-gradient(135deg, hsl(var(--mv-primary) / 0.05) 0%, hsl(var(--mv-card)) 100%);
	border-radius: 1.25rem;
	border: 1px solid hsl(var(--mv-primary) / 0.12);
}
@media (min-width: 700px) { .mv-team-stats { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; } }

.mv-team-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.2rem;
	text-align: center;
}
.mv-team-stat__num {
	font-size: 2.2rem;
	font-weight: 800;
	color: hsl(var(--mv-primary-deep, var(--mv-primary)));
	line-height: 1;
	letter-spacing: -0.02em;
	font-family: "Space Grotesk", sans-serif;
}
.mv-team-stat__lbl {
	font-size: 0.75rem;
	font-weight: 600;
	color: hsl(var(--mv-muted-foreground));
	letter-spacing: 0.01em;
	text-transform: lowercase;
}

/* Pôle (section) */
.mv-team-pole {
	margin: 3rem 0 0;
	padding: 0;
}
.mv-team-pole__header {
	margin: 0 0 1.5rem;
	padding: 0;
	max-width: 720px;
}
.mv-team-pole__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.3rem 0.85rem;
	margin-bottom: 0.75rem;
	background: hsl(var(--mv-primary) / 0.12);
	color: hsl(var(--mv-primary-deep, var(--mv-primary)));
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 9999px;
}
.mv-team-pole__title {
	font-size: 1.6rem;
	font-weight: 700;
	color: hsl(var(--mv-deep));
	margin: 0 0 0.5rem !important;
	letter-spacing: -0.015em;
	line-height: 1.2;
}
.mv-team-pole__intro {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.6;
	color: hsl(var(--mv-muted-foreground));
	max-width: 60ch;
}

/* Grille uniforme : 1 → 2 → 3 → 4 colonnes */
.mv-team-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
@media (min-width: 600px)  { .mv-team-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } }
@media (min-width: 900px)  { .mv-team-grid { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }
@media (min-width: 1200px) { .mv-team-grid { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; } }

/* Sections ≤ 2 personnes (Direction) : cards centrées, ne pas étirer */
.mv-team-grid--compact {
	justify-content: center;
}
@media (min-width: 600px) {
	.mv-team-grid--compact {
		grid-template-columns: repeat(2, minmax(0, 300px));
	}
}

/* Card personne */
.mv-person {
	display: flex;
	flex-direction: column;
	background: hsl(var(--mv-background));
	border: 1px solid hsl(var(--mv-border));
	border-radius: 1rem;
	overflow: hidden;
	box-shadow: 0 1px 3px hsl(var(--mv-forest) / 0.04);
	transition: transform 0.4s var(--mv-ease), box-shadow 0.4s ease, border-color 0.3s ease;
}
.mv-person:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 28px hsl(var(--mv-forest) / 0.12);
	border-color: hsl(var(--mv-primary) / 0.3);
}

/* Figure photo — aspect ratio strict */
.mv-person__photo {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	margin: 0;
	background: hsl(var(--mv-card));
}
.mv-person__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 25%;
	display: block;
	transition: transform 0.6s var(--mv-ease);
}
.mv-person:hover .mv-person__photo img {
	transform: scale(1.04);
}

/* Placeholder pour personnes sans photo — monogramme stylisé */
.mv-person__photo--placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	background:
		radial-gradient(ellipse at top, hsl(var(--mv-primary) / 0.15) 0%, transparent 60%),
		linear-gradient(135deg, hsl(var(--mv-primary) / 0.08) 0%, hsl(var(--mv-deep) / 0.06) 100%);
}
.mv-person__monogram {
	font-family: "Space Grotesk", sans-serif;
	font-size: 3.2rem;
	font-weight: 700;
	color: hsl(var(--mv-primary-deep, var(--mv-primary)));
	letter-spacing: 0.04em;
	line-height: 1;
	width: 5.5rem;
	height: 5.5rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: hsl(var(--mv-background));
	border: 2px solid hsl(var(--mv-primary) / 0.25);
	box-shadow: 0 4px 12px hsl(var(--mv-forest) / 0.08);
}
.mv-person__placeholder-label {
	font-size: 0.7rem;
	font-weight: 600;
	color: hsl(var(--mv-muted-foreground));
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

/* Badge ancienneté en overlay sur la photo */
.mv-person__badge {
	position: absolute;
	bottom: 0.75rem;
	left: 0.75rem;
	padding: 0.28rem 0.7rem;
	background: hsl(var(--mv-background) / 0.95);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	color: hsl(var(--mv-primary-deep, var(--mv-primary)));
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	border-radius: 9999px;
	box-shadow: 0 2px 8px hsl(var(--mv-forest) / 0.12);
	z-index: 2;
}

.mv-person__body {
	padding: 1rem 1.1rem 1.2rem;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}
.mv-person__name {
	margin: 0 !important;
	font-size: 1.1rem !important;
	font-weight: 700;
	color: hsl(var(--mv-deep));
	letter-spacing: -0.01em;
	line-height: 1.2;
	font-family: "Space Grotesk", sans-serif;
}
.mv-person__role {
	margin: 0 !important;
	font-size: 0.88rem;
	font-weight: 600;
	color: hsl(var(--mv-primary-deep, var(--mv-primary)));
	line-height: 1.35;
}
.mv-person__speciality {
	margin: 0.4rem 0 0 !important;
	padding-top: 0.6rem;
	border-top: 1px solid hsl(var(--mv-border));
	font-size: 0.82rem;
	line-height: 1.45;
	color: hsl(var(--mv-muted-foreground));
}

/* ============================================================
 * CUSTOMIZATION via panel "Apparence" des blocs Gutenberg
 * Le wrap .mv-block-wrap injecte des variables CSS en style inline.
 * Chaque réglage est scopé via [style*="--mv-x"] pour ne s'appliquer QUE
 * s'il a été défini par l'utilisateur (sinon le style par défaut du bloc
 * est conservé intact). Couvre TOUS les blocs mv/.
 * Variables : --mv-accent --mv-card-bg --mv-text --mv-radius
 *             --mv-gap --mv-pad --mv-title-size --mv-title-weight --mv-align */

/* ---- COULEUR D'ACCENT : bordures ---- */
.mv-block-wrap[style*="--mv-accent"] .mv-pillar:hover,
.mv-block-wrap[style*="--mv-accent"] .mv-route:hover,
.mv-block-wrap[style*="--mv-accent"] .mv-equip:hover,
.mv-block-wrap[style*="--mv-accent"] .mv-person:hover,
.mv-block-wrap[style*="--mv-accent"] .mv-material:hover {
	border-color: var(--mv-accent) !important;
}
.mv-block-wrap[style*="--mv-accent"] .mv-decision::before,
.mv-block-wrap[style*="--mv-accent"] .mv-qa__item {
	border-left-color: var(--mv-accent) !important;
}
/* ---- COULEUR D'ACCENT : fonds pleins ---- */
.mv-block-wrap[style*="--mv-accent"] .mv-cycle__step-num,
.mv-block-wrap[style*="--mv-accent"] .mv-decision__verdict {
	background: var(--mv-accent) !important;
}
/* ---- COULEUR D'ACCENT : texte / icônes ---- */
.mv-block-wrap[style*="--mv-accent"] .mv-calendar__name,
.mv-block-wrap[style*="--mv-accent"] .mv-calendar__icon,
.mv-block-wrap[style*="--mv-accent"] .mv-day__step-time,
.mv-block-wrap[style*="--mv-accent"] .mv-route__arrow,
.mv-block-wrap[style*="--mv-accent"] .mv-pillar__icon,
.mv-block-wrap[style*="--mv-accent"] .mv-person__role,
.mv-block-wrap[style*="--mv-accent"] .mv-person__badge,
.mv-block-wrap[style*="--mv-accent"] .mv-person__monogram,
.mv-block-wrap[style*="--mv-accent"] .mv-team-stat__num,
.mv-block-wrap[style*="--mv-accent"] .mv-qa__q::before {
	color: var(--mv-accent) !important;
}
.mv-block-wrap[style*="--mv-accent"] .mv-toc a:hover {
	border-color: var(--mv-accent) !important;
	background: color-mix(in srgb, var(--mv-accent) 8%, transparent) !important;
}

/* ---- FOND DES CARDS ---- */
.mv-block-wrap[style*="--mv-card-bg"] .mv-pillar,
.mv-block-wrap[style*="--mv-card-bg"] .mv-route,
.mv-block-wrap[style*="--mv-card-bg"] .mv-calendar__month,
.mv-block-wrap[style*="--mv-card-bg"] .mv-decision,
.mv-block-wrap[style*="--mv-card-bg"] .mv-cycle__step,
.mv-block-wrap[style*="--mv-card-bg"] .mv-material,
.mv-block-wrap[style*="--mv-card-bg"] .mv-equip,
.mv-block-wrap[style*="--mv-card-bg"] .mv-day__step,
.mv-block-wrap[style*="--mv-card-bg"] .mv-qa__item,
.mv-block-wrap[style*="--mv-card-bg"] .mv-person,
.mv-block-wrap[style*="--mv-card-bg"] .mv-team-stats {
	background: var(--mv-card-bg) !important;
}

/* ---- COULEUR DE TEXTE (corps) ---- */
.mv-block-wrap[style*="--mv-text"] .mv-pillar__desc,
.mv-block-wrap[style*="--mv-text"] .mv-route__desc,
.mv-block-wrap[style*="--mv-text"] .mv-decision__desc,
.mv-block-wrap[style*="--mv-text"] .mv-cycle__step-desc,
.mv-block-wrap[style*="--mv-text"] .mv-day__step-desc,
.mv-block-wrap[style*="--mv-text"] .mv-material__tech,
.mv-block-wrap[style*="--mv-text"] .mv-equip__usage,
.mv-block-wrap[style*="--mv-text"] .mv-person__speciality,
.mv-block-wrap[style*="--mv-text"] .mv-team-stat__lbl,
.mv-block-wrap[style*="--mv-text"] .mv-qa__a {
	color: var(--mv-text) !important;
}

/* ---- ARRONDI (radius) : cards + médias ---- */
.mv-block-wrap[style*="--mv-radius"] .mv-pillar,
.mv-block-wrap[style*="--mv-radius"] .mv-route,
.mv-block-wrap[style*="--mv-radius"] .mv-calendar__month,
.mv-block-wrap[style*="--mv-radius"] .mv-decision,
.mv-block-wrap[style*="--mv-radius"] .mv-cycle__step,
.mv-block-wrap[style*="--mv-radius"] .mv-material,
.mv-block-wrap[style*="--mv-radius"] .mv-material__img-wrap,
.mv-block-wrap[style*="--mv-radius"] .mv-equip,
.mv-block-wrap[style*="--mv-radius"] .mv-equip__img,
.mv-block-wrap[style*="--mv-radius"] .mv-day__step,
.mv-block-wrap[style*="--mv-radius"] .mv-day__step-img,
.mv-block-wrap[style*="--mv-radius"] .mv-qa__item,
.mv-block-wrap[style*="--mv-radius"] .mv-person,
.mv-block-wrap[style*="--mv-radius"] .mv-person__photo,
.mv-block-wrap[style*="--mv-radius"] .mv-team-stats,
.mv-block-wrap[style*="--mv-radius"] .mv-masonry__tile,
.mv-block-wrap[style*="--mv-radius"] .mv-reel__tile {
	border-radius: var(--mv-radius) !important;
}

/* ---- ESPACEMENT : gap entre éléments ---- */
.mv-block-wrap[style*="--mv-gap"] .mv-pillars,
.mv-block-wrap[style*="--mv-gap"] .mv-routes,
.mv-block-wrap[style*="--mv-gap"] .mv-calendar,
.mv-block-wrap[style*="--mv-gap"] .mv-decisions,
.mv-block-wrap[style*="--mv-gap"] .mv-cycle,
.mv-block-wrap[style*="--mv-gap"] .mv-materials,
.mv-block-wrap[style*="--mv-gap"] .mv-equips,
.mv-block-wrap[style*="--mv-gap"] .mv-day,
.mv-block-wrap[style*="--mv-gap"] .mv-qa,
.mv-block-wrap[style*="--mv-gap"] .mv-team-grid,
.mv-block-wrap[style*="--mv-gap"] .mv-team-stats,
.mv-block-wrap[style*="--mv-gap"] .mv-masonry,
.mv-block-wrap[style*="--mv-gap"] .mv-reel__grid {
	gap: var(--mv-gap) !important;
}

/* ---- ESPACEMENT : padding interne des cards ---- */
.mv-block-wrap[style*="--mv-pad"] .mv-pillar,
.mv-block-wrap[style*="--mv-pad"] .mv-route,
.mv-block-wrap[style*="--mv-pad"] .mv-calendar__month,
.mv-block-wrap[style*="--mv-pad"] .mv-decision,
.mv-block-wrap[style*="--mv-pad"] .mv-cycle__step,
.mv-block-wrap[style*="--mv-pad"] .mv-qa__item,
.mv-block-wrap[style*="--mv-pad"] .mv-person__body,
.mv-block-wrap[style*="--mv-pad"] .mv-equip__body,
.mv-block-wrap[style*="--mv-pad"] .mv-day__step-body,
.mv-block-wrap[style*="--mv-pad"] .mv-material__caption {
	padding: var(--mv-pad) !important;
}

/* ---- TYPOGRAPHIE : taille des titres ---- */
.mv-block-wrap[style*="--mv-title-size"] .mv-pillar__title,
.mv-block-wrap[style*="--mv-title-size"] .mv-route__label,
.mv-block-wrap[style*="--mv-title-size"] .mv-calendar__name,
.mv-block-wrap[style*="--mv-title-size"] .mv-decision__title,
.mv-block-wrap[style*="--mv-title-size"] .mv-cycle__step-title,
.mv-block-wrap[style*="--mv-title-size"] .mv-material__title,
.mv-block-wrap[style*="--mv-title-size"] .mv-equip__name,
.mv-block-wrap[style*="--mv-title-size"] .mv-day__step-title,
.mv-block-wrap[style*="--mv-title-size"] .mv-qa__q,
.mv-block-wrap[style*="--mv-title-size"] .mv-person__name,
.mv-block-wrap[style*="--mv-title-size"] .mv-team-pole__title {
	font-size: var(--mv-title-size) !important;
}
/* ---- TYPOGRAPHIE : graisse des titres ---- */
.mv-block-wrap[style*="--mv-title-weight"] .mv-pillar__title,
.mv-block-wrap[style*="--mv-title-weight"] .mv-route__label,
.mv-block-wrap[style*="--mv-title-weight"] .mv-calendar__name,
.mv-block-wrap[style*="--mv-title-weight"] .mv-decision__title,
.mv-block-wrap[style*="--mv-title-weight"] .mv-cycle__step-title,
.mv-block-wrap[style*="--mv-title-weight"] .mv-material__title,
.mv-block-wrap[style*="--mv-title-weight"] .mv-equip__name,
.mv-block-wrap[style*="--mv-title-weight"] .mv-day__step-title,
.mv-block-wrap[style*="--mv-title-weight"] .mv-qa__q,
.mv-block-wrap[style*="--mv-title-weight"] .mv-person__name,
.mv-block-wrap[style*="--mv-title-weight"] .mv-team-pole__title {
	font-weight: var(--mv-title-weight) !important;
}
/* ---- TYPOGRAPHIE : alignement du texte ---- */
.mv-block-wrap[style*="--mv-align"] .mv-person__body,
.mv-block-wrap[style*="--mv-align"] .mv-equip__body,
.mv-block-wrap[style*="--mv-align"] .mv-day__step-body,
.mv-block-wrap[style*="--mv-align"] .mv-qa__item,
.mv-block-wrap[style*="--mv-align"] .mv-pillar,
.mv-block-wrap[style*="--mv-align"] .mv-decision,
.mv-block-wrap[style*="--mv-align"] .mv-cycle__step {
	text-align: var(--mv-align) !important;
}

/* ============================================================
 * FAQ OUVERTE (Q&A) — toutes les réponses visibles, pas d'accordéon.
 * Utilisée sur l'outro des pages services/matrix/locales pour un rendu
 * propre + SEO maximal (texte directement indexable). */

.mv-qa {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin: 0;
}
@media (min-width: 900px) { .mv-qa { gap: 1.25rem; } }

.mv-qa__item {
	padding: 1.25rem 1.5rem 1.35rem;
	background: hsl(var(--mv-card));
	border-radius: 0.85rem;
	border-left: 4px solid hsl(var(--mv-primary));
	box-shadow: 0 2px 8px hsl(var(--mv-forest) / 0.05);
	transition: box-shadow 0.3s ease, transform 0.3s var(--mv-ease);
}
.mv-qa__item:hover {
	box-shadow: 0 8px 20px hsl(var(--mv-forest) / 0.1);
	transform: translateX(2px);
}

.mv-qa__q {
	margin: 0 0 0.55rem !important;
	font-size: 1.08rem;
	font-weight: 700;
	color: hsl(var(--mv-deep));
	line-height: 1.3;
	letter-spacing: -0.005em;
}
.mv-qa__q::before {
	content: "→ ";
	color: hsl(var(--mv-primary));
	font-weight: 700;
}

.mv-qa__a {
	margin: 0 !important;
	font-size: 0.96rem;
	line-height: 1.6;
	color: hsl(var(--mv-foreground));
}
.mv-qa__a a {
	color: hsl(var(--mv-primary-deep, var(--mv-primary)));
	font-weight: 600;
}

/* TOC chips horizontales — liens utiles en bas de Q&A */
.mv-toc {
	margin: 1.5rem 0 0;
}
.mv-toc ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	padding: 0 !important;
	margin: 0 !important;
	list-style: none !important;
}
.mv-toc li {
	list-style: none !important;
	margin: 0 !important;
}
.mv-toc li::marker { content: ""; }
.mv-toc a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.55rem 1rem;
	background: hsl(var(--mv-background));
	border: 1px solid hsl(var(--mv-border));
	border-radius: 9999px;
	color: hsl(var(--mv-deep)) !important;
	text-decoration: none !important;
	font-size: 0.88rem;
	font-weight: 600;
	letter-spacing: 0.005em;
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s var(--mv-ease), box-shadow 0.25s ease;
}
.mv-toc a:hover,
.mv-toc a:focus-visible {
	background: hsl(var(--mv-primary) / 0.08);
	border-color: hsl(var(--mv-primary));
	transform: translateY(-2px);
	box-shadow: 0 6px 14px hsl(var(--mv-forest) / 0.12);
}

/* ============================================================
 * VALUE PILLARS — 4 cards "Nos valeurs" sur /a-propos/ */

.mv-pillars {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
@media (min-width: 700px)  { .mv-pillars { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; } }
@media (min-width: 1100px) { .mv-pillars { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; } }

.mv-pillar {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	padding: 1.5rem 1.4rem 1.65rem;
	background: hsl(var(--mv-background));
	border-radius: 1.25rem;
	border: 1px solid hsl(var(--mv-border));
	box-shadow: 0 4px 14px hsl(var(--mv-forest) / 0.08);
	transition: transform 0.35s var(--mv-ease), box-shadow 0.35s ease, border-color 0.35s ease;
}
.mv-pillar:hover {
	transform: translateY(-4px);
	border-color: hsl(var(--mv-primary) / 0.5);
	box-shadow: 0 14px 32px hsl(var(--mv-forest) / 0.18);
}
.mv-pillar__icon {
	font-size: 2.2rem;
	line-height: 1;
	display: inline-flex;
	width: 3.4rem;
	height: 3.4rem;
	align-items: center;
	justify-content: center;
	background: hsl(var(--mv-primary) / 0.08);
	border-radius: 50%;
	margin-bottom: 0.2rem;
}
.mv-pillar__title {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 700;
	color: hsl(var(--mv-deep));
}
.mv-pillar__desc {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.55;
	color: hsl(var(--mv-muted-foreground));
}

/* ============================================================
 * QUICK ROUTES — 4 boutons d'orientation sur /contact/ */

.mv-routes {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
}
@media (min-width: 640px)  { .mv-routes { grid-template-columns: repeat(2, 1fr); gap: 1rem; } }
@media (min-width: 1024px) { .mv-routes { grid-template-columns: repeat(4, 1fr); gap: 1rem; } }

.mv-route {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 1.1rem 1.2rem;
	background: hsl(var(--mv-background));
	border: 1px solid hsl(var(--mv-border));
	border-radius: 1rem;
	text-decoration: none;
	color: inherit;
	transition: transform 0.3s var(--mv-ease), box-shadow 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}
.mv-route:hover {
	transform: translateY(-3px);
	border-color: hsl(var(--mv-primary));
	background: hsl(var(--mv-primary) / 0.04);
	box-shadow: 0 10px 24px hsl(var(--mv-forest) / 0.15);
}
.mv-route__icon {
	font-size: 1.8rem;
	line-height: 1;
	flex-shrink: 0;
}
.mv-route__body {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	flex: 1;
	min-width: 0;
}
.mv-route__label {
	font-size: 1rem;
	font-weight: 700;
	color: hsl(var(--mv-deep));
	line-height: 1.25;
}
.mv-route__desc {
	font-size: 0.82rem;
	color: hsl(var(--mv-muted-foreground));
	line-height: 1.4;
}
.mv-route__arrow {
	color: hsl(var(--mv-primary));
	font-weight: 700;
	font-size: 1.2rem;
	transition: transform 0.3s var(--mv-ease);
	flex-shrink: 0;
}
.mv-route:hover .mv-route__arrow {
	transform: translateX(4px);
}

/* ============================================================
 * MATRICE SERVICES × CONTEXTES — table accessible sur /services/ */

.mv-matrix-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.mv-matrix {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	margin: 0 auto;
	background: hsl(var(--mv-background));
	border-radius: 1rem;
	overflow: hidden;
	min-width: 600px;
}
.mv-matrix th, .mv-matrix td {
	padding: 0.85rem 0.95rem;
	text-align: center;
	font-size: 0.92rem;
	border-bottom: 1px solid hsl(var(--mv-border));
}
.mv-matrix thead th {
	background: hsl(var(--mv-primary) / 0.06);
	font-weight: 700;
	color: hsl(var(--mv-deep));
	letter-spacing: 0.01em;
}
.mv-matrix__ctx-header {
	text-align: left !important;
}
.mv-matrix tbody th.mv-matrix__ctx {
	text-align: left;
	font-weight: 600;
	color: hsl(var(--mv-deep));
	background: hsl(var(--mv-card) / 0.5);
	display: flex;
	align-items: center;
	gap: 0.6rem;
}
.mv-matrix__ctx-icon {
	font-size: 1.3rem;
	line-height: 1;
}
.mv-matrix__cell--star {
	color: hsl(var(--mv-primary));
	font-size: 1.5rem;
	font-weight: 700;
}
.mv-matrix__cell--check {
	color: hsl(var(--mv-primary) / 0.6);
	font-size: 1.2rem;
	font-weight: 600;
}
.mv-matrix__cell--empty {
	color: hsl(var(--mv-border));
}
.mv-matrix tbody tr:last-child th,
.mv-matrix tbody tr:last-child td {
	border-bottom: 0;
}
.mv-matrix tbody tr:hover th,
.mv-matrix tbody tr:hover td {
	background: hsl(var(--mv-primary) / 0.04);
}
.mv-matrix__legend {
	margin: 0.85rem 0 0;
	text-align: center;
	font-size: 0.82rem;
	color: hsl(var(--mv-muted-foreground));
}
.mv-matrix__legend-star {
	color: hsl(var(--mv-primary));
	font-weight: 700;
}
.mv-matrix__legend-check {
	color: hsl(var(--mv-primary) / 0.6);
	font-weight: 600;
}

/* ============================================================
 * CALENDRIER ENTRETIEN — 12 mois en grille
 * Sur desktop : 6×2. Tablet : 4×3. Mobile : 3×4. */

.mv-calendar {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.6rem;
}
@media (min-width: 640px)  { .mv-calendar { grid-template-columns: repeat(4, 1fr); gap: 0.75rem; } }
@media (min-width: 1024px) { .mv-calendar { grid-template-columns: repeat(6, 1fr); gap: 1rem; } }

.mv-calendar__month {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	padding: 0.95rem 0.9rem 1rem;
	background: hsl(var(--mv-background));
	border: 1px solid hsl(var(--mv-border));
	border-radius: 0.85rem;
	transition: transform 0.3s var(--mv-ease), box-shadow 0.3s ease, border-color 0.3s ease;
}
.mv-calendar__month:hover {
	transform: translateY(-3px);
	border-color: hsl(var(--mv-primary) / 0.4);
	box-shadow: 0 8px 24px hsl(var(--mv-forest) / 0.12);
}
.mv-calendar__icon {
	font-size: 1.4rem;
	line-height: 1;
}
.mv-calendar__name {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: hsl(var(--mv-primary));
}
.mv-calendar__task {
	font-size: 0.85rem;
	line-height: 1.4;
	color: hsl(var(--mv-foreground));
}

/* ============================================================
 * MATRICE DE DÉCISION — 4 scénarios avec verdict colorisé */

.mv-decisions {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
@media (min-width: 700px)  { .mv-decisions { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; } }
@media (min-width: 1100px) { .mv-decisions { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; } }

.mv-decision {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: 1.3rem;
	background: hsl(var(--mv-background));
	border-radius: 1.1rem;
	border: 1px solid hsl(var(--mv-border));
	box-shadow: 0 4px 14px hsl(var(--mv-forest) / 0.08);
	position: relative;
	overflow: hidden;
}
.mv-decision::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 4px;
	background: var(--mv-tone, hsl(var(--mv-primary)));
}
.mv-decision--good    { --mv-tone: hsl(140, 50%, 45%); }
.mv-decision--warn    { --mv-tone: hsl(35, 90%, 55%); }
.mv-decision--bad     { --mv-tone: hsl(0, 70%, 50%); }
.mv-decision--neutral { --mv-tone: hsl(220, 15%, 55%); }

.mv-decision__sign {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
}
.mv-decision__icon {
	font-size: 1.6rem;
	line-height: 1.2;
}
.mv-decision__title {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
	color: hsl(var(--mv-deep));
}
.mv-decision__desc {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.55;
	color: hsl(var(--mv-muted-foreground));
}
.mv-decision__verdict {
	margin-top: auto;
	padding: 0.65rem 0.9rem;
	background: var(--mv-tone, hsl(var(--mv-primary)));
	color: white;
	border-radius: 0.7rem;
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	font-size: 0.88rem;
}
.mv-decision__verdict span {
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0.85;
}
.mv-decision__verdict strong {
	font-size: 1rem;
	font-weight: 700;
}

/* ============================================================
 * ÉQUIPEMENTS — cards engins avec specs techniques */

.mv-equips {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
@media (min-width: 700px)  { .mv-equips { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; } }
@media (min-width: 1100px) { .mv-equips { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; } }

.mv-equip {
	display: flex;
	flex-direction: column;
	background: hsl(var(--mv-background));
	border-radius: 1.25rem;
	overflow: hidden;
	border: 1px solid hsl(var(--mv-border));
	box-shadow: 0 4px 14px hsl(var(--mv-forest) / 0.1);
	transition: transform 0.35s var(--mv-ease), box-shadow 0.35s ease;
}
.mv-equip:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 32px hsl(var(--mv-forest) / 0.18);
}
.mv-equip__img {
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.mv-equip__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s var(--mv-ease);
}
.mv-equip:hover .mv-equip__img img { transform: scale(1.05); }

.mv-equip__body { padding: 1.1rem 1.25rem 1.3rem; }
.mv-equip__name {
	margin: 0 0 0.7rem;
	font-size: 1.1rem;
	font-weight: 700;
	color: hsl(var(--mv-deep));
}
.mv-equip__specs {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.25rem 0.85rem;
	margin: 0 0 0.85rem;
	padding-bottom: 0.85rem;
	border-bottom: 1px solid hsl(var(--mv-border));
	font-size: 0.85rem;
}
.mv-equip__specs dt {
	font-weight: 600;
	color: hsl(var(--mv-muted-foreground));
}
.mv-equip__specs dd {
	margin: 0;
	color: hsl(var(--mv-foreground));
	font-weight: 600;
}
.mv-equip__usage {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.5;
	color: hsl(var(--mv-muted-foreground));
}

/* ============================================================
 * CYCLE — étapes circulaires (broyage écologique) */

.mv-cycle {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	counter-reset: mv-cycle;
	position: relative;
}
@media (min-width: 700px)  { .mv-cycle { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; } }
@media (min-width: 1024px) { .mv-cycle { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; } }

.mv-cycle__step {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 1.5rem 1.25rem 1.6rem;
	background: hsl(var(--mv-background));
	border-radius: 1.25rem;
	border: 2px dashed hsl(var(--mv-primary) / 0.3);
	transition: border-color 0.35s ease, transform 0.35s var(--mv-ease);
}
.mv-cycle__step:hover {
	border-color: hsl(var(--mv-primary) / 0.7);
	border-style: solid;
	transform: translateY(-3px);
}
/* Flèche entre cards desktop : connecteur curvy */
@media (min-width: 1024px) {
	.mv-cycle__step:not(:last-child)::after {
		content: "→";
		position: absolute;
		right: -1.3rem;
		top: 2.5rem;
		font-size: 1.5rem;
		color: hsl(var(--mv-primary));
		font-weight: 700;
	}
	/* Boucle de retour (étape 4 → étape 1) en arc */
	.mv-cycle__step:last-child::after {
		content: "↻";
		position: absolute;
		right: 1rem;
		top: 1rem;
		font-size: 1.4rem;
		color: hsl(var(--mv-primary) / 0.5);
	}
}

.mv-cycle__step-num {
	position: absolute;
	top: -0.85rem;
	left: 1.25rem;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: hsl(var(--mv-primary));
	color: white;
	display: grid;
	place-items: center;
	font-size: 0.9rem;
	font-weight: 700;
	box-shadow: 0 3px 8px hsl(var(--mv-primary) / 0.4);
}
.mv-cycle__step-icon {
	font-size: 2.4rem;
	line-height: 1;
	margin: 0.5rem 0 0.85rem;
}
.mv-cycle__step-title {
	margin: 0 0 0.5rem;
	font-size: 1.05rem;
	font-weight: 700;
	color: hsl(var(--mv-deep));
}
.mv-cycle__step-desc {
	margin: 0;
	font-size: 0.88rem;
	line-height: 1.5;
	color: hsl(var(--mv-muted-foreground));
}

/* ============================================================
 * GALERIE MATIÈRES — close-ups matériaux signature
 * Cards 1:1 avec image + caption hover qui slide depuis le bas. */

.mv-materials {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.85rem;
}
@media (min-width: 640px) { .mv-materials { grid-template-columns: repeat(3, 1fr); gap: 1rem; } }
@media (min-width: 1024px) { .mv-materials { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; } }

.mv-material {
	position: relative;
	margin: 0;
	border-radius: 1.25rem;
	overflow: hidden;
	background: hsl(var(--mv-card));
	box-shadow: 0 4px 16px hsl(var(--mv-forest) / 0.12);
	transition: transform 0.4s var(--mv-ease), box-shadow 0.4s ease;
	cursor: default;
}
.mv-material:hover,
.mv-material:focus-within {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px hsl(var(--mv-forest) / 0.22);
}

.mv-material__img-wrap {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.mv-material__img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.6s var(--mv-ease);
}
.mv-material:hover .mv-material__img-wrap img,
.mv-material:focus-within .mv-material__img-wrap img {
	transform: scale(1.05);
}

/* Dégradé bas pour lisibilité du caption hover */
.mv-material::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 55%;
	background: linear-gradient(to top, hsl(var(--mv-forest) / 0.92) 0%, hsl(var(--mv-forest) / 0.6) 50%, hsl(var(--mv-forest) / 0) 100%);
	opacity: 0;
	transition: opacity 0.35s ease;
	pointer-events: none;
}
.mv-material:hover::after,
.mv-material:focus-within::after { opacity: 1; }

.mv-material__caption {
	position: absolute;
	left: 1rem;
	right: 1rem;
	bottom: 0.9rem;
	color: white;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	transform: translateY(10px);
	opacity: 0;
	transition: transform 0.35s var(--mv-ease), opacity 0.35s ease;
	z-index: 1;
}
.mv-material:hover .mv-material__caption,
.mv-material:focus-within .mv-material__caption {
	transform: translateY(0);
	opacity: 1;
}
.mv-material__title {
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: -0.005em;
	line-height: 1.25;
}
.mv-material__tech {
	font-size: 0.82rem;
	font-weight: 500;
	opacity: 0.92;
	line-height: 1.35;
}
/* Sur touch device, caption toujours visible avec dégradé permanent */
@media (hover: none) {
	.mv-material::after { opacity: 0.85; }
	.mv-material__caption { opacity: 1; transform: translateY(0); }
}

/* ============================================================
 * TIMELINE "Une journée Main Verte" — 6 cards horizontales
 * Sur desktop : grille 3×2. Sur mobile : pile verticale. */

.mv-day {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}
@media (min-width: 700px) { .mv-day { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } }
@media (min-width: 1100px) { .mv-day { grid-template-columns: repeat(3, 1fr); gap: 1.75rem; } }

.mv-day__step {
	display: flex;
	flex-direction: column;
	background: hsl(var(--mv-background));
	border-radius: 1.5rem;
	overflow: hidden;
	box-shadow: 0 4px 16px hsl(var(--mv-forest) / 0.1);
	transition: transform 0.4s var(--mv-ease), box-shadow 0.4s ease;
	border: 1px solid hsl(var(--mv-border));
}
.mv-day__step:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px hsl(var(--mv-forest) / 0.18);
}

.mv-day__step-img {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.mv-day__step-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.6s var(--mv-ease);
}
.mv-day__step:hover .mv-day__step-img img {
	transform: scale(1.04);
}

/* Badge horaire — pill verte en haut-gauche */
.mv-day__step-time {
	position: absolute;
	top: 0.9rem;
	left: 0.9rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.4rem 0.85rem;
	background: hsl(var(--mv-background) / 0.95);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	color: hsl(var(--mv-primary));
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	border-radius: 9999px;
	box-shadow: 0 4px 12px hsl(var(--mv-forest) / 0.18);
}
.mv-day__step-time::before {
	content: "";
	width: 6px; height: 6px;
	border-radius: 50%;
	background: hsl(var(--mv-primary));
	box-shadow: 0 0 0 3px hsl(var(--mv-primary) / 0.2);
}

.mv-day__step-body {
	padding: 1.25rem 1.4rem 1.5rem;
}
.mv-day__step-title {
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0 0 0.5rem;
	color: hsl(var(--mv-deep));
	letter-spacing: -0.005em;
}
.mv-day__step-desc {
	font-size: 0.95rem;
	line-height: 1.55;
	margin: 0;
	color: hsl(var(--mv-muted-foreground));
}

/* ============================================================
 * MASONRY PINTEREST — galerie inspirations
 * CSS columns pour layout asymétrique fluide. */

.mv-masonry {
	column-count: 2;
	column-gap: 0.75rem;
}
@media (min-width: 640px) { .mv-masonry { column-count: 3; column-gap: 1rem; } }
@media (min-width: 1024px) { .mv-masonry { column-count: 4; column-gap: 1.1rem; } }

.mv-masonry__tile {
	display: block;
	width: 100%;
	margin: 0 0 0.75rem;
	break-inside: avoid;
	border-radius: 1rem;
	overflow: hidden;
	box-shadow: 0 4px 16px hsl(var(--mv-forest) / 0.1);
	transition: transform 0.4s var(--mv-ease), box-shadow 0.4s ease;
	position: relative;
	cursor: zoom-in;
}
@media (min-width: 640px) { .mv-masonry__tile { margin-bottom: 1rem; } }
@media (min-width: 1024px) { .mv-masonry__tile { margin-bottom: 1.1rem; } }

.mv-masonry__tile:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px hsl(var(--mv-forest) / 0.2);
}

.mv-masonry__tile img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: var(--mv-aspect, auto);
	object-fit: cover;
	transition: transform 0.6s var(--mv-ease);
}
.mv-masonry__tile:hover img { transform: scale(1.04); }

/* Overlay au hover — icône loupe centrée */
.mv-masonry__tile::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, transparent 50%, hsl(var(--mv-forest) / 0.4) 100%);
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}
.mv-masonry__tile:hover::after { opacity: 1; }

/* ============================================================
 * AVANT/APRÈS — grille de 2 sliders côte à côte (paires) */
.mv-ba-pair {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
@media (min-width: 900px) {
	.mv-ba-pair { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
}
.mv-ba-pair > .mv-ba,
.mv-ba-pair > .wp-block-group.mv-ba {
	margin: 0;
}

/* ============================================================
 * REEL VIDÉO — grille de mini-vidéos verticales (style Stories)
 * Autoplay-muted en preview, clic = lightbox plein écran avec son.
 * La lecture preview est gérée par mv-reel.js via IntersectionObserver. */

.mv-reel {
	width: 100%;
}
.mv-reel__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.75rem;
}
@media (min-width: 640px) {
	.mv-reel__grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
}
@media (min-width: 1024px) {
	.mv-reel__grid { grid-template-columns: repeat(6, 1fr); gap: 1rem; }
}

.mv-reel__tile {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 9 / 16;
	border: 0;
	padding: 0;
	margin: 0;
	border-radius: 1.1rem;
	overflow: hidden;
	cursor: pointer;
	background: hsl(var(--mv-card));
	box-shadow: 0 4px 16px hsl(var(--mv-forest) / 0.12);
	transition: transform 0.35s var(--mv-ease), box-shadow 0.35s ease;
}
.mv-reel__tile:hover {
	transform: translateY(-3px) scale(1.015);
	box-shadow: 0 12px 32px hsl(var(--mv-forest) / 0.22);
}
.mv-reel__tile:focus-visible {
	outline: 2px solid hsl(var(--mv-primary));
	outline-offset: 3px;
}

.mv-reel__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: hsl(var(--mv-forest) / 0.08);
	pointer-events: none;
}

/* Overlay dégradé + icône play centrée */
.mv-reel__tile::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		hsl(var(--mv-forest) / 0) 0%,
		hsl(var(--mv-forest) / 0) 55%,
		hsl(var(--mv-forest) / 0.55) 100%
	);
	opacity: 0.85;
	transition: opacity 0.3s ease;
	pointer-events: none;
	z-index: 1;
}
.mv-reel__tile:hover::before { opacity: 1; }

.mv-reel__overlay {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 9999px;
	background: hsl(var(--mv-background) / 0.92);
	color: hsl(var(--mv-primary));
	display: grid;
	place-items: center;
	box-shadow: 0 6px 20px hsl(var(--mv-forest) / 0.35);
	opacity: 0;
	transition: opacity 0.3s ease, transform 0.3s var(--mv-ease);
	pointer-events: none;
	z-index: 2;
}
.mv-reel__overlay svg { transform: translateX(2px); /* compense le triangle visuellement */ }
.mv-reel__tile:hover .mv-reel__overlay {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1.05);
}
/* Sur touch device (pas de hover), on affiche l'icône en permanence mais discrète */
@media (hover: none) {
	.mv-reel__overlay { opacity: 0.85; }
}

.mv-reel__caption {
	position: absolute;
	left: 0.75rem;
	right: 0.75rem;
	bottom: 0.7rem;
	color: white;
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.005em;
	text-shadow: 0 1px 3px hsl(var(--mv-forest) / 0.7);
	z-index: 2;
	pointer-events: none;
}
@media (min-width: 640px) {
	.mv-reel__caption { font-size: 0.85rem; }
}

/* ============================================================
 * LIGHTBOX VIDÉO — modal natif <dialog> piloté par JS */

.mv-reel-modal {
	border: 0;
	padding: 0;
	margin: 0;
	max-width: none;
	max-height: none;
	width: 100vw;
	height: 100vh;
	background: hsl(var(--mv-forest) / 0.94);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	color: white;
}
.mv-reel-modal::backdrop {
	background: hsl(var(--mv-forest) / 0.94);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.mv-reel-modal[open] {
	display: grid;
	place-items: center;
	animation: mvReelFadeIn 0.25s ease;
}
@keyframes mvReelFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}
.mv-reel-modal__video {
	display: block;
	max-width: min(95vw, calc(95vh * 9 / 16));
	max-height: 95vh;
	width: auto;
	height: 95vh;
	border-radius: 1.25rem;
	box-shadow: 0 24px 64px hsl(var(--mv-forest) / 0.55);
	background: black;
	object-fit: contain;
}

/* Modal image (galerie masonry) — ratio libre */
.mv-img-modal__img {
	display: block;
	max-width: 95vw;
	max-height: 95vh;
	width: auto;
	height: auto;
	border-radius: 1.25rem;
	box-shadow: 0 24px 64px hsl(var(--mv-forest) / 0.55);
	object-fit: contain;
}
.mv-reel-modal__close {
	position: absolute;
	top: 1.25rem;
	right: 1.25rem;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 9999px;
	border: 0;
	background: hsl(var(--mv-background) / 0.92);
	color: hsl(var(--mv-foreground));
	font-size: 1.5rem;
	font-weight: 700;
	cursor: pointer;
	display: grid;
	place-items: center;
	box-shadow: 0 4px 12px hsl(var(--mv-forest) / 0.4);
	transition: background 0.2s ease, transform 0.2s ease;
	z-index: 10;
}
.mv-reel-modal__close:hover {
	background: hsl(var(--mv-background));
	transform: scale(1.05);
}
.mv-reel-modal__close:focus-visible {
	outline: 2px solid hsl(var(--mv-primary));
	outline-offset: 3px;
}
