/* ==========================================================================
   Marie Guerdin — feuille de styles principale
   Direction : « organique & serein » — sarcelle profonde (confiance),
   crème chaud et sauge (douceur), terre cuite (chaleur, action).
   ========================================================================== */

@font-face { font-family: "Quicksand"; src: url("../fonts/quicksand.woff2") format("woff2"); font-weight: 300 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Nunito Sans"; src: url("../fonts/nunito-sans.woff2") format("woff2"); font-weight: 300 800; font-style: normal; font-display: swap; }

:root {
	/* Couleurs — issues du nuancier : famille végétale (sauge #809971, feuille #6bcc31, menthe #9dff97)
	   et famille chaude (corail #ff5757, terre cuite #cc5e31, taupe #997d71).
	   Les teintes brutes servent au décor ; les nuances dérivées portent le texte (contrastes AA vérifiés). */
	--coral: #ff5757;
	--terra: #cc5e31;
	--taupe: #997d71;
	--mint: #9dff97;
	--leaf: #6bcc31;
	--sage: #809971;

	--ink: #262e21;          /* titres : sauge très profonde (13,4:1 sur crème) */
	--text: #33372f;         /* texte courant (11,5:1) */
	--muted: #6f5950;        /* texte secondaire : taupe profond (6,2:1) */
	--primary: #5c6f50;      /* sauge profonde : liens, boutons secondaires (5,2:1) */
	--primary-dark: #404d38; /* forêt : fonds sombres, survols (9:1 avec blanc) */
	--primary-deep: #2f3a29;
	--primary-soft: #e3ebd9;
	--tint-green: #eef4e8;   /* fond de section vert pâle */
	--tint-warm: #f4ede7;    /* fond de section taupe pâle */
	--cream: #fbf9f4;
	--white: #fff;
	--accent: #c54541;       /* corail profond : action (4,9:1 avec blanc) */
	--accent-dark: #9a4424;  /* terre cuite profonde (6,5:1) */
	--accent-soft: #fce2de;
	--glow: #fcd5d1;         /* lueur chaude sur fond clair ; devient la menthe sur fond sombre */
	--line: #e6ded6;
	--focus: #c54541;

	/* Typo */
	/* Titres : Quicksand, linéale aux terminaisons arrondies, aérée (écho du logo historique) → sérénité, douceur.
	   Texte : Nunito Sans, humaniste aux formes rondes, très lisible. */
	--font-display: "Quicksand", "Nunito Sans", system-ui, sans-serif;
	--font-sans: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--fs-sm: .9rem;
	--fs-base: 1.0625rem;
	--fs-lead: clamp(1.125rem, 1rem + .5vw, 1.3rem);
	--fs-h3: clamp(1.2rem, 1.1rem + .4vw, 1.4rem);
	--fs-h2: clamp(1.75rem, 1.35rem + 1.6vw, 2.6rem);
	--fs-h1: clamp(2.2rem, 1.4rem + 2.8vw, 3.5rem);

	/* Espaces, formes, mouvements */
	--wrap: 1180px;
	--gutter: clamp(1rem, 4vw, 2rem);
	--section: clamp(3.5rem, 7vw, 6.5rem);
	--r-sm: 10px;
	--r: 18px;
	--r-lg: 28px;
	--r-leaf: 18px 5px 18px 5px;      /* forme « feuille » des boutons : deux angles arrondis opposés */
	--r-leaf-sm: 12px 4px 12px 4px;
	--shadow-sm: 0 1px 2px rgba(38, 46, 33, .06), 0 2px 8px rgba(38, 46, 33, .05);
	--shadow: 0 2px 6px rgba(38, 46, 33, .05), 0 14px 34px -12px rgba(38, 46, 33, .18);
	--ease: cubic-bezier(.22, .61, .36, 1);
	--t: .25s var(--ease);
	--header-h: 76px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: var(--fs-base);
	line-height: 1.7;
	color: var(--text);
	background: var(--cream);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--primary); text-underline-offset: .18em; text-decoration-thickness: 1px; transition: color var(--t); }
a:hover { color: var(--accent-dark); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3, h4 { font-family: var(--font-display); color: var(--ink); line-height: 1.2; font-weight: 600; margin: 0 0 .6em; letter-spacing: -.005em; text-wrap: balance; }
p { margin: 0 0 1.1em; text-wrap: pretty; }
strong { font-weight: 700; color: var(--ink); }
em { font-style: italic; }
small { font-size: var(--fs-sm); }
address { font-style: normal; }
button { font: inherit; cursor: pointer; }
::selection { background: var(--glow); color: var(--ink); }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.mg-skip { position: absolute; left: 1rem; top: -100px; z-index: 1000; background: var(--ink); color: #fff; padding: .7rem 1.1rem; border-radius: var(--r-sm); font-weight: 700; }
.mg-skip:focus { top: 1rem; color: #fff; }
.mg-main:focus { outline: none; }

.mg-wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.mg-center { text-align: center; }
.mg-icon { width: 1.25em; height: 1.25em; flex-shrink: 0; }
.mg-stars { display: inline-block; width: 5.4rem; height: 1rem; flex-shrink: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1z' fill='%23ff5757' stroke='%23cc5e31' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 0 0 / 1.08rem 1rem repeat-x; }

/* ---------- Boutons & liens ----------
   Forme « feuille », dégradé profond, lueur intérieure (liseré clair en haut + halo pêche sur les bords),
   ombre colorée ; au survol un reflet lumineux traverse le bouton. */
.mg-btn {
	--btn-a: #5c6f50; --btn-b: #35412e; --btn-glow: rgba(157, 255, 151, .38); --btn-shadow: rgba(53, 65, 46, .5);
	position: relative; isolation: isolate; overflow: hidden;
	display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
	min-height: 50px; padding: .8rem 1.45rem;
	border: 0; border-radius: var(--r-leaf);
	background: linear-gradient(135deg, var(--btn-a) 0%, var(--btn-b) 100%);
	color: #fff; font-family: var(--font-sans); font-weight: 700; font-size: 1rem; line-height: 1.2; letter-spacing: .01em;
	text-decoration: none; cursor: pointer; touch-action: manipulation;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), inset 0 0 0 1px rgba(255, 255, 255, .08), inset 0 -10px 22px -12px var(--btn-glow), 0 10px 22px -12px var(--btn-shadow);
	transition: transform var(--t), box-shadow var(--t), filter var(--t), color var(--t), background var(--t);
}
.mg-btn::after { /* reflet qui traverse le bouton au survol */
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .28) 48%, transparent 62%);
	transform: translateX(-120%); transition: transform .7s var(--ease);
}
.mg-btn:hover { color: #fff; transform: translateY(-2px); filter: saturate(1.08) brightness(1.04); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .34), inset 0 0 0 1px rgba(255, 255, 255, .12), inset 0 -12px 26px -10px var(--btn-glow), 0 16px 30px -14px var(--btn-shadow); }
.mg-btn:hover::after { transform: translateX(120%); }
.mg-btn:active { transform: translateY(0) scale(.98); }
.mg-btn .mg-icon { width: 1.15em; height: 1.15em; }
.mg-btn--accent { --btn-a: #c54541; --btn-b: #9a4424; --btn-glow: rgba(255, 150, 130, .6); --btn-shadow: rgba(154, 68, 36, .55); }
.mg-btn--ghost { background: transparent; color: var(--primary-dark); box-shadow: inset 0 0 0 1.5px var(--primary); }
.mg-btn--ghost::after { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); transform: none; opacity: 0; transition: opacity var(--t); }
.mg-btn--ghost:hover { color: #fff; box-shadow: inset 0 0 0 1.5px var(--primary-dark), 0 12px 24px -14px rgba(53, 65, 46, .5); filter: none; }
.mg-btn--ghost:hover::after { transform: none; opacity: 1; }
.mg-btn--light { background: linear-gradient(135deg, #fff 0%, #f4ede7 100%); color: var(--primary-dark); --btn-glow: rgba(252, 213, 209, .75); --btn-shadow: rgba(0, 0, 0, .35); }
.mg-btn--light:hover { color: var(--ink); }
.mg-btn--lg { min-height: 56px; padding: .95rem 1.45rem; font-size: 1.04rem; }

.mg-link { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; text-decoration: none; color: var(--primary); }
.mg-link .mg-icon { width: 1.05em; transition: transform var(--t); }
.mg-link:hover .mg-icon, a:hover > .mg-link .mg-icon { transform: translateX(4px); }

.mg-eyebrow { display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 .9rem; font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-dark); }
.mg-eyebrow::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: currentColor; opacity: .7; }
.mg-h2 { font-size: var(--fs-h2); }

/* ---------- En-tête ---------- */
.mg-header {
	position: sticky; top: 0; z-index: 100;
	border-bottom: 1px solid transparent;
	transition: border-color var(--t), box-shadow var(--t);
}
/* Flou sur un pseudo-élément : un backdrop-filter sur l'en-tête lui-même piégerait le menu mobile (position: fixed). */
.mg-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(251, 249, 244, .9); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); }
.admin-bar .mg-header { top: 32px; }
.mg-header.is-scrolled { border-color: var(--line); box-shadow: 0 6px 20px -14px rgba(38, 46, 33, .35); }
.mg-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: var(--header-h); }

.mg-logo { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--ink); flex-shrink: 0; }
.mg-logo:hover { color: var(--ink); }
.mg-logo__mark { width: 28px; height: 48px; fill: var(--mint); stroke: var(--ink); stroke-width: 1.4; stroke-linejoin: round; paint-order: stroke; transform-origin: 50% 46%; transition: transform .6s var(--ease), fill .3s; }
.mg-logo:hover .mg-logo__mark { transform: scale(1.08) rotate(-6deg); fill: var(--leaf); }
.mg-logo__text { display: flex; flex-direction: column; line-height: 1.15; }
.mg-logo__name { font-family: var(--font-display); font-weight: 600; font-size: 1.3rem; letter-spacing: .01em; }
.mg-logo__job { font-size: .78rem; color: var(--muted); font-weight: 600; letter-spacing: .02em; }

.mg-burger { display: none; }
.mg-menu, .mg-menu ul { list-style: none; margin: 0; padding: 0; }
.mg-nav { display: flex; align-items: center; gap: 1rem; }
.mg-menu { display: flex; align-items: center; gap: .15rem; }
.mg-menu > li { position: relative; }
.mg-menu a, .mg-subtoggle {
	display: flex; align-items: center; gap: .3rem;
	padding: .55rem .8rem; border-radius: var(--r-leaf-sm);
	color: var(--ink); font-weight: 600; font-size: .93rem; text-decoration: none;
	background: none; border: 0; white-space: nowrap; transition: background var(--t), color var(--t);
}
.mg-menu a:hover, .mg-subtoggle:hover, .mg-menu .current-menu-item > a, .mg-menu .current-menu-ancestor > a, .mg-menu .current-menu-ancestor > .mg-subtoggle { background: var(--primary-soft); color: var(--primary-dark); }
.mg-subtoggle .mg-icon { width: 1rem; height: 1rem; transition: transform var(--t); }
.mg-subtoggle[aria-expanded="true"] .mg-icon { transform: rotate(180deg); }
.mg-menu .sub-menu {
	position: absolute; top: calc(100% + 8px); left: 0; min-width: 300px;
	padding: .5rem; background: #fff; border: 1px solid var(--line); border-radius: var(--r);
	box-shadow: var(--shadow);
	opacity: 0; visibility: hidden; transform: translateY(-6px);
	transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.mg-menu .sub-menu::before { content: ""; position: absolute; inset: -10px 0 auto; height: 10px; }
.mg-menu .sub-menu a { border-radius: var(--r-sm); padding: .65rem .9rem; font-weight: 600; }
.mg-menu li:hover > .sub-menu, .mg-menu li:focus-within > .sub-menu, .mg-menu li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.mg-nav__actions { display: flex; align-items: center; gap: .9rem; flex-shrink: 0; }
.mg-nav__phone { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; font-size: .93rem; text-decoration: none; color: var(--primary-dark); white-space: nowrap; flex-shrink: 0; }
.mg-nav__phone .mg-icon { width: 1.1em; height: 1.1em; }
.mg-nav__actions .mg-btn { min-height: 44px; padding: .55rem 1.05rem; font-size: .93rem; white-space: nowrap; flex-shrink: 0; }

@media (max-width: 1340px) {
	.mg-nav__phone { display: none; }
}
@media (max-width: 1100px) {
	.mg-burger {
		display: inline-flex; align-items: center; justify-content: center;
		width: 48px; height: 48px; border-radius: 50%;
		border: 1px solid var(--line); background: #fff; color: var(--ink);
	}
	.mg-burger__close { display: none; }
	.mg-burger[aria-expanded="true"] .mg-burger__open { display: none; }
	.mg-burger[aria-expanded="true"] .mg-burger__close { display: block; }
	.mg-nav {
		position: fixed; inset: var(--header-h) 0 0 0; z-index: 99;
		flex-direction: column; align-items: stretch; gap: 1.5rem;
		padding: 1.25rem var(--gutter) 6rem; overflow-y: auto;
		background: var(--cream);
		opacity: 0; visibility: hidden; transform: translateY(-8px);
		transition: opacity .22s var(--ease), transform .22s var(--ease), visibility .22s;
	}
	.admin-bar .mg-nav { top: calc(var(--header-h) + 46px); }
	.mg-nav.is-open { opacity: 1; visibility: visible; transform: none; }
	.mg-menu { flex-direction: column; align-items: stretch; gap: .25rem; }
	.mg-menu a, .mg-subtoggle { width: 100%; padding: .85rem 1rem; font-size: 1.1rem; border-radius: var(--r-sm); justify-content: space-between; }
	.mg-menu .sub-menu { position: static; min-width: 0; margin: .25rem 0 .5rem .75rem; padding: 0 0 0 .75rem; border: 0; border-left: 2px solid var(--primary-soft); border-radius: 0; box-shadow: none; background: none; opacity: 1; visibility: visible; transform: none; display: none; }
	.mg-menu li.is-open > .sub-menu { display: block; }
	.mg-menu .sub-menu a { font-size: 1rem; }
	.mg-nav__actions { flex-direction: column; align-items: stretch; }
	.mg-nav__phone { display: inline-flex; justify-content: center; padding: .8rem; border: 2px solid var(--primary-soft); border-radius: var(--r-leaf); }
	.mg-nav__actions .mg-btn { min-height: 52px; font-size: 1.05rem; }
	body.nav-open { overflow: hidden; }
}
@media (max-width: 782px) { .admin-bar .mg-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .mg-header { top: 0; } }

/* ---------- Mise en page du contenu (blocs Gutenberg) ----------
   Tout le contenu (accueil compris) est composé de blocs natifs, éditables dans l'éditeur.
   Le conteneur .entry-content est « constrained » : largeur normale 820px, large 1180px, pleine largeur. */
.mg-page { padding-block: clamp(2rem, 4vw, 3rem) 0; }
.home .mg-page { padding-top: 0; }
.mg-prose > :last-child:not(.alignfull) { margin-bottom: var(--section); }
.mg-prose > .alignfull { margin-block: 0; }
.mg-prose > :not(.alignfull) + .alignfull { margin-top: var(--section); }
.mg-prose > .alignfull + :not(.alignfull) { margin-top: var(--section); }

/* Sections pleine largeur (bloc Groupe avec la classe mg-section) */
.mg-section { padding-block: var(--section); position: relative; }
.mg-section > * + * { margin-block-start: clamp(1.5rem, 3vw, 2.5rem); }

/* Fonds sombres de la palette : textes clairs, lueur menthe */
.has-forest-background-color, .has-ink-background-color, .has-primary-background-color, .has-accent-background-color, .has-accent-dark-background-color,
.has-forest-sage-gradient-background, .has-sage-forest-gradient-background, .has-coral-terra-gradient-background, .mg-footer {
	--glow: var(--mint);
	color: #e7eee0;
}
:is(.has-forest-background-color, .has-ink-background-color, .has-primary-background-color, .has-accent-background-color, .has-accent-dark-background-color, .has-forest-sage-gradient-background, .has-sage-forest-gradient-background, .has-coral-terra-gradient-background) :is(h1, h2, h3, h4, strong) { color: #fff; }
:is(.has-forest-background-color, .has-ink-background-color, .has-primary-background-color, .has-forest-sage-gradient-background, .has-sage-forest-gradient-background) a:not(.wp-block-button__link) { color: var(--mint); }

/* En-tête de section */
.mg-head { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.mg-head > * { margin-block: 0; }
.mg-head > * + * { margin-top: .6rem; }
.mg-head__intro { color: var(--muted); }

/* ---------- Styles de blocs enregistrés (panneau « Styles » de l'éditeur) ---------- */
/* Paragraphe : Surtitre, Chapô */
.is-style-eyebrow { display: flex; align-items: center; gap: .6rem; margin-bottom: .9rem; font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-dark); }
.is-style-eyebrow::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: currentColor; opacity: .7; flex-shrink: 0; }
.is-style-eyebrow.has-text-align-center { justify-content: center; }
:is(.has-forest-background-color, .has-forest-sage-gradient-background, .has-ink-background-color) .is-style-eyebrow { color: var(--glow); }
.is-style-lead { font-size: var(--fs-lead); color: var(--ink); }

/* Liste : Coches, Étapes numérotées, Étiquettes */
.is-style-checklist { list-style: none; padding-left: 0; }
.is-style-checklist li { position: relative; padding-left: 1.9rem; margin-bottom: .45em; }
.is-style-checklist li::before { content: ""; position: absolute; left: 0; top: .35em; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--primary-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c6f50' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 70% no-repeat; }
:is(.has-forest-background-color, .has-forest-sage-gradient-background) .is-style-checklist li { font-weight: 600; }
:is(.has-forest-background-color, .has-forest-sage-gradient-background) .is-style-checklist li::before { background-color: rgba(157, 255, 151, .18); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239dff97' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
.is-style-numbered { list-style: none; padding-left: 0; counter-reset: n; }
.is-style-numbered > li { position: relative; counter-increment: n; padding: 0 0 1rem 3.2rem; min-height: 2.4rem; }
.is-style-numbered > li::before { content: counter(n); position: absolute; left: 0; top: -.1rem; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--accent-soft); color: var(--accent-dark); font-family: var(--font-display); font-weight: 700; }
.is-style-numbered > li:not(:last-child)::after { content: ""; position: absolute; left: 1.08rem; top: 2.3rem; bottom: .2rem; border-left: 2px dashed var(--glow); }
.is-style-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.is-style-chips li { display: inline-flex; align-items: center; gap: .5rem; margin: 0; padding: .6rem 1rem; background: #fff; border: 1px solid var(--line); border-radius: var(--r-leaf-sm); font-weight: 600; font-size: .96rem; color: var(--ink); box-shadow: var(--shadow-sm); transition: transform var(--t), border-color var(--t); }
.is-style-chips li::before { content: ""; width: 1rem; height: 1rem; flex-shrink: 0; background: var(--leaf); -webkit-mask: var(--ico-check) center / contain no-repeat; mask: var(--ico-check) center / contain no-repeat; }
.is-style-chips li:hover { transform: translateY(-2px); border-color: var(--primary); }

/* Groupe : Encadré, Encadré « attention », Carte, Carte accompagnement, Étape */
.is-style-box { padding: clamp(1.25rem, 3vw, 1.9rem); background-color: var(--tint-green); border-radius: var(--r-lg); }
.is-style-note { padding: clamp(1.25rem, 3vw, 1.9rem); background-color: var(--accent-soft); border-left: 4px solid var(--accent); border-radius: 0 var(--r-lg) var(--r-lg) 0; }
.is-style-note :is(h2, h3) { color: var(--accent-dark); font-size: 1.1rem; font-family: var(--font-sans); font-weight: 800; }
.is-style-card, .is-style-service, .is-style-step { padding: clamp(1.25rem, 2.5vw, 1.75rem); background-color: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); }
:is(.is-style-box, .is-style-note, .is-style-card, .is-style-service, .is-style-step) > * { margin-block: 0; }
:is(.is-style-box, .is-style-note, .is-style-card, .is-style-service, .is-style-step) > * + * { margin-top: .75rem; }

/* Carte accompagnement : icône (classe mg-ico-…), lien sur toute la carte, tarif */
.is-style-service { position: relative; display: flex; flex-direction: column; padding-top: 1.75rem; transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.is-style-service:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--primary-soft); }
.is-style-service::before { content: ""; display: block; width: 56px; height: 56px; margin-bottom: 1.1rem; border-radius: 18px 18px 18px 6px; background: var(--primary-soft); transition: background-color var(--t); }
.is-style-service:hover::before { background: var(--primary); }
.is-style-service h3 a { color: inherit; text-decoration: none; }
.is-style-service h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.is-style-service > p:not(.mg-card__meta):not(.mg-card__more) { color: var(--muted); font-size: .98rem; flex: 1; }
.mg-card__meta { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding-top: 1rem; border-top: 1px dashed var(--line); font-size: .92rem; font-weight: 600; color: var(--muted); }
.mg-card__meta strong { color: var(--accent-dark); font-weight: 800; font-size: 1rem; }
.mg-card__more { font-weight: 700; color: var(--primary); }
.is-style-service:hover .mg-card__more { color: var(--accent-dark); }

/* Pictogramme dessiné par masque (classe mg-ico-… sur le groupe) */
.is-style-service[class*="mg-ico-"]::after, .mg-value[class*="mg-ico-"]::after {
	content: ""; position: absolute; width: 28px; height: 28px; background: var(--primary);
	-webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
	transition: background-color var(--t);
}
.is-style-service[class*="mg-ico-"]::after { top: calc(1.75rem + 14px); left: calc(clamp(1.25rem, 2.5vw, 1.75rem) + 14px); }
.is-style-service:hover::after { background: #fff; }

/* Étape numérotée (dans une grille) */
.mg-steps { counter-reset: s; }
.is-style-step { position: relative; counter-increment: s; padding-top: 2rem; }
.is-style-step::before { content: counter(s); display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 1rem; border-radius: 50%; background: var(--accent-soft); color: var(--accent-dark); font-family: var(--font-display); font-weight: 700; font-size: 1.35rem; }
.is-style-step p { color: var(--muted); }
.mg-after { max-width: 640px; }

/* Engagements (groupes .mg-value avec une icône) */
.mg-value { position: relative; padding-left: 58px; min-height: 44px; }
.mg-value::before { content: ""; position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; background: var(--primary-soft); }
.mg-value[class*="mg-ico-"]::after { left: 10px; top: 10px; width: 24px; height: 24px; }
.mg-value > * { margin-block: 0; }
.mg-value h3 { font-family: var(--font-sans); font-size: 1rem; font-weight: 800; margin-top: .2rem; }
.mg-value p { font-size: .95rem; color: var(--muted); margin-top: .15rem; }

/* Guide « Quelle approche pour vous ? » */
.mg-guide__item { padding-left: 1rem; border-left: 3px solid var(--glow); }
.mg-guide__item > * { margin: 0; }
.mg-guide__item p:last-child { color: var(--muted); font-size: .97rem; }
.mg-guide__item a { font-weight: 700; }
.mg-guide__foot { font-weight: 600; }

/* Citation : Témoignage (carte avec étoiles) */
.wp-block-quote.is-style-testimonial { position: relative; margin: 0 0 1.25rem; padding: 1.5rem 1.5rem 1.3rem; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); font-family: var(--font-sans); font-size: 1rem; font-weight: 400; color: var(--text); break-inside: avoid; }
.wp-block-quote.is-style-testimonial::before { content: ""; display: block; width: 5.4rem; height: 1rem; margin-bottom: .7rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1z' fill='%23ff5757' stroke='%23cc5e31' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 0 0 / 1.08rem 1rem repeat-x; }
.wp-block-quote.is-style-testimonial::after { content: "“"; position: absolute; top: .1rem; right: 1.1rem; font-family: var(--font-display); font-size: 4.5rem; line-height: 1; color: var(--primary-soft); }
.wp-block-quote.is-style-testimonial p { margin: 0 0 .9rem; line-height: 1.65; }
.wp-block-quote.is-style-testimonial cite { display: block; font-style: normal; font-weight: 800; font-size: .95rem; color: var(--ink); }
.wp-block-quote.is-style-testimonial cite::before { content: "— "; color: var(--accent); }
.mg-quotes { columns: 3 300px; column-gap: 1.25rem; }
.mg-quotes > * { margin-top: 0 !important; }
.mg-quotes--few { columns: 3 280px; }
.mg-more { font-weight: 700; }
.mg-more a { text-decoration: none; }

/* Image : Coins doux, Portrait avec liseré */
.wp-block-image.is-style-soft img { border-radius: var(--r-lg); }
.wp-block-image.is-style-portrait { position: relative; }
.wp-block-image.is-style-portrait::before { content: ""; position: absolute; inset: 1.25rem -1.25rem -1.25rem 1.25rem; border: 2px solid var(--glow); border-radius: var(--r-lg); opacity: .6; }
.wp-block-image.is-style-portrait img { position: relative; border-radius: var(--r-lg); }

/* ---------- Boutons (bloc Boutons) ----------
   Forme « feuille », dégradé profond, lueur intérieure, reflet au survol.
   Style par défaut = corail (action principale) ; styles : Sauge, Contour, Clair. */
.wp-block-buttons { gap: .8rem; }
.wp-block-button__link, .mg-btn {
	--btn-a: #c54541; --btn-b: #9a4424; --btn-glow: rgba(255, 150, 130, .6); --btn-shadow: rgba(154, 68, 36, .55);
	position: relative; isolation: isolate; overflow: hidden;
	display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
	min-height: 52px; padding: .85rem 1.45rem;
	border: 0; border-radius: var(--r-leaf);
	background: linear-gradient(135deg, var(--btn-a) 0%, var(--btn-b) 100%);
	color: #fff; font-family: var(--font-sans); font-weight: 700; font-size: 1rem; line-height: 1.2; letter-spacing: .01em;
	text-decoration: none; cursor: pointer; touch-action: manipulation;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), inset 0 0 0 1px rgba(255, 255, 255, .08), inset 0 -10px 22px -12px var(--btn-glow), 0 10px 22px -12px var(--btn-shadow);
	transition: transform var(--t), box-shadow var(--t), filter var(--t), color var(--t), background var(--t);
}
.wp-block-button__link::after, .mg-btn::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .28) 48%, transparent 62%);
	transform: translateX(-120%); transition: transform .7s var(--ease);
}
.wp-block-button__link:hover, .mg-btn:hover { color: #fff; transform: translateY(-2px); filter: saturate(1.08) brightness(1.04); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .34), inset 0 0 0 1px rgba(255, 255, 255, .12), inset 0 -12px 26px -10px var(--btn-glow), 0 16px 30px -14px var(--btn-shadow); }
.wp-block-button__link:hover::after, .mg-btn:hover::after { transform: translateX(120%); }
.wp-block-button__link:active, .mg-btn:active { transform: translateY(0) scale(.98); }
.wp-block-button__link.has-background { background-image: none; }
.mg-btn .mg-icon { width: 1.15em; height: 1.15em; }
.is-style-primary > .wp-block-button__link, .mg-btn--primary { --btn-a: #5c6f50; --btn-b: #35412e; --btn-glow: rgba(157, 255, 151, .38); --btn-shadow: rgba(53, 65, 46, .5); }
.is-style-outline > .wp-block-button__link, .mg-btn--ghost { background: transparent; color: var(--primary-dark); box-shadow: inset 0 0 0 1.5px var(--primary); }
.is-style-outline > .wp-block-button__link::after, .mg-btn--ghost::after { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); transform: none; opacity: 0; transition: opacity var(--t); }
.is-style-outline > .wp-block-button__link:hover, .mg-btn--ghost:hover { color: #fff; box-shadow: inset 0 0 0 1.5px var(--primary-dark), 0 12px 24px -14px rgba(53, 65, 46, .5); filter: none; }
.is-style-outline > .wp-block-button__link:hover::after, .mg-btn--ghost:hover::after { transform: none; opacity: 1; }
.is-style-light > .wp-block-button__link, .mg-btn--light { background: linear-gradient(135deg, #fff 0%, #f4ede7 100%); color: var(--primary-dark); --btn-glow: rgba(252, 213, 209, .75); --btn-shadow: rgba(0, 0, 0, .35); }
.is-style-light > .wp-block-button__link:hover, .mg-btn--light:hover { color: var(--ink); }
.mg-btn--accent { --btn-a: #c54541; --btn-b: #9a4424; }
.mg-btn--lg { min-height: 56px; padding: .95rem 1.45rem; font-size: 1.04rem; }

/* ---------- Accueil : premier écran ---------- */
.mg-hero { position: relative; overflow: hidden; padding-block: clamp(2.5rem, 6vw, 5rem) clamp(3.5rem, 7vw, 6rem) !important; }
.mg-hero__grid { gap: clamp(1.5rem, 3vw, 2.5rem) !important; }
.mg-hero__text > * { margin-block: 0; }
.mg-hero__text > * + * { margin-top: 1.1rem; }
.mg-hero__title { font-weight: 500 !important; line-height: 1.12; text-wrap: balance; }
.mg-hero__title em {
	color: var(--primary); font-style: normal; font-weight: 600;
	/* surlignage menthe qui suit le texte, même s'il passe à la ligne (Italique dans l'éditeur = surlignage) */
	background: linear-gradient(rgba(157, 255, 151, .7), rgba(157, 255, 151, .7)) 0 90% / 100% .26em no-repeat;
	-webkit-box-decoration-break: clone; box-decoration-break: clone;
	animation: mg-underline 1s .4s var(--ease) both;
}
@keyframes mg-underline { from { background-size: 0 .22em; } }
.mg-hero__actions { margin-top: 1.75rem !important; }
.mg-trust, .mg-prose .mg-trust { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; font-size: .95rem; font-weight: 600; color: var(--muted); margin-top: 1.75rem !important; }
.mg-trust li { display: inline-flex; align-items: center; gap: .45rem; margin: 0; }
.mg-trust li::before { content: ""; width: 1.05rem; height: 1.05rem; background: var(--primary); -webkit-mask: var(--ico-check) center / contain no-repeat; mask: var(--ico-check) center / contain no-repeat; }

/* L'illustration prend de la présence selon la résolution (débord dans la marge droite sur grand écran) */
.mg-hero__visual { position: relative; }
@media (max-width: 781px) { .mg-hero__visual { max-width: min(560px, 100%); margin-inline: auto; } }
@media (min-width: 960px) { .mg-hero__visual .mg-illu-wrap { width: calc(100% + 2rem); margin-right: -2rem; } }
@media (min-width: 1440px) { .mg-hero__visual .mg-illu-wrap { width: calc(100% + 5rem); margin-right: -5rem; } }

/* Illustration « le fil qui se dénoue » (bloc mg/illustration, SVG généré par tools/thread.py) */
.mg-illu { width: 100%; height: auto; overflow: visible; }
.mgi-blob { transform-origin: 50% 50%; transform-box: fill-box; animation: mgi-sway 18s ease-in-out infinite alternate; }
.mgi-thread { stroke-dasharray: 1; stroke-dashoffset: 1; }
/* 1. le sac de nœuds se forme vite ; 2. le fil libre se déroule calmement (vitesse constante pour rester
   synchrone avec les étoiles, dont --t = instant d'arrivée du fil, calculé par tools/thread.py) */
.mgi-knot { animation: mgi-draw var(--knot) var(--start) cubic-bezier(.5, 0, .9, .6) forwards; }
.mgi-free { animation: mgi-draw var(--free) calc(var(--start) + var(--knot)) linear forwards; }
.mgi-star, .mgi-halo { transform-origin: center; transform-box: fill-box; transform: scale(0); animation: mgi-pop .5s calc(var(--t) - .08s) cubic-bezier(.34, 1.56, .64, 1) forwards; }
.mgi-halo { opacity: .9; animation: mgi-pop .5s calc(var(--t) - .08s) cubic-bezier(.34, 1.56, .64, 1) forwards, mgi-breathe 4s calc(var(--t) + 1.8s) ease-in-out infinite; }
.mgi-spark { animation: mgi-twinkle 5s calc(var(--i, 0) * .7s) ease-in-out infinite; }
/* L'animation démarre quand l'illustration entre à l'écran (classe is-on posée par main.js). */
.js .mg-illu:not(.is-on) * { animation-play-state: paused; }
@keyframes mgi-draw { to { stroke-dashoffset: 0; } }
@keyframes mgi-pop { to { transform: scale(1); } }
@keyframes mgi-breathe { 0%, 100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.35); opacity: .45; } }
@keyframes mgi-twinkle { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
@keyframes mgi-sway { to { transform: rotate(4deg) scale(1.02); } }
@media (prefers-reduced-motion: reduce) {
	.mgi-thread { stroke-dashoffset: 0; }
	.mgi-star, .mgi-halo { transform: none; }
}

/* ---------- Qui suis-je (Média & texte) ---------- */
.mg-about { gap: clamp(2rem, 5vw, 4rem); }
.mg-about .wp-block-media-text__media { position: relative; max-width: 440px; margin-inline: auto; }
.mg-about .wp-block-media-text__media::before { content: ""; position: absolute; inset: 1.25rem -1.25rem -1.25rem 1.25rem; border: 2px solid var(--glow); border-radius: var(--r-lg); opacity: .5; }
.mg-about .wp-block-media-text__media img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 22%; border-radius: var(--r-lg); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .5); }
.mg-about .wp-block-media-text__content { padding: 0 !important; }
.mg-about .wp-block-media-text__content > * { margin-block: 0; }
.mg-about .wp-block-media-text__content > * + * { margin-top: 1rem; }

/* ---------- Lieux (cartes avec image) ---------- */
.mg-place { overflow: hidden; padding-top: 0 !important; }
.mg-place .mg-place__media { margin: 0 calc(-1 * clamp(1.25rem, 2.5vw, 1.75rem)) 1.25rem !important; overflow: hidden; aspect-ratio: 16 / 10; }
.mg-place .mg-place__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .8s var(--ease); }
.mg-place:hover .mg-place__media img { transform: scale(1.04); }
.mg-place p { color: var(--muted); }
.mg-place p strong { color: var(--ink); }

/* ---------- Questions fréquentes (bloc Détails) ---------- */
.wp-block-details { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 0; transition: box-shadow var(--t), border-color var(--t); }
.wp-block-details + .wp-block-details { margin-top: .75rem !important; }
.wp-block-details[open] { box-shadow: var(--shadow-sm); border-color: var(--primary-soft); }
.wp-block-details summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 1.35rem; cursor: pointer; list-style: none; font-family: var(--font-display); font-weight: 600; font-size: 1.1rem; color: var(--ink); }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: ""; flex-shrink: 0; width: .6rem; height: .6rem; border-right: 2px solid var(--primary); border-bottom: 2px solid var(--primary); transform: rotate(45deg) translateY(-3px); transition: transform var(--t); }
.wp-block-details[open] summary::after { transform: rotate(-135deg) translateY(-3px); }
.wp-block-details > :not(summary) { margin: 0; padding: 0 1.35rem 1.2rem; color: var(--muted); }

/* ---------- Bandeau d'appel (composition synchronisée) ---------- */
.mg-cta { position: relative; overflow: hidden; padding-block: clamp(3rem, 6vw, 4.5rem) !important; }
.mg-cta::before { content: ""; position: absolute; width: 480px; height: 480px; right: -120px; top: -220px; border-radius: 50%; border: 60px solid rgba(157, 255, 151, .1); pointer-events: none; }
.mg-cta h2 { margin-bottom: .35em; }
.mg-cta p { margin: 0; max-width: 36em; }

/* ---------- Bandeau de page ---------- */
.mg-pagehero { position: relative; padding: clamp(2rem, 5vw, 3.75rem) 0 clamp(3.5rem, 7vw, 5rem); background: radial-gradient(900px 400px at 90% 0%, var(--primary-soft), transparent 60%), var(--tint-warm); color: var(--cream); }
.mg-pagehero__inner { max-width: calc(880px + 2 * var(--gutter)); color: var(--text); }
.mg-pagehero__title { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.2rem); margin: .4rem 0 .5em; }
.mg-pagehero__lead { font-size: var(--fs-lead); max-width: 42em; margin-bottom: 0; }
.mg-pagehero__meta { color: var(--muted); font-weight: 600; }
.mg-pagehero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.6rem; }
.mg-wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 40px; color: var(--cream); }
.mg-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; font-size: .88rem; font-weight: 600; color: var(--muted); }
.mg-crumbs li:not(:last-child)::after { content: "/"; margin-left: .5rem; opacity: .5; }
.mg-crumbs a { color: var(--muted); text-decoration: none; }
.mg-crumbs a:hover { color: var(--primary); text-decoration: underline; }

/* ---------- Contenu éditorial ---------- */
.mg-prose h2 { font-size: clamp(1.55rem, 1.25rem + 1.2vw, 2.1rem); }
.mg-prose > h2 { margin-top: 2.4em; }
.mg-prose > h3 { margin-top: 1.8em; }
.mg-prose h3 { font-size: var(--fs-h3); }
.mg-prose > :first-child { margin-top: 0; }
.mg-prose :where(ul, ol):not([class*="is-style-"]) { padding-left: 1.3rem; }
.mg-prose li { margin-bottom: .4em; }
.mg-prose li::marker { color: var(--accent); }
.mg-prose .wp-block-image figcaption { font-size: .9rem; color: var(--muted); text-align: center; margin-top: .6rem; }
.mg-prose > .wp-block-image img { border-radius: var(--r-lg); }
.mg-prose .wp-block-separator { border: 0; height: 1px; background: var(--line); margin-block: 3rem; }
.mg-prose .wp-block-quote:not(.is-style-testimonial) { padding: 1.25rem 1.5rem; border-left: 4px solid var(--glow); background: var(--tint-warm); border-radius: 0 var(--r) var(--r) 0; font-family: var(--font-display); font-weight: 500; font-size: 1.2rem; line-height: 1.55; color: var(--ink); }
.mg-prose .wp-block-quote p:last-child { margin-bottom: 0; }
.mg-prose .wp-block-media-text__media img { border-radius: var(--r-lg); }
.mg-prose .wp-block-media-text:not(.mg-about) .wp-block-media-text__content { padding: 0 0 0 clamp(1rem, 3vw, 2.5rem); }
.mg-prose .wp-block-media-text.has-media-on-the-right:not(.mg-about) .wp-block-media-text__content { padding: 0 clamp(1rem, 3vw, 2.5rem) 0 0; }

/* Tableaux de tarifs */
.mg-prose .wp-block-table { overflow-x: auto; }
.mg-prose table { width: 100%; table-layout: auto; border-collapse: collapse; background: #fff; border-radius: var(--r); overflow: hidden; box-shadow: var(--shadow-sm); font-size: .98rem; }
.mg-prose th, .mg-prose td { padding: .9rem 1.1rem; text-align: left; border: 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.mg-prose thead { border: 0; }
.mg-prose thead th { background: var(--primary); color: #fff; font-weight: 700; }
.mg-prose tbody tr:last-child td { border-bottom: 0; }
.mg-prose td:last-child { font-weight: 800; color: var(--accent-dark); white-space: nowrap; }
.mg-prose .wp-block-table figcaption { font-size: .88rem; color: var(--muted); margin-top: .5rem; }

/* Galerie : grille 2 colonnes (le CSS du bloc impose une largeur en % via « :not(#individual-image) ») */
.mg-prose .wp-block-gallery.has-nested-images { display: grid; grid-template-columns: repeat(2, 1fr); gap: .9rem; }
.mg-prose .wp-block-gallery.has-nested-images figure.wp-block-image:not(#mg-gallery) { width: 100%; margin: 0; }
.mg-prose .wp-block-gallery.has-nested-images figure.wp-block-image img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r); }
@media (max-width: 480px) { .mg-prose .wp-block-gallery.has-nested-images { gap: .5rem; } }

/* Icônes en masque CSS (générées depuis mg_icon() — inc/helpers.php) : ajouter la classe mg-ico-{nom} à un bloc. */
.mg-ico-leaf { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.5 19 2c1 2 2 4.2 2 8 0 5.5-4.8 10-10 10z'/%3E%3Cpath d='M2 21c0-3 1.9-5.4 5.1-6C9.5 14.5 12 13 13 12'/%3E%3C/svg%3E"); }
.mg-ico-sun { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M6.3 17.7l-1.4 1.4M19.1 4.9l-1.4 1.4'/%3E%3C/svg%3E"); }
.mg-ico-tree { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='5' r='2.5'/%3E%3Ccircle cx='5' cy='18' r='2.5'/%3E%3Ccircle cx='12' cy='18' r='2.5'/%3E%3Ccircle cx='19' cy='18' r='2.5'/%3E%3Cpath d='M12 7.5v8M12 11H5v4.5M12 11h7v4.5'/%3E%3C/svg%3E"); }
.mg-ico-spiral { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 12a1 1 0 1 1 1-1 2.5 2.5 0 0 1-2.5 2.5A4 4 0 0 1 6.5 9.5 5.5 5.5 0 0 1 12 4a7 7 0 0 1 7 7 8.5 8.5 0 0 1-8.5 8.5'/%3E%3C/svg%3E"); }
.mg-ico-ear { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8.5a6.5 6.5 0 1 1 13 0c0 6-6 6-6 10a3.5 3.5 0 1 1-7 0'/%3E%3Cpath d='M15 8.5a2.5 2.5 0 0 0-5 0v1a2 2 0 1 1 0 4'/%3E%3C/svg%3E"); }
.mg-ico-lock { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E"); }
.mg-ico-heart { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.5-1.5 3-3.2 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.8 0-3 .5-4.5 2-1.5-1.5-2.7-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4 3 5.5l7 7z'/%3E%3C/svg%3E"); }
.mg-ico-shield { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.mg-ico-pin { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.mg-ico-phone { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.mg-ico-mail { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
.mg-ico-video { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 8-6 4 6 4V8z'/%3E%3Crect x='2' y='6' width='14' height='12' rx='2'/%3E%3C/svg%3E"); }
.mg-ico-clock { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }
.mg-ico-check { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
.mg-ico-calendar { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E"); }
.mg-ico-users { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8'/%3E%3C/svg%3E"); }
.mg-ico-star { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1z'/%3E%3C/svg%3E"); }
.mg-ico-arrow { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E"); }
:root { --ico-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); --ico-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); --ico-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); --ico-video: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 8-6 4 6 4V8z'/%3E%3Crect x='2' y='6' width='14' height='12' rx='2'/%3E%3C/svg%3E"); --ico-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }
:root { --ico-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }

/* ---------- Page contact ---------- */
.mg-contact { gap: 2rem !important; align-items: flex-start; }
.mg-contactcard { padding: 1.75rem; border-radius: var(--r-lg); position: sticky; top: calc(var(--header-h) + 1.5rem); }
.mg-contactcard > * { margin-block: 0; }
.mg-contactcard > * + * { margin-top: 1rem; }
.mg-contactcard .mg-contactcard__img img { width: 88px; height: 88px; object-fit: cover; object-position: center 20%; border-radius: 50%; border: 3px solid var(--glow); }
.mg-contactcard__name { font-family: var(--font-display); font-size: 1.35rem; line-height: 1.3; }
.mg-contactcard__name strong { color: #fff; }
/* Liste de coordonnées : pictogrammes selon l'ordre (téléphone, e-mail, adresse, visio, délai) */
.mg-contact-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }
.mg-contact-list li { position: relative; padding-left: 1.9rem; margin: 0; word-break: break-word; }
.mg-contact-list li::before { content: ""; position: absolute; left: 0; top: .2em; width: 1.2rem; height: 1.2rem; background: var(--glow); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.mg-contactcard .mg-contact-list li:nth-child(1) { --i: var(--ico-phone); }
.mg-contactcard .mg-contact-list li:nth-child(2) { --i: var(--ico-mail); }
.mg-contactcard .mg-contact-list li:nth-child(3) { --i: var(--ico-pin); }
.mg-contactcard .mg-contact-list li:nth-child(4) { --i: var(--ico-video); }
.mg-contactcard .mg-contact-list li:nth-child(5) { --i: var(--ico-clock); }
.mg-contact-list a { color: inherit !important; text-decoration: none; }
.mg-contact-list a:hover { text-decoration: underline; }

.mg-form { padding: clamp(1.25rem, 3vw, 2rem); background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); }
.mg-form__row { display: grid; gap: 0 1.25rem; }
@media (min-width: 640px) { .mg-form__row { grid-template-columns: 1fr 1fr; } }
.mg-field { margin: 0 0 1.15rem; display: flex; flex-direction: column; gap: .35rem; border: 0; padding: 0; min-width: 0; }
.mg-field label, .mg-field legend { font-weight: 700; color: var(--ink); font-size: .96rem; }
.mg-field input[type="text"], .mg-field input[type="tel"], .mg-field input[type="email"], .mg-field select, .mg-field textarea {
	width: 100%; min-height: 50px; padding: .75rem .95rem;
	font: inherit; font-size: 1rem; color: var(--text);
	background: var(--cream); border: 1.5px solid var(--line); border-radius: var(--r-sm);
	transition: border-color var(--t), box-shadow var(--t), background var(--t);
}
.mg-field textarea { min-height: 130px; resize: vertical; }
.mg-field input:focus, .mg-field select:focus, .mg-field textarea:focus { outline: none; background: #fff; border-color: var(--primary); box-shadow: 0 0 0 4px var(--primary-soft); }
.mg-field input.is-invalid, .mg-field textarea.is-invalid { border-color: #b3261e; box-shadow: 0 0 0 3px #fbe4e2; }
.mg-field small { color: var(--muted); }
.mg-field__error { color: #b3261e; font-size: .9rem; font-weight: 700; }
.mg-field--radios { flex-direction: row; flex-wrap: wrap; gap: .4rem 1rem; align-items: center; }
.mg-field--radios legend { width: 100%; margin-bottom: .35rem; }
.mg-field--radios label { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; min-height: 44px; cursor: pointer; }
.mg-field input[type="radio"], .mg-field input[type="checkbox"] { width: 1.2rem; height: 1.2rem; accent-color: var(--primary); flex-shrink: 0; }
.mg-field--check { flex-direction: row; align-items: flex-start; gap: .7rem; }
.mg-field--check input { margin-top: .25rem; }
.mg-field--check label { font-weight: 500; font-size: .93rem; color: var(--text); }
.mg-form__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; margin: 0; }
.mg-form__foot small { color: var(--muted); }
.mg-form button[aria-busy="true"] { opacity: .7; pointer-events: none; }
.mg-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.mg-alert { display: flex; gap: .75rem; align-items: flex-start; padding: 1rem 1.15rem; margin-bottom: 1.5rem; border-radius: var(--r-sm); font-weight: 600; }
.mg-alert p { margin: 0; }
.mg-alert--success { background: #e3f1e6; color: #1e5631; }
.mg-alert--error { background: #fbe4e2; color: #8c1d18; }

/* ---------- Blog ---------- */
.mg-posts { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.mg-postcard { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.mg-postcard:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.mg-postcard__img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.mg-postcard__body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.mg-postcard__body p { color: var(--muted); font-size: .97rem; flex: 1; }
.mg-postcard__date { font-size: .85rem !important; font-weight: 700; color: var(--accent-dark) !important; flex: 0 !important; margin-bottom: .4rem; }
.mg-postcard__title { font-size: 1.3rem; }
.mg-postcard__title a { color: inherit; text-decoration: none; }
.mg-postcard__title a::after { content: ""; position: absolute; inset: 0; }
.mg-post-thumb img { width: 100%; border-radius: var(--r-lg); margin-bottom: 2rem; }
.mg-author { display: flex; gap: 1.25rem; align-items: flex-start; margin-top: 3.5rem; padding: 1.5rem; background: var(--tint-green); border-radius: var(--r-lg); }
.mg-author__img { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; object-position: center 20%; flex-shrink: 0; }
.mg-author__name { font-family: var(--font-display); font-weight: 600; font-size: 1.2rem; color: var(--ink); margin-bottom: .2rem; }
.mg-author p { margin-bottom: .5rem; }
.nav-links { display: flex; justify-content: center; gap: .5rem; margin-top: 2.5rem; }
.nav-links .page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 .75rem; border-radius: var(--r-leaf-sm); background: #fff; border: 1px solid var(--line); text-decoration: none; font-weight: 700; }
.nav-links .current { background: var(--primary); color: #fff; border-color: var(--primary); }

/* ---------- Pied de page ----------
   Logo (thème) + composition synchronisée « Pied de page » (Apparence › Compositions) + mentions. */
.mg-footer { background: var(--ink); color: #cdd6c4; padding: clamp(3rem, 6vw, 4.5rem) 0 0; font-size: .97rem; }
.mg-footer a { color: #eef3e8; text-decoration: none; }
.mg-footer a:hover { color: var(--glow); text-decoration: underline; }
.mg-footer .mg-logo, .mg-footer .mg-logo:hover { color: #fff; text-decoration: none; }
.mg-footer .mg-logo__job { color: #b7c2ac; }
.mg-footer .mg-logo__mark { fill: var(--glow); stroke: none; }
.mg-footer__brand { margin-bottom: 1.25rem; }
.mg-footer__blocks { padding-bottom: 2.5rem; }
.mg-footer__blocks > * { margin-block: 0; }
.mg-footer__grid { gap: 2.5rem !important; }
.mg-footer__grid p { max-width: 34em; }
.mg-footer__title { font-family: var(--font-sans) !important; color: #fff !important; font-size: .82rem !important; letter-spacing: .12em; text-transform: uppercase; font-weight: 800 !important; margin: 0 0 1rem; }
.mg-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.mg-footer li { margin: 0; }
.mg-footer small { color: #b7c2ac; }
.mg-footer .mg-contact-list li:nth-child(1) { --i: var(--ico-pin); }
.mg-footer .mg-contact-list li:nth-child(2) { --i: var(--ico-phone); }
.mg-footer .mg-contact-list li:nth-child(3) { --i: var(--ico-mail); }
.mg-footer .mg-contact-list li:nth-child(4) { --i: var(--ico-video); }
.mg-stars-link a { display: inline-flex; align-items: center; gap: .6rem; font-weight: 700; }
.mg-stars-link a::before { content: ""; width: 5.4rem; height: 1rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1z' fill='%23ff5757' stroke='%23cc5e31' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 0 0 / 1.08rem 1rem repeat-x; }
.mg-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-block: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .87rem; color: #b7c2ac; }
.mg-footer__legal p { margin: 0; }
.mg-legal-menu { display: flex !important; flex-wrap: wrap; gap: .5rem 1.25rem !important; }
.mg-404-links { display: grid; gap: .5rem; max-width: 30rem; margin: 0 auto 2rem; padding-left: 1.2rem; }

/* ---------- Barre mobile ---------- */
.mg-mobilebar { display: none; }
@media (max-width: 767px) {
	.mg-mobilebar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
		display: grid; grid-template-columns: 1.2fr 1fr; gap: .5rem;
		padding: .6rem var(--gutter) calc(.6rem + env(safe-area-inset-bottom));
		background: rgba(251, 249, 244, .96); border-top: 1px solid var(--line);
		-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
		transform: translateY(110%); transition: transform .3s var(--ease);
	}
	.mg-mobilebar.is-visible { transform: none; }
	.mg-mobilebar a { display: flex; align-items: center; justify-content: center; gap: .45rem; min-height: 48px; border-radius: var(--r-leaf); font-weight: 800; text-decoration: none; font-size: .98rem; }
	.mg-mobilebar__call { box-shadow: inset 0 0 0 1.5px var(--primary); color: var(--primary-dark); }
	.mg-mobilebar__rdv { background: linear-gradient(135deg, #c54541, #9a4424); color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), inset 0 -10px 22px -12px rgba(255, 150, 130, .6), 0 8px 18px -10px rgba(154, 68, 36, .6); }
	.mg-mobilebar__rdv:hover { color: #fff; }
	.mg-footer { padding-bottom: 76px; }
}

/* ---------- Apparition au défilement ---------- */
.js .mg-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--ease), transform .7s var(--ease); transition-delay: calc(var(--d, 0) * 70ms); }
.js .mg-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.js .mg-reveal { opacity: 1; transform: none; }
}

@media print {
	.mg-header, .mg-footer, .mg-mobilebar, .mg-cta, .mg-wave { display: none !important; }
	body { background: #fff; }
}
