/*
 * FitMove — système graphique commun (tous les thèmes).
 *
 * Chargée en dernier. Rassemble ce qui doit être identique partout :
 *  1. badges et étiquettes (une seule famille, plusieurs variantes) ;
 *  2. accordéons (FAQ, infos pratiques) ;
 *  3. téléphone : header, bandeau, menu, rythme des sections, offres,
 *     coaching, questionnaire, cartes et pied de page.
 *
 * Chaque thème garde son identité : les valeurs viennent de ses réglages
 * (couleurs, polices, arrondis, majuscules des boutons, forme des badges).
 */

/* ===========================================================================
 * 1. Badges et étiquettes
 * ---------------------------------------------------------------------------
 * Référence : la capsule « HYROX » (une capsule légère, une pastille pleine).
 * Variantes : promo (pleine, couleur principale), nouveauté (pastille dans une
 * capsule), offre (encre), info (contour), catégorie (teinte + point), statut.
 * ======================================================================== */
body {
	--fm-badge-h: 24px;
	--fm-badge-px: 10px;
	--fm-badge-fs: 11.5px;
	--fm-badge-fw: 800;
	--fm-badge-track: .05em;
	--fm-badge-case: uppercase;
	--fm-badge-radius: 999px;
	--fm-cap-radius: 999px;
}
body.fm-btn-lower { --fm-badge-case: none; --fm-badge-fs: 12.5px; --fm-badge-track: 0; --fm-badge-fw: 700; }
body.fm-badge-soft { --fm-badge-radius: 6px; --fm-cap-radius: 10px; }
body.fm-badge-square { --fm-badge-radius: 2px; --fm-cap-radius: 3px; }

/* Mesures communes */
.fm-badge,
.fm-hero__news-tag,
.fm-menu__new,
.fm-price__badge,
.fm-activity__tag,
.fm-plans__badge,
.fm-pterm__badge,
.fm-coffer__tag,
.fm-pcard__ribbon,
.fm-pcard__flag,
.fm-machine__cat,
.fm-mdialog__cat,
.fm-schedule__badge,
.fm-cbook__state,
.fm-banner__tag {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: var(--fm-badge-h);
	padding: 0 var(--fm-badge-px);
	border-radius: var(--fm-badge-radius);
	font-family: var(--fm-font-body);
	font-size: var(--fm-badge-fs);
	font-weight: var(--fm-badge-fw);
	font-style: normal;
	font-stretch: normal;
	letter-spacing: var(--fm-badge-track);
	text-transform: var(--fm-badge-case);
	line-height: 1.1;
	white-space: nowrap;
}
/* Petites (sur un onglet, dans un lien de menu, dans un créneau) */
.fm-pterm__badge, .fm-menu__new, .fm-plans__badge, .fm-cbook__state, .fm-hero__news-tag { --fm-badge-h: 20px; --fm-badge-px: 8px; --fm-badge-fs: 10.5px; }
body.fm-btn-lower .fm-pterm__badge, body.fm-btn-lower .fm-menu__new, body.fm-btn-lower .fm-plans__badge, body.fm-btn-lower .fm-cbook__state, body.fm-btn-lower .fm-hero__news-tag { --fm-badge-fs: 11.5px; }

/* Promo et nouveauté : pleines, couleur principale */
.fm-badge--promo, .fm-badge--new, .fm-hero__news-tag, .fm-menu__new, .fm-price__badge, .fm-pcard__ribbon.is-promo {
	background: var(--fm-primary, #E1061B);
	color: var(--fm-on-primary, #fff);
	box-shadow: none;
}
/* Offre spéciale : encre (texte du thème) */
.fm-badge--offer, .fm-pterm__badge, .fm-plans__badge {
	background: var(--fm-text, #0a0a0a);
	color: var(--fm-bg, #fff);
}
.fm-section--tone-dark .fm-badge--offer, .fm-plans--s-dark .fm-pterm__badge { background: #fff; color: #0a0a0a; }
/* Info : contour léger */
.fm-badge--info, .fm-coffer__tag, .fm-pcard__ribbon:not(.is-promo), .fm-pcard__flag {
	background: color-mix(in srgb, currentColor 7%, transparent);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 18%, transparent);
	color: inherit;
}
.fm-pcard__ribbon:not(.is-promo) svg { color: var(--fm-primary, #E1061B); }
/* Catégorie : teinte + point de couleur */
.fm-badge--cat, .fm-machine__cat, .fm-mdialog__cat {
	background: color-mix(in srgb, currentColor 9%, transparent);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 14%, transparent);
	color: inherit;
}
.fm-badge--cat::before, .fm-machine__cat::before, .fm-mdialog__cat::before {
	content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--fm-primary, #E1061B);
}
/* Machines : petite pastille à la taille du mot (pas étirée sur la carte), un peu d'air avant le nom. */
.fm-machine__cat, .fm-mdialog__cat { --fm-badge-h: 20px; --fm-badge-px: 8px; --fm-badge-fs: 10.5px; align-self: flex-start; width: auto; max-width: max-content; }
.fm-machine__cat { margin-bottom: 6px; }
body.fm-btn-lower .fm-machine__cat, body.fm-btn-lower .fm-mdialog__cat { --fm-badge-fs: 11.5px; }
/* Catégorie des cours : même variante, sans couper le texte */
.fm-activity__tag { max-width: 100%; overflow: hidden; text-overflow: ellipsis; background: color-mix(in srgb, var(--fm-primary, #E1061B) 12%, transparent) !important; color: inherit !important; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--fm-primary, #E1061B) 30%, transparent); }
.fm-activity__tag::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--fm-primary, #E1061B); }
@media (max-width: 640px) { .fm-courses-grid .fm-activity__tag { --fm-badge-h: 20px; --fm-badge-fs: 10px; --fm-badge-px: 7px; } }
/* Statut : point + texte */
.fm-badge--status, .fm-schedule__badge {
	background: color-mix(in srgb, #1f9d55 14%, transparent);
	color: inherit;
}
.fm-badge--status::before, .fm-schedule__badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #1f9d55; }

/* Capsules : la référence HYROX, appliquée aux autres capsules */
.fm-hero__news, .fm-aff { border-radius: var(--fm-cap-radius); }
.fm-hero__news { display: flex; width: fit-content; padding: 4px 14px 4px 4px; }
/* La capsule est sur sa propre ligne : jamais collée au texte qui suit (ex. « Salle de sport… »). */
.fm-aff { display: flex; }
.fm-hero--center .fm-hero__news, .fm-hero--minimal .fm-hero__news, .has-text-align-center > .fm-hero__news, .has-text-align-center > .fm-aff, .fm-section--ta-center .fm-aff { margin-inline: auto; }

/* Formules côte à côte : même hauteur, et le bas de carte (validité de l'offre)
   toujours collé en bas, sans bande vide sous la carte la plus courte. */
.fm-pgrid > .fm-pcard > .fm-pcard__features { flex-grow: 1; align-content: start; }
.fm-plans--s-list .fm-pgrid > .fm-pcard > .fm-pcard__features { flex-grow: 0; }

/* ===========================================================================
 * Cartes de formules : une hiérarchie épurée, la même sur tous les thèmes
 * 1. Badge unique (nature exacte de l'avantage)  2. Nom  3. Description
 * 4. Prix  5. Fréquence et engagement  6. Frais réellement facturés
 * 7. Bouton  8. Avantages inclus  9. Validité de l'offre (bas de carte)
 * ======================================================================== */
.fm-pcard__sticker, .fm-pcard__kind, .fm-pcard__ends { display: none !important; }
.fm-pcard.has-promo .fm-pcard__name { padding-right: 0 !important; }
.fm-pcard__top > .fm-pcard__ribbon:first-child { margin: 0 0 12px !important; }
.fm-pcard__ribbon.is-promo {
	background: color-mix(in srgb, currentColor 10%, transparent) !important;
	color: inherit !important;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 26%, transparent) !important;
}
.fm-pcard__ribbon.is-promo svg { color: inherit; }
.fm-pcard__name { margin-top: 0 !important; }
.fm-pcard__price { margin-top: 12px !important; }
.fm-pcard__eng { margin-top: 4px !important; font-size: 13.5px; opacity: .8; }
.fm-pcard__fee { margin-top: 12px !important; }
.fm-pcard__then { margin-top: 4px !important; font-size: 13.5px; }
.fm-pcard__cta { margin-top: 16px !important; }
.fm-pcard__features { gap: 10px !important; margin-top: 20px !important; padding-top: 18px !important; }
.fm-pcard__features li { line-height: 1.3; }
.fm-pcard__features li small { display: block; margin-top: 1px; font-size: 12.5px; opacity: .72; }
/* Sans promo ni conditions : la liste finit la carte, avec le même air qu'en haut. */
.fm-plans--s-banner .fm-pcard > .fm-pcard__features:last-child { padding-bottom: clamp(22px, 2.6vw, 30px) !important; }
.fm-pcard, .fm-pcard.has-promo, .fm-pcard.is-featured { box-shadow: none; }
@media (hover: hover) { .fm-pcard:hover { box-shadow: 0 14px 34px -24px rgb(0 0 0 / .45); } }

/* ===========================================================================
 * 2. Accordéons (FAQ, infos pratiques) : plus légers, partout identiques
 * ======================================================================== */
.fm-acc__q { gap: 16px; padding-block: 18px; }
.fm-acc__title {
	font-family: var(--fm-font-body) !important;
	font-size: clamp(16px, .45vw + 14.5px, 19px) !important;
	font-weight: 700 !important;
	font-style: normal !important;
	font-stretch: normal !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	line-height: 1.35 !important;
}
.fm-acc__icon { width: 30px; height: 30px; border-radius: max(var(--fm-badge-radius), 4px); border-width: 1.5px; }
body.fm-badge-pill .fm-acc__icon, body:not(.fm-badge-soft):not(.fm-badge-square) .fm-acc__icon { border-radius: 50%; }
.fm-acc__icon::before, .fm-acc__icon::after { width: 11px; }
.fm-acc__inner { font-size: 15.5px; line-height: 1.6; }
/* Le texte des réponses suit la couleur de la section (claire, sombre, colorée). */
.fm-section--tone-alt .fm-acc__inner, .fm-section--tone-dark .fm-acc__inner, .fm-section--tone-primary .fm-acc__inner, .fm-infos-section .fm-acc__inner { color: inherit; }
@media (prefers-reduced-motion: no-preference) {
	.fm-acc__item[open] .fm-acc__inner { animation: fm-acc-in .35s cubic-bezier(.2,.8,.2,1) both; }
}
@keyframes fm-acc-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* Inclus et bon à savoir (page Abonnements) */
.fm-infos { display: grid; gap: clamp(24px, 4vw, 56px); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .fm-infos { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; } }
.fm-infos .fm-checks, .fm-infos .is-style-fm-checks { display: grid; gap: 10px; margin: 0; }
.fm-infos .fm-acc { margin: 0; }

/* ===========================================================================
 * 3. Téléphone (jusqu'à 640 px)
 * ======================================================================== */
@media (max-width: 640px) {

	/* --- Rythme vertical : des respirations, sans grands vides --------- */
	.fm-section--pad-l { padding-block: max(40px, calc(var(--fm-section, 48px) * .9)); }
	.fm-section--pad-xl { padding-block: max(52px, calc(var(--fm-section, 48px) * 1.1)); }
	.fm-section--pad-m { padding-block: max(30px, calc(var(--fm-section, 48px) * .62)); }
	.fm-heading-block { margin-bottom: 18px; }
	.fm-title--xxl { font-size: clamp(32px, 9.8vw, 50px) !important; }
	.fm-title--xl { font-size: clamp(28px, 8vw, 40px) !important; }
	.fm-title--l { font-size: clamp(27px, 7.8vw, 36px) !important; }
	.fm-title { text-wrap: balance; overflow-wrap: normal; hyphens: manual; }
	.fm-title.is-fit { white-space: normal; }
	.fm-kicker { margin-bottom: 8px; }

	/* --- Header : la barre d'infos disparaît, le bandeau s'efface au défilement */
	.fm-header__top { display: none !important; }
	.fm-banner { min-height: 34px; font-size: 12px; }
	.fm-banner__controls { right: 4px; gap: 0; }
	.fm-banner__controls button { width: 30px; height: 30px; }
	.fm-banner__pause { display: none !important; }
	.fm-banner:has(.fm-banner__controls) .fm-banner__inner { padding-inline: 32px; }
	.fm-banner__static, .fm-banner__rotator { padding-inline: 0; }
	.fm-banner__item { min-width: 0; max-width: 100%; gap: 8px; white-space: nowrap; }
	.fm-banner__tag, .fm-banner__link { flex: none; }
	.fm-banner__text { flex: 1 1 auto; }
	.fm-banner__text { min-width: 0; overflow: hidden; text-overflow: clip; white-space: nowrap; mask-image: linear-gradient(90deg, #000 88%, transparent); }
	.fm-banner__text:not(.is-tick) { text-overflow: ellipsis; mask-image: none; }
	.fm-banner__tick { display: inline-block; padding-right: 24px; }
	.fm-banner__text.is-tick { mask-image: linear-gradient(90deg, transparent, #000 10px, #000 calc(100% - 18px), transparent); }
	.fm-banner__text.is-tick .fm-banner__tick { padding-right: 0; animation: fm-tick var(--fm-tick-time, 9s) linear 1.5s infinite; }
	.fm-banner__dup { display: inline; }
	.fm-banner__sep { display: inline-block; margin: 0 18px; opacity: .55; }
	/* Texte court : le lien suit le texte au lieu d'être rejeté au bout. */
	.fm-banner__text:not(.is-tick):not(.is-swipe) { flex: 0 1 auto; }
	.fm-banner__item { justify-content: center; }
	.fm-banner.is-held .fm-banner__text.is-tick .fm-banner__tick { animation-play-state: paused; }
	.fm-banner__text.is-swipe { overflow-x: auto; text-overflow: clip; mask-image: linear-gradient(90deg, #000 85%, transparent); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.fm-banner__text.is-swipe::-webkit-scrollbar { display: none; }
	/* Plus de place pour le texte : le lien garde seulement sa flèche. */
	.fm-banner__link { flex: none; }
	.fm-banner__item:has(.fm-banner__text.is-tick, .fm-banner__text.is-swipe) .fm-banner__link { gap: 0; padding: 6px; margin: -6px 0; }
	.fm-banner__item:has(.fm-banner__text.is-tick, .fm-banner__text.is-swipe) .fm-banner__ltxt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.fm-banner__link span, .fm-banner__link > :not(svg) { white-space: nowrap; }
	/* Le bandeau est sous le header : au défilement, il remonte se cacher derrière lui (le header reste entier,
	   la page ne saute pas : la place du bandeau est gardée par la marge). */
	.wp-site-blocks > header.wp-block-template-part.fm-banner-away { margin-bottom: var(--fm-banner-real, 0px); }
	.wp-site-blocks > header.wp-block-template-part > .fm-banner { transition: transform .35s cubic-bezier(.2,.8,.2,1), opacity .25s, display .35s allow-discrete; }
	/* Puis retiré pour de bon (display) : Safari ne le prend plus pour colorer la barre d'état. */
	.wp-site-blocks > header.wp-block-template-part.fm-banner-away > .fm-banner { margin-bottom: calc(-1 * var(--fm-banner-real, 0px)); transform: translateY(-100%); opacity: 0; pointer-events: none; display: none; }
	.wp-site-blocks > header.wp-block-template-part { transition: transform .4s cubic-bezier(.2,.8,.2,1); }

	/* --- Menu ouvert : logo et fermeture toujours là, inscription à portée */
	.fm-mobile__panel { gap: 18px; padding-bottom: 0; }
	.fm-mobile__head { position: sticky; top: -18px; z-index: 3; margin: -18px calc(var(--fm-gutter, 16px) * -1) 0; padding: 18px var(--fm-gutter, 16px) 8px; background: inherit; }
	.fm-mobile__close { width: 44px; height: 44px; }
	.fm-menu--mobile .fm-menu__link { min-height: 54px; font-size: clamp(20px, 5.6vw, 28px); padding-block: 8px; }
	.fm-menu--mobile .fm-menu__new { margin-left: 10px; vertical-align: .3em; }
	.fm-mobile__cta { position: sticky; bottom: 0; z-index: 3; margin: auto calc(var(--fm-gutter, 16px) * -1) 0; padding: 14px var(--fm-gutter, 16px) 10px; background: linear-gradient(to bottom, transparent, var(--fm-mpanel-bg, #0b0b0b) 24%); }
	.fm-mobile__cta .fm-btn { min-height: 52px; }
	.fm-mobile__account { min-height: 46px; margin: 0; font-size: 15px; }
	.fm-mobile__social { margin: 0 0 22px; }
	.fm-mobile__social .fm-social__link { width: 42px; height: 42px; }
	@media (prefers-reduced-motion: no-preference) {
		.fm-mobile.is-open .fm-mobile__cta, .fm-mobile.is-open .fm-mobile__account { animation: fm-rise .55s .18s cubic-bezier(.2,.8,.2,1) both; }
	}

	/* --- Héros : texte plus vite, boutons groupés --------------------- */
	.fm-hero--split .fm-hero__media, .fm-hero--panel .fm-hero__media { aspect-ratio: 16 / 11; }
	.fm-hero__title { margin-bottom: 12px !important; }
	.fm-hero__text { margin-bottom: 18px !important; }
	.fm-hero__news { margin-bottom: 14px; }
	.fm-hero__foot .fm-usp { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
	.fm-hero__foot .fm-usp__item { min-width: 0; }

	/* --- Formules : une carte à la fois, l'essentiel d'abord ----------- */
	.fm-plans--m-swipe .fm-pgrid > .fm-pcard { flex: 0 0 100%; max-width: none; }
	.fm-plans--m-swipe .fm-pgrid { gap: 16px; }
	.fm-pcard__features { gap: 9px !important; margin-top: 16px !important; padding-top: 14px !important; }
	.fm-pcard__features li small { display: none; }
	.fm-pcard__features li { font-size: 15px; }
	/* Bas de carte (validité de l'offre) : le même bandeau, plus serré */
	.fm-pcard__legal { padding-block: 12px 14px !important; }
	.fm-pcard__valid { font-size: 12.5px !important; }
	.fm-pcard__cond { font-size: 12px !important; }
	.fm-plans__foot { margin-top: 12px; font-size: 13px; }

	/* --- Offres spéciales, pass : cartes compactes, choix en lignes ---- */
	.fm-pricing--wide { gap: 14px !important; }
	.fm-price--wide { padding: 20px !important; gap: 14px !important; }
	.fm-price--wide .fm-price__main { gap: 10px; }
	.fm-price--wide .fm-price__text { font-size: 15px; line-height: 1.5; margin: 0; }
	.fm-price--wide .fm-price__features { gap: 6px !important; margin: 0 !important; padding-top: 12px !important; }
	.fm-price--wide .fm-price__features li { font-size: 14.5px; }
	.fm-price--wide .fm-price__side { padding: 14px 0 0 !important; border: 0 !important; border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent) !important; background: none !important; box-shadow: none !important; border-radius: 0 !important; }
	.fm-price--wide .fm-price__value { font-size: 36px !important; }
	.fm-price--wide .fm-price__note { font-size: 13px; }
	.fm-price__options { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 8px !important; padding: 0 !important; background: none !important; }
	.fm-popt {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		column-gap: 12px;
		row-gap: 2px;
		padding: 12px 12px 12px 14px !important;
		border: 1px solid color-mix(in srgb, currentColor 16%, transparent) !important;
		border-radius: var(--fm-radius, 12px) !important;
		background: color-mix(in srgb, currentColor 3%, transparent) !important;
		box-shadow: none !important;
	}
	.fm-popt.is-featured { border-color: var(--fm-primary, #E1061B) !important; box-shadow: inset 3px 0 0 var(--fm-primary, #E1061B) !important; }
	.fm-popt > * { grid-column: 1; margin: 0 !important; }
	.fm-popt__label { font-size: 12px !important; }
	.fm-popt__amount { display: flex; align-items: baseline; gap: 4px; }
	.fm-popt__amount .fm-price__value { font-size: 24px !important; }
	.fm-popt__amount .fm-price__period { font-size: 12.5px; }
	.fm-popt__detail { font-size: 12.5px !important; opacity: .75; }
	.fm-popt__fee { font-size: 12px; }
	.fm-popt__fee.is-promo { padding: 3px 8px; }
	.fm-popt__btn { grid-column: 2 !important; grid-row: 1 / span 3; align-self: center; width: auto !important; min-height: 44px !important; padding: 0 14px !important; font-size: 13px !important; white-space: nowrap; }
	.fm-popt__btn .fm-btn__icon { display: none; }
	.fm-price.has-options .fm-price__fee { margin-top: 4px; }

	/* --- Séance, cartes 10 et 20 : une liste qu'on compare d'un coup d'œil */
	.fm-pricing--sessions { grid-template-columns: minmax(0, 1fr) !important; gap: 8px !important; }
	.fm-pricing--sessions > .fm-price.is-highlight:last-child { grid-column: auto; }
	.fm-pricing--sessions .fm-price {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		column-gap: 12px;
		row-gap: 2px;
		padding: 14px 14px 14px 16px !important;
	}
	.fm-pricing--sessions .fm-price > * { margin: 0 !important; }
	.fm-pricing--sessions .fm-price__head { grid-column: 1; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
	.fm-pricing--sessions .fm-price__amount { grid-column: 2; grid-row: 1; justify-self: end; }
	.fm-pricing--sessions .fm-price__value { font-size: 24px !important; }
	.fm-pricing--sessions .fm-price__features { grid-column: 1; padding: 0 !important; border: 0 !important; }
	.fm-pricing--sessions .fm-price__features li { font-size: 13.5px !important; opacity: .8; }
	.fm-pricing--sessions .fm-price__note { grid-column: 1; font-size: 12.5px !important; }
	.fm-pricing--sessions .fm-price__cta { grid-column: 2; grid-row: 2 / span 2; align-self: center; margin: 0 !important; }
	.fm-pricing--sessions .fm-price__btn { min-height: 40px !important; padding: 0 12px !important; font-size: 12.5px !important; }
	.fm-pricing--sessions .fm-price__badge { --fm-badge-h: 20px; --fm-badge-fs: 10.5px; --fm-badge-px: 8px; }

	/* --- HYROX sur l'accueil : une photo, deux vignettes, un seul bouton */
	#hyrox .fm-hyrox > figure:not(:first-child) { aspect-ratio: 4 / 3; }
	#hyrox .wp-block-buttons > .wp-block-button:nth-child(n+2) { display: none; }

	/* --- Coaching : cartes de même hauteur, notes discrètes ------------ */
	.fm-coffers { align-items: stretch; }
	.fm-coffer { display: flex; flex-direction: column; gap: 10px; padding: 20px !important; }
	.fm-coffer__cta { margin-top: auto; }
	.fm-coffer__list { gap: 6px !important; }
	.fm-coffer__list li { font-size: 14.5px; }
	.fm-members-note { padding: 12px 14px !important; font-size: 13.5px !important; }
	.fm-cslots__strip { gap: 8px; }

	/* --- Questionnaire par étapes -------------------------------------- */
	.fm-pform--steps .fm-pform__step { padding: 18px 16px !important; }

	/* --- Cartes : coachs, avis, cours, actualités ---------------------- */
	.fm-testimonial { gap: 10px !important; padding: 18px !important; }
	.fm-testimonial__quote { font-size: 15.5px !important; line-height: 1.55 !important; }
	.fm-team > * { flex-basis: 58%; }
	.fm-coach__name { font-size: 19px !important; }
	.fm-cdialog__box { max-height: 100dvh; }
	/* Fiche coach : photo pleine largeur, fermeture toujours visible, bouton à portée */
	.fm-cdialog.is-photo .fm-cdialog__media, .fm-cdialog.is-photo.is-portrait .fm-cdialog__media { width: 100%; height: 44dvh; aspect-ratio: auto !important; }
	.fm-cdialog.is-portrait.has-video .fm-cdialog__media { height: 62dvh; }
	.fm-cdialog__close { position: fixed; top: max(12px, env(safe-area-inset-top)); right: 12px; box-shadow: 0 4px 16px -4px rgb(0 0 0 / .35); }
	.fm-cdialog__body { padding: 22px 18px 0 !important; }
	.fm-cdialog__name { font-size: clamp(26px, 8vw, 34px) !important; }
	.fm-cdialog__quote { font-size: 17px; }
	.fm-cdialog__cta { position: sticky; bottom: 0; z-index: 2; margin: 18px -18px 0 !important; padding: 12px 18px max(14px, env(safe-area-inset-bottom)); background: linear-gradient(to bottom, transparent, var(--fm-bg, #fff) 26%); }
	.fm-cdialog__body > :last-child:not(.fm-cdialog__cta) { margin-bottom: 24px; }
	.fm-activity__body { gap: 6px; }
	.fm-courses-grid { gap: 10px !important; }

	/* --- Contact et infos pratiques ------------------------------------ */
	.fm-info--cards .fm-info__item { padding: 16px; }
	.fm-info--cards .fm-info__title { font-size: 17px; }

	/* --- Pied de page : marque, puis les groupes de liens côte à côte -- */
	.fm-footer__grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 26px 18px !important; }
	.fm-footer__brand { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; }
	.fm-footer__brand .fm-footer__tagline { flex: 1 1 100%; margin: 0; }
	.fm-footer__col { min-width: 0; }
	.fm-footer__col:last-child:nth-child(even) { grid-column: 1 / -1; }
	.fm-footer__menu { display: grid; gap: 2px; }
	.fm-footer__menu .fm-menu__link { display: inline-flex; align-items: center; min-height: 36px; font-size: 15px; }
	.fm-footer__title { margin-bottom: 8px !important; }
	.fm-footer__cta { padding-bottom: 26px !important; }
	.fm-hours div { display: flex; justify-content: space-between; gap: 10px; }
}

@media (min-width: 641px) { .fm-cbook__moredays { display: none !important; } }

@keyframes fm-tick { from { transform: translateX(0); } to { transform: translateX(var(--fm-tick, 0px)); } }

/* Créneaux des coachs sans horaires renseignés : une rangée compacte */
.fm-cslots--compact .fm-cslots__lead { margin: 0 0 14px; font-size: 16px; }
.fm-cslots__strip { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.fm-cslots__person { display: inline-flex; align-items: center; gap: 10px; padding: 5px 16px 5px 5px; border-radius: var(--fm-cap-radius, 999px); background: color-mix(in srgb, currentColor 6%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 14%, transparent); font-weight: 700; font-size: 15px; }
.fm-cslots__av { flex: none; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; background: color-mix(in srgb, var(--fm-primary, #E1061B) 14%, transparent); }
.fm-cslots__av--ghost { display: flex; align-items: flex-end; justify-content: center; overflow: hidden; }
.fm-cslots__av--ghost svg { display: block; width: 78%; height: auto; opacity: .5; color: var(--fm-primary, #E1061B); }
@media (max-width: 640px) {
	.fm-cslots__strip { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--fm-gutter, 16px) * -1); padding: 2px var(--fm-gutter, 16px) 6px; scrollbar-width: none; }
	.fm-cslots__strip::-webkit-scrollbar { display: none; }
	.fm-cslots__person { flex: none; }
	.fm-cslots--compact .fm-cslots__foot .fm-btn { width: 100%; justify-content: center; }
}

/* ===========================================================================
 * Questionnaire par étapes (tous écrans) : une étape à la fois
 * ======================================================================== */
.fm-pform--steps .fm-pform__step[hidden] { display: none !important; }
.fm-pform--steps .fm-members-note--form { display: none; }
.fm-pform__progress { display: grid; gap: 8px; margin: 0 0 14px; }
.fm-pform__progress-txt { margin: 0; font-size: 14px; }
.fm-pform__progress-txt strong { color: var(--fm-primary-text, var(--fm-primary, #C60518)); }
.fm-pform__bar { height: 6px; border-radius: 99px; background: color-mix(in srgb, currentColor 10%, transparent); overflow: hidden; }
.fm-pform__bar span { display: block; height: 100%; width: 20%; border-radius: inherit; background: var(--fm-primary, #E1061B); transition: width .45s cubic-bezier(.2,.8,.2,1); }
.fm-pform__nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 22px; }
.fm-pform__nav .fm-pform__next { margin-left: auto; min-width: 160px; justify-content: center; border: 0; cursor: pointer; }
.fm-pform__back { display: inline-flex; align-items: center; gap: 6px; min-height: 48px; padding: 0 6px; border: 0; background: none; color: inherit; font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.fm-pform__back::before { content: "←"; text-decoration: none; }
.fm-pform--steps .fm-pform__end .fm-pform__nav { margin: 0 0 16px; }
.fm-pform__err { display: block; margin-top: 6px; color: #b00016; font-size: 13.5px; font-weight: 600; }
.fm-section--tone-dark .fm-pform__err { color: #ff8a95; }
.fm-pform__field.is-invalid input, .fm-pform__field.is-invalid textarea { border-color: #d0102a !important; box-shadow: 0 0 0 1px #d0102a; }
@media (prefers-reduced-motion: no-preference) {
	.fm-pform--steps .fm-pform__step:not([hidden]) { animation: fm-acc-in .4s cubic-bezier(.2,.8,.2,1) both; }
}
@media (max-width: 640px) {
	.fm-pform__nav { position: sticky; bottom: 0; z-index: 2; margin-inline: -16px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--fm-bg, #fff); box-shadow: 0 -10px 20px -14px rgb(0 0 0 / .35); }
	.fm-section--tone-dark .fm-pform__nav { background: var(--fm-surface, #111); }
	.fm-pform__nav .fm-pform__next { flex: 1; min-height: 50px; }
	.fm-pform .fm-chips { gap: 8px; }
	.fm-pform .fm-chip span { min-height: 44px; padding: 10px 14px; font-size: 15px; }
	.fm-pform__label { font-size: 15.5px; }
	.fm-pform__field input, .fm-pform__field textarea { font-size: 16px; }
}

/* ===========================================================================
 * Tarifs HYROX (trois cartes du Studio)
 * ======================================================================== */
.fm-hxps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.fm-hxps:has(> .fm-hxp:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1180px) { .fm-hxps:has(> .fm-hxp:nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Adhérent / non adhérent : boutons carrés, les prix suivent. */
.fm-hxaud { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; width: min(100%, 520px); margin: 0 auto 20px; padding: 4px; border-radius: calc(var(--fm-btn-radius, 10px) + 4px); background: color-mix(in srgb, currentColor 7%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 14%, transparent); }
.fm-hxaud__btn { display: grid; gap: 1px; padding: 10px 12px; border: 0; border-radius: var(--fm-btn-radius, 10px); background: none; color: inherit; cursor: pointer; font: inherit; text-align: center; transition: background .2s, color .2s; }
.fm-hxaud__btn strong { font-size: 15px; font-weight: 800; }
.fm-hxaud__btn span { font-size: 12px; opacity: .72; }
.fm-hxaud__btn.is-active { background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); }
.fm-hxaud__btn.is-active span { opacity: .9; }
.fm-hxps-wrap[data-aud="adh"] .fm-hxp__price[data-aud="ext"], .fm-hxps-wrap[data-aud="ext"] .fm-hxp__price[data-aud="adh"] { display: none; }
.fm-hxp.is-soon { border-style: dashed; background: color-mix(in srgb, var(--fm-surface, #fff) 70%, transparent); }
.fm-hxp.is-soon .fm-hxp__value { opacity: .7; }
.fm-hxp { position: relative; display: flex; flex-direction: column; gap: 10px; padding: clamp(20px, 2.4vw, 28px); border-radius: var(--fm-radius, 14px); background: var(--fm-surface, #fff); color: var(--fm-text, #0a0a0a); border: var(--fm-border-width, 1px) solid color-mix(in srgb, currentColor 12%, transparent); }
.fm-section--tone-dark .fm-hxp { background: rgb(255 255 255 / .05); color: #fff; border-color: rgb(255 255 255 / .14); }
.fm-hxp.is-highlight, .fm-hxp.has-promo { border-color: var(--fm-primary, #E1061B); box-shadow: inset 0 0 0 1px var(--fm-primary, #E1061B); }
.fm-hxp__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.fm-hxp__name { margin: 0; font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight, 800); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); letter-spacing: var(--fm-heading-track, 0); font-size: clamp(19px, 1.6vw, 23px); line-height: 1.15; }
.fm-hxp__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; margin: 0; }
.fm-hxp__value { font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight, 800); font-style: var(--fm-heading-style, normal); font-size: clamp(30px, 3vw, 40px); line-height: 1; }
.fm-hxp__value.is-text { font-size: clamp(20px, 2vw, 24px); opacity: .85; }
.fm-hxp__unit { font-size: 14px; opacity: .7; }
.fm-hxp__was { font-size: 15px; opacity: .6; }
.fm-hxp__perk, .fm-hxp__ends { margin: 0; font-size: 14px; font-weight: 700; color: var(--fm-primary-text, var(--fm-primary, #C60518)); }
.fm-section--tone-dark .fm-hxp__perk, .fm-section--tone-dark .fm-hxp__ends { color: var(--fm-primary-on-dark, #ff5a6a); }
.fm-hxp__text { margin: 0; font-size: 15px; line-height: 1.5; opacity: .82; }
.fm-hxp__cta { margin-top: auto; padding-top: 6px; }
.fm-hxp__cta .fm-btn { width: 100%; justify-content: center; }
.fm-hxp__legal { margin: 0; padding-top: 8px; border-top: 1px dashed color-mix(in srgb, currentColor 22%, transparent); font-size: 12.5px; opacity: .75; }
.fm-hxps__note { margin: 16px 0 0; font-size: 14px; opacity: .75; text-align: center; }
@media (max-width: 900px) { .fm-hxps, .fm-hxps:has(> .fm-hxp:nth-child(4)) { grid-template-columns: minmax(0, 1fr); gap: 10px; } }
@media (max-width: 640px) {
	.fm-hxp { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; row-gap: 4px; padding: 16px !important; }
	.fm-hxp > * { grid-column: 1; }
	.fm-hxp__price { grid-column: 2; grid-row: 1; justify-content: flex-end; text-align: right; }
	.fm-hxp__value { font-size: 26px; }
	.fm-hxp__value.is-text { font-size: 15px; }
	.fm-hxp__cta { grid-column: 1 / -1; padding-top: 4px; }
	.fm-hxp__cta .fm-btn { min-height: 46px; }
	.fm-hxp__text { font-size: 14px; }
}

/* HYROX : pourquoi chez FitMove (grille simple, pas de carrousel) et galerie */
.fm-hx-why { gap: 12px !important; }
.fm-hx-why > .is-style-fm-card { padding: clamp(16px, 2vw, 24px) !important; }
.fm-hx-why h3 { font-size: clamp(17px, 1.4vw, 20px) !important; margin-bottom: 6px !important; }
.fm-hx-why p { margin: 0; font-size: 15px; line-height: 1.5; }
.fm-hx-gallery { display: grid !important; grid-template-columns: 2fr 1fr 1fr !important; grid-auto-rows: clamp(140px, 16vw, 230px); gap: 10px !important; }
.fm-hx-gallery > figure { margin: 0 !important; overflow: hidden; border-radius: var(--fm-radius-media, 12px); }
.fm-hx-gallery > figure:first-child { grid-row: span 2; }
.fm-hx-gallery img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px) {
	.fm-hx-why { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; overflow: visible !important; margin-inline: 0 !important; padding: 0 !important; }
	.fm-hx-why > * { flex: none !important; max-width: none !important; }
	.fm-hx-why > .is-style-fm-card { padding: 14px !important; }
	.fm-hx-why h3 { font-size: 15.5px !important; }
	.fm-hx-why p { font-size: 13.5px; }
	.fm-hx-gallery { grid-template-columns: 1fr 1fr !important; grid-auto-rows: 120px; gap: 8px !important; }
	.fm-hx-gallery > figure:first-child { grid-column: 1 / -1; grid-row: span 2; }
	.fm-hx-stations .fm-hx-station { padding: 12px !important; }
	.fm-hx-station__n { font-size: 22px !important; margin-bottom: 4px !important; }
	.fm-hx-station__name { font-size: 15px !important; }
}

/* ===========================================================================
 * Actualités : badge de catégorie, liste compacte sur téléphone
 * ======================================================================== */
.fm-posts .wp-block-post-date { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13.5px; }
/* Catégorie d'article : une étiquette discrète (texte en couleur, sans pastille). */
.fm-posts .fm-post-cat, .fm-post-cat { min-height: 0; padding: 0; background: none !important; box-shadow: none !important; color: var(--fm-primary-text, var(--fm-primary, #C60518)) !important; font-size: 11px; letter-spacing: .06em; }
.fm-post-cat::before { display: none !important; }
.fm-post-cat::after { content: "·"; margin-left: 6px; color: color-mix(in srgb, currentColor 55%, transparent); font-weight: 400; }
.fm-section--tone-dark .fm-post-cat, .fm-scheme-dark .fm-post-cat { color: var(--fm-primary-on-dark, #ff5a6a) !important; }
@media (max-width: 640px) {
	.fm-posts .wp-block-post-template { gap: 14px !important; grid-template-columns: minmax(0, 1fr) !important; }
	.fm-posts .wp-block-post { display: grid !important; grid-template-columns: 112px minmax(0, 1fr); column-gap: 14px; row-gap: 4px; align-items: start; }
	.fm-posts .wp-block-post > * { grid-column: 2; margin: 0 !important; }
	.fm-posts .wp-block-post-featured-image { grid-column: 1; grid-row: 1 / span 3; overflow: hidden; border-radius: var(--fm-radius-media, 10px); }
	.fm-posts .wp-block-post-featured-image img { aspect-ratio: 1 !important; height: auto; }
	.fm-posts .wp-block-post-title { font-size: 16px !important; line-height: 1.25 !important; }
	.fm-posts .wp-block-post-excerpt { display: none; }
	.fm-posts .wp-block-post-date { font-size: 12.5px; gap: 6px; }
	.fm-post-cat { font-size: 10.5px; }
	.fm-reels--grid .fm-reel__open, .fm-reels--grid .fm-reel__media { aspect-ratio: 3 / 4 !important; }
}

/* Cours collectifs : encart « Nous proposons aussi des cours HYROX ». */
.fm-hx-teaser { align-items: center !important; }
.fm-hx-teaser__text > * + * { margin-top: 18px; }
.fm-hx-teaser__img { margin: 0 !important; overflow: hidden; border-radius: var(--fm-radius-media, 12px); aspect-ratio: 4 / 3; }
.fm-hx-teaser__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 781px) { .fm-hx-teaser__img { order: -1; aspect-ratio: 16 / 10; } }

/* Pourquoi FitMove : la salle en images (texte + deux photos, puis les vidéos). */
.fm-salle-media { align-items: center !important; grid-template-columns: 1.15fr 1fr 1fr !important; }
.fm-salle-media__text > * + * { margin-top: 18px; }
.fm-salle-media__img { margin: 0 !important; overflow: hidden; border-radius: var(--fm-radius-media, 12px); aspect-ratio: 3 / 4; }
.fm-salle-media__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fm-salle-media > .fm-salle-media__img:last-child { translate: 0 28px; }
.fm-salle-reels { margin-top: clamp(40px, 6vw, 72px); }
@media (max-width: 781px) {
	.fm-salle-media { grid-template-columns: 1fr 1fr !important; }
	.fm-salle-media__text { grid-column: 1 / -1; }
	.fm-salle-media > .fm-salle-media__img:last-child { translate: none; }
}

/* Page HYROX : le planning HYROX. */
.fm-schedule-hyrox { max-width: 1100px; margin-inline: auto; }
.fm-schedule-hyrox .fm-hxplan { text-align: center; display: grid; justify-items: center; gap: 16px; }

/* Nos différences (accueil, Pourquoi FitMove). */
.fm-diff { margin-top: clamp(24px, 4vw, 40px); }
.fm-diff__card > * + * { margin-top: 10px; }
.fm-diff__card.is-strong { background: var(--fm-primary) !important; color: var(--fm-on-primary, #fff) !important; border-color: transparent !important; }
.fm-diff__card.is-strong :is(h3, p, .fm-title) { color: inherit !important; }
.fm-diff__road { margin-top: clamp(36px, 6vw, 64px); align-items: center !important; }
.fm-diff__road-text > * + * { margin-top: 16px; }
.fm-diff__road-img { margin: 0 !important; overflow: hidden; border-radius: var(--fm-radius-media, 12px); aspect-ratio: 4 / 3; }
.fm-diff__road-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 781px) { .fm-diff__road-img { order: -1; aspect-ratio: 16 / 10; } }
.fm-hx-forall { margin-block: clamp(24px, 4vw, 40px); }
.fm-hx-forall > * > * + * { margin-top: 10px; }
.fm-route-section .fm-diff__road { margin-top: 0; }
/* Infos pratiques en un seul bloc : texte et photo, puis adresse, horaires et contact. */
#infos .fm-infos__intro { margin: 0 0 clamp(28px, 4vw, 44px); }
#infos .fm-infos__intro .fm-towns { margin: 20px 0 22px; }
@media (max-width: 640px) { #infos .fm-infos__intro .fm-diff__road-img { display: none; } }

/* ===========================================================================
 * 4. Téléphone : une seule logique pour tous les thèmes
 * ---------------------------------------------------------------------------
 * Hiérarchie : message (H1) > titres de section (H2, une seule taille) >
 * information > action. Un seul bouton plein par carte ou par liste d'offres ;
 * les autres choix sont en contour. Les badges informatifs restent discrets.
 * Les valeurs (police, arrondis, couleurs) viennent toujours du thème.
 * ======================================================================== */
@media (max-width: 640px) {
	/* Échelle des titres selon la largeur de la police : une police large (Archivo, Jakarta…)
	   prend moins de place verticale à taille réduite ; une police étroite (Bebas, Anton…)
	   garde des titres plus grands pour le même encombrement. */
	body {
		--fm-m-h1: clamp(30px, 8.6vw, 44px);
		--fm-m-h1x: clamp(27px, 7.4vw, 36px);
		--fm-m-h2: clamp(24px, 6.6vw, 30px);
		--fm-m-h1-article: clamp(26px, 7vw, 32px);
	}
	body.fm-hf-narrow {
		--fm-m-h1: clamp(34px, 9.8vw, 50px);
		--fm-m-h1x: clamp(30px, 8.4vw, 40px);
		--fm-m-h2: clamp(28px, 7.8vw, 36px);
		--fm-m-h1-article: clamp(30px, 8.2vw, 38px);
	}
	.fm-title--xxl { font-size: var(--fm-m-h1) !important; }
	.fm-title--xl { font-size: var(--fm-m-h1x) !important; }
	h2.fm-title--xl { font-size: var(--fm-m-h2) !important; }
	.fm-title--l { font-size: var(--fm-m-h2) !important; }

	/* --- Titres : les titres des blocs suivent les titres de section --- */
	.fm-plans__title, .fm-plans--cards .fm-plans__title, .fm-reels__title, .fm-machines__title, .fm-news-title, .fm-tour__h { font-size: var(--fm-m-h2) !important; line-height: max(var(--fm-heading-leading, 1.05), 1.02); text-wrap: balance; }
	.fm-news-title { margin-bottom: 18px; }
	body.blog main h1.wp-block-heading, body.archive main h1.wp-block-heading { font-size: var(--fm-m-h1) !important; }
	.fm-page-hero .wp-block-post-title, body.single-post main h1.wp-block-post-title { font-size: var(--fm-m-h1-article) !important; line-height: 1.08 !important; text-wrap: balance; }
	body.single-post main h2.wp-block-heading { font-size: clamp(21px, 5.8vw, 25px); }
	.fm-plans__head { margin-bottom: 16px; }
	.fm-plans__intro, .fm-reels__intro { font-size: 15px; }

	/* --- Appels à l'action : un seul bouton plein par liste d'offres --- */
	:is(.fm-popt:not(.is-featured) .fm-popt__btn, .fm-pricing--sessions .fm-price:not(.is-highlight) .fm-price__btn, .fm-coffer__btn, .fm-price--wide:not(.is-highlight) > .fm-price__side .fm-price__cta .fm-btn, .fm-price--wide:not(.is-highlight) .fm-price__cta > .fm-btn) {
		--_bg: transparent; --_fg: currentColor; --_bd: color-mix(in srgb, currentColor 55%, transparent);
		--_hbg: var(--fm-btn-bg); --_hfg: var(--fm-btn-text); --_hbd: var(--fm-btn-bg);
		box-shadow: none !important; animation: none !important; text-shadow: none !important;
	}
	/* La « respiration » des boutons lumineux : seulement sur l'action principale de l'écran */
	.fm-btn--glow:not(.fm-hero .fm-btn--glow, .fm-pcard__btn, .fm-footer__cta-btn) { animation: none !important; }
	/* Réserver un créneau de coach : une étiquette d'action, pas un bouton rouge par case */
	.fm-cbook__slot .fm-cbook__state { background: color-mix(in srgb, var(--fm-primary, #E1061B) 14%, transparent); color: var(--fm-primary-text, var(--fm-primary, #C60518)); }
	.fm-section--tone-dark .fm-cbook__slot .fm-cbook__state, .fm-scheme-dark .fm-cbook__slot .fm-cbook__state { color: var(--fm-primary-on-dark, #ff6b78); }
	.fm-cbook__slot.is-booked .fm-cbook__state { background: color-mix(in srgb, currentColor 10%, transparent); color: inherit; }

	/* Créneaux des coachs : trois jours visibles, « Voir les autres jours » ensuite */
	.fm-cbook__week:not(.is-all) .fm-cbook__day:not([hidden]) ~ .fm-cbook__day:not([hidden]) ~ .fm-cbook__day:not([hidden]) ~ .fm-cbook__day:not([hidden]) { display: none; }
	.fm-cbook__moredays { width: 100%; justify-content: center; margin-top: 10px; min-height: 46px; }
	.fm-cbook__moredays[hidden] { display: none !important; }

	/* --- Badges : l'importance suit l'usage -------------------------------- */
	/* Information (« Sans engagement », « Cours collectifs inclus ») : discrète */
	.fm-price__badge {
		background: color-mix(in srgb, currentColor 8%, transparent) !important;
		box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 18%, transparent) !important;
		color: inherit !important;
	}
	/* Recommandation (« La plus choisie ») : la couleur du thème, sans aplat */
	.fm-price.is-highlight .fm-price__badge, .fm-hxp.is-highlight .fm-hxp__badge {
		background: color-mix(in srgb, var(--fm-primary, #E1061B) 14%, transparent) !important;
		box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--fm-primary, #E1061B) 40%, transparent) !important;
		color: var(--fm-primary-text, var(--fm-primary, #C60518)) !important;
	}
	:is(.fm-section--tone-dark, .fm-scheme-dark) :is(.fm-price.is-highlight .fm-price__badge, .fm-hxp.is-highlight .fm-hxp__badge) { color: var(--fm-primary-on-dark, #ff6b78) !important; }

	/* --- Formules : la même promo une seule fois par carte ---------------- */
	/* Promo sur les frais : la ligne « Frais d'adhésion offerts 40 € » suffit, sans badge en double. */
	.fm-pcard:has(.fm-pcard__fee.is-promo) .fm-pcard__ribbon.is-fee { display: none !important; }
	/* Les deux sélecteurs (durée, cours collectifs) : même forme, état actif net */
	.fm-plans--m-swipe .fm-pfam { border-radius: calc(var(--fm-radius, 12px) + 5px); padding: 5px; }
	.fm-pfam__btn { border-radius: var(--fm-radius, 12px); transition: background-color .25s, color .25s; }
	.fm-pfam__btn[aria-pressed="true"], .fm-pfam__btn[aria-pressed="true"][data-kind="group"] { background: var(--fm-text, #0a0a0a); color: var(--fm-bg, #fff); box-shadow: none; }
	.fm-pinfo { margin-bottom: 18px; }

	/* --- Nos différences : la carte « famille » sans aplat rouge --------- */
	.fm-diff__card.is-strong {
		background: color-mix(in srgb, var(--fm-primary, #E1061B) 12%, var(--fm-surface, transparent)) !important;
		color: inherit !important;
		border-color: color-mix(in srgb, var(--fm-primary, #E1061B) 45%, transparent) !important;
	}
	.fm-diff__card.is-strong :is(h3, .fm-title) { color: var(--fm-primary-text, var(--fm-primary, #C60518)) !important; }
	:is(.fm-section--tone-dark, .fm-scheme-dark) .fm-diff__card.is-strong :is(h3, .fm-title) { color: var(--fm-primary-on-dark, #ff6b78) !important; }
	.fm-diff__card.is-strong p { color: inherit !important; }

	/* --- Abonnements : le titre de la page suffit, on arrive droit sur le choix */
	.fm-page-abonnements .fm-plans__head { display: none; }

	/* --- Actualités : les articles d'abord, les vidéos ensuite ---------- */
	body.blog .fm-main { display: flex; flex-direction: column; }
	body.blog .fm-news-posts { order: 1; }
	body.blog .fm-news-videos { order: 2; }

	/* --- Accueil : une synthèse, le détail reste sur les pages ------------ */
	/* Cours : quatre aperçus, le bouton mène aux onze cours et au planning */
	body.home .fm-courses-grid > :nth-child(n+5) { display: none !important; }
	/* Infos pratiques : les commodités sont déjà dites dans « Sur la route du retour » et la FAQ */
	body.home #infos .fm-near { display: none; }

	/* --- HYROX : « Pourquoi chez FitMove » lisible, sur une colonne ------- */
	.fm-hx-why { grid-template-columns: minmax(0, 1fr) !important; gap: 8px !important; }
	.fm-hx-why > .is-style-fm-card { padding: 14px 16px !important; }
	.fm-hx-why h3 { font-size: 17px !important; margin-bottom: 4px !important; }
	.fm-hx-why p { font-size: 14.5px; line-height: 1.5; }
	.fm-hx-forall__next { margin-top: 12px; }
	/* HYROX : les mêmes informations ne reviennent pas à chaque section.
	   Les boutons du haut mènent déjà au planning et aux tarifs ; « 8 personnes maximum »
	   et « tarif adhérent / non adhérent » sont dits dans les cartes elles-mêmes. */
	#pour-tous .wp-block-buttons { display: none; }
	.fm-hx-stations ~ p.fm-small { display: none; }
	#tarifs .fm-heading-block + .fm-lead { display: none; }

}

/* Formules : une phrase rassurante sous le bouton d'inscription. */
.fm-pcard__reassure { margin: 8px 0 0; font-size: 12.5px; text-align: center; opacity: .7; }
.fm-pcard__reassure::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: #1f9d55; vertical-align: .05em; }

/* Nos cours (page Cours collectifs) : la catégorie se lit en entier, jamais coupée. */
.fm-courses-grid .fm-activity__tag { max-width: none; overflow: visible; text-overflow: clip; white-space: normal; line-height: 1.2; padding-block: 3px; text-align: left; }
.fm-ccar__nav { display: none; }
/* Téléphone seulement : un carrousel de cartes (photo, catégorie, nom, explication), une flèche
   de chaque côté. Ordinateur et tablette : la grille habituelle. */
@media (max-width: 640px) {
	.fm-ccar { position: relative; --_cw: min(60vw, 230px); }
	.fm-ccar .fm-courses-grid { display: grid !important; grid-auto-flow: column; grid-auto-columns: var(--_cw); grid-template-columns: none !important; gap: 14px !important; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; margin-inline: calc(var(--fm-gutter, 16px) * -1); padding: 0 var(--fm-gutter, 16px) 4px; scroll-padding-inline: var(--fm-gutter, 16px); }
	.fm-ccar .fm-courses-grid::-webkit-scrollbar { display: none; }
	.fm-ccar .fm-courses-grid > * { scroll-snap-align: start; }
	.fm-ccar .fm-activity { display: flex !important; flex-direction: column; height: 100%; border-radius: var(--fm-radius-media, 16px); background: color-mix(in srgb, currentColor 6%, transparent); }
	.fm-ccar .fm-activity__media { aspect-ratio: 4 / 3 !important; }
	.fm-ccar .fm-activity__body { position: static !important; inset: auto !important; align-content: start; gap: 5px !important; padding: 12px 14px 14px !important; background: none !important; color: inherit !important; --_muted: color-mix(in srgb, currentColor 72%, transparent); }
	.fm-ccar .fm-activity__title { font-size: 18px !important; line-height: 1.15; }
	.fm-ccar .fm-activity__tag { --fm-badge-h: 18px; --fm-badge-fs: 9.5px; --fm-badge-px: 7px; letter-spacing: .03em; }
	.fm-ccar .fm-activity__text { display: -webkit-box !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; max-height: none !important; opacity: 1 !important; font-size: 13.5px; line-height: 1.4; }
	.fm-ccar .fm-activity__meta { margin-top: auto; padding-top: 4px; font-size: 12px; }
	.fm-ccar__nav { display: block; position: absolute; inset: 0; z-index: 2; pointer-events: none; }
	.fm-ccar__nav[hidden] { display: none; }
	.fm-ccar .fm-reels__arrow { top: calc(var(--_cw) * 3 / 8); width: 38px; height: 38px; }
}

/* Nos cours (page Cours collectifs), ordinateur et tablette : des carrés compacts, texte sur la photo ;
   l'explication apparaît au survol. */
@media (min-width: 641px) {
	body:not(.home) .fm-courses-grid { grid-template-columns: repeat(auto-fill, minmax(178px, 1fr)) !important; gap: 14px !important; }
	body:not(.home) .fm-courses-grid .fm-activity { position: relative; aspect-ratio: 1 / 1; display: block !important; overflow: hidden; }
	body:not(.home) .fm-courses-grid .fm-activity__media { position: absolute; inset: 0; height: 100%; aspect-ratio: auto !important; }
	body:not(.home) .fm-courses-grid .fm-activity__body { position: absolute !important; inset: auto 0 0 !important; z-index: 2; gap: 4px !important; padding: 12px 14px !important; color: #fff !important; background: linear-gradient(0deg, rgb(0 0 0 / .88), rgb(0 0 0 / .4) 62%, transparent) !important; --_muted: rgb(255 255 255 / .82); }
	body:not(.home) .fm-courses-grid .fm-activity__title { font-size: 18px !important; line-height: 1.1; }
	body:not(.home) .fm-courses-grid .fm-activity__tag { --fm-badge-h: 18px; --fm-badge-fs: 9.5px; --fm-badge-px: 7px; letter-spacing: .03em; }
	body:not(.home) .fm-courses-grid .fm-activity__meta { margin-top: 2px; font-size: 11.5px; gap: 8px; }
	body:not(.home) .fm-courses-grid .fm-activity__level i { width: 9px; height: 5px; }
	body:not(.home) .fm-courses-grid .fm-activity__text { display: block !important; max-height: 0 !important; opacity: 0 !important; overflow: hidden; font-size: 13px; line-height: 1.35; transition: max-height .45s cubic-bezier(.2,.8,.2,1), opacity .35s; }
	body:not(.home) .fm-courses-grid .fm-activity:is(:hover, :focus-within) .fm-activity__text { max-height: 5.5em !important; opacity: 1 !important; }
}
