/* CMSM — composants générés par les shortcodes de cmsm-core.php (couleurs de la maquette client) */
:root {
	--cmsm-marine: #0E1A24; --cmsm-marine2: #16283A; --cmsm-marine3: #23394D;
	--cmsm-vert: #1F5F3A; --cmsm-accent: var(--e-global-color-accent, #CFEF3A); --cmsm-creme: #F4F3EE;
	--cmsm-gris: #4A5560; --cmsm-gris2: #6A737C; --cmsm-bord: #E2E0D8; --cmsm-ph: #E4E2DA;
	--cmsm-titre: "Barlow Condensed", sans-serif;
}

/* Cartes d'articles */
.cmsm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.cmsm-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--cmsm-bord); border-radius: 16px; overflow: hidden; text-decoration: none; color: var(--cmsm-marine); transition: transform .2s, box-shadow .2s; height: 100%; }
.cmsm-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(14, 26, 36, .1); color: var(--cmsm-marine); }
.cmsm-card:focus-visible { outline: 3px solid var(--cmsm-vert); outline-offset: 3px; }
.cmsm-card__media { aspect-ratio: 16 / 9; background: var(--cmsm-ph); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.cmsm-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cmsm-card__ph { font-family: var(--cmsm-titre); font-weight: 800; font-size: 40px; color: #C9C6BC; letter-spacing: .08em; }
.cmsm-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex-grow: 1; }
.cmsm-card__meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.cmsm-card__cat { color: var(--cmsm-vert); }
.cmsm-card__date { color: var(--cmsm-gris2); }
.cmsm-card__title { margin: 0; font-family: var(--cmsm-titre); font-weight: 700; font-size: 25px; line-height: 1.12; text-transform: none; color: inherit; }
.cmsm-card__excerpt { margin: 0; color: var(--cmsm-gris); font-size: 16px; }
.cmsm-card__more { margin-top: auto; padding-top: 8px; font-weight: 700; font-size: 15px; color: var(--cmsm-vert); }
.cmsm-pill { background: var(--cmsm-accent); color: var(--cmsm-marine); padding: 4px 10px; border-radius: 999px; }

/* Carte « À la une » (hero sombre) */
.cmsm-card--une { background: var(--cmsm-marine2); border: 0; border-radius: 20px; color: var(--cmsm-creme); }
.cmsm-card--une:hover { color: var(--cmsm-creme); box-shadow: 0 16px 40px rgba(0, 0, 0, .35); }
.cmsm-card--une .cmsm-card__media { background: var(--cmsm-marine3); aspect-ratio: 16 / 8; }
.cmsm-card--une .cmsm-card__ph { color: #3A5266; }
.cmsm-card--une .cmsm-card__body { padding: 24px; }
.cmsm-card--une .cmsm-card__cat, .cmsm-card--une .cmsm-card__date { color: #B9C2CA; }
.cmsm-card--une .cmsm-card__title { font-size: 30px; line-height: 1.1; }
.cmsm-card--une .cmsm-card__excerpt { color: #C9D1D8; }

/* Bandeau « En ce moment » */
.cmsm-bandeau-wrap { background: var(--cmsm-accent); }
.cmsm-bandeau { max-width: 1200px; margin: 0 auto; padding: 12px 24px; display: flex; flex-wrap: wrap; gap: 8px 28px; align-items: center; font-weight: 600; font-size: 15px; color: var(--cmsm-marine); }
.cmsm-bandeau__label { font-family: var(--cmsm-titre); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.cmsm-bandeau a { color: var(--cmsm-marine); text-decoration: underline; text-underline-offset: 3px; }

/* Filtres par spécialité */
.cmsm-filtres { display: flex; flex-wrap: wrap; gap: 10px; }
.cmsm-filtres a { min-height: 44px; display: inline-flex; align-items: center; padding: 10px 18px; border-radius: 999px; border: 1.5px solid #C9C6BC; background: #fff; color: var(--cmsm-marine); font-weight: 600; font-size: 15px; text-decoration: none; }
.cmsm-filtres a:hover { border-color: var(--cmsm-marine); color: var(--cmsm-marine); }
.cmsm-filtres a[aria-current] { background: var(--cmsm-marine); border-color: var(--cmsm-marine); color: var(--cmsm-creme); font-weight: 700; }

.cmsm-pagination { margin-top: 32px; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.cmsm-pagination .page-numbers { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 14px; border-radius: 999px; border: 1.5px solid #C9C6BC; background: #fff; color: var(--cmsm-marine); font-weight: 700; text-decoration: none; }
.cmsm-pagination .current { background: var(--cmsm-marine); border-color: var(--cmsm-marine); color: var(--cmsm-creme); }

/* Spécialités */
.cmsm-specs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 16px; }
.cmsm-spec { display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: 16px; background: var(--cmsm-creme); border: 1px solid var(--cmsm-bord); color: var(--cmsm-marine); text-decoration: none; transition: border-color .2s, transform .2s; }
.cmsm-spec:hover { border-color: var(--cmsm-vert); transform: translateY(-3px); color: var(--cmsm-marine); }
.cmsm-spec__num { font-family: var(--cmsm-titre); font-weight: 800; font-size: 40px; line-height: 1; color: var(--cmsm-vert); }
.cmsm-spec__title { font-family: var(--cmsm-titre); font-weight: 700; font-size: 24px; line-height: 1.1; }
.cmsm-spec__text { color: var(--cmsm-gris); font-size: 16px; flex-grow: 1; }
.cmsm-spec__more { font-weight: 700; font-size: 15px; color: var(--cmsm-vert); padding: 8px 0 0; }

/* Équipe groupée */
.cmsm-team { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 20px; align-items: start; }
.cmsm-team__group { background: #fff; border: 1px solid var(--cmsm-bord); border-radius: 16px; padding: 24px; }
.cmsm-team__group header { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 14px; }
.cmsm-team__group h3 { margin: 0; font-family: var(--cmsm-titre); font-weight: 700; font-size: 24px; text-transform: uppercase; }
.cmsm-team__group h3 a { color: var(--cmsm-marine); text-decoration: none; }
.cmsm-team__group h3 a:hover { color: var(--cmsm-vert); }
.cmsm-team__group header span, .cmsm-team__group header span a { font-size: 14px; color: var(--cmsm-gris2); font-weight: 600; white-space: nowrap; text-decoration: none; }
.cmsm-team__group ul { list-style: none; margin: 0; padding: 0; }
.cmsm-team__group li { display: flex; align-items: center; gap: 12px; border-top: 1px solid #ECEAE3; padding: 12px 0 0; margin-top: 12px; }
.cmsm-ini { width: 44px; height: 44px; flex-shrink: 0; border-radius: 50%; background: var(--cmsm-ph); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; color: var(--cmsm-gris); object-fit: cover; }
.cmsm-team__who { display: flex; flex-direction: column; line-height: 1.25; flex-grow: 1; }
.cmsm-team__who span { font-size: 14px; color: var(--cmsm-gris2); }
.cmsm-team__rdv { font-size: 14px; font-weight: 700; padding: 10px 0; white-space: nowrap; color: var(--cmsm-vert); text-align: right; line-height: 1.1; }
.cmsm-team__rdv small, .cmsm-btn small { display: block; font-weight: 600; font-size: 11px; color: var(--cmsm-gris2); }

/* Cartes praticiens (pages spécialités) */
.cmsm-team-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 20px; }
.cmsm-pcard { background: #fff; border: 1px solid var(--cmsm-bord); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.cmsm-pcard__media { aspect-ratio: 1; background: var(--cmsm-ph); display: flex; align-items: center; justify-content: center; }
.cmsm-pcard__img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.cmsm-ini--big { width: 96px; height: 96px; font-size: 32px; background: #fff; }
.cmsm-pcard__body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 4px; flex-grow: 1; }
.cmsm-pcard__body strong { font-family: var(--cmsm-titre); font-size: 22px; line-height: 1.1; }
.cmsm-pcard__body > span { font-size: 15px; color: var(--cmsm-gris2); flex-grow: 1; margin-bottom: 10px; }
.cmsm-btn { display: inline-flex; flex-direction: column; align-items: center; align-self: flex-start; background: var(--cmsm-accent); color: var(--cmsm-marine); font-weight: 700; border-radius: 999px; padding: 10px 20px; text-decoration: none; line-height: 1.1; }
.cmsm-btn:hover { background: color-mix(in srgb, var(--cmsm-accent) 85%, #000); color: var(--cmsm-marine); }
.cmsm-btn small { color: #3B4A20; }

/* Infos pratiques */
.cmsm-infos p { margin: 0 0 12px; }
.cmsm-infos a { color: inherit; font-weight: 600; }
.cmsm-reseaux { display: flex; gap: 20px; }
.cmsm-reseaux a { color: inherit; }
.cmsm-carte iframe { width: 100%; height: 220px; border: 0; border-radius: 12px; display: block; margin-bottom: 8px; }
.cmsm-carte a { color: inherit; font-size: 14px; }
.cmsm-vide { color: var(--cmsm-gris); }

@media (prefers-reduced-motion: reduce) { .cmsm-card, .cmsm-spec { transition: none; } .cmsm-card:hover, .cmsm-spec:hover { transform: none; } }

/* Titres de page générés (archives) */
.cmsm-h1 { margin: 0; font-family: var(--cmsm-titre); font-weight: 800; font-size: clamp(44px, 6vw, 72px); line-height: .98; text-transform: uppercase; color: var(--cmsm-creme); }
.cmsm-postmeta { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #B9C2CA; }
.cmsm-postmeta a.cmsm-pill { text-decoration: none; }
.cmsm-postimg { margin: 0; }
.cmsm-postimg img { width: 100%; height: auto; border-radius: 20px; display: block; }
.cmsm-video { margin: 24px 0; aspect-ratio: 16 / 9; }
.cmsm-video iframe { width: 100%; height: 100%; border: 0; border-radius: 12px; }
/* Contenu des articles */
.cmsm-prose { font-size: 18px; line-height: 1.65; }
.cmsm-prose h2, .cmsm-prose h3 { font-family: var(--cmsm-titre); text-transform: none; margin: 1.6em 0 .5em; line-height: 1.1; }
.cmsm-prose h2 { font-size: 34px; } .cmsm-prose h3 { font-size: 26px; }
.cmsm-prose figure { margin: 24px 0; } .cmsm-prose img { border-radius: 12px; max-width: 100%; height: auto; }
.cmsm-prose a { color: var(--cmsm-vert); font-weight: 600; }
.cmsm-prose ul li { margin-bottom: .35em; }
/* Listes à puces vertes (pages spécialités) */
.cmsm-liste ul { list-style: none; padding: 0; margin: 0 0 1em; display: grid; gap: 10px; }
.cmsm-liste ul li { position: relative; padding-left: 30px; }
.cmsm-liste ul li::before { content: ""; position: absolute; left: 0; top: .45em; width: 16px; height: 16px; border-radius: 50%; background: var(--cmsm-accent); box-shadow: inset 0 0 0 4px var(--cmsm-vert); }
.cmsm-liste h2, .cmsm-liste h3 { font-family: var(--cmsm-titre); line-height: 1.1; margin: 1.2em 0 .5em; }
.cmsm-liste h2:first-child, .cmsm-liste h3:first-child { margin-top: 0; }
/* Ancre décalée sous l'en-tête collant */
[id] { scroll-margin-top: 110px; }

/* Spécificité renforcée face aux couleurs de liens du kit Elementor */
a.cmsm-card, a.cmsm-card:hover { color: var(--cmsm-marine); }
a.cmsm-card .cmsm-card__title { color: var(--cmsm-marine); }
a.cmsm-card.cmsm-card--une, a.cmsm-card.cmsm-card--une:hover, a.cmsm-card.cmsm-card--une .cmsm-card__title { color: var(--cmsm-creme); }
a.cmsm-card:hover .cmsm-card__title { color: var(--cmsm-vert); }
a.cmsm-card.cmsm-card--une:hover .cmsm-card__title { color: var(--cmsm-accent); }
a.cmsm-spec, a.cmsm-spec:hover { color: var(--cmsm-marine); }
.cmsm-filtres a, .cmsm-filtres a:hover { color: var(--cmsm-marine); }
.cmsm-filtres a[aria-current] { color: var(--cmsm-creme); }

/* Marque de l'en-tête */
.cmsm-header .elementor-widget-html { flex-shrink: 0; }
.cmsm-header a.cmsm-brand, .cmsm-header a.cmsm-brand:hover { color: var(--cmsm-creme); }
.cmsm-brand { white-space: nowrap; display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--cmsm-creme); }
.cmsm-brand:hover { color: var(--cmsm-creme); }
.cmsm-brand__logo { background: #fff; border-radius: 12px; padding: 5px 7px; display: flex; flex-shrink: 0; }
.cmsm-brand__logo img { height: 52px; width: auto; display: block; }
.cmsm-brand__txt { display: flex; flex-direction: column; line-height: 1.15; }
.cmsm-brand__txt strong { font-family: var(--cmsm-titre); font-weight: 700; font-size: 21px; letter-spacing: .02em; }
.cmsm-brand__txt span { font-size: 13px; color: #B9C2CA; }
@media (max-width: 767px) {
	.cmsm-brand__logo img { height: 42px; }
	.cmsm-brand__txt strong { font-size: 17px; }
	.cmsm-brand__txt span { display: none; }
	#header-rdv { display: none; }
}
/* Pied de page : liens clairs */
.cmsm-footer a, .cmsm-footer-links a { color: var(--cmsm-creme); }
.cmsm-footer .cmsm-infos, .cmsm-footer-links { color: var(--cmsm-creme); }
.cmsm-archive-intro, .cmsm-archive-intro p { color: #C9D1D8; font-size: 19px; max-width: 40rem; margin: 0; }
.cmsm-team__rdv, .cmsm-team__rdv:hover { color: var(--cmsm-vert); }

.cmsm-h1--post { font-size: clamp(36px, 5vw, 60px); line-height: 1.02; text-transform: none; }
.cmsm-rdv-box .elementor-button { width: 100%; justify-content: center; }
.cmsm-rdv-box .elementor-widget-button { width: 100%; }
@media (min-width: 1025px) { .cmsm-sticky-aside { position: sticky; top: 110px; } }
.cmsm-archive-intro .elementor-shortcode, .cmsm-archive-intro .elementor-shortcode p { color: #C9D1D8 !important; font-size: 19px; }
/* En-tête : le menu se rétracte pour laisser la place au bouton */
.cmsm-header-right { min-width: 0; }
.cmsm-header .elementor-widget-nav-menu { flex: 0 1 auto; width: auto; min-width: 0; }
.cmsm-header .elementor-widget-button { flex-shrink: 0; }
/* Les e-con enfants héritent de --width:100% : on les libère dans l'en-tête */
.cmsm-header > .e-con-inner { flex-wrap: nowrap !important; }
.cmsm-header .cmsm-header-right { --width: auto; flex: 1 1 auto; }
.elementor .cmsm-header.e-con { --flex-wrap-mobile: nowrap; --flex-wrap: nowrap; }
.elementor .cmsm-header .cmsm-header-right.e-con { --flex-shrink: 1; --flex-grow: 1; --width: auto; min-width: 0; }
.elementor .cmsm-header .elementor-widget-nav-menu { --container-widget-width: auto; --container-widget-flex-grow: 0; }
.cmsm-reseaux a { font-size: 14px; }
/* L'accent suit la couleur globale « Accent » du kit Elementor (variable définie sur body.elementor-kit-4, pas sur :root) */
body { --cmsm-accent: var(--e-global-color-accent, #CFEF3A); }
