/*
Theme Name: YM Site
Description: Thème bloc de magnetiseur-lyon.fr (thème B) : design de l'accueil v5, pages actuelles sur leurs adresses, CRM intégré. Textes modifiables dans Apparence → Éditeur.
Author: Yann Miny
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: ym-site
*/

/* Couleurs et police : theme.json (mêmes valeurs que le CRM : #0091ff, #0071c7, encre, gris, filets, fond pâle). */
:root {
	--ym-ciel: linear-gradient(135deg, #00daff 0%, #0091ff 42%, #0048ff 100%);
	--ym-r: 14px;
	/* Menu : couleurs du site d'avant (Elementor), préférées par Yann le 30/10/2026. */
	--ym-menu: #007dff;
	--ym-menu-actif: #00b9ff;
	/* Bandeau des pages intérieures : bleu clair et apaisant (Yann, 30/10/2026 : le gris faisait froid). */
	--ym-bandeau: linear-gradient(135deg, #e3f4ff 0%, #d3ebfd 100%);
	/* Éléments collants du CRM (onglets, récapitulatif, sommaire de l'espace) sous l'en-tête collant. */
	--ymc-sticky-top: 77px;
}
@media (max-width: 600px) { :root { --ymc-sticky-top: 73px; } }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}
body { -webkit-font-smoothing: antialiased; }
::selection { background: #cbe6ff; color: var(--wp--preset--color--encre); }
a { text-underline-offset: 3px; }
:where(a, button, summary, input, select, textarea):focus-visible { outline: 3px solid var(--wp--preset--color--marque); outline-offset: 3px; border-radius: 6px; }
h1, h2, h3 { text-wrap: balance; }

/* --- En-tête (collant) ---------------------------------------------------------------------------------------------- */
/* Collant : la partie de modèle <header> entière (sur .ym-entete seul, il ne collait qu'à l'intérieur de son <header>). */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 0); }
/* Connecté (0.1.13, Yann) : la barre d'administration est fixe sur ordinateur et tablette => les éléments collants du
   CRM descendent d'autant ; sur téléphone (≤ 600 px) WordPress la laisse défiler avec la page => en-tête collé en haut,
   sans l'espace vide qu'on voyait au-dessus. */
.admin-bar { --ymc-sticky-top: calc(77px + var(--wp-admin--admin-bar--height, 0px)); }
@media (max-width: 600px) {
	.admin-bar { --ymc-sticky-top: 73px; }
	.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; }
}
/* « Accueil » (0.1.13, Yann : on ne retrouvait pas l'accueil sur téléphone) : dans le menu ouvert du téléphone
   seulement ; sur ordinateur, le nom « Yann Miny » à gauche y mène déjà. */
.ym-menu .ym-nav-accueil { display: none; }
.ym-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .ym-nav-accueil { display: flex; }
.ym-entete { background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--wp--preset--color--filet); }
/* Le haut du héros et des bandeaux colle au bas du menu (WordPress met un écart entre les blocs du site). */
.wp-site-blocks > main.ym-principal { margin-block-start: 0; }
.ym-entete-barre { min-height: 76px; gap: 24px; }
.ym-logo { text-decoration: none; color: var(--wp--preset--color--marque); line-height: 1.2; display: block; }
.ym-logo b { display: block; font-size: 1.5rem; font-weight: 600; }
.ym-logo span { font-size: .85rem; color: var(--wp--preset--color--gris); }
.ym-entete-droite { gap: 12px; }
/* WordPress force « color: inherit » sur les liens du menu (.wp-block-navigation .…__content.…__content) : la couleur
   se pose donc sur le menu lui-même, et le survol avec un sélecteur au moins aussi précis que le sien. */
.ym-menu.wp-block-navigation { color: var(--ym-menu); font-weight: 600; font-size: 1rem; }
/* Écart entre les entrées : sur la liste elle-même (WordPress y écrit son propre écart, 20 px). */
.ym-menu.wp-block-navigation .wp-block-navigation__container { gap: 38px; }
.ym-menu .wp-block-navigation-item__content { text-decoration: none; padding-block: 6px; white-space: nowrap; }
.ym-menu.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:hover,
.ym-menu.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content.wp-block-navigation-item__content,
.ym-menu.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content[aria-current] { color: var(--ym-menu-actif); }
/* « Mon espace » : bouton à contour */
.ym-menu .ym-nav-espace > .wp-block-navigation-item__content { border: 1.5px solid var(--wp--preset--color--filet); border-radius: 10px; padding: 9px 16px; }
.ym-menu .ym-nav-espace > .wp-block-navigation-item__content:hover { border-color: var(--ym-menu-actif); }
/* Icône de compte : téléphone seulement (le menu passe dans le bouton burger) */
.ym-compte { display: none; width: 44px; height: 44px; border: 1.5px solid var(--wp--preset--color--filet); border-radius: 10px; place-items: center; color: var(--ym-menu); }
.ym-compte svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; }
@media (max-width: 1100px) { .ym-menu.wp-block-navigation { font-size: .95rem; } .ym-menu.wp-block-navigation .wp-block-navigation__container { gap: 26px; } }
@media (max-width: 599px) {
	.ym-entete-barre { min-height: 72px; }
	.ym-compte { display: grid; }
	.ym-entete-droite { flex-direction: row-reverse; }
	/* Bouton du menu (affiché par WordPress sous 600 px seulement) : même cadre que l'icône de compte */
	.ym-menu .wp-block-navigation__responsive-container-open { width: 44px; height: 44px; border: 1.5px solid var(--wp--preset--color--filet); border-radius: 10px; color: var(--ym-menu); display: grid; place-items: center; }
}
/* Menu ouvert sur téléphone : liste lisible */
.ym-menu .wp-block-navigation__responsive-container.is-menu-open { padding: 24px; }
.ym-menu .is-menu-open .wp-block-navigation__responsive-container-content,
.ym-menu .is-menu-open .wp-block-navigation__container,
.ym-menu .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; text-align: left; }
.ym-menu .is-menu-open .wp-block-navigation__container { gap: 18px; font-size: 1.15rem; }
/* « Mon espace » : sur téléphone, seulement l'icône à côté du menu, pas en double dans le menu ouvert (Yann, 30/10). */
.ym-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .ym-nav-espace { display: none; } /* plus précis que la règle du menu ouvert de WordPress */

/* --- Titre des pages intérieures ------------------------------------------------------------------------------------ */
.ym-page-tete { padding-block: clamp(40px, 6vw, 72px); margin-block-start: 0; }
.ym-page-tete.has-background { background: var(--ym-bandeau) !important; } /* au lieu du fond « pâle » des modèles */
/* Ancres de l'accueil (#seances, #questions, sur les titres) : le titre arrive juste sous le menu collant, avec un peu d'air. */
.ym-principal [id] { scroll-margin-top: calc(var(--ymc-sticky-top) + 14px); }
.ym-titre-page { font-size: clamp(2rem, 4vw, 2.75rem); margin: 0; }
.ym-titre-page::after { content: ""; display: block; width: 48px; height: 3px; border-radius: 3px; background: var(--ym-ciel); margin-top: 16px; }
.ym-page-tete .ym-maj { color: var(--wp--preset--color--gris); font-size: .95rem; margin-top: 12px; }
/* Bandeau centré (0.1.14, demande de Yann) : fil d'Ariane, titre, trait, description, date, encadré d'un soin. */
.ym-page-tete { text-align: center; }
.ym-page-tete .ym-titre-page::after { margin-inline: auto; }
.ym-page-tete .ym-page-intro { margin-inline: auto !important; }
.ym-page-tete .ym-soin-encadre { justify-content: center; }
.ym-page-tete .wp-block-search { margin-inline: auto; max-width: 560px; text-align: left; }
.ym-contenu { padding-block: clamp(32px, 5vw, 64px); }
.ym-contenu p { text-align: left; }

/* Blocs du CRM (réservation, tunnel, espace : 1140 px au plus) jamais plus larges que l'écran. */
.is-layout-constrained > .ymc-book,
.is-layout-constrained > .ymc-guide { max-width: 100%; }

/* --- Pied de page --------------------------------------------------------------------------------------------------- */
.ym-pied { color: #dbe5f0; padding-block: 72px 32px; font-size: .98rem; margin-block-start: 0; }
.ym-pied a { color: #eef4fa; text-decoration: none; }
.ym-pied a:hover { color: #fff; text-decoration: underline; }
.ym-pied-colonnes { gap: 48px; }
.ym-pied-nom { color: #fff; font-size: 1.25rem; font-weight: 800; margin: 0; }
.ym-pied-marque p:not(.ym-pied-nom) { max-width: 38ch; }
.ym-pied-titre { color: #fff !important; font-size: 1.2rem !important; letter-spacing: 0; margin: 0 0 16px; }
.ym-pied-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ym-reseaux .wp-social-link { border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; }
.ym-mentions { border-top: 1px solid rgba(255, 255, 255, .25); padding-top: 24px; margin-top: 32px; font-size: .88rem; }
.ym-mentions p a + a { margin-left: 24px; }

/* --- Encadré d'un soin : durée · prix · Réserver ce soin (lus dans le CRM) ------------------------------------------ */
.ym-soin-encadre { margin-top: 24px; gap: 12px 20px; padding: 14px 18px; background: #fff; border: 1px solid var(--wp--preset--color--filet); border-radius: var(--ym-r); width: fit-content; max-width: 100%; }
.ym-soin-duree, .ym-soin-prix { margin: 0; font-weight: 700; }
.ym-soin-duree::before { content: "⏱ "; }
.ym-soin-prix { color: var(--wp--preset--color--action-fonce); }

/* --- Accueil (maquette v5 validée par Yann le 30/10/2026) --------------------------------------------------------- */
.ym-section { padding-block: clamp(64px, 9vw, 112px); }
.ym-principal > .ym-section, .ym-principal > .ym-heros { margin-block-start: 0; }
/* Titres de section : titre, petit trait dégradé, phrase grise dessous (version A choisie par Yann) */
.ym-tete { display: grid; gap: 18px; margin-bottom: 48px; }
.ym-tete h2, .ym-faq-titre, .ym-moi-texte h2 { margin: 0; }
.ym-tete h2::after, .ym-faq-titre::after, .ym-moi-texte h2::after { content: ""; display: block; width: 48px; height: 3px; border-radius: 3px; background: var(--ym-ciel); margin-top: 16px; }
.ym-tete p { margin: 0; color: var(--wp--preset--color--gris); max-width: 60ch; }
.ym-reserver .ymc-book { margin-inline: auto; }
/* Téléphone : le CRM ajoute 16 px de marge à son bloc ; le thème en met déjà 16 : sans ce double, aide, onglets et vignettes
   s'alignent sur le titre et le texte de la section (Yann, 30/10). */
@media (max-width: 760px) { .ym-principal .ymc-book { padding-inline: 0; padding-top: 0; } }
/* … et l'onglet bleu commence au même endroit que le lien et la vignette : barre des onglets sans marge intérieure ni
   bordure (fond et ombre gardés : elle reste collée en haut pendant le défilement). */
@media (max-width: 640px) { .ym-principal .ymc-book .ymc-tabs { padding: 0; border: 0; } }
/* Le titre de section est celui du thème : celui de l'accueil du tunnel (réglé dans le CRM) n'est pas montré en double.
   Mieux encore : le laisser vide dans le CRM (Réglages → Tunnel), voir la liste de mise en ligne. */
.ym-principal .ymc-g-entry > .ymc-title, .ym-principal .ymc-g-entry > .ymc-g-subtitle { display: none; }
/* Titres et phrases posés directement dans une section : alignés sur la largeur des cartes, pas centrés dans une colonne étroite */
.ym-principal .ym-section.is-layout-constrained > :is(h2, p):not(.alignfull) { max-width: var(--wp--style--global--wide-size); }

/* Héros */
.ym-heros { color: #fff; position: relative; overflow: hidden; isolation: isolate; padding-block: clamp(40px, 5vw, 64px); } /* un tiers moins haut (Yann, 30/10) */
.ym-heros::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 80% at 85% 10%, rgba(255, 255, 255, .25), transparent 60%), radial-gradient(50% 60% at 0% 100%, rgba(0, 40, 140, .35), transparent 70%); }
.ym-heros-grille { gap: 64px !important; }
.ym-heros h1 { color: #fff; margin: 0; font-size: clamp(2rem, 3.4vw, 2.75rem); }
.ym-heros-sous { font-size: clamp(1.05rem, 1.4vw, 1.2rem); margin: 16px 0 26px; max-width: 40ch; color: #eef8ff; }
.ym-btn-blanc .wp-block-button__link { background: #fff !important; color: var(--wp--preset--color--action) !important; box-shadow: 0 6px 16px -6px rgba(0, 20, 60, .3); }
.ym-btn-blanc .wp-block-button__link:hover { color: var(--wp--preset--color--action-fonce) !important; }
.ym-contact { background: #fff; color: var(--wp--preset--color--encre); border-radius: 18px; padding: 30px; box-shadow: var(--wp--preset--shadow--encart); text-align: center; }
.ym-contact-titre { font-size: 1.3rem !important; margin: 0; }
.ym-contact p { color: var(--wp--preset--color--gris); margin: 8px 0 22px; font-size: 1rem; }
.ym-contact-boutons.ym-contact-boutons { gap: 28px; justify-content: center; }
.ym-contact-boutons .wp-block-button__link { padding: .8rem 1.25rem; white-space: nowrap; }
.ym-btn-whatsapp .wp-block-button__link { background: var(--wp--preset--color--whatsapp) !important; color: #fff !important; }
.ym-btn-whatsapp .wp-block-button__link:hover { background: #1ebe5b !important; } /* vrai vert de WhatsApp (#25d366), Yann 30/10 */
.ym-btn-appeler .wp-block-button__link { background: #fff !important; color: var(--ym-menu) !important; border: 1.5px solid var(--ym-menu) !important; } /* contour bleu, plus contrasté */
.ym-btn-appeler .wp-block-button__link:hover { background: var(--ym-menu) !important; color: #fff !important; }
.ym-contact .ym-contact-note { display: block; margin: 16px 0 0; font-size: .9rem; line-height: 1.5; }
@media (max-width: 781px) { .ym-contact { max-width: 520px; } }
@media (max-width: 599px) {
	.ym-heros-texte { text-align: center; }
	.ym-heros-sous { margin-inline: auto; }
	.ym-heros-texte .wp-block-buttons { justify-content: center; }
}

/* Comment ça se passe : 4 étapes reliées par un trait, icônes dessinées en CSS */
.ym-etapes { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding: 0; margin: 0; position: relative; }
.ym-etapes::before { content: ""; position: absolute; top: 28px; left: 12.5%; right: 12.5%; height: 2px; background: var(--wp--preset--color--filet); }
.ym-etapes > li { position: relative; text-align: center; color: var(--wp--preset--color--gris); font-size: .98rem; padding-top: 76px; }
.ym-etapes > li::before { content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 56px; height: 56px; border-radius: 50%; background: #fff; border: 2px solid var(--wp--preset--color--marque); box-sizing: border-box; }
.ym-etapes > li::after { content: ""; position: absolute; top: 16px; left: 50%; transform: translateX(-50%); width: 24px; height: 24px; background: var(--wp--preset--color--action); -webkit-mask: var(--ym-icone) center / contain no-repeat; mask: var(--ym-icone) center / contain no-repeat; }
.ym-etapes > li:nth-child(1) { --ym-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='4.5' width='18' height='17' rx='2.5'/%3E%3Cpath d='M3 9.5h18M8 2.5v4M16 2.5v4'/%3E%3C/svg%3E"); }
.ym-etapes > li:nth-child(2) { --ym-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 5h11a3 3 0 0 1 3 3v12H7a3 3 0 0 1-3-3z'/%3E%3Cpath d='M8 10h6M8 14h6'/%3E%3C/svg%3E"); }
.ym-etapes > li:nth-child(3) { --ym-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10z'/%3E%3C/svg%3E"); }
.ym-etapes > li:nth-child(4) { --ym-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='6.5' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='12' r='4'/%3E%3Cpath d='M6.5 16h11'/%3E%3C/svg%3E"); }
.ym-etapes > li strong { display: block; color: var(--wp--preset--color--encre); font-size: 1.05rem; margin-bottom: 6px; }
@media (max-width: 781px) {
	.ym-etapes { grid-template-columns: 1fr; gap: 28px; }
	.ym-etapes::before { top: 28px; bottom: 28px; left: 27px; right: auto; width: 2px; height: auto; }
	.ym-etapes > li { text-align: left; padding: 4px 0 0 76px; min-height: 56px; }
	.ym-etapes > li::before { left: 0; transform: none; }
	.ym-etapes > li::after { left: 16px; transform: none; }
}

/* Questions fréquentes : questions à gauche, image à droite qui suit le défilement (téléphone : questions d'abord) */
.ym-faq-grille { gap: 64px !important; align-items: flex-start !important; }
.ym-faq-titre { margin-bottom: 28px !important; }
.ym-question { border-bottom: 1px solid var(--wp--preset--color--filet); padding: 18px 0; margin: 0 !important; }
.ym-question summary { cursor: pointer; font-weight: 700; list-style: none; position: relative; padding-right: 36px; }
.ym-question summary::-webkit-details-marker { display: none; }
.ym-question summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 10px; height: 10px; border-right: 2px solid var(--wp--preset--color--action); border-bottom: 2px solid var(--wp--preset--color--action); transform: translateY(-70%) rotate(45deg); transition: transform .2s; }
.ym-question[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.ym-question summary:hover { color: var(--wp--preset--color--action); }
.ym-question > p { color: var(--wp--preset--color--gris); margin: 12px 0 0; }
.ym-faq-photo { position: sticky; top: calc(var(--ymc-sticky-top) + 24px); }
.ym-faq-photo img, .ym-moi-photo img { border-radius: 20px; width: 100%; height: auto; display: block; }
@media (max-width: 781px) { .ym-faq-photo { display: none; } } /* colonnes empilées : la bougie tombait sous les questions, juste avant la photo de Yann (Yann, 30/10) */

/* Présentation */
.ym-moi-grille { gap: 64px !important; align-items: center !important; }
.ym-chapeau { font-size: 1.2rem; font-weight: 700; color: var(--wp--preset--color--action-fonce); margin-top: 24px !important; }
@media (max-width: 599px) { .ym-moi-photo img { aspect-ratio: 1 / 1; object-fit: cover; } }
/* Photo de Yann plus petite quand les colonnes s'empilent : 200 px, centrée au-dessus du titre (Yann, 30/10 : 343 px, trop grosse). */
@media (max-width: 781px) { .ym-moi-photo img { max-width: 200px; margin-inline: auto; } }

/* Témoignages : carrousel de l'extension d'avis (3 visibles, flèches, points ; 1 à la fois sur téléphone) */
.ym-avis-lien { margin-top: 28px !important; }
@media (max-width: 599px) { .ym-avis .ymr-slider .ymr-track { grid-auto-columns: 100%; } }

/* --- Pages : introduction sous le titre, cartes (soins, conseils), encart « Nos soins » ------------------------------- */
.ym-page-intro { color: var(--wp--preset--color--gris); max-width: 60ch; margin-top: 18px !important; font-size: 1.1rem; }
.ym-carte { background: #fff; border: 1px solid var(--wp--preset--color--filet); border-radius: var(--ym-r); overflow: hidden; height: 100%; gap: 10px; padding-bottom: 20px; }
.ym-carte > *:not(.ym-carte-image) { margin-inline: 20px !important; }
.ym-carte-image { margin: 0 !important; }
.ym-carte-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ym-carte-titre { font-size: 1.2rem !important; margin-top: 8px !important; }
.ym-carte-titre a { color: var(--wp--preset--color--encre); text-decoration: none; }
.ym-carte-titre a:hover { color: var(--wp--preset--color--action); }
.ym-carte-texte { color: var(--wp--preset--color--gris); font-size: .95rem; }
.ym-carte-texte p { margin: 0; }
.ym-carte-date { color: var(--wp--preset--color--gris); font-size: .85rem; margin-top: 14px !important; }
.ym-carte-faits { gap: 6px 14px; }
.ym-carte-faits p { margin: 0; font-weight: 700; font-size: .95rem; }
.ym-carte-duree::before { content: "⏱ "; }
.ym-carte-prix { color: var(--wp--preset--color--action-fonce); }
.ym-carte-actions { margin-top: auto !important; gap: 12px; align-items: center; justify-content: space-between; }
.ym-carte-plus { font-weight: 700; text-decoration: none; white-space: nowrap; }
.ym-carte-reserver .wp-block-button__link { padding: .65rem 1.1rem; white-space: nowrap; }
.ym-pagination { margin-top: 40px; gap: 8px; font-weight: 700; }
.ym-pagination a, .ym-pagination .current { padding: 6px 12px; border-radius: 8px; text-decoration: none; }
.ym-pagination .current { background: var(--wp--preset--color--action); color: #fff; }
.ym-liens-soins { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ym-liens-soins a { display: inline-block; padding: 9px 16px; border: 1.5px solid var(--wp--preset--color--filet); border-radius: 10px; background: #fff; text-decoration: none; font-weight: 700; color: var(--wp--preset--color--nuit); }
.ym-liens-soins a:hover { border-color: var(--wp--preset--color--nuit); }

/* --- Guidance, Ateliers, Qui suis-je (repris du thème 0.1.6, au nouveau design) ---------------------------------- */
.ym-section h2 { margin-top: 0; }
.is-style-carte { background: #fff; border: 1px solid var(--wp--preset--color--filet); border-radius: var(--ym-r); }
.ym-format, .ym-tarif { padding: 28px; height: 100%; }
.ym-format h3 { margin: 0; }
.ym-format-lieu { color: var(--wp--preset--color--action); font-weight: 700; margin-top: 4px !important; }
.ym-pastilles { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ym-pastilles li { background: #eaf5ff; color: var(--wp--preset--color--action-fonce); border-radius: 999px; padding: 5px 14px; font-weight: 700; font-size: .9rem; }
.ym-bientot { color: var(--wp--preset--color--gris); font-style: italic; }
.ym-chiffres strong { display: block; font-size: 2rem; color: var(--wp--preset--color--action); line-height: 1.1; }
.ym-chiffres p { color: var(--wp--preset--color--gris); font-size: .95rem; margin: 0; }
.ym-prix { color: var(--wp--preset--color--gris); }
.ym-prix strong { font-size: 2rem; color: var(--wp--preset--color--encre); }
.ym-coches { list-style: none; padding: 0; }
.ym-coches li { padding-left: 26px; position: relative; margin: 6px 0; }
.ym-coches li::before { content: "✓"; position: absolute; left: 0; color: var(--wp--preset--color--action); font-weight: 800; }
.ym-essai { color: var(--wp--preset--color--gris); margin-top: 8px; }
.ym-recit p { text-align: left; }
.ym-portrait img { border-radius: 20px; width: 100%; height: auto; display: block; }
@media (min-width: 782px) { .ym-portrait-colle .ym-portrait { position: sticky; top: calc(var(--ymc-sticky-top) + 24px); } }
.ym-section .ym-etapes { margin-top: 32px; }

/* Barre « Réserver une séance » : téléphone seulement, après le héros, cachée pendant le tunnel (site.js) */
.ym-barre-rdv { display: none; }
@media (max-width: 599px) {
	.ym-barre-rdv { display: block; position: fixed; inset: auto 0 0; z-index: 40; padding: 8px 16px calc(8px + env(safe-area-inset-bottom, 0px)); background: rgba(255, 255, 255, .97); border-top: 1px solid var(--wp--preset--color--filet); transform: translateY(110%); transition: transform .25s ease; }
	.ym-barre-rdv.is-on { transform: none; }
	/* Adoucie (Yann, 30/10) : bouton blanc à contour bleu plutôt que plein, plus fin ; la barre reste là pour qui la cherche. */
	.ym-barre-rdv a { display: flex; justify-content: center; width: 100%; box-sizing: border-box; text-decoration: none; padding: .6rem 1rem; border-radius: 10px; background: #fff; color: var(--ym-menu); border: 1.5px solid var(--ym-menu); font-weight: 600; }
	.home .ym-pied { padding-bottom: 96px; }
}

/* Sections de texte (page Lyon) : paragraphes à la largeur du titre, pas à la largeur large des sections. */
.ym-principal .ym-section.is-layout-constrained.ym-texte > p { max-width: var(--wp--style--global--content-size); }

/* Fil d'Ariane de Rank Math (au-dessus du titre des articles et des pages), repris de ym-theme pour le référencement. */
.ym-page-tete .rank-math-breadcrumb { font-size: .9rem; color: var(--wp--preset--color--gris); margin: 0 0 14px; }
.ym-page-tete .rank-math-breadcrumb p { margin: 0; }
.ym-page-tete .rank-math-breadcrumb a { color: var(--ym-menu); text-decoration: none; }
.ym-page-tete .rank-math-breadcrumb a:hover { text-decoration: underline; }
.ym-page-tete .rank-math-breadcrumb .separator { margin: 0 6px; }

/* Bloc auteur sous les articles de conseil (photo, nom, biographie, lien vers Qui suis-je). */
.ym-auteur-section { padding-block: 0 clamp(32px, 5vw, 56px); }
.ym-auteur { display: flex; flex-direction: column; gap: 10px; padding: 22px 24px; background: #fff; border: 1px solid var(--wp--preset--color--filet); border-radius: var(--ym-r); }
.ym-auteur .wp-block-post-author { margin: 0; align-items: center; }
.ym-auteur .wp-block-post-author__avatar img { border-radius: 50%; display: block; }
.ym-auteur .wp-block-post-author__byline { font-size: .85rem; color: var(--wp--preset--color--gris); margin: 0; }
.ym-auteur .wp-block-post-author__name { font-weight: 700; color: var(--wp--preset--color--encre); }
.ym-auteur .wp-block-post-author__bio { color: var(--wp--preset--color--gris); margin-top: 6px; }
.ym-auteur-lien { margin: 0; }
.ym-auteur-lien a { color: var(--ym-menu); font-weight: 600; }

/* --- Texte des articles et des pages (.ym-contenu) : mise en forme de lecture (Yann, 30/10 : avec Elementor, ses
   modèles d'article donnaient des intertitres lisibles ; ici les niveaux 4 et 5 sortaient en 14-17 px). ------------- */
.ym-contenu.ym-contenu > * { margin-block-start: 1em; }
.ym-contenu.ym-contenu > :first-child { margin-block-start: 0; }
.ym-contenu :is(p, li) { line-height: 1.75; }
.ym-contenu :is(h2, h3, h4, h5, h6) { color: var(--wp--preset--color--encre); letter-spacing: -0.01em; text-wrap: balance; }
.ym-contenu.ym-contenu > h2 { font-size: clamp(1.55rem, 2.4vw, 1.85rem); font-weight: 800; line-height: 1.25; margin-block-start: 2.2em; }
.ym-contenu.ym-contenu > h3 { font-size: clamp(1.35rem, 2vw, 1.5rem); font-weight: 700; line-height: 1.3; margin-block-start: 1.9em; }
.ym-contenu.ym-contenu > h4 { font-size: 1.35rem; font-weight: 700; line-height: 1.35; margin-block-start: 1.8em; }
.ym-contenu.ym-contenu > :is(h5, h6) { font-size: 1.25rem; font-weight: 700; line-height: 1.4; margin-block-start: 1.7em; }
.ym-contenu.ym-contenu > :is(h2, h3, h4, h5, h6) + * { margin-block-start: .5em; }
.ym-contenu.ym-contenu > :is(h2, h3, h4, h5, h6):first-child { margin-block-start: 0; }
/* Blocs « espace » repris d'Elementor : les titres portent déjà leur espace (sinon double écart). */
.ym-contenu .wp-block-spacer { display: none; }
.ym-contenu :is(ul, ol) { padding-left: 1.4em; }
.ym-contenu li + li { margin-top: .45em; }
.ym-contenu li::marker { color: var(--wp--preset--color--action); }
.ym-contenu a:not(.wp-element-button) { color: var(--wp--preset--color--action); text-decoration: underline; text-decoration-thickness: 1px; }
.ym-contenu strong { color: var(--wp--preset--color--encre); }
.ym-contenu blockquote { margin-inline: 0; padding: 4px 0 4px 1.2em; border-left: 3px solid var(--wp--preset--color--marque); color: var(--wp--preset--color--gris); font-style: italic; }
.ym-contenu img { border-radius: var(--ym-r); height: auto; }
