/* Boutons natifs : même rendu que a.lm-btn-primary / a.lm-btn-ghost / a.lm-btn-retour (buttons.css, blocks_addon.css).
   lm-btn-primary est le style par défaut (is_default) : WordPress n'écrit alors aucune classe is-style-*,
   ses règles portent donc sur le sélecteur non qualifié ; ghost et retour les surchargent par spécificité. */
.wp-block-button .wp-block-button__link { position: relative; display: inline-flex; align-items: center; font-family: 'Jost', sans-serif; font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; color: var(--btn-text, var(--bg)); background: var(--btn-bg, var(--gold)); padding: 1.1rem 2.8rem; border: none; border-radius: 0; overflow: hidden; text-decoration: none; transition: color .4s; }
.wp-block-button .wp-block-button__link:hover { color: var(--btn-text, var(--bg)); background: var(--btn-bg, var(--gold)); }
.wp-block-button .wp-block-button__link::before { content: ''; position: absolute; inset: 0; background: var(--btn-hover-bg, var(--bg2)); transform: translateX(-101%); transition: transform .4s cubic-bezier(.77,0,.175,1); z-index: 0; }
.wp-block-button .wp-block-button__link:hover::before { transform: translateX(0); }
.wp-block-button.is-style-lm-btn-ghost .wp-block-button__link { position: static; display: inline-flex; align-items: center; gap: .8rem; font-family: 'Jost', sans-serif; font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; color: var(--btn-ghost, var(--muted)); background: none; border: none; padding: 0; border-radius: 0; overflow: visible; text-decoration: none; transition: color .3s; }
.wp-block-button.is-style-lm-btn-ghost .wp-block-button__link::before { content: none; }
.wp-block-button.is-style-lm-btn-ghost .wp-block-button__link::after { content: '→'; transition: transform .3s; }
.wp-block-button.is-style-lm-btn-ghost .wp-block-button__link:hover { color: var(--text); background: none; }
.wp-block-button.is-style-lm-btn-ghost .wp-block-button__link:hover::after { transform: translateX(5px); }
.wp-block-button.is-style-lm-btn-retour .wp-block-button__link { position: static; display: inline-flex; align-items: center; gap: .6rem; font-family: 'Jost', sans-serif; font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); background: transparent; border: none; padding: 0; border-radius: 0; overflow: visible; text-decoration: none; transition: color .3s, gap .3s; }
.wp-block-button.is-style-lm-btn-retour .wp-block-button__link::before { content: none; }
.wp-block-button.is-style-lm-btn-retour .wp-block-button__link:hover { color: var(--text); background: transparent; gap: 1rem; }
.wp-block-buttons.lm-bouton-wrap { margin: 1.5rem 0; }
.wp-block-buttons.lm-double-btn { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; padding: 2rem 4rem; }
/* Report obligatoire du repli mobile de blocks_addon.css (l.539-541) : la règle y
   vise `.lm-double-btn` seul, la ligne ci-dessus `.wp-block-buttons.lm-double-btn`
   — deux classes l’emportent sur une, quel que soit l’ordre des feuilles, et la
   colonne mobile ne se formait donc jamais. Sans ce report, les deux boutons
   restent en ligne à 390 px : Gutenberg glisse un `<div class="wp-block-button">`
   entre la rangée et le lien, ce div devient l’élément flexible à la place du
   lien, se fait comprimer à 214 px et « Réserver ce soin » passe sur deux lignes.
   Seuil recopié de la source, 540 px et non 768 px : entre 541 et 768 px, Django
   garde les deux boutons en ligne, WordPress les empilait. */
@media (max-width: 540px) {
  .wp-block-buttons.lm-double-btn { padding: 2rem 1.5rem; flex-direction: column; align-items: flex-start; }
}
.wp-block-button.lm-btn--sm .wp-block-button__link { padding: .7rem 1.8rem; font-size: .6rem; }
.wp-block-button.lm-btn--lg .wp-block-button__link { padding: 1.4rem 3.5rem; font-size: .78rem; }

/* Séparateur : <hr> et non <div>. Valeurs recopiées de .lm-separateur* (blocks_addon.css l.123-146).
   lm-separateur--or est le style par défaut : ses valeurs sont sur la base (classe lm-separateur posée par
   le filtre render_block_core/separator). Les variantes acceptent la classe exportée (lm-separateur--ligne)
   comme la classe choisie dans l'éditeur (is-style-lm-separateur--ligne). */
hr.wp-block-separator.lm-separateur { border: 0; height: 1px; background: var(--gold); opacity: .35; max-width: 400px; margin: 3rem auto; text-align: center; }
hr.wp-block-separator.lm-separateur.lm-separateur--ligne,
hr.wp-block-separator.lm-separateur.is-style-lm-separateur--ligne { height: 1px; background: var(--border); opacity: 1; max-width: 600px; }
hr.wp-block-separator.lm-separateur.lm-separateur--ornement,
hr.wp-block-separator.lm-separateur.is-style-lm-separateur--ornement { overflow: visible; height: 1.2em; background: none; opacity: 1; max-width: none; }
hr.wp-block-separator.lm-separateur.lm-separateur--ornement::after,
hr.wp-block-separator.lm-separateur.is-style-lm-separateur--ornement::after { content: '✦'; color: var(--gold); font-size: 1rem; opacity: .5; }

/* Citation, image, colonnes, groupe de texte riche. Valeurs de .lm-citation* recopiées (blocks_addon.css l.55-75). */
.wp-block-quote.lm-citation { border-left: 3px solid var(--gold); padding: 1.2rem 2rem; margin: 2rem 0; }
.wp-block-quote.lm-citation p { font-family: 'Cormorant Garamond', serif; font-size: 1.3rem; font-style: italic; font-weight: 300; color: var(--text); line-height: 1.6; margin: 0; }
.wp-block-quote.lm-citation cite { font-style: normal; display: block; font-size: .75rem; letter-spacing: .15em; text-transform: uppercase; color: var(--gold); margin-top: .8rem; }
.wp-block-image.lm-image { margin: 2rem auto; }
.wp-block-image.lm-image.alignwide { max-width: 1200px; }
.wp-block-image.lm-image.alignfull { max-width: 100%; }
.wp-block-image.lm-image .wp-element-caption { font-size: .8rem; color: var(--muted); text-align: center; margin-top: .6rem; }

/* Colonnes : valeurs et variantes de ratio recopiées de .lm-colonnes* (blocks_addon.css l.147-160)
   et .lm-mep* (l.425-475). */
.wp-block-columns.lm-colonnes { display: grid; gap: 3rem; margin: 2rem 0; }
.wp-block-columns.lm-colonnes--1-1 { grid-template-columns: 1fr 1fr; }
.wp-block-columns.lm-colonnes--2-1 { grid-template-columns: 2fr 1fr; }
.wp-block-columns.lm-colonnes--1-2 { grid-template-columns: 1fr 2fr; }
.wp-block-columns.lm-mep { display: grid; width: 100%; padding: 3rem 4rem; box-sizing: border-box; }
.wp-block-columns.lm-mep--gap-sm { gap: 1rem; }
.wp-block-columns.lm-mep--gap-md { gap: 2rem; }
.wp-block-columns.lm-mep--gap-lg { gap: 4rem; }
.wp-block-columns.lm-mep--gap-xl { gap: 6rem; }
.wp-block-columns.lm-mep--valign-start   { align-items: start; }
.wp-block-columns.lm-mep--valign-center  { align-items: center; }
.wp-block-columns.lm-mep--valign-end     { align-items: end; }
.wp-block-columns.lm-mep--valign-stretch { align-items: stretch; }
.wp-block-columns.lm-mep--2col-1-1   { grid-template-columns: 1fr 1fr; }
.wp-block-columns.lm-mep--2col-2-1   { grid-template-columns: 2fr 1fr; }
.wp-block-columns.lm-mep--2col-1-2   { grid-template-columns: 1fr 2fr; }
.wp-block-columns.lm-mep--2col-3-1   { grid-template-columns: 3fr 1fr; }
.wp-block-columns.lm-mep--2col-1-3   { grid-template-columns: 1fr 3fr; }
.wp-block-columns.lm-mep--3col-1-1-1 { grid-template-columns: 1fr 1fr 1fr; }
.wp-block-columns.lm-mep--3col-2-1-1 { grid-template-columns: 2fr 1fr 1fr; }
.wp-block-columns.lm-mep--3col-1-2-1 { grid-template-columns: 1fr 2fr 1fr; }
.wp-block-columns.lm-mep--3col-1-1-2 { grid-template-columns: 1fr 1fr 2fr; }
.wp-block-columns.lm-mep--4col-1-1-1-1 { grid-template-columns: 1fr 1fr 1fr 1fr; }
.wp-block-columns.lm-mep--4col-2-1-1-1 { grid-template-columns: 2fr 1fr 1fr 1fr; }
.wp-block-columns.lm-mep--4col-1-1-1-2 { grid-template-columns: 1fr 1fr 1fr 2fr; }
.wp-block-columns.lm-colonnes > .wp-block-column,
.wp-block-columns.lm-mep > .wp-block-column { flex-basis: auto !important; min-width: 0; }
@media (max-width: 768px) {
  .wp-block-columns.lm-colonnes--1-1,
  .wp-block-columns.lm-colonnes--2-1,
  .wp-block-columns.lm-colonnes--1-2 { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .wp-block-columns.lm-mep { padding: 2rem 1.5rem; }
  .wp-block-columns.lm-mep--2col-1-1, .wp-block-columns.lm-mep--2col-2-1, .wp-block-columns.lm-mep--2col-1-2,
  .wp-block-columns.lm-mep--2col-3-1, .wp-block-columns.lm-mep--2col-1-3,
  .wp-block-columns.lm-mep--3col-1-1-1, .wp-block-columns.lm-mep--3col-2-1-1, .wp-block-columns.lm-mep--3col-1-2-1, .wp-block-columns.lm-mep--3col-1-1-2,
  .wp-block-columns.lm-mep--4col-1-1-1-1, .wp-block-columns.lm-mep--4col-2-1-1-1, .wp-block-columns.lm-mep--4col-1-1-1-2 { grid-template-columns: 1fr; }
}
.wp-block-group.lm-rich-text, .wp-block-group.lm-wysiwyg { max-width: none; }

/* Séparateur de la page de contact : contact.css ne l’habille qu’à l’intérieur
   de .lm-page-contact, or le <hr> de l’export est un frère des sections, pas un
   descendant. Mêmes valeurs que .lm-page-contact .lm-divider (contact.css). */
hr.wp-block-separator.lm-separateur.lm-divider { width: 100%; height: 1px; max-width: none; margin: 0; border: none; background: linear-gradient(to right, transparent 0%, var(--border2) 20%, var(--border2) 80%, transparent 100%); }

/* Fiche massage : le texte vient de l’éditeur, encadré en .lm-page-body par
   lm_encadrer_texte_libre (inc/render.php), et les actions forment une section
   à part, .lm-massage-body--cta, écrite par single-massage.php, là où Django
   n’a qu’une seule section. On retire le rembourrage en double. */
.lm-massage-body--cta { background: var(--bg); padding: 0 6rem 7rem; }
.lm-massage-body--cta .lm-massage-body__inner { max-width: 820px; margin: 0 auto; }
@media (max-width: 900px) { .lm-massage-body--cta { padding: 0 2rem 4rem; } }
