/* ==========================================================================
   Magnétisme & Thérapies : styles complémentaires à theme.json.
   Couleurs, typos et espacements : variables --wp--preset--* (theme.json).
   ========================================================================== */

:root {
	--mt-radius: 20px;
	--mt-radius-s: 12px;
	--mt-shadow: 0 14px 40px rgb(34 54 47 / 0.14);
	--mt-shadow-s: 0 4px 16px rgb(34 54 47 / 0.09);

	/* Icônes (SVG en masque, prennent la couleur du texte). */
	--i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E");
	--i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1Z'/%3E%3C/svg%3E");
	--i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Zm0 4-8 5-8-5V6l8 5 8-5Z'/%3E%3C/svg%3E");
	--i-facebook: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.5 1.49-3.89 3.78-3.89 1.09 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.78l-.44 2.89h-2.34v6.99A10 10 0 0 0 22 12Z'/%3E%3C/svg%3E");
	--i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
	--i-hand: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 13V5.5a1.5 1.5 0 0 1 3 0V12'/%3E%3Cpath d='M11 11.5v-7a1.5 1.5 0 0 1 3 0V12'/%3E%3Cpath d='M14 6.5a1.5 1.5 0 0 1 3 0V13'/%3E%3Cpath d='M17 9.5a1.5 1.5 0 0 1 3 0V15a7 7 0 0 1-7 7h-1.2a7 7 0 0 1-5.3-2.4L3.3 16a1.6 1.6 0 0 1 2.4-2.1L8 16'/%3E%3C/svg%3E");
	--i-spine: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v20'/%3E%3Crect x='8' y='3' width='8' height='4' rx='2'/%3E%3Crect x='7.5' y='10' width='9' height='4' rx='2'/%3E%3Crect x='8' y='17' width='8' height='4' rx='2'/%3E%3C/svg%3E");
	--i-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-8-4.7-8-11a4.5 4.5 0 0 1 8-2.8A4.5 4.5 0 0 1 20 9c0 6.3-8 11-8 11Z'/%3E%3C/svg%3E");
	--i-sun: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' 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 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'/%3E%3C/svg%3E");
	--i-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 3l9 8'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E");
	--i-sound: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h2M7 8v8M11 5v14M15 8v8M19 10v4'/%3E%3C/svg%3E");
	--i-video: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='6' width='14' height='12' rx='2'/%3E%3Cpath d='m16 10 6-3v10l-6-3'/%3E%3C/svg%3E");
	--i-leaf: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-9 5-14 15-15-1 10-6 15-15 15Z'/%3E%3Cpath d='M5 19 13 11'/%3E%3C/svg%3E");
	--i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E");
	--i-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");

	/* Ondes concentriques (filigrane des bandeaux sombres). */
	--mt-ripples: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600' fill='none' stroke='%23fff' stroke-width='1.2'%3E%3Ccircle cx='300' cy='300' r='40'/%3E%3Ccircle cx='300' cy='300' r='76'/%3E%3Ccircle cx='300' cy='300' r='112'/%3E%3Ccircle cx='300' cy='300' r='148'/%3E%3Ccircle cx='300' cy='300' r='184'/%3E%3Ccircle cx='300' cy='300' r='220'/%3E%3Ccircle cx='300' cy='300' r='256'/%3E%3Ccircle cx='300' cy='300' r='292'/%3E%3C/svg%3E");
}

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

html { scroll-behavior: smooth; }
/* Ancres (#le-son…) : le titre visé ne passe pas sous l'en-tête collant. */
[id] { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + 100px); }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; }

:focus-visible {
	outline: 3px solid var(--wp--preset--color--gold);
	outline-offset: 2px;
}

::selection { background: var(--wp--preset--color--gold-light); color: var(--wp--preset--color--ink); }

.skip-link.screen-reader-text:focus {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	z-index: 1000;
}

/* --- Icônes ----------------------------------------------------------------- */

.mt-ico::before {
	content: "";
	display: inline-block;
	flex: none;
	width: 1.1em;
	height: 1.1em;
	background: currentColor;
	-webkit-mask: var(--mt-i) center / contain no-repeat;
	mask: var(--mt-i) center / contain no-repeat;
}
.is-icon-pin { --mt-i: var(--i-pin); }
.is-icon-phone { --mt-i: var(--i-phone); }
.is-icon-mail { --mt-i: var(--i-mail); }
.is-icon-facebook { --mt-i: var(--i-facebook); }
.is-icon-clock { --mt-i: var(--i-clock); }
.is-icon-hand { --mt-i: var(--i-hand); }
.is-icon-spine { --mt-i: var(--i-spine); }
.is-icon-heart { --mt-i: var(--i-heart); }
.is-icon-sun { --mt-i: var(--i-sun); }
.is-icon-home { --mt-i: var(--i-home); }
.is-icon-sound { --mt-i: var(--i-sound); }
.is-icon-video { --mt-i: var(--i-video); }
.is-icon-leaf { --mt-i: var(--i-leaf); }

/* Pastille ronde avec icône en tête de bloc : classes « mt-has-icon is-icon-xxx »
   sur une carte (pas de bloc vide à gérer dans l'éditeur). */
.mt-has-icon { position: relative; }
.mt-has-icon::before {
	content: "";
	display: block;
	flex: none;
	width: 3.6rem;
	height: 3.6rem;
	margin-bottom: 1.1rem;
	border-radius: 50%;
	background: var(--wp--preset--color--sand);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--gold-light);
	transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
.mt-has-icon::after {
	content: "";
	position: absolute;
	top: calc(var(--mt-pad, 0px) + 0.95rem);
	left: calc(var(--mt-pad, 0px) + 0.95rem);
	width: 1.7rem;
	height: 1.7rem;
	background: var(--wp--preset--color--gold);
	-webkit-mask: var(--mt-i) center / contain no-repeat;
	mask: var(--mt-i) center / contain no-repeat;
	transition: background-color 0.3s ease;
}

/* --- Bandeau du haut -------------------------------------------------------- */

.mt-topbar p {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0.35rem 1.75rem;
	margin: 0;
}
.mt-topbar .mt-ico { display: inline-flex; align-items: center; gap: 0.45rem; }
.mt-topbar .mt-ico::before { opacity: 0.75; width: 0.95em; height: 0.95em; color: var(--wp--preset--color--gold-light); }
.mt-topbar .is-icon-pin { margin-right: auto; }
.mt-topbar a { color: inherit; text-decoration: none; font-weight: 700; }
.mt-topbar a:hover { color: var(--wp--preset--color--gold-light); }

@media (max-width: 781px) {
	.mt-topbar .is-icon-pin { display: none; }
	.mt-topbar p { justify-content: center; }
}

/* --- En-tête ---------------------------------------------------------------- */

.mt-site-header {
	/* flow-root : sans lui, la marge négative du bandeau du haut fusionne avec l'en-tête et rien ne se replie. */
	display: flow-root;
	position: sticky;
	top: 0;
	z-index: 100;
	transition: box-shadow 0.25s ease;
}
.admin-bar .mt-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .mt-site-header { top: 0; } }
.mt-site-header.is-scrolled { box-shadow: var(--mt-shadow-s); }

/* Au défilement, le bandeau du haut se replie pour libérer de la place. */
.mt-topbar { transition: margin-top 0.25s ease; }
.mt-site-header.is-scrolled .mt-topbar { margin-top: calc(-1 * var(--mt-topbar-h, 0px)); }

.mt-header { border-bottom: 1px solid var(--wp--preset--color--line); }

.mt-brand {
	flex: none;
	display: flex;
	align-items: center;
	gap: 0.8rem;
	min-width: 0;
	color: inherit;
	text-decoration: none;
}
.mt-brand__mark {
	flex: none;
	width: 54px;
	height: 54px;
	transition: transform 0.5s ease;
}
.mt-brand:hover .mt-brand__mark { transform: rotate(-8deg); }
.mt-brand__text { display: flex; flex-direction: column; min-width: 0; }
.mt-brand__name {
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 500;
	font-size: clamp(1.2rem, 2.4vw, 1.5rem);
	line-height: 1.1;
	color: var(--wp--preset--color--primary-dark);
}
.mt-brand__tagline {
	margin-top: 0.2rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
	white-space: nowrap;
}

.mt-header .wp-block-navigation a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.mt-header .wp-block-navigation-item__content {
	position: relative;
	padding-block: 0.35rem;
}
.mt-header .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -4px;
	width: 6px;
	height: 6px;
	margin-left: -3px;
	border-radius: 50%;
	background: var(--wp--preset--color--gold);
	transform: scale(0);
	transition: transform 0.2s ease;
}
.mt-header .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--primary); }
.mt-header .wp-block-navigation-item__content:hover::after,
.mt-header .current-menu-item > .wp-block-navigation-item__content::after { transform: scale(1); }
.mt-header .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--primary); }

/* Sous-menu « Autres soins ».
   WordPress lui applique les couleurs du menu mobile (texte blanc, avec !important)
   et, le menu étant aligné à droite, l'aligne sur le bord droit du parent. */
.mt-header .wp-block-navigation-submenu { gap: 0.3rem; }
.mt-header .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon {
	width: 0.7rem;
	height: 0.7rem;
	margin: 0;
	color: var(--wp--preset--color--ink);
	transition: color 0.2s ease;
}
/* Survol, focus ou rubrique en cours : le libellé et la flèche réagissent ensemble. */
.mt-header .wp-block-navigation-submenu:is(:hover, :focus-within, .current-menu-ancestor) > .wp-block-navigation-item__content,
.mt-header .wp-block-navigation-submenu:is(:hover, :focus-within, .current-menu-ancestor) > .wp-block-navigation__submenu-icon { color: var(--wp--preset--color--primary); }
.mt-header .wp-block-navigation-submenu:is(:hover, :focus-within, .current-menu-ancestor) > .wp-block-navigation-item__content::after { transform: scale(1); }

.mt-header .wp-block-navigation .wp-block-navigation__submenu-container {
	left: -1.1rem !important;
	right: auto !important;
	min-width: 260px !important;
	margin-top: 0.6rem;
	padding: 0.5rem 0;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: var(--mt-radius-s);
	background: var(--wp--preset--color--white) !important;
	color: var(--wp--preset--color--ink) !important;
	box-shadow: var(--mt-shadow);
}
/* Pont invisible au-dessus du panneau : la souris peut y descendre sans le refermer. */
.mt-header .wp-block-navigation__submenu-container::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -0.75rem;
	height: 0.75rem;
}
.mt-header .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; }
.mt-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	width: 100%;
	padding: 0.6rem 1.1rem !important;
	color: var(--wp--preset--color--ink) !important;
	font-weight: 500;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.mt-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { display: none; }
.mt-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:is(:hover, :focus-visible),
.mt-header .wp-block-navigation .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--primary) !important;
}

/* Menu mobile (plein écran). */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: var(--wp--preset--color--white) !important;
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 500;
	font-size: 1.6rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	margin: 0;
	border: 0 !important;
	box-shadow: none;
	background: transparent !important;
	padding: 0.25rem 0 0 1rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container::before { display: none; }
/* Tout aligné à gauche, sous-menu en retrait sous « Autres soins ». */
.mt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.mt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.mt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; text-align: left; }
.mt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { gap: 0.4rem; padding-top: 0.6rem; }
/* Page en cours : en ambre clair, sans le fond sable du sous-menu bureau. */
.mt-header .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content,
.mt-header .wp-block-navigation__responsive-container.is-menu-open .current-menu-ancestor > .wp-block-navigation-item__content { color: var(--wp--preset--color--gold-light) !important; }
.mt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content { background: transparent; opacity: 1; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	background: transparent !important;
	color: var(--wp--preset--color--white) !important;
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.1rem;
	opacity: 0.85;
	padding: 0.3rem 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.1rem; }
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg { width: 32px; height: 32px; }
.wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--primary-dark); }

/* Menu : passage au bouton « burger » sous 1280px (nom + menu + bouton ≈ 1150px, mesuré ; WordPress le fait à 600px). */
@media (max-width: 1279px) {
	.mt-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.mt-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
/* Contact : bouton à partir de 600px ; en dessous il ne tient pas à côté
   du burger, le lien Contact n'apparaît alors que dans le menu déplié. */
.mt-header .mt-nav-contact { display: none; }
.mt-header .is-menu-open .mt-nav-contact { display: flex; }
@media (max-width: 599px) {
	.mt-header .mt-header__cta.wp-block-buttons { display: none; }
}
.mt-header__cta .wp-block-button__link { white-space: nowrap; }
.mt-header .wp-block-navigation__container { flex-wrap: nowrap; white-space: nowrap; }
@media (max-width: 420px) {
	.mt-brand__mark { width: 44px; height: 44px; }
	.mt-brand__tagline { font-size: 0.62rem; letter-spacing: 0.08em; }
}

/* --- Boutons ---------------------------------------------------------------- */

.wp-element-button,
.wp-block-button__link { transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; }
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: var(--mt-shadow-s); }
.wp-block-button__link.mt-ico { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; }

.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1.5px solid currentColor;
	background: transparent;
	color: inherit;
	padding: calc(0.9rem - 1.5px) calc(1.6rem - 1.5px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--primary-dark);
	border-color: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--white);
}
.wp-block-button.is-style-dark > .wp-block-button__link {
	background: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--white);
}
.wp-block-button.is-style-dark > .wp-block-button__link:hover {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--ink);
}
/* Sur fond sombre, le contour devient clair. */
:where(.has-primary-dark-background-color, .has-primary-background-color, .mt-hero) .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--primary-dark);
}

/* Lien « En savoir plus » avec flèche. */
.mt-more a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 700;
	text-decoration: none;
}
.mt-more a::after {
	content: "";
	width: 1.1em;
	height: 1.1em;
	background: currentColor;
	-webkit-mask: var(--i-arrow) center / contain no-repeat;
	mask: var(--i-arrow) center / contain no-repeat;
	transition: transform 0.2s ease;
}
.mt-more a:hover::after { transform: translateX(4px); }

/* --- Petits titres ---------------------------------------------------------- */

/* Surtitre en petites capitales dorées, précédé d'un trait. */
.mt-kicker {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.6rem !important;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
}
.mt-kicker::before {
	content: "";
	width: 2rem;
	height: 1.5px;
	background: currentColor;
}
.has-text-align-center.mt-kicker { justify-content: center; }
:where(.has-primary-dark-background-color, .has-primary-background-color) .mt-kicker { color: var(--wp--preset--color--gold-light); }

/* Mot en italique doré dans un titre (balise <em>). */
h1 em, h2 em, .mt-accent {
	font-style: italic;
	font-weight: 400;
	color: var(--wp--preset--color--gold);
}
:where(.has-primary-dark-background-color, .has-primary-background-color, .mt-hero) :is(h1, h2) em { color: var(--wp--preset--color--gold-light); }

.mt-lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
}

/* --- Accueil : grand bandeau sur la photo du lac --------------------------- */

.mt-hero.wp-block-cover {
	color: var(--wp--preset--color--white);
	min-height: min(86vh, 720px);
	padding-block: var(--wp--preset--spacing--70);
	align-items: center;
	overflow: hidden;
}
/* Voile plus dense à gauche, sous le texte ; le lac reste lumineux à droite. */
.mt-hero .wp-block-cover__background {
	background: linear-gradient(100deg, rgb(20 34 29 / 0.88) 0%, rgb(20 34 29 / 0.62) 45%, rgb(20 34 29 / 0.12) 100%) !important;
	opacity: 1 !important;
}
.mt-hero .wp-block-cover__inner-container { width: 100%; max-width: 1180px; }
.mt-hero__text { max-width: 780px; }
.mt-hero__subtitle { max-width: 56ch; }
.mt-hero h1 {
	margin: 0;
	font-size: var(--wp--preset--font-size--huge);
	line-height: 1.05;
	color: var(--wp--preset--color--white);
}
.mt-hero__subtitle {
	margin-top: 1.25rem !important;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.6;
	opacity: 0.92;
	max-width: 54ch;
}
.mt-hero .wp-block-buttons { margin-top: 2rem; }

/* Ondes qui se propagent lentement, comme un cercle dans l'eau. */
.mt-hero::after {
	content: "";
	position: absolute;
	right: -12vw;
	top: 50%;
	width: min(70vw, 820px);
	aspect-ratio: 1;
	transform: translateY(-50%);
	background: var(--mt-ripples) center / contain no-repeat;
	opacity: 0.16;
	pointer-events: none;
	animation: mt-ripple 14s ease-in-out infinite;
}
@keyframes mt-ripple {
	0%, 100% { transform: translateY(-50%) scale(0.96); opacity: 0.12; }
	50% { transform: translateY(-50%) scale(1.04); opacity: 0.2; }
}

/* Bandeau d'atouts sous la photo. */
.mt-highlights {
	position: relative;
	z-index: 2;
	margin-top: calc(-1 * var(--wp--preset--spacing--50)) !important;
}
.mt-highlights > .wp-block-columns {
	gap: 0 !important;
	border-radius: var(--mt-radius);
	background: var(--wp--preset--color--white);
	box-shadow: var(--mt-shadow);
	overflow: hidden;
}
.mt-highlights .wp-block-column {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.4rem 1.6rem;
}
.mt-highlights .wp-block-column + .wp-block-column { border-left: 1px solid var(--wp--preset--color--line); }
.mt-highlights .wp-block-column::before {
	content: "";
	flex: none;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--wp--preset--color--sand);
}
.mt-highlights .wp-block-column::after {
	content: "";
	position: absolute;
	margin-left: 0.65rem;
	width: 1.45rem;
	height: 1.45rem;
	background: var(--wp--preset--color--gold);
	-webkit-mask: var(--mt-i) center / contain no-repeat;
	mask: var(--mt-i) center / contain no-repeat;
}
.mt-highlights .wp-block-column { position: relative; }
.mt-highlights p { margin: 0; font-size: 0.95rem; line-height: 1.4; }
.mt-highlights strong { display: block; font-size: 1.02rem; color: var(--wp--preset--color--primary-dark); }
@media (max-width: 781px) {
	.mt-highlights .wp-block-column + .wp-block-column { border-left: 0; border-top: 1px solid var(--wp--preset--color--line); }
}

@media (max-width: 781px) {
	.mt-hero.wp-block-cover { min-height: 0; padding-top: var(--wp--preset--spacing--60); padding-bottom: calc(var(--wp--preset--spacing--60) + 2rem); }
	.mt-hero .wp-block-cover__background { background: rgb(20 34 29 / 0.7) !important; }
	.mt-hero::after { right: -40vw; width: 110vw; }
}

/* --- Sections --------------------------------------------------------------- */

.mt-section { position: relative; }

/* Bandeau sombre avec ondes en filigrane. */
.mt-band {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.mt-band::before {
	content: "";
	position: absolute;
	left: -260px;
	bottom: -320px;
	z-index: -1;
	width: 760px;
	height: 760px;
	background: var(--mt-ripples) center / contain no-repeat;
	opacity: 0.08;
}
.mt-band h2,
.mt-band h3 { color: var(--wp--preset--color--white); }
.mt-band a:not(.wp-element-button) { color: var(--wp--preset--color--gold-light); }

/* Photo arrondie avec un cercle doré décalé derrière. */
.mt-photo { position: relative; }
.mt-photo img {
	/* Centrée : une photo plus étroite que sa colonne reste au-dessus de sa légende centrée. */
	display: block;
	margin-inline: auto;
	position: relative;
	z-index: 1;
	border-radius: var(--mt-radius);
	box-shadow: var(--mt-shadow);
}
/* Photo isolée dans le texte d'une page : les photos de l'ancien site sont petites,
   en pleine largeur (740px) elles paraissent floues. */
.mt-page-content > .mt-photo img { max-width: min(100%, 560px); }
.mt-photo.is-haloed::before {
	content: "";
	position: absolute;
	right: -1.5rem;
	top: -1.5rem;
	width: 9rem;
	height: 9rem;
	border-radius: 50%;
	border: 1.5px solid var(--wp--preset--color--gold);
	opacity: 0.7;
}
.mt-photo figcaption {
	margin-top: 0.7rem;
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-size: 0.98rem;
	color: var(--wp--preset--color--muted);
	text-align: center;
}

/* Citation. */
.mt-quote {
	margin: 0;
	padding: 0 0 0 1.5rem !important;
	border-left: 2px solid var(--wp--preset--color--gold) !important;
}
.mt-quote p {
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.4;
	color: var(--wp--preset--color--primary-dark);
}
.mt-quote cite { font-size: 0.9rem; font-style: normal; color: var(--wp--preset--color--muted); }

/* --- Cartes ----------------------------------------------------------------- */

.mt-cards { gap: var(--wp--preset--spacing--40) !important; }
.mt-card {
	--mt-pad: clamp(1.5rem, 3vw, 2.1rem);
	position: relative;
	display: flex;
	flex-direction: column;
	padding: var(--mt-pad) !important;
	border-radius: var(--mt-radius);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.mt-card > * { margin-block: 0 0.75rem; }
.mt-card > :last-child { margin-bottom: 0; }
.mt-card h3 { font-size: 1.4rem; }
.mt-card p { color: var(--wp--preset--color--muted); }
.mt-card .mt-more { margin-top: auto; padding-top: 0.5rem; }
.mt-card__price {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.05rem;
	color: var(--wp--preset--color--primary) !important;
}

/* Carte entièrement cliquable par son lien « En savoir plus ». */
.mt-card:has(.mt-more a) { cursor: pointer; }
.mt-card .mt-more a::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.mt-card:hover { transform: translateY(-4px); box-shadow: var(--mt-shadow); border-color: transparent; }
.mt-card:hover::before { background: var(--wp--preset--color--primary-dark); box-shadow: none; }
.mt-card:hover::after { background: var(--wp--preset--color--gold-light); }

/* Étapes numérotées (déroulement d'une séance). */
.mt-steps { counter-reset: mt-step; gap: var(--wp--preset--spacing--40) !important; }
.mt-step { counter-increment: mt-step; position: relative; }
.mt-step::before {
	content: counter(mt-step);
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	margin-bottom: 1rem;
	border-radius: 50%;
	border: 1.5px solid var(--wp--preset--color--gold);
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.3rem;
	color: var(--wp--preset--color--gold);
}
.mt-step h3 { font-size: 1.25rem; margin-bottom: 0.4rem; }
.mt-step p { margin-top: 0; opacity: 0.85; }

/* Pastilles (motifs de consultation). */
.mt-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0 !important;
	list-style: none;
}
.mt-chips li {
	padding: 0.35rem 0.95rem;
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	font-size: 0.93rem;
	line-height: 1.35;
	color: var(--wp--preset--color--foreground);
}
.mt-chips li::before { content: none !important; }

/* Liste à coches. */
.mt-checks { padding: 0 !important; list-style: none; }
.mt-checks li {
	position: relative;
	padding-left: 2rem;
	margin-bottom: 0.6rem;
}
.mt-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.25em;
	width: 1.3rem;
	height: 1.3rem;
	border-radius: 50%;
	background: var(--wp--preset--color--sage);
}
.mt-checks li::after {
	content: "";
	position: absolute;
	left: 0.28rem;
	top: calc(0.25em + 0.28rem);
	width: 0.75rem;
	height: 0.75rem;
	background: var(--wp--preset--color--primary-dark);
	-webkit-mask: var(--i-check) center / contain no-repeat;
	mask: var(--i-check) center / contain no-repeat;
}

/* Encadré d'information. */
.mt-note {
	padding: 1.4rem 1.6rem !important;
	border-left: 3px solid var(--wp--preset--color--gold);
	border-radius: var(--mt-radius-s);
	background: var(--wp--preset--color--sand);
}
.mt-note > * { margin-block: 0 0.5rem; }
.mt-note > :last-child { margin-bottom: 0; }
.mt-note__title {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.2rem;
	color: var(--wp--preset--color--primary-dark);
}
.mt-note--charter { border-left-color: var(--wp--preset--color--primary); }

/* Grille de tarifs. */
.mt-prices { padding: 0 !important; list-style: none; border-top: 1px solid var(--wp--preset--color--line); }
.mt-prices li {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	padding: 1rem 0;
	margin: 0 !important;
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.mt-prices li::before { content: none !important; }
.mt-prices li strong {
	margin-left: auto;
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 500;
	font-size: 1.35rem;
	color: var(--wp--preset--color--primary-dark);
	white-space: nowrap;
}

/* Horaires (pattern magnetisme/horaires). */
.mt-hours { margin: 0; }
.mt-hours__row {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.45rem 0;
	border-bottom: 1px solid rgb(127 140 133 / 0.25);
}
.mt-hours dt { font-weight: 700; }
.mt-hours dd { margin: 0; text-align: right; }
.mt-hours__note { margin: 0.8rem 0 0; font-size: 0.9em; opacity: 0.85; }
.mt-footer .mt-hours { font-size: 0.9rem; }
.mt-footer .mt-hours__row { flex-direction: column; gap: 0; border-color: rgb(255 255 255 / 0.12); }
.mt-footer .mt-hours dd { text-align: left; opacity: 0.85; }

/* --- Bandeau de titre des pages --------------------------------------------- */

.mt-page-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.mt-page-hero::before {
	content: "";
	position: absolute;
	right: -220px;
	top: 50%;
	z-index: -1;
	width: 720px;
	height: 720px;
	transform: translateY(-50%);
	background: var(--mt-ripples) center / contain no-repeat;
	opacity: 0.1;
}
.mt-page-hero__inner { gap: var(--wp--preset--spacing--50); }
.mt-page-hero__text { max-width: 720px; }
.mt-page-hero h1 { margin: 0; }
.mt-page-hero__lead {
	margin-top: 1rem;
	line-height: 1.6;
	opacity: 0.9;
}
.mt-page-hero__lead p { margin: 0; }
.mt-page-hero__media {
	flex: none;
	margin: 0;
	border-radius: 50%;
	overflow: hidden;
	box-shadow: 0 0 0 1.5px var(--wp--preset--color--gold), 0 0 0 14px rgb(255 255 255 / 0.05), var(--mt-shadow);
}
.mt-page-hero__media img { border-radius: 50%; }
@media (max-width: 781px) {
	.mt-page-hero__inner { flex-wrap: wrap !important; }
	.mt-page-hero__media { width: 150px !important; height: 150px !important; order: -1; }
}

/* Corps des pages intérieures. */
.mt-page-content {
	padding-block: var(--wp--preset--spacing--60);
}
/* Pages intérieures : texte (740px max) à gauche de la grille de 1180px, comme le
   logo et le titre ; à droite, l'encadré « Prendre rendez-vous » qui suit le
   défilement. Sous 1000px, l'encadré disparaît : le bandeau d'appel du bas suffit. */
.mt-page-grid {
	display: grid;
	grid-template-columns: minmax(0, 740px) 300px;
	justify-content: space-between;
	align-items: start;
	gap: var(--wp--preset--spacing--50);
	padding-block: var(--wp--preset--spacing--60);
}
.mt-page-grid > .mt-page-content { margin: 0; padding-block: 0; }
.mt-aside {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + 6rem);
	margin: 0 !important;
}
.mt-aside__card {
	padding: 1.75rem !important;
	border-radius: var(--mt-radius);
	background: var(--wp--preset--color--sand);
	border: 1px solid var(--wp--preset--color--line);
}
.mt-aside__card > * { margin-block: 0 1rem; }
.mt-aside__card > :last-child { margin-bottom: 0; }
.mt-aside__lead { font-size: 0.95rem; color: var(--wp--preset--color--muted); }
.mt-aside__card .wp-block-button__link { width: 100%; }
.mt-aside__title {
	margin-top: 1.5rem !important;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.15rem;
	color: var(--wp--preset--color--primary-dark);
}
.mt-aside .mt-hours { font-size: 0.85rem; }
.mt-aside .mt-hours__row { padding: 0.35rem 0; }
.mt-aside .mt-hours dd { color: var(--wp--preset--color--muted); }
.mt-aside .mt-hours__note { display: none; }
.mt-aside__place { display: flex; gap: 0.5rem; font-size: 0.88rem; color: var(--wp--preset--color--muted); }
.mt-aside__place::before { margin-top: 0.2em; color: var(--wp--preset--color--gold); }
.mt-aside__place a { color: inherit; }
/* Bandeau d'appel du bas : doublon de l'encadré quand celui-ci est affiché
   (toujours au-delà de 1000px, et sous les tarifs sur mobile). */
@media (min-width: 1000px) {
	.mt-main:has(.mt-aside) > .mt-cta { display: none; }
}
.mt-main:has(.mt-page-grid .mt-prices) > .mt-cta { display: none; }

/* Écran peu haut : collé, le bas de l'encadré sortirait de l'écran. */
@media (max-height: 760px) {
	.mt-aside { position: static; }
}
@media (max-width: 999px) {
	.mt-page-grid { display: block; }
	.mt-aside { display: none; }
	/* Sauf sous les tarifs et le formulaire de contact : on y cherche aussi les horaires et les coordonnées. */
	.mt-page-grid:has(.mt-prices, .mt-form) .mt-aside { display: block; position: static; margin-top: var(--wp--preset--spacing--50) !important; }
}

.mt-page-content > .alignfull:first-child { margin-top: calc(-1 * var(--wp--preset--spacing--60)); }
.mt-page-content > .alignfull:last-child { margin-bottom: calc(-1 * var(--wp--preset--spacing--60)); }
.mt-page-content h2 { margin-top: var(--wp--preset--spacing--50); }
.mt-page-content > h2:first-child { margin-top: 0; }

/* Listes : petite puce en anneau doré. */
.mt-page-content ul:not([class*="mt-"]):not(.wp-block-social-links),
.mt-section ul.is-style-dots {
	padding-left: 0;
	list-style: none;
}
.mt-page-content ul:not([class*="mt-"]):not(.wp-block-social-links) > li,
.mt-section ul.is-style-dots > li {
	position: relative;
	padding-left: 1.5rem;
	margin-bottom: 0.45rem;
}
.mt-page-content ul:not([class*="mt-"]):not(.wp-block-social-links) > li::before,
.mt-section ul.is-style-dots > li::before {
	content: "";
	position: absolute;
	left: 0.1rem;
	top: 0.6em;
	width: 0.6rem;
	height: 0.6rem;
	border-radius: 50%;
	border: 2px solid var(--wp--preset--color--gold);
}

/* --- Bandeau d'appel à rendez-vous ----------------------------------------- */

.mt-cta { position: relative; overflow: hidden; isolation: isolate; }
.mt-cta::before {
	content: "";
	position: absolute;
	right: -200px;
	top: -240px;
	z-index: -1;
	width: 620px;
	height: 620px;
	background: var(--mt-ripples) center / contain no-repeat;
	filter: invert(1);
	opacity: 0.06;
}
.mt-cta h2 { margin: 0 0 0.75rem; }
.mt-cta p { margin: 0; }
.mt-cta .mt-kicker { margin-bottom: 0.6rem !important; }
.mt-cta__buttons .wp-block-button__link { width: 100%; }
.mt-cta .wp-block-button.is-style-outline > .wp-block-button__link:not(:hover) { color: var(--wp--preset--color--primary-dark); }

/* --- Coordonnées ------------------------------------------------------------ */

.mt-contact-list { padding: 0 !important; list-style: none; }
.mt-contact-list li {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin-bottom: 0.85rem;
}
.mt-contact-list li::before {
	margin-top: 0.25em;
	color: var(--wp--preset--color--gold);
}
.mt-contact-list a { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.mt-contact-list a:hover { text-decoration: underline; }
.mt-contact-list small { opacity: 0.75; }

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

.wp-site-blocks > .mt-site-footer { margin-block-start: 0; }

.mt-footer { font-size: var(--wp--preset--font-size--small); }
.mt-footer a { color: inherit; text-decoration: none; }
.mt-footer a:hover { color: var(--wp--preset--color--gold-light); }
.mt-footer__name {
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.6rem;
	line-height: 1.15;
}
.mt-footer__about { opacity: 0.8; max-width: 34ch; }
.mt-footer__title {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-light);
}
.mt-footer__links { padding: 0 !important; list-style: none; }
.mt-footer__links li { margin-bottom: 0.5rem; }
.mt-footer .mt-contact-list li::before { color: var(--wp--preset--color--gold-light); }
.mt-footer__disclaimer {
	margin-top: var(--wp--preset--spacing--50) !important;
	padding: 1rem 1.25rem;
	border: 1px solid rgb(255 255 255 / 0.12);
	border-radius: var(--mt-radius-s);
}
.mt-footer__disclaimer p { margin: 0; font-size: 0.85rem; opacity: 0.8; }
.mt-footer__disclaimer + .mt-footer__bottom { margin-top: 1.5rem !important; }
.mt-footer__bottom {
	margin-top: var(--wp--preset--spacing--50) !important;
	padding-top: 1.25rem;
	border-top: 1px solid rgb(255 255 255 / 0.12);
	font-size: 0.85rem;
	opacity: 0.75;
}
.mt-footer__bottom p { margin: 0; }

/* --- Formulaire de contact -------------------------------------------------- */

.mt-form { margin-top: 0; }
.mt-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 1.25rem;
}
.mt-form__field { margin: 0 0 1.1rem; }
.mt-form__field.is-full { grid-column: 1 / -1; }
@media (max-width: 600px) { .mt-form__grid { grid-template-columns: 1fr; } }

.mt-form label {
	display: block;
	margin-bottom: 0.35rem;
	font-weight: 700;
	font-size: 0.93rem;
	color: var(--wp--preset--color--ink);
}
.mt-form input[type="text"],
.mt-form input[type="email"],
.mt-form input[type="tel"],
.mt-form select,
.mt-form textarea {
	width: 100%;
	padding: 0.75rem 0.9rem;
	border: 1.5px solid var(--wp--preset--color--line);
	border-radius: var(--mt-radius-s);
	background: var(--wp--preset--color--white);
	font: inherit;
	color: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.mt-form select { appearance: auto; }
.mt-form input:focus,
.mt-form select:focus,
.mt-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 3px rgb(61 90 80 / 0.18);
}
.mt-form textarea { resize: vertical; min-height: 9rem; }

.mt-form__consent {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	margin: 0.25rem 0 1.5rem;
	font-size: 0.9rem;
	color: var(--wp--preset--color--muted);
}
.mt-form__consent input { margin-top: 0.3em; width: 1.1rem; height: 1.1rem; accent-color: var(--wp--preset--color--primary); }
.mt-form__consent label { display: inline; font-weight: 400; font-size: inherit; color: inherit; }

.mt-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.mt-form button { cursor: pointer; border: 0; }

.mt-form__notice {
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
	border-radius: var(--mt-radius-s);
	font-weight: 700;
}
.mt-form__notice.is-success { background: #E3EDE6; color: var(--wp--preset--color--primary-dark); }
.mt-form__notice.is-error { background: #F6E1D8; color: #7D3A22; }

/* --- Page introuvable ------------------------------------------------------- */

.mt-404__mark { display: block; width: 120px; margin: 0 auto 1.5rem; }

/* --- Contenus provisoires (à faire valider) -------------------------------- */

.mt-show-todo .mt-todo {
	outline: 2px dashed var(--wp--preset--color--clay);
	outline-offset: 4px;
	background-color: rgb(235 207 156 / 0.3);
}
.mt-show-todo .mt-todo::after {
	content: "À valider";
	display: inline-block;
	margin-left: 0.5rem;
	padding: 0.05rem 0.5rem;
	border-radius: 4px;
	background: var(--wp--preset--color--clay);
	color: var(--wp--preset--color--white);
	font: 700 0.7rem/1.6 var(--wp--preset--font-family--body);
	letter-spacing: 0;
	text-transform: none;
	vertical-align: middle;
}

/* --- Apparition au défilement ---------------------------------------------- */

.js .mt-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.7s ease, transform 0.7s ease;
	transition-delay: var(--mt-delay, 0s);
}
.js .mt-reveal.is-visible { opacity: 1; transform: none; }
.editor-styles-wrapper .mt-reveal { opacity: 1 !important; transform: none !important; }
.editor-styles-wrapper .mt-hero::after { animation: none; }
