/*
Theme Name:   Maison Essence Claire
Theme URI:    https://maisonessenceclaire.fr
Description:  Thème enfant de Twenty Twenty-Five pour Maison Essence Claire, Claire Bardet, massothérapeute à Doué-en-Anjou. Charte, échelle typographique et espacements définis dans theme.json.
Author:       Studio Web 61
Author URI:   https://studioweb61.fr
Template:     twentytwentyfive
Version:      1.55.0
Requires at least: 6.7
Tested up to: 6.7
Requires PHP: 8.1
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  maison-essence-claire
Tags:         block-theme, full-site-editing
*/

/* --------------------------------------------------------------------------
   Presque tout se règle dans theme.json.
   Ce fichier ne contient que ce que theme.json ne sait pas exprimer.
   -------------------------------------------------------------------------- */


/* --------------------------------------------------------------------------
   1. SECTIONS À DEUX COLONNES
   --------------------------------------------------------------------------
   La classe `mec-deux-colonnes` se pose sur le GROUPE de section.

   WordPress empile les colonnes à 782px. Entre 782 et 960px — les petites
   tablettes en portrait — deux colonnes tombent à 36 caractères par ligne,
   sous le seuil de lisibilité. On empile donc à 960px.

   La LARGEUR est laissée à l'alignement « Large » du bloc Colonnes.
   Une version précédente imposait ici une largeur maximale calée sur la
   maquette : elle cassait le centrage natif de WordPress et collait la
   section à gauche. Le jeu n'en valait pas la chandelle.
   -------------------------------------------------------------------------- */

@media (max-width: 960px) {

	.wp-block-group.mec-deux-colonnes .wp-block-columns:not(.is-not-stacked-on-mobile) {
		flex-wrap: wrap !important;
	}

	.wp-block-group.mec-deux-colonnes .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
		flex-basis: 100% !important;
	}
}


/* --------------------------------------------------------------------------
   2. LES LIENS À FLÈCHE
   --------------------------------------------------------------------------
   Les appels à l'action isolés — « En savoir plus », « Découvrir » — posés
   seuls sur leur ligne. À distinguer des liens DANS le texte courant, qui
   restent soulignés : c'est leur seul repère quand ils sont noyés dans un
   paragraphe.

   La classe se pose sur le PARAGRAPHE, seul endroit où l'éditeur sait
   écrire une classe. La flèche est produite par le CSS : rien à taper,
   rien à baliser, et impossible de l'effacer par mégarde.
   -------------------------------------------------------------------------- */

.mec-lien-fleche a {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 900;
	text-decoration: none;
}

.mec-lien-fleche a:hover,
.mec-lien-fleche a:focus-visible {
	text-decoration: none;
}

.mec-lien-fleche a::after {
	content: "\2192";
	display: inline-block;
	margin-inline-start: .3em;
	transition: transform .2s ease;
}

.mec-lien-fleche a:hover::after,
.mec-lien-fleche a:focus-visible::after {
	transform: translateX(.25em);
}


/* --------------------------------------------------------------------------
   3. LE HAUT DE PAGE : ENTÊTE SUPERPOSÉE + TROIS BANDEAUX
   --------------------------------------------------------------------------
   Structure identique sur toutes les pages :

     .mec-couverture          conteneur, sert de repère de position
       ├── .mec-entete        le header (logo + menu), posé PAR-DESSUS
       └── .mec-hero          le média : image mise en avant, ou vidéo
     .mec-bandeau-marque      le logo Maison Essence Claire
     .mec-bandeau-titre       couleur propre à la page + H1 en fondu

   L'entête n'est pas fixe au défilement : elle sort du champ avec le hero.
   -------------------------------------------------------------------------- */

:root {

	/* Hauteur de l'entête superposée. Sert aussi de repère au dégradé
	   de lisibilité : c'est la zone qu'il doit protéger. */
	--mec-entete-hauteur: 70px;

	/* Hauteur du média : 354px sur mobile → 630px à partir de 1280px.
	   Les deux valeurs sont relevées sur les maquettes Penpot. */
	--mec-hero-hauteur: clamp(354px, 222px + 31.9vw, 630px);

	/* Couleur du bandeau de titre. Valeur par défaut, redéfinie
	   page par page au point 3.5. */
	--mec-accent: var(--wp--preset--color--plein-vert);
}

/* La page d'accueil ouvre sur un plan filmé en portrait : il lui faut
   plus de hauteur que les pages intérieures, qui sont en paysage.
   460px, c'est la valeur qui laisse voir les épaules de Claire SANS
   repousser le bandeau de titre sous le bas d'écran.
   Au-delà de 781px on repasse à l'image paysage, donc à la règle commune
   — qui vaut 471px à cette largeur : le raccord ne se voit pas.

   Les deux sélecteurs visent la même page : `home` quand elle sera déclarée
   page d'accueil du site, son slug tant qu'elle ne l'est pas encore. */
@media (max-width: 781px) {

	body.home,
	body.mec-page-maison-essence-claire {
		--mec-hero-hauteur: 460px;
	}
}


/* 3.1 — La superposition
   -------------------------------------------------------------------------- */

/* LE RYTHME ENTRE SECTIONS — règle générale, valable partout
   --------------------------------------------------------------------------
   WordPress pose le blockGap du site (30px) entre tous les blocs de premier
   niveau. Sur ce site c'est faux : chaque section porte son propre fond et
   ses propres marges intérieures, l'air est DANS la section, pas entre.
   Les 30px produisent une rayure blanche à chaque raccord.

   ⚠ NE PAS corriger cela en mettant `blockGap` à 0 dans theme.json.
   Le même réglage espace aussi les paragraphes ENTRE EUX à l'intérieur
   d'un bloc de texte : le corps de texte se collerait en un pavé compact.
   Un seul nombre, deux rôles — on n'en neutralise qu'un.

   Par défaut les sections se touchent ; un filet de 6px se demande au cas
   par cas avec la classe `mec-filet`.

   Deux cibles suffisent à couvrir tout le site :
   - les blocs de premier niveau (les bandeaux du modèle, le pied de page) ;
   - les sections en pleine largeur à l'intérieur du contenu de page.
   Tout le reste — paragraphes, listes, colonnes — garde son rythme. */

:root {

	/* Épaisseur du filet de séparation, là où il est demandé.
	   C'est un élément graphique — un mince trait de fond de page entre
	   deux bandes colorées — et non un espacement. D'où sa valeur hors
	   échelle : elle n'a rien à faire dans les paliers d'espacement. */
	--mec-filet: 6px;
}

/* Par défaut, les sections se touchent. */
.wp-site-blocks > *,
.wp-block-post-content > .alignfull {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Le filet, à la demande : classe `mec-filet` ajoutée sur la section,
   dans Réglages du bloc → Avancé → Classe(s) CSS additionnelle(s).

   Le filet se pose AU-DESSUS du bloc qui porte la classe. Pour séparer
   deux bandes, on la met donc sur la seconde, jamais sur les deux.

   Sélecteurs à deux classes pour passer devant la règle générale sans
   dépendre de l'ordre de lecture du fichier. */
.wp-site-blocks > .mec-filet,
.wp-block-post-content > .mec-filet {
	margin-block-start: var(--mec-filet);
}

/* Idem à l'intérieur du conteneur d'entête, entre la partie de modèle
   et le bloc Bannière. */
.mec-couverture > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

.mec-couverture {
	position: relative;
}

.mec-couverture > .mec-entete {
	position: absolute;
	inset-block-start: 0;
	inset-inline: 0;
	z-index: 3;
	min-height: var(--mec-entete-hauteur);
}


/* 3.2 — Le média
   --------------------------------------------------------------------------
   Le sélecteur porte les deux classes à dessein : `.wp-block-cover` seul
   a la même spécificité que `.mec-hero`, et c'est alors l'ordre de
   chargement des feuilles qui trancherait — trop fragile. */

.wp-block-cover.mec-hero {
	min-height: var(--mec-hero-hauteur);

	/* Filet de sécurité : si une page part en ligne sans image mise en
	   avant, le bandeau reste sombre et le logo Ivoire reste lisible. */
	background-color: var(--wp--preset--color--profond-vert);
}


/* 3.3 — Le dégradé de lisibilité
   --------------------------------------------------------------------------
   Il remplace le voile uniforme de la maquette.

   Mesuré sur les fichiers réels : un voile uniforme doit monter à 65 %
   pour que le logo Ivoire atteigne le seuil de 3:1 sur l'image PC, dont
   le haut contient un mur blanc éclairé. À 65 %, tout le portrait
   s'éteint. Un dégradé qui ne protège que les 160 premiers pixels donne
   3,8 sur les deux fichiers ET laisse la photo intacte en dessous. */

/* Le voile natif du bloc Couverture est neutralisé sans condition.
   Selon la version de WordPress, un réglage d'opacité à 0 ne produit pas
   toujours la même classe sur le <span> de fond — et dans un cas il reste
   à 50 %. Plutôt que de dépendre de ce détail, on l'éteint ici : c'est le
   dégradé ci-dessous qui assure la lisibilité, et lui seul.
   Conséquence pratique : le curseur « Opacité » du bloc n'a plus d'effet
   sur ce hero, quelle que soit sa position. */
.mec-hero > .wp-block-cover__background {
	opacity: 0 !important;
}

.mec-hero::before {
	content: "";
	position: absolute;
	inset-block-start: 0;
	inset-inline: 0;
	z-index: 1;
	height: 160px;
	pointer-events: none;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, .75) 0,
		rgba(0, 0, 0, .55) var(--mec-entete-hauteur),
		rgba(0, 0, 0, 0) 100%
	);
}


/* 3.4 — La vidéo (page d'accueil, mobile)
   --------------------------------------------------------------------------
   Elle est insérée par assets/js/hero-video.js, jamais par le balisage :
   un <video> masqué en CSS serait téléchargé quand même.
   `object-position: top` cale le cadrage sur le visage. */

.mec-hero > .wp-block-cover__image-background,
.mec-hero > .mec-hero-video {
	z-index: 0;
}

.mec-hero > .mec-hero-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}


/* 3.5 — Les deux bandeaux
   --------------------------------------------------------------------------
   La couleur du bandeau de titre suit la page. Elle est pilotée par le
   slug ajouté au <body> par functions.php (mec_classe_slug_page), ce qui
   évite un champ à remplir dans l'administration — et donc un oubli.

   Les sept pages sont listées, même celles qui reprennent la valeur par
   défaut : c'est trois lignes de trop, mais on lit d'un coup d'œil la
   couleur de chaque page, et on en change une sans se demander laquelle
   hérite de quoi.

   ⚠ Le titre Ivoire sur Aplat Rose est à 3,03 — juste au-dessus du seuil,
   et seulement parce que c'est un GRAND texte (32px et plus). Ne jamais
   descendre la taille du H1 sur la page Beauté & bien-être. */

.mec-bandeau-marque {
	background-color: var(--wp--preset--color--fond-ivoire);
}

.mec-bandeau-titre {
	background-color: var(--mec-accent);
}
.mec-bandeau-titre .wp-block-post-title {
	max-width: var(--mec-titre-mesure, 22ch);  
	margin-inline: auto;
}

/* Les trois méthodes portent chacune leur accent. */
body.mec-page-methode-renata-franca { --mec-accent: var(--wp--preset--color--plein-violet); }
body.mec-page-methode-celine-roy    { --mec-accent: var(--wp--preset--color--plein-bleu); }
body.mec-page-beaute-bien-etre      { --mec-accent: var(--wp--preset--color--plein-rose); }

/* Les pages « maison » — accueil, Claire, l'offre, le contact — gardent
   le vert, qui est la couleur de la marque et non celle d'un soin.
   À changer ici si tu veux les différencier. */
body.home,
body.mec-page-maison-essence-claire { --mec-accent: var(--wp--preset--color--plein-vert); }
body.mec-page-a-propos              { --mec-accent: var(--wp--preset--color--plein-vert); }
body.mec-page-les-accompagnements   { --mec-accent: var(--wp--preset--color--plein-vert); }
body.mec-page-contact               { --mec-accent: var(--wp--preset--color--plein-vert); }


/* 3.6 — L'apparition des blocs à l'arrivée dans l'écran
   --------------------------------------------------------------------------
   Piloté par assets/js/animations.js.

   Deux cibles : le titre du bandeau, automatiquement ; et tout bloc à qui
   on ajoute la classe `mec-anime` dans l'éditeur (Réglages du bloc →
   Avancé → Classe(s) CSS additionnelle(s)).

   Le CSS savait le faire seul, avec `animation-timeline: view()`. Mais
   cette propriété n'est comprise que par Chrome, Edge et Safari 26 ou
   plus : ni Firefox, ni les iPhone d'avant iOS 26 — testé, l'effet n'y
   passait pas. Trop de visiteuses privées de l'effet.

   RÈGLE DE SÛRETÉ : les blocs sont visibles par défaut. C'est le script
   qui pose l'état de départ en ajoutant `.mec-anime-prete`. S'il ne
   s'exécute pas, tout s'affiche normalement.

   Deux transitions plutôt qu'une : la montée décélère — c'est elle qui
   fait le geste — et le fondu reste linéaire et plus court, c'est lui qui
   le rend perceptible. Une courbe unique expédierait le fondu dans le
   premier tiers, et le bloc serait déjà opaque en montant encore. */

.mec-anime-prete {

	/* Amplitude de la montée. Redéfinissable au cas par cas :
	   80px conviennent à un titre, c'est beaucoup pour un paragraphe. */
	--mec-anime-montee: 80px;

	opacity: 0;
	transform: translateY(var(--mec-anime-montee));
	transition:
		opacity 1.1s linear,
		transform 1.4s cubic-bezier(.2, .7, .3, 1);
}

.mec-anime-prete.mec-anime-vue {
	opacity: 1;
	transform: translateY(0);
}

/* Le titre du bandeau garde en plus le léger agrandissement validé :
   sur un grand texte centré il ajoute au geste, sur un paragraphe en
   pleine largeur il produirait un flottement latéral disgracieux. */
.mec-bandeau-titre .mec-anime-prete {
	transform: translateY(var(--mec-anime-montee)) scale(.96);
}

.mec-bandeau-titre .mec-anime-prete.mec-anime-vue {
	transform: translateY(0) scale(1);
}

/* Réglage « réduire les animations ».
   Le script ne pose déjà pas les classes dans ce cas ; ceci est la
   ceinture en plus des bretelles, pour l'hypothèse où le réglage
   changerait en cours de visite. */
@media (prefers-reduced-motion: reduce) {

	.mec-anime-prete,
	.mec-bandeau-titre .mec-anime-prete {
		opacity: 1;
		transform: none;
		transition: none;
	}
}


/* --------------------------------------------------------------------------
   4. ACCESSIBILITÉ
   -------------------------------------------------------------------------- */

/* Focus clavier toujours visible, sur l'Encre de la charte. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--contrast);
	outline-offset: 3px;
	border-radius: 2px;
}

/* Respect du réglage système « réduire les animations ». */
@media (prefers-reduced-motion: reduce) {

	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/*---------------------------------------------------------------------------
 5. NAVIGATION
 --------------------------------------------------------------------------- */

   /* Pour la navigation Mobile */
   /* ---------------------------------------------------------------------------
   5.2 — LA SUPERPOSITION MOBILE
   ---------------------------------------------------------------------------
   Version corrigée après inspection du site en 414px. Elle REMPLACE la
   précédente : ne garde pas les deux.

   Ce qu'il fallait comprendre : la superposition n'utilise PAS le menu
   natif de WordPress. Le bloc Navigation porte la classe
   `disable-default-overlay`, qui masque la liste native, et le menu que
   l'on voit est une SECONDE navigation, posée dans un bloc Groupe à
   l'intérieur de `.wp-block-navigation__overlay-container`.

   C'est ce Groupe qui commande la mise en page — c'est son padding qui
   décale les items, pas celui du conteneur de WordPress. D'où deux règles
   qui remettent à zéro ce que le conteneur ajoutait par-dessus.

   Tout reste enfermé dans `.is-menu-open` : rien ne touche la navigation
   PC ni la plage tablette.
   --------------------------------------------------------------------------- */

:root {

	/* Air entre deux items. 30px d'air + 20px de hauteur de texte
	   donnent les 50px de ligne à ligne de la maquette. */
	--mec-menu-rythme: 30px;
}


/* --- Le panneau ------------------------------------------------------------
   Le conteneur de WordPress ne doit plus rien imposer : c'est le Groupe
   posé dedans qui porte le fond, le retrait et la hauteur. Sinon les deux
   marges s'additionnent — c'est ce qui décalait les items de 120px au lieu
   des 70px attendus. */

.wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--contrast);
	padding: 0;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	margin-block-start: 0;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	width: 100%;
	padding: 0;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__overlay-container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__overlay-container > .wp-block-group {
	width: 100%;
}


/* --- Les listes ------------------------------------------------------------
   La même règle pour la liste principale et pour le sous-menu : c'est ce
   qui les met au même niveau. On annule tout ce que WordPress ajoute au
   sous-menu pour en faire un déroulant — position absolue, fond, bordure,
   largeur minimale — puisqu'ici il ne déroule plus rien. */

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: var(--mec-menu-rythme);
	position: static;
	inset: auto;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

/* Le décalage de 30px du sous-menu résiste à la règle ci-dessus : WordPress
   le pose avec une priorité qu'on ne peut pas dépasser autrement.
   C'est le seul `!important` du fichier, et il est là pour ça. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	padding-inline-start: 0 !important;
}


/* --- « Prestations » disparaît ---------------------------------------------
   C'est un libellé de sous-menu, sans page derrière : le masquer ne prive
   personne d'une destination. Ses quatre enfants remontent d'eux-mêmes au
   niveau des autres, ce qui donne la liste à plat de la maquette.

   Le sélecteur vise l'enfant DIRECT du <li> porteur ; les items du
   sous-menu vivent dans le <ul> imbriqué et ne sont pas touchés. */

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
	display: none;
}


/* --- Les items -------------------------------------------------------------
   Le thème met les liens en graisse 700 et soulignés ; dans un menu, ni
   l'un ni l'autre n'a de sens — tout y est lien. On repart de la maquette :
   16px, graisse 400, capitales. */

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	padding: 0;
	color: var(--wp--preset--color--fond-ivoire);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
}

/* La page courante : la graisse, pas la couleur.
   C'est la règle de la charte pour les liens, et c'est aussi la seule
   solution tenable ici — aucun rose de la palette ne tient sur l'Encre,
   l'Aplat Rose y tombe à 1,93.

   `aria-current` est posé par WordPress tout seul, rien à saisir. */
.wp-block-navigation__responsive-container.is-menu-open [aria-current="page"] {
	font-weight: 800;
}


/* --- La croix --------------------------------------------------------------
   ⚠ Sa COULEUR ne se règle pas ici : le bouton porte la classe
   `has-plein-rose-color`, et les classes de couleur de WordPress sont
   posées en `!important`. Il faut la changer dans l'éditeur —
   bloc « Fermer », Styles → Couleur → Texte → Fond · Ivoire.
   Le rose de la charte tombe à 1,93 sur l'Encre : il est illisible.

   Seule la taille se règle en CSS : l'icône native fait 24px, la maquette
   en demande environ 35. */

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-overlay-close svg {
	width: 34px;
	height: 34px;
	fill: currentColor;
}


/* --- Le focus clavier dans le panneau --------------------------------------
   IMPORTANT. La règle générale du point 4 trace un contour à l'Encre :
   sur un fond Encre, il est rigoureusement invisible. Quelqu'un qui navigue
   au clavier perdrait sa position dès l'ouverture du menu. */

.wp-block-navigation__responsive-container.is-menu-open :where(a, button):focus-visible {
	outline: 2px solid var(--wp--preset--color--fond-ivoire);
	outline-offset: 4px;
}
/* Le carré à la souris et au doigt : on l'enlève.
   `:focus:not(:focus-visible)` vise précisément le focus obtenu
   au pointeur, jamais celui obtenu au clavier. */
.wp-block-navigation__responsive-container-open:focus:not(:focus-visible),
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-overlay-close:focus:not(:focus-visible) {
	outline: none;
}

/* Au clavier, il reste — mais propre : collé à l'icône
   au lieu d'un grand carré, et arrondi. */
.wp-block-navigation__responsive-container-open:focus-visible,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-overlay-close:focus-visible {
	outline: 2px solid var(--wp--preset--color--fond-ivoire);
	outline-offset: 2px;
	border-radius: 4px;
}
/*Responsive tablette et PC----------------------*/
/* Pour la navigation PC */
 @media (min-width: 768px) {
	.wp-block-navigation-item .wp-block-navigation-link{
   width: 400px;
   border-bottom: 2px solid var(--wp--preset--color--base);
   }
 }

  /* Pour la navigation Tablette */
 @media (min-width: 600px) and (max-width: 767.98px) {

	.wp-container-core-navigation-is-layout-f47e089d{
      gap: var(--wp--preset--spacing--40);
   }
}
/* ---------------------------------------------------------------------------
   6. LE SURTITRE
   ---------------------------------------------------------------------------
   La petite ligne en capitales posée au-dessus d'un H2.
   C'est un PARAGRAPHE, jamais un titre : ce n'est pas le titre de la
   section, c'est l'étiquette qui l'annonce.

   Aucune couleur ici, volontairement : le surtitre hérite de celle de sa
   section, ce qui le rend juste aussi bien sur Ivoire que sur Encre.
   --------------------------------------------------------------------------- */

.mec-surtitre {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: 3px;
}

/* Le surtitre et son H2 forment une paire : ils restent collés à 30px,
   quel que soit le rythme réglé sur le Groupe. Sans cette règle, une
   section en « Section » les écarterait de 80px et la paire se disloquerait.
   Le sélecteur à deux classes passe devant l'espacement de WordPress. */
.mec-surtitre + *,
.wp-block-group > .mec-surtitre + * {
	margin-block-start: var(--wp--preset--spacing--40);
}
/* ---------------------------------------------------------------------------
   7. LE RYTHME VERTICAL DES SECTIONS + le filet doré dans certaines sections
   ---------------------------------------------------------------------------
   On passe par une classe plutôt que par le curseur de l'éditeur : ce
   curseur n'a pas de position « non défini », son cran zéro écrit un
   `padding: 0` en style en ligne qui écrase la marge latérale du site.

   `padding-block` règle le haut ET le bas en une propriété. Les côtés ne
   sont jamais touchés : ils restent gouvernés par le theme.json.
   --------------------------------------------------------------------------- */

/* Sections de contenu — 80px sur mobile, 130px sur grand écran. */
.mec-section {
	padding-block: var(--wp--preset--spacing--70);
}

/* Sections de service — celles qui enchaînent vite. 50px → 80px. */
.mec-section-serree {
	padding-block: var(--wp--preset--spacing--50);
}

/* Renommée : elle ne décrit plus qu'une géométrie, pas une couleur.
   `currentColor` reprend la couleur du Séparateur — Décor · Doré par
   défaut via theme.json, ou l'accent que tu choisis dans l'éditeur. */
.wp-block-separator.mec-filet-court {
	width: 50px;
	max-width: 50px;
	border: 0;
	border-top: 3px solid currentColor;
	opacity: 1;
	margin-inline-start: 0 !important;
	margin-inline-end: auto !important;
}
/* ---------------------------------------------------------------------------
   8. La carte des piliers
   ---------------------------------------------------------------------------
/* La carte des piliers.
   Le rayon se règle dans l'éditeur ; le rognage, non — et sans lui les
   angles carrés du bandeau sortent du coin arrondi de la carte. */
.mec-carte {
	overflow: hidden;
}
/* --------------------------------------------------------------------------
   LA GRILLE DES GRANDES CARTES PILIERS
   --------------------------------------------------------------------------
   Même mécanique que le point 10, avec un seuil différent :

   `mec-grille-deux`   → deux colonnes jusqu'en bas, une seule sous 360px.
                         Pour des cartes qui ne portent qu'une phrase.
   `mec-grille-cartes` → deux colonnes, une seule avant 900px.
                         Pour les cartes des Piliers : bandeau, titre,
                         paragraphe et lien, il leur faut de la largeur.

   Pourquoi deux classes et non un réglage : une media query ne sait pas
   lire une variable CSS. Le seuil s'écrit en dur, donc une classe par
   seuil. Pour changer d'avis, il n'y a que le 899 ci-dessous à toucher.
   -------------------------------------------------------------------------- */
@media (min-width: 900px) {

	.wp-block-group.mec-grille-cartes {
		grid-auto-rows: 1fr;
	}
}
@media (max-width: 899px) {

	.wp-block-group.mec-grille-cartes {
		grid-template-columns: 1fr;
	}
}
/* --------------------------------------------------------------------------
   LE LIEN DECOUVRIR - EN BAS DE CARTE PILIERS
   --------------------------------------------------------------------------
   Les quatre cartes ont la même hauteur, mais pas la même longueur de
   texte : le « Découvrir → » tombait 50px plus haut sur l'une d'elles.
   On le colle en bas.

   Trois étages, parce qu'une marge automatique ne pousse rien dans un
   conteneur ordinaire :
     1. la carte devient une colonne souple ;
     2. son corps prend toute la hauteur qui reste ;
     3. le lien s'y pousse en bas tout seul.

   ⚠ Le `!important` de la troisième règle n'est pas un caprice. La mise
   en page « contenu centré » de WordPress écrit elle-même
   `margin-left: auto !important` sur chaque bloc. Dans un conteneur
   souple, ces marges automatiques cessent d'étirer les blocs et les
   recentrent sur leur propre largeur : testé, les titres se mettaient à
   flotter au milieu de la carte (317px → 229px pour l'un d'eux). Seul un
   `!important` reprend la main — c'est exactement la raison de celui du
   point 8, sur le filet court.
   -------------------------------------------------------------------------- */

.mec-carte {
	display: flex;
	flex-direction: column;
}

/* Le corps de la carte — tout ce qui suit le bandeau de couleur. */
.mec-carte > :last-child {
	flex: 1;
	display: flex;
	flex-direction: column;
}

/* On rend aux blocs leur pleine largeur, que le conteneur souple leur
   retirait. Voir l'avertissement ci-dessus. */
.mec-carte > :last-child > * {
	margin-inline: 0 !important;
}

.mec-carte .mec-lien-fleche {
	margin-block-start: auto;
}
/* --------------------------------------------------------------------------
   9. LES SECTIONS EN BANNIÈRE - BIENFAITS
   --------------------------------------------------------------------------
   Le bloc Bannière pose 1em de marge interne sur ses quatre côtés — 18px
   ici. Une section en Bannière se retrouve donc décalée de 12px par
   rapport à toutes les autres, qui reçoivent la gouttière du site.

   On lui rend cette gouttière. La variable est posée sur <body> par
   WordPress lui-même : elle arrive ici par héritage, rien à déclarer.

   Le point 7 continue de donner le rythme haut/bas ; on ne touche qu'aux
   côtés. Deux classes dans le sélecteur suffisent à passer devant la
   règle de WordPress, qui n'en a qu'une.
   -------------------------------------------------------------------------- */

.wp-block-cover.mec-section,
.wp-block-cover.mec-section-serree {
	padding-inline: var(--wp--style--root--padding-left);
}
/* --------------------------------------------------------------------------
   10. LA GRILLE À DEUX COLONNES - LES BIENFAITS
   --------------------------------------------------------------------------
   Le bloc Grille en mode Manuel tient ses deux colonnes à toutes les
   largeurs — c'est ce qu'on veut ici, la maquette garde deux colonnes
   sur mobile. Reste le cas des très petits écrans : en dessous de 360px
   une carte tomberait sous 135px, et les mots commenceraient à se casser.

   Deux classes dans le sélecteur : la feuille que WordPress génère pour
   la grille n'en a qu'une, on passe donc devant sans `!important`.
   -------------------------------------------------------------------------- */
   .wp-block-group.mec-grille-deux {

	/* Toutes les lignes à la hauteur de la plus haute.
	   Sans cela, chaque ligne se cale sur son propre contenu : sur mobile
	   les textes ne tombent pas sur le même nombre de lignes et les cartes
	   décrochent d'une ligne à l'autre. Sur PC ça ne se voyait pas, les
	   quatre lignes tombant juste par hasard. */
	grid-auto-rows: 1fr;
}


@media (max-width: 359px) {

	.wp-block-group.mec-grille-deux {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   11. LA CARTE À CONTOUR - LES BIENFAITS
   --------------------------------------------------------------------------
   Une carte posée sur une photo : aucun fond, un simple filet.

   `currentColor` fait suivre la couleur de texte du parent. La carte est
   donc Ivoire sur Les bienfaits, et resservira ailleurs sans retouche —
   c'est la leçon du filet doré qu'on avait figé par erreur.

   La marge interne latérale est fluide. La maquette dit 5px sur mobile et
   50px sur PC : 5px, c'est trop peu même sur un petit écran, et la même
   valeur fixe des deux côtés est intenable. On va donc de 10 à 50.
   -------------------------------------------------------------------------- */

.mec-carte-contour {
	border: 1px solid currentColor;
	border-radius: 10px;
	padding-block: var(--wp--preset--spacing--30);
	padding-inline: clamp(10px, -9.12px + 4.62vw, 50px);

	/* Le texte au milieu de la carte, verticalement.
	   Ces trois lignes rendent la classe autonome : elle centre même si
	   la mise en page « Empiler » n'a pas été réglée dans l'éditeur. */
	display: flex;
	flex-direction: column;
	justify-content: center;
}
/* --------------------------------------------------------------------------
   14. LA CARTE D'AVIS
   --------------------------------------------------------------------------
   Les deux cartes d'une rangée ont la même hauteur, mais les avis n'ont
   pas la même longueur. Sans cela, la note flotte au milieu des cartes
   les plus courtes au lieu de s'aligner.

   Le `!important` : la mise en page de WordPress écrit
   `margin-left: auto !important` sur chaque bloc, et dans un conteneur
   souple ces marges cessent d'étirer les blocs pour les recentrer sur
   leur propre largeur.
   -------------------------------------------------------------------------- */

.mec-carte-avis {
	display: flex;
	flex-direction: column;

	/* La marge interne vit ici et pas dans l'éditeur : la carte porte
	   `has-global-padding`, que WordPress remet à zéro dès qu'elle est
	   imbriquée dans un bloc qui a la même classe. Le curseur de
	   l'éditeur se ferait donc écraser une fois sur deux. */
	padding-block: var(--wp--preset--spacing--50);
	padding-inline: var(--wp--preset--spacing--40);
}

.mec-carte-avis > * {
	margin-inline: 0 !important;
}

.mec-carte-avis > :last-child {
	margin-block-start: auto;
	padding-block-start: var(--wp--preset--spacing--30);
}



/* --------------------------------------------------------------------------
   15. LA NOTE : LE CHIFFRE ET LES ÉTOILES
   --------------------------------------------------------------------------
   3px entre les étoiles, comme la maquette — mais pas entre le chiffre et
   la première, d'où la seconde règle.
   -------------------------------------------------------------------------- */

.wp-block-group.mec-note,
.wp-block-group.mec-note .wp-block-group {
	align-items: center;
	column-gap: 3px;
}

.wp-block-group.mec-note > :first-child {
	margin-inline-end: 7px;
}
/* --------------------------------------------------------------------------
   16. LE FILET DÉGRADÉ DU FOOTER
   --------------------------------------------------------------------------
   Un trait plein qui sépare les bandes du pied de page. À ne pas confondre
   avec `mec-filet` (point 3) : celui-là est un ESPACE qui laisse voir le
   fond de la page. Ici c'est un élément plein, avec sa propre couleur.

   La maquette le veut à 10px sur mobile et 5px sur PC — d'où le clamp,
   qui décroît au lieu de croître. Si tu préfères une valeur unique, mets
   simplement `min-height: 6px` et on n'en parle plus.

   Un Groupe vide suffit : la classe donne la hauteur et le dégradé, il n'y
   a rien à régler dans l'éditeur.
   -------------------------------------------------------------------------- */

.mec-filet-degrade {
	min-height: clamp(5px, 12.4px - 0.578vw, 10px);
	background: var(--wp--preset--gradient--degrade-bleu);
}


/* --------------------------------------------------------------------------
   17. LES TROIS COLONNES DU FOOTER   ← remplace la version précédente
   --------------------------------------------------------------------------
   Bord à bord, sans gouttière : chaque colonne porte son fond, et c'est le
   contact des fonds qui dessine la séparation.

   Les marges internes vivent ici et pas dans l'éditeur : sur trois colonnes
   identiques, un réglage à répéter trois fois est un réglage qu'on oublie.
   Elles se règlent donc une fois, pour les trois.

   L'empilement natif de WordPress se fait à 782px — trop tard ici : à cette
   largeur le titre « INFOS PRATIQUES » déborde de sa colonne. Vérifié à
   1024 : colonnes de 336px, titres de 276px, ça passe avec de l'air.
   -------------------------------------------------------------------------- */

.wp-block-columns.mec-footer-colonnes {
	gap: 0;
	margin-block: 0;
}

.wp-block-columns.mec-footer-colonnes > .wp-block-column {
	padding-block: var(--wp--preset--spacing--50);
	padding-inline: var(--wp--preset--spacing--40);
   text-decoration: none;
}

@media (max-width: 1023px) {

	.wp-block-columns.mec-footer-colonnes {
		flex-wrap: wrap !important;
	}

	.wp-block-columns.mec-footer-colonnes > .wp-block-column {
		flex-basis: 100% !important;
	}
}
/* --------------------------------------------------------------------------
   19. LA GRILLE À TROIS COLONNES          (ex `mec-grille-fiches`)
   --------------------------------------------------------------------------
   Trois colonnes à partir de 1280px, une seule en dessous, plafonnée.
   Sert aux fiches d'accompagnement ET aux avis — d'où un nom qui décrit
   le comportement et non le contenu.

   Le plafond de 400px est indispensable : à 1279 la grille mesure encore
   1019px, et une carte pleine largeur y serait illisible. Il ne gêne jamais
   le mobile, où la grille est plus étroite que le plafond.
   -------------------------------------------------------------------------- */

@media (max-width: 1279px) {

	.wp-block-group.mec-grille-trois {
		grid-template-columns: 1fr;
		justify-items: center;
	}

	.wp-block-group.mec-grille-trois > * {
		width: 100%;
		max-width: 400px;
	}
}
/* --------------------------------------------------------------------------
   19 bis. LA FICHE D'ACCOMPAGNEMENT À HAUTEUR ÉGALE
   --------------------------------------------------------------------------
   ⚠ Attaché à `mec-fiche`, PAS à la grille. Une carte d'avis vit dans la
   même grille mais n'a pas la même anatomie : son premier enfant est la
   date, et `flex: 1` l'étirerait sur toute la hauteur de la carte.

   Les avis, eux, n'ont besoin de rien : la grille les étire déjà, et le
   point 14 pose leur note en bas.
   -------------------------------------------------------------------------- */

@media (min-width: 1280px) {

	.mec-fiche {
		display: flex;
		flex-direction: column;
	}

	.mec-fiche > :first-child {
		flex: 1;
		display: flex;
		flex-direction: column;
	}

	.mec-fiche > :first-child > .wp-block-buttons {
		margin-block-start: auto;
	}
}
/* ==========================================================
   21. ACCORDÉON — section « Comprendre la méthode »
   Classe à mettre sur le Groupe parent : mec-accordeon
   Les blocs Détails à l'intérieur prennent le style tout seuls.
   ========================================================== */

/* Chaque volet : on supprime l'espace entre les blocs (les filets
   doivent se toucher) et on pose le filet doré au-dessus */
.mec-accordeon > .wp-block-details {
	margin-block: 0;
	border-top: 1px solid var(--wp--preset--color--deco-dore, #D5C59D);
}

/* 20px entre le surtitre et le premier filet (comme la maquette) */
.mec-accordeon > .wp-block-details:first-of-type {
	margin-block-start: 20px;
}

/* Filet de fermeture sous le dernier volet */
.mec-accordeon > .wp-block-details:last-of-type {
	border-bottom: 1px solid var(--wp--preset--color--deco-dore, #D5C59D);
}

/* L'intitulé cliquable : 74px de haut, texte centré verticalement,
   le + calé à droite */
.mec-accordeon .wp-block-details > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;                    /* le texte ne touche jamais le + */
	min-height: 74px;
	padding-block: 16px;          /* si l'intitulé passe sur 2 lignes */
	list-style: none;             /* retire la flèche native */
	cursor: pointer;
	font-size: 19px;
	font-weight: 500;
	line-height: 1.2;
	color: var(--wp--preset--color--contrast);
}

/* Retire la flèche native sur Safari */
.mec-accordeon .wp-block-details > summary::-webkit-details-marker {
	display: none;
}

/* Le + violet à droite */
.mec-accordeon .wp-block-details > summary::after {
	content: "+";
	flex-shrink: 0;               /* ne se tasse pas si le titre est long */
	font-size: 28px;
	font-weight: 300;
	line-height: 1;
	color: var(--wp--preset--color--plein-violet, #55547B);
}

/* Volet ouvert : le + devient – (signe moins, même largeur que le +) */
.mec-accordeon .wp-block-details[open] > summary::after {
	content: "\2212";
}

/* Focus clavier visible (accessibilité) */
.mec-accordeon .wp-block-details > summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--plein-violet, #55547B);
	outline-offset: 4px;
}

/* Texte déplié : collé sous l'intitulé, 20px avant le filet suivant */
.mec-accordeon .wp-block-details > summary + * {
	margin-block-start: 0;
}
.mec-accordeon .wp-block-details[open] {
	padding-block-end: 20px;
}
/* Pas de cadre au clic de souris…
   …mais le contour violet reste pour la navigation au clavier (Tab) */
.mec-accordeon .wp-block-details > summary:focus:not(:focus-visible) {
	outline: none;
}
/* ==========================================================
   22. RÈGLES GÉNÉRALES — liens et gras
   ========================================================== */

/* Liens : pas de soulignement, partout.
   « :root a » plutôt que « a » seul : le style des liens de
   Twenty Twenty-Five est écrit avec :root, un simple « a »
   perdrait face à lui. */
:root a {
	text-decoration: none;
}

/* Au survol et au clavier, le soulignement revient :
   l'internaute voit qu'il est bien sur un lien */
:root a:hover,
:root a:focus-visible {
	text-decoration: underline;
}

/* Gras (strong / b) : même graisse que le texte autour.
   « inherit » plutôt que « normal » : dans un titre, un mot
   en strong garde la graisse du titre au lieu de s'affiner. */
strong,
b {
	font-weight: inherit;
}
/* ==========================================================
   23. CARTE MÉTHODE — page MCR (« Une méthode pensée pour la femme »)
   Classe sur le Groupe de la carte : mec-carte-methode
   Structure : H3 > Rangée ( Image + Pile ( accroche + Détails ) )
   Nom des Détails : mcr (une seule carte ouverte à la fois)
   ========================================================== */

/* 14px entre le titre et la rangée (au lieu des 30px du thème) */
.mec-carte-methode > * + * {
	margin-block-start: 14px;
}

/* Titre : bleu, capitales, filet bleu dessous */
.mec-carte-methode h3,
.mec-carte-formule h3 {
	margin-block: 0;
	padding-block-end: 14px;
	border-bottom: 1px solid var(--wp--preset--color--plein-bleu, #406280);
	color: var(--wp--preset--color--plein-bleu, #406280);
	font-size: 20px;
	font-weight: 800;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Rangée : vignette + colonne de texte, alignées en haut */
.mec-carte-methode > .is-layout-flex {
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 20px;
}

/* Pile : prend toute la place restante, 14px entre ses éléments */
.mec-carte-methode .is-vertical {
	flex: 1;
	min-width: 0;                 /* évite que le texte déborde */
	gap: 14px;
}

/* Textes : accroche en 500, texte détaillé en 400, tous en 16px Encre */
.mec-carte-methode .is-vertical p {
	margin: 0;
	font-size: 16px;
	line-height: 1.2;
	color: var(--wp--preset--color--contrast);
}
.mec-carte-methode .is-vertical > p:first-child {
	font-weight: 500;
}

/* ----- Le bloc Détails ----- */

/* Le Détails devient une colonne : on pourra faire passer
   la ligne cliquable APRÈS le texte (voir « order » plus bas).
   Navigateur ancien : « Réduire » reste au-dessus du texte,
   tout fonctionne quand même. */
.mec-carte-methode .wp-block-details {
	display: flex;
	flex-direction: column;
	margin: 0;
}

/* La ligne cliquable « En savoir plus » + chevron */
.mec-carte-methode .wp-block-details > summary {
	display: flex;
	align-items: center;
	list-style: none;             /* retire la flèche native */
	cursor: pointer;
	color: var(--wp--preset--color--plein-bleu, #406280);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2;
	text-transform: uppercase;
}
.mec-carte-methode .wp-block-details > summary::-webkit-details-marker {
	display: none;                /* flèche native sur Safari */
}

/* Le chevron encre, dessiné directement en CSS (pas de fichier) */
.mec-carte-methode .wp-block-details > summary::after {
	content: "";
	flex-shrink: 0;
	width: 25px;
	height: 25px;
	margin-inline-start: 10px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%2342443D'/%3E%3Cpath d='M6.5 9.5 L12 15 L17.5 9.5' fill='none' stroke='%23F4F1ED' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .2s ease;
}

/* ----- Carte ouverte ----- */

/* La ligne cliquable passe sous le texte, calée à droite */
.mec-carte-methode .wp-block-details[open] > summary {
	order: 2;
	justify-content: flex-end;
	margin-block-start: 14px;
	font-size: 0;                 /* masque « En savoir plus »… */
}

/* …et affiche « Réduire » à la place */
.mec-carte-methode .wp-block-details[open] > summary::before {
	content: "Réduire";
	font-size: 18px;
}

/* Le chevron se retourne vers le haut */
.mec-carte-methode .wp-block-details[open] > summary::after {
	transform: rotate(180deg);
}

/* ----- Accessibilité ----- */

/* Contour bleu au clavier, rien au clic de souris */
.mec-carte-methode .wp-block-details > summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--plein-bleu, #406280);
	outline-offset: 4px;
}
.mec-carte-methode .wp-block-details > summary:focus:not(:focus-visible) {
	outline: none;
}

/* ----- PC : hauteur naturelle ----- */

/* Dans la grille, chaque carte garde sa propre hauteur :
   seule la carte ouverte s'allonge, les autres ne bougent pas */
.is-layout-grid:has(> .mec-carte-methode) {
	align-items: start;
}
/* ==========================================================
   24. PLANNING MCR — cartes jour, créneaux et légende
   Classes : mec-jour (Groupe de chaque jour)
             mec-legende (bloc Liste de la légende)
   Types de cours : styles de bloc déclarés dans functions.php
   → classe « is-style-cours-… » sur chaque ligne de liste
   Fond, rayon et marges des cartes : réglés dans l'éditeur
   ========================================================== */

/* ----- Couleur de chaque type de cours -----
   Une seule variable par type : la pastille la lit.
   Rose et gris : hors charte, volontairement ici seulement
   (pastilles décoratives, le nom du cours est toujours écrit) */
.is-style-cours-debutant   { --mec-pastille: #D6A5AD; }
.is-style-cours-senior     { --mec-pastille: #A2C4CE; }
.is-style-cours-initie     { --mec-pastille: var(--wp--preset--color--deco-dore, #D5C59D); }
.is-style-cours-decouverte { --mec-pastille: #B8BCC0; }
.is-style-cours-mcr        { --mec-pastille: var(--wp--preset--color--plein-bleu, #406280); }

/* ----- Carte jour ----- */

/* 12px entre le jour et la liste */
.mec-jour > * + * {
	margin-block-start: 12px;
}

/* Le jour : bleu, capitales, légèrement espacé */
.mec-jour h4 {
	margin-block: 0;
	color: var(--wp--preset--color--plein-bleu, #406280);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 1px;
	text-transform: uppercase;
}

/* ----- Listes (créneaux + légende) : on retire les puces natives ----- */
.mec-jour ul,
ul.mec-legende {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ----- Un créneau ----- */
.mec-jour li {
	position: relative;           /* repère pour placer la pastille */
	padding-inline-start: 22px;   /* 12px de pastille + 10px d'écart */
	font-size: 15px;
	line-height: 1.35;            /* ≈ 2px entre l'heure et le cours */
}

/* 12px entre deux créneaux */
.mec-jour li + li {
	margin-block-start: 12px;
}

/* L'heure en gras : c'est la 1re ligne (avant le Maj + Entrée).
   Pas de <strong> : depuis le point 22, le gras est réservé aux liens */
.mec-jour li::first-line {
	font-weight: 700;
}

/* ----- La pastille (créneaux + légende) ----- */
.mec-jour li::before,
.mec-legende li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;                     /* centrée sur le duo heure + cours */
	transform: translateY(-50%);
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--mec-pastille);
}

/* Ligne sans style choisi : un simple cercle vide,
   pour que Claire voie tout de suite qu'il manque le type */
.mec-jour li:not([class*="is-style-cours"])::before,
.mec-legende li:not([class*="is-style-cours"])::before {
	background: none;
	box-shadow: inset 0 0 0 1px currentColor;
}

/* ----- La légende ----- */
.mec-legende li {
	position: relative;
	padding-inline-start: 20px;   /* 12px de pastille + 8px d'écart */
	font-size: 14px;
	line-height: 1.2;
}
.mec-legende li + li {
	margin-block-start: 8px;
}
/* ==========================================================
   25. CARTE FORMULE — page MCR (« Les formules MCR »)
   Classe sur le Groupe de chaque carte : mec-carte-formule
   Fond, rayon, ombre, marges : réglés dans l'éditeur
   ========================================================== */

/* La grille donne déjà la même hauteur aux 3 cartes.
   La colonne flex permet de caler le bouton en bas */
.mec-carte-formule {
	display: flex;
	flex-direction: column;
}

/* La mise en page « contrainte » centre les enfants avec
   margin auto !important : dans une colonne flex, ça les
   rétrécit. On neutralise (même correctif qu'au point 13) */
.mec-carte-formule > * {
	margin-inline: 0 !important;
}

/* Le bouton descend en bas de la carte : les 3 boutons
   sont alignés, quelle que soit la longueur du texte.
   Le padding garde un espace minimum sous le texte */
.mec-carte-formule > .wp-block-buttons {
	margin-block-start: auto;
	padding-block-start: var(--wp--preset--spacing--30);
}