/* ==========================================================================
   FitMove Theme — styles du site
   Toutes les valeurs viennent des variables --fm-* générées par FitMove Studio.
   Sommaire : 1. Base · 2. Boutons · 3. Logo · 4. Header · 5. Menu mobile
              6. Bandeau · 7. Pied de page · 8. Utilitaires · 9. Mouvement réduit
   ========================================================================== */

/* 1. Base ------------------------------------------------------------------ */

*, *::before, *::after { box-sizing: border-box; }

html { color-scheme: var(--fm-scheme, light); -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--fm-bg);
	color: var(--fm-text);
	font-family: var(--fm-font-body);
	font-size: var(--fm-body-size);
	font-weight: var(--fm-body-weight);
	line-height: var(--fm-body-leading);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6, .fm-heading {
	font-family: var(--fm-font-heading);
	font-weight: var(--fm-heading-weight);
	font-stretch: var(--fm-heading-stretch);
	font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case);
	letter-spacing: var(--fm-heading-track);
	line-height: var(--fm-heading-leading);
	color: var(--fm-heading-color);
	text-wrap: balance;
	margin-block: 0 .5em;
}
h1 { font-size: var(--fm-h1); }
h2 { font-size: var(--fm-h2); }
h3 { font-size: var(--fm-h3); line-height: max(var(--fm-heading-leading), 1.05); }
h4 { font-size: var(--fm-h4); line-height: max(var(--fm-heading-leading), 1.1); }
h5 { font-size: var(--fm-h5); line-height: 1.2; }
h6 { font-size: var(--fm-h6); line-height: 1.25; }

p { text-wrap: pretty; }

img, svg, video { max-width: 100%; height: auto; }

/* Liens dans le texte */
:where(.wp-block-post-content, .entry-content, .fm-prose) a:where(:not(.wp-element-button, .fm-btn, .wp-block-button__link)) { color: inherit; text-underline-offset: .18em; text-decoration-thickness: .08em; }
.fm-links-color :where(.wp-block-post-content) a:where(:not(.wp-element-button, .fm-btn, .wp-block-button__link)) { color: var(--fm-primary-text, var(--fm-primary)); text-decoration: none; }
.fm-links-color :where(.wp-block-post-content) a:where(:not(.wp-element-button, .fm-btn, .wp-block-button__link)):hover { text-decoration: underline; }
.fm-links-highlight :where(.wp-block-post-content) a:where(:not(.wp-element-button, .fm-btn, .wp-block-button__link)) { text-decoration: none; background: linear-gradient(rgb(var(--fm-primary-rgb) / .28), rgb(var(--fm-primary-rgb) / .28)) 0 100% / 100% .35em no-repeat; transition: background-size .25s; }
.fm-links-highlight :where(.wp-block-post-content) a:where(:not(.wp-element-button, .fm-btn, .wp-block-button__link)):hover { background-size: 100% 100%; }

/* Focus clavier : toujours visible, jamais au clic souris */
:focus { outline: none; }
:focus-visible { outline: 3px solid var(--fm-focus); outline-offset: 3px; border-radius: 4px; }
/* Au toucher ou à la souris : aucun contour, même si un script place le focus. */
html:not(.fm-kbd) :focus-visible:not(input, textarea, select) { outline: none !important; }
html:not(.fm-kbd) .fm-coach__cta:focus-visible { box-shadow: none !important; }
html:not(.fm-kbd) :is(.fm-activity, .fm-compare__handle i):has(:focus-visible), html:not(.fm-kbd) .fm-compare:has(:focus-visible) .fm-compare__handle i { outline: none !important; }

::selection { background: var(--fm-primary); color: var(--fm-on-primary); }

.screen-reader-text {
	border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link.screen-reader-text:focus { clip-path: none; height: auto; width: auto; z-index: 100000; background: var(--fm-bg); color: var(--fm-text); padding: 12px 18px; left: 8px; top: 8px; }

/* Espacements globaux */
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
:root :where(.is-layout-constrained) > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { margin-inline: auto; }
.has-global-padding { padding-inline: var(--fm-gutter); }

/* Sections alternées réutilisables */
.fm-tone-alt { background: var(--fm-alt-bg); color: var(--fm-alt-text); }
.fm-tone-surface { background: var(--fm-surface); }
.fm-tone-primary { background: var(--fm-primary); color: var(--fm-on-primary); }

/* 2. Boutons — bibliothèque -------------------------------------------------
   Utilisable de trois façons :
   - classes .fm-btn.fm-btn--<style> (header, pied de page, blocs FitMove) ;
   - style par défaut des boutons WordPress (classe body.fm-btn-<style>) ;
   - variation choisie dans l'éditeur (.is-style-fm-<style>).
   ------------------------------------------------------------------------- */

.fm-btn,
.wp-block-button__link,
.wp-element-button {
	--_bg: var(--fm-btn-bg);
	--_fg: var(--fm-btn-text);
	--_bd: var(--fm-btn-bg);
	--_hbg: var(--fm-btn-hover-bg);
	--_hfg: var(--fm-btn-hover-text);
	--_hbd: var(--fm-btn-hover-bg);
	position: relative;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6em;
	min-height: 44px;
	padding: var(--fm-btn-py) var(--fm-btn-px);
	border: var(--fm-btn-border) solid var(--_bd);
	border-radius: var(--fm-btn-radius);
	background: var(--_bg);
	color: var(--_fg);
	font-family: var(--fm-font-body);
	font-size: var(--fm-btn-size);
	font-weight: var(--fm-btn-weight);
	line-height: 1.15;
	letter-spacing: var(--fm-btn-track);
	text-transform: var(--fm-btn-case);
	text-decoration: none;
	cursor: pointer;
	overflow: hidden;
	transition: background-color .3s cubic-bezier(.2,.8,.2,1), color .3s, border-color .3s, transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s;
	-webkit-tap-highlight-color: transparent;
}
.fm-btn:hover, .wp-block-button__link:hover, .wp-element-button:hover {
	background: var(--_hbg); color: var(--_hfg); border-color: var(--_hbd);
}
.fm-btn__icon { display: inline-flex; transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
.fm-btn:hover .fm-btn__icon { transform: translateX(4px); }

/* Effets de survol (réglage global) */
.fm-btn-hover-lift :is(.fm-btn, .wp-block-button__link):hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgb(var(--fm-btn-bg-rgb) / .35); }
.fm-btn-hover-scale :is(.fm-btn, .wp-block-button__link):hover { transform: scale(1.05); }
.fm-btn-hover-glow :is(.fm-btn, .wp-block-button__link):hover { box-shadow: 0 0 0 4px rgb(var(--fm-btn-bg-rgb) / .25), 0 0 32px rgb(var(--fm-btn-bg-rgb) / .55); }
.fm-btn-hover-sweep :is(.fm-btn, .wp-block-button__link):hover { background: var(--_bg); color: var(--_hfg); }
.fm-btn-hover-sweep :is(.fm-btn, .wp-block-button__link)::before {
	content: ""; position: absolute; inset: 0; z-index: -1; background: var(--_hbg);
	transform: scaleX(0); transform-origin: right; transition: transform .45s cubic-bezier(.7,0,.2,1);
}
.fm-btn-hover-sweep :is(.fm-btn, .wp-block-button__link):hover::before { transform: scaleX(1); transform-origin: left; }
.fm-btn-hover-shine :is(.fm-btn, .wp-block-button__link)::after,
.fm-btn--shine::after,
.is-style-fm-shine > .wp-block-button__link::after {
	content: ""; position: absolute; inset: -20% auto -20% -60%; width: 40%; z-index: 1; pointer-events: none;
	background: linear-gradient(100deg, transparent, rgb(255 255 255 / .55), transparent);
	transform: skewX(-20deg) translateX(0); transition: none;
}
.fm-btn-hover-shine :is(.fm-btn, .wp-block-button__link):hover::after { animation: fm-shine .8s ease forwards; }

/* Styles */
:is(.fm-btn--outline, .is-style-fm-outline > .wp-block-button__link, .fm-btn-outline :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link) {
	--_bg: transparent; --_fg: currentColor; --_bd: currentColor; --_hbg: var(--fm-btn-bg); --_hfg: var(--fm-btn-text); --_hbd: var(--fm-btn-bg);
}
:is(.fm-btn--pill, .is-style-fm-pill > .wp-block-button__link, .fm-btn-pill :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link) { border-radius: 999px; }
:is(.fm-btn--square, .is-style-fm-square > .wp-block-button__link, .fm-btn-square :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link) { border-radius: 0; }
:is(.fm-btn--minimal, .is-style-fm-minimal > .wp-block-button__link, .fm-btn-minimal :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link) {
	--_bg: transparent; --_fg: currentColor; --_bd: transparent; --_hbg: transparent; --_hfg: var(--fm-primary); --_hbd: transparent;
	padding-inline: 0; border-radius: 0; box-shadow: inset 0 -2px 0 currentColor;
}
:is(.fm-btn--gradient, .is-style-fm-gradient > .wp-block-button__link, .fm-btn-gradient :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link) {
	--_bd: transparent; --_hbd: transparent; background: var(--fm-gradient); background-size: 160% 160%; background-position: 0 50%;
	transition: background-position .6s ease, transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s;
}
:is(.fm-btn--gradient, .is-style-fm-gradient > .wp-block-button__link, .fm-btn-gradient :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link):hover { background: var(--fm-gradient); background-size: 160% 160%; background-position: 100% 50%; color: var(--fm-on-primary); }
:is(.fm-btn--glass, .is-style-fm-glass > .wp-block-button__link, .fm-btn-glass :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link) {
	--_bg: color-mix(in srgb, currentColor 10%, transparent); --_fg: currentColor; --_bd: color-mix(in srgb, currentColor 28%, transparent); --_hbg: color-mix(in srgb, currentColor 18%, transparent); --_hfg: currentColor; --_hbd: color-mix(in srgb, currentColor 50%, transparent);
	backdrop-filter: blur(14px) saturate(1.4); -webkit-backdrop-filter: blur(14px) saturate(1.4);
}
:is(.fm-btn--neon, .is-style-fm-neon > .wp-block-button__link, .fm-btn-neon :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link) {
	--_bg: transparent; --_fg: var(--fm-btn-bg); --_bd: var(--fm-btn-bg); --_hbg: var(--fm-btn-bg); --_hfg: var(--fm-btn-text);
	box-shadow: 0 0 6px rgb(var(--fm-btn-bg-rgb) / .9), inset 0 0 6px rgb(var(--fm-btn-bg-rgb) / .6), 0 0 22px rgb(var(--fm-btn-bg-rgb) / .45);
	text-shadow: 0 0 10px rgb(var(--fm-btn-bg-rgb) / .8);
}
:is(.fm-btn--neon, .is-style-fm-neon > .wp-block-button__link):hover { text-shadow: none; box-shadow: 0 0 12px rgb(var(--fm-btn-bg-rgb) / 1), 0 0 44px rgb(var(--fm-btn-bg-rgb) / .7); }
:is(.fm-btn--glow, .is-style-fm-glow > .wp-block-button__link, .fm-btn-glow :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link) {
	box-shadow: 0 10px 34px -6px rgb(var(--fm-btn-bg-rgb) / .75);
	animation: fm-breathe 2.8s ease-in-out infinite;
}
:is(.fm-btn--shine, .is-style-fm-shine > .wp-block-button__link, .fm-btn-shine :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link)::after { animation: fm-shine 3.2s ease-in-out infinite; }
:is(.fm-btn--arrow, .is-style-fm-arrow > .wp-block-button__link) { padding-right: calc(var(--fm-btn-px) * .8); }
.is-style-fm-arrow > .wp-block-button__link::after { content: "→"; font-weight: 400; transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
.is-style-fm-arrow > .wp-block-button__link:hover::after { transform: translateX(4px); }
:is(.fm-btn--soft3d, .is-style-fm-soft3d > .wp-block-button__link, .fm-btn-soft3d :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link) {
	box-shadow: 0 4px 0 color-mix(in srgb, var(--fm-btn-bg) 65%, #000), 0 10px 24px rgb(0 0 0 / .18);
	transform: translateY(-2px);
}
:is(.fm-btn--soft3d, .is-style-fm-soft3d > .wp-block-button__link):active { transform: translateY(2px); box-shadow: 0 1px 0 color-mix(in srgb, var(--fm-btn-bg) 65%, #000); }
:is(.fm-btn--metal, .is-style-fm-metal > .wp-block-button__link, .fm-btn-metal :where(.wp-block-button:not([class*="is-style-"])) > .wp-block-button__link) {
	--_fg: #141414; --_bd: #9a9a9a; --_hfg: #000;
	background: linear-gradient(180deg, #f6f6f6 0%, #cfcfcf 45%, #b4b4b4 55%, #e9e9e9 100%);
	box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 rgb(0 0 0 / .2), 0 6px 18px rgb(0 0 0 / .25);
	text-shadow: 0 1px 0 rgb(255 255 255 / .7);
}
:is(.fm-btn--metal, .is-style-fm-metal > .wp-block-button__link):hover { background: linear-gradient(180deg, #fff 0%, #dcdcdc 45%, #c4c4c4 55%, #f4f4f4 100%); }

/* 3. Logo (image d'origine) et décorations d'ambiance --------------------- */

.fm-logo { position: relative; display: inline-flex; align-items: center; flex-shrink: 0; text-decoration: none; color: inherit; isolation: isolate; }
.fm-logo__img { display: block; height: var(--fm-logo-img-h); width: auto; max-width: none; transition: height .35s cubic-bezier(.2,.8,.2,1); }
.fm-logo__name { font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight); font-stretch: var(--fm-heading-stretch); text-transform: uppercase; font-size: calc(var(--fm-logo-img-h) * .6); line-height: 1; }
.fm-logo--invert .fm-logo__img { filter: brightness(0) invert(1); }

.fm-deco { position: absolute; z-index: 2; height: calc(var(--fm-logo-img-h) * var(--s, .5)); aspect-ratio: 1; translate: -50% -50%; rotate: var(--r, 0deg); pointer-events: none; }
.fm-deco--back { z-index: -1; }
.fm-deco__in { display: block; width: 100%; height: 100%; transform-origin: 50% 20%; }
.fm-deco__in svg, .fm-deco__in img { display: block; width: 100%; height: 100%; object-fit: contain; overflow: visible; }
.fm-deco-anim--swing { animation: fm-deco-swing 3.2s ease-in-out infinite; }
.fm-deco-anim--bounce { animation: fm-deco-bounce 2.4s cubic-bezier(.3,0,.3,1) infinite; transform-origin: 50% 100%; }
.fm-deco-anim--pulse { animation: fm-deco-pulse 1.6s ease-in-out infinite; transform-origin: 50% 50%; }
.fm-deco-anim--float { animation: fm-deco-float 4s ease-in-out infinite; }
.fm-deco-anim--spin { animation: fm-deco-spin 12s linear infinite; transform-origin: 50% 50%; }
.fm-deco-anim--twinkle { animation: fm-deco-twinkle 2s ease-in-out infinite; transform-origin: 50% 50%; }
@keyframes fm-deco-swing { 50% { transform: rotate(9deg); } 0%, 100% { transform: rotate(-7deg); } }
@keyframes fm-deco-bounce { 0%, 60%, 100% { transform: translateY(0); } 30% { transform: translateY(-18%); } }
@keyframes fm-deco-pulse { 50% { transform: scale(1.14); } }
@keyframes fm-deco-float { 50% { transform: translateY(-12%) rotate(4deg); } }
@keyframes fm-deco-spin { to { transform: rotate(360deg); } }
@keyframes fm-deco-twinkle { 0%, 100% { transform: scale(.7); opacity: .5; } 50% { transform: scale(1.1); opacity: 1; } }
@media (max-width: 767px) { .fm-deco--nomobile { display: none; } }

/* Particules */
.fm-fx { position: fixed; inset: 0; z-index: 95; pointer-events: none; }
.fm-fx--header { position: absolute; z-index: 0; border-radius: inherit; }
.fm-header__bar { position: relative; }
.fm-header__bar > .fm-header__inner { position: relative; z-index: 1; }
.fm-fx--below_header { bottom: auto; }
.fm-fx--first_screen { position: absolute; bottom: auto; height: 100vh; z-index: 5; }
.fm-fx-night { position: fixed; inset: 0; z-index: 94; pointer-events: none; background: radial-gradient(ellipse at 50% 40%, transparent 45%, rgb(10 0 25 / .55) 100%); }
.fm-fx-toggle {
	position: fixed; bottom: 16px; z-index: 96;
	min-height: 40px; padding: 8px 16px; border: 1px solid rgb(0 0 0 / .12); border-radius: 999px;
	background: rgb(255 255 255 / .92); color: #111; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
	font: 600 13px/1.2 var(--fm-font-body); cursor: pointer; box-shadow: 0 6px 20px rgb(0 0 0 / .12);
}
.fm-fx-toggle--bottom-left { left: 16px; }
.fm-fx-toggle--bottom-right { right: 16px; }
.fm-fx-toggle:hover { background: #fff; }
.fm-fx-off .fm-deco__in { animation: none; }

/* 4. Header ---------------------------------------------------------------- */

/* Le conteneur de la partie de modèle porte le comportement « fixe ». */
.wp-site-blocks > header.wp-block-template-part { position: relative; z-index: 100; }
.wp-site-blocks > header.wp-block-template-part:has(.fm-header--sticky-always),
.wp-site-blocks > header.wp-block-template-part:has(.fm-header--sticky-smart) {
	position: sticky; top: var(--wp-admin--admin-bar--height, 0px);
	transition: transform .45s cubic-bezier(.2,.8,.2,1);
}
.wp-site-blocks > header.wp-block-template-part.fm-is-hidden { transform: translateY(calc(-100% - 60px)); }
.wp-site-blocks > header.wp-block-template-part:has(.fm-header--transparent) { position: fixed; top: var(--wp-admin--admin-bar--height, 0px); left: 0; right: 0; }
.wp-site-blocks > header.wp-block-template-part:has(.fm-header--transparent.fm-header--sticky-none) { position: absolute; }

.fm-header {
	--_h: var(--fm-header-h);
	color: var(--fm-header-text);
	font-family: var(--fm-font-body);
	position: relative;
}
.fm-header__bar {
	background: var(--fm-header-bg);
	backdrop-filter: blur(var(--fm-header-blur)) saturate(1.5);
	-webkit-backdrop-filter: blur(var(--fm-header-blur)) saturate(1.5);
	border-bottom: 1px solid var(--fm-header-line);
	box-shadow: var(--fm-header-shadow);
	transition: background-color .35s, box-shadow .35s, border-color .35s;
}
.fm-header__inner {
	display: flex;
	align-items: center;
	gap: clamp(16px, 2.5vw, 40px);
	min-height: var(--_h);
	max-width: calc(var(--fm-wide) + 2 * var(--fm-gutter));
	margin-inline: auto;
	padding-inline: var(--fm-gutter);
	transition: min-height .35s cubic-bezier(.2,.8,.2,1);
}
.fm-header__inner--full { max-width: none; }
.fm-header__nav { margin-inline-start: auto; }
/* Position du menu : à gauche (après le logo), centré sur la page, ou à droite. */
.fm-header:is(.fm-header--classic, .fm-header--floating, .fm-header--compact, .fm-header--double, .fm-header--capsule).fm-header--nav-left .fm-header__nav { margin-inline-start: clamp(12px, 2vw, 32px); }
.fm-header:is(.fm-header--classic, .fm-header--floating, .fm-header--compact, .fm-header--double, .fm-header--capsule).fm-header--nav-left .fm-header__actions { margin-inline-start: auto; }
.fm-header:is(.fm-header--classic, .fm-header--floating, .fm-header--compact, .fm-header--double, .fm-header--capsule).fm-header--nav-center:not(.is-collapsed) .fm-header__bar > .fm-header__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.fm-header:is(.fm-header--classic, .fm-header--floating, .fm-header--compact, .fm-header--double, .fm-header--capsule).fm-header--nav-center:not(.is-collapsed) .fm-header__bar > .fm-header__inner > .fm-logo { justify-self: start; }
.fm-header:is(.fm-header--classic, .fm-header--floating, .fm-header--compact, .fm-header--double, .fm-header--capsule).fm-header--nav-center:not(.is-collapsed) .fm-header__bar > .fm-header__inner > .fm-header__nav { margin: 0; justify-self: center; }
.fm-header:is(.fm-header--classic, .fm-header--floating, .fm-header--compact, .fm-header--double, .fm-header--capsule).fm-header--nav-center:not(.is-collapsed) .fm-header__bar > .fm-header__inner > .fm-header__actions { justify-self: end; }
.fm-header__nav { translate: var(--fm-nav-offset, 0) 0; }
.fm-header .fm-logo { translate: var(--fm-logo-offset, 0) 0; }
.fm-header--cta-first .fm-header__account { order: 2; }
.fm-header--cta-first .fm-header__burger { order: 3; }
/* Menu trop long pour la largeur (thème aux grands espacements, liens ajoutés…) : le script
 * passe l'en-tête en menu « burger », comme sur mobile, plutôt que de déborder. */
.fm-header.is-collapsed .fm-header__nav, .fm-header.is-collapsed .fm-header__secondary, .fm-header.is-collapsed .fm-header__account { display: none; }
.fm-header.is-collapsed .fm-header__burger { display: inline-flex; }
.fm-header.is-collapsed .fm-header__actions { margin-inline-start: auto; }
.fm-header--split.is-collapsed .fm-header__inner { grid-template-columns: auto 1fr; }
.fm-header--split.is-collapsed .fm-logo { order: -1; }
.fm-header--centered.is-collapsed .fm-header__row--nav, .fm-header--centered.is-collapsed .fm-header__spacer { display: none; }
.fm-header--centered.is-collapsed .fm-header__row--top { grid-template-columns: auto 1fr auto; }
.fm-header.is-tight .fm-header__nav > .fm-menu { gap: 12px; }
.fm-header.is-tight .fm-header__inner { gap: 14px; }
.fm-header.is-tight .fm-menu > .fm-menu__item > .fm-menu__link { letter-spacing: 0; }
.fm-header--hover-pill.is-tight .fm-menu > .fm-menu__item > .fm-menu__link { padding-inline: 9px; }
.fm-header.is-tight .fm-header__actions { gap: 8px; }
/* Menu bureau plus serré sous 1440 px : tous les liens tiennent avec l'espace adhérent et le bouton. */
@media (max-width: 1439px) { .fm-header__nav > .fm-menu { gap: min(var(--fm-nav-gap), 1.45vw); } .fm-header__inner { gap: 20px; } }
.fm-header__actions { display: flex; align-items: center; gap: 12px; }
.fm-header .fm-header__cta { padding: calc(var(--fm-btn-py) * .7) calc(var(--fm-btn-px) * .8); }
/* Espace adhérent (connexion Sportigo) : icône ronde ; au survol, le cercle se remplit et
   une étiquette aux couleurs du header apparaît dessous (plus d'info-bulle grise du navigateur). */
.fm-header__account { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; min-height: 44px; padding: 0 14px; border-radius: 999px; color: inherit; font-size: var(--fm-nav-size, 15px); font-weight: 600; text-decoration: none; white-space: nowrap; box-shadow: inset 0 0 0 1.5px color-mix(in srgb, currentColor 22%, transparent); transition: box-shadow .2s, background-color .2s; }
.fm-header__account { position: relative; }
.fm-header__account .fm-icon { transition: transform .2s; }
.fm-header__account:is(:hover, :focus-visible) { background-color: color-mix(in srgb, currentColor 10%, transparent); box-shadow: inset 0 0 0 1.5px currentColor; }
.fm-header__account:focus-visible { outline: 2px solid var(--fm-primary); outline-offset: 2px; }
.fm-header__account .fm-icon { flex: none; }
.fm-header__account { padding: 0; }
.fm-header__account-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (hover: hover) {
	.fm-header__account:hover .fm-icon { transform: translateY(-1px); }
	.fm-header__account .fm-header__account-label { top: calc(100% + 10px); left: 50%; width: auto; height: auto; clip: auto; padding: 6px 11px; border-radius: 8px; background: var(--fm-header-text, #111); color: var(--fm-header-bg, #fff); font-size: 12.5px; font-weight: 600; letter-spacing: .01em; line-height: 1.2; text-transform: none; box-shadow: 0 6px 18px rgb(0 0 0 / .18); opacity: 0; transform: translate(-50%, -4px); pointer-events: none; transition: opacity .18s, transform .18s; z-index: 5; }
	.fm-header__account .fm-header__account-label::before { content: ""; position: absolute; bottom: 100%; left: 50%; margin-left: -5px; border: 5px solid transparent; border-bottom-color: var(--fm-header-text, #111); }
	.fm-header__account:is(:hover, :focus-visible) .fm-header__account-label { opacity: 1; transform: translate(-50%, 0); transition-delay: .12s; }
}
@media (prefers-reduced-motion: reduce) { .fm-header__account .fm-icon, .fm-header__account .fm-header__account-label { transition: opacity .18s; transform: translate(-50%, 0); } .fm-header__account .fm-icon { transform: none; } }

/* États au défilement */
.fm-header--shrink.is-scrolled { --_h: calc(var(--fm-header-h) * .78); }
.fm-header--shrink.is-scrolled .fm-logo__img { height: calc(var(--fm-logo-img-h) * .82); }
.fm-header.is-scrolled .fm-header__bar { background: var(--fm-header-scrolled); }
.fm-header--transparent:not(.is-scrolled) .fm-header__bar { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; border-color: transparent; box-shadow: none; }

/* Menu bureau */
.fm-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: var(--fm-nav-gap); }
.fm-menu__item { position: relative; display: flex; align-items: center; gap: 2px; }
.fm-menu__link {
	position: relative;
	display: inline-flex; align-items: center;
	white-space: nowrap;
	min-height: 44px;
	color: inherit; text-decoration: none;
	font-size: var(--fm-nav-size); font-weight: var(--fm-nav-weight); text-transform: var(--fm-nav-case);
	letter-spacing: .01em;
	transition: color .25s, transform .3s cubic-bezier(.34,1.56,.64,1), background-color .25s;
}
.fm-header--hover-line .fm-menu > .fm-menu__item > .fm-menu__link::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 2px; background: var(--fm-primary);
	transform: scaleX(0); transform-origin: right; transition: transform .4s cubic-bezier(.7,0,.2,1);
}
.fm-header--hover-line .fm-menu > .fm-menu__item > .fm-menu__link:is(:hover, [aria-current])::after { transform: scaleX(1); transform-origin: left; }
.fm-header--hover-pill .fm-menu > .fm-menu__item > .fm-menu__link { padding-inline: 14px; border-radius: 999px; min-height: 40px; }
.fm-header--hover-pill .fm-menu > .fm-menu__item > .fm-menu__link:is(:hover, [aria-current]) { background: rgb(var(--fm-text-rgb) / .08); }
.fm-header--on-dark.fm-header--hover-pill .fm-menu > .fm-menu__item > .fm-menu__link:is(:hover, [aria-current]) { background: rgb(255 255 255 / .12); }
.fm-header--hover-color .fm-menu__link:is(:hover, [aria-current]) { color: var(--fm-primary-text, var(--fm-primary)); }
.fm-header--hover-lift .fm-menu__link:hover { transform: translateY(-2px); color: var(--fm-primary-text, var(--fm-primary)); }
/* Autres effets au survol du menu (Studio › Header et menus › Liens du menu). */
.fm-header--hover-center .fm-menu > .fm-menu__item > .fm-menu__link::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 2px; background: var(--fm-primary);
	transform: scaleX(0); transform-origin: center; transition: transform .35s cubic-bezier(.2,.8,.2,1);
}
.fm-header--hover-center .fm-menu > .fm-menu__item > .fm-menu__link:is(:hover, [aria-current])::after { transform: scaleX(1); }
.fm-header--hover-dot .fm-menu > .fm-menu__item > .fm-menu__link::after {
	content: ""; position: absolute; left: 50%; bottom: 5px; width: 6px; height: 6px; margin-left: -3px; border-radius: 50%; background: var(--fm-primary);
	transform: scale(0); opacity: 0; transition: transform .3s cubic-bezier(.34,1.56,.64,1), opacity .2s;
}
.fm-header--hover-dot .fm-menu > .fm-menu__item > .fm-menu__link:is(:hover, [aria-current])::after { transform: scale(1); opacity: 1; }
.fm-header--hover-mark .fm-menu > .fm-menu__item > .fm-menu__link { isolation: isolate; }
.fm-header--hover-mark .fm-menu > .fm-menu__item > .fm-menu__link::after {
	content: ""; position: absolute; left: -4px; right: -4px; top: 50%; height: .62em; z-index: -1; border-radius: 3px; background: color-mix(in srgb, var(--fm-primary) 55%, transparent);
	transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.7,0,.2,1);
}
.fm-header--hover-mark .fm-menu > .fm-menu__item > .fm-menu__link:is(:hover, [aria-current])::after { transform: scaleX(1); }
.fm-header--hover-fill .fm-menu > .fm-menu__item > .fm-menu__link,
.fm-header--hover-outline .fm-menu > .fm-menu__item > .fm-menu__link { padding-inline: 14px; border-radius: 999px; min-height: 40px; }
.fm-header--hover-fill .fm-menu > .fm-menu__item > .fm-menu__link:is(:hover, [aria-current]) { background: var(--fm-primary); color: var(--fm-on-primary, #fff); }
.fm-header--hover-outline .fm-menu > .fm-menu__item > .fm-menu__link { box-shadow: inset 0 0 0 1.5px transparent; transition: box-shadow .25s, color .25s; }
.fm-header--hover-outline .fm-menu > .fm-menu__item > .fm-menu__link:is(:hover, [aria-current]) { box-shadow: inset 0 0 0 1.5px currentColor; }
:is(.fm-header--hover-fill, .fm-header--hover-outline).is-tight .fm-menu > .fm-menu__item > .fm-menu__link { padding-inline: 9px; }
@media (prefers-reduced-motion: reduce) { .fm-header .fm-menu__link, .fm-header .fm-menu__link::after { transition: none !important; } }

.fm-menu__toggle {
	display: inline-flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; padding: 0; border: 0; border-radius: 6px;
	background: none; color: inherit; cursor: pointer;
}
.fm-menu__toggle svg { transition: transform .3s; }
.fm-menu__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.fm-menu__sub {
	position: absolute; top: 100%; left: -16px; min-width: 240px; padding: 10px;
	background: var(--fm-surface); color: var(--fm-text);
	border: 1px solid var(--fm-border); border-radius: var(--fm-radius);
	box-shadow: 0 24px 60px rgb(0 0 0 / .25);
	opacity: 0; visibility: hidden; transform: translateY(8px) scale(.98); transform-origin: top left;
	transition: opacity .25s, transform .35s cubic-bezier(.2,.8,.2,1), visibility 0s .35s;
}
.fm-menu__item:hover > .fm-menu__sub,
.fm-menu__item.is-open > .fm-menu__sub,
.fm-menu__item:focus-within > .fm-menu__sub { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.fm-menu__sublist { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.fm-menu__sublist .fm-menu__link { width: 100%; padding: 10px 12px; border-radius: calc(var(--fm-radius) / 2); min-height: 40px; }
.fm-menu__sublist .fm-menu__link:hover { background: rgb(var(--fm-text-rgb) / .07); }

/* Burger */
.fm-header__burger {
	display: none; align-items: center; justify-content: center;
	width: 46px; height: 46px; padding: 0; border: 0; border-radius: 999px;
	background: rgb(var(--fm-text-rgb) / .0); color: inherit; cursor: pointer;
}
.fm-burger { position: relative; width: 22px; height: 14px; display: block; }
.fm-burger span { position: absolute; left: 0; right: 0; height: 2px; border-radius: 2px; background: currentColor; transition: transform .4s cubic-bezier(.7,0,.2,1), opacity .2s, width .3s; }
.fm-burger span:nth-child(1) { top: 0; }
.fm-burger span:nth-child(2) { top: 6px; width: 70%; left: auto; }
.fm-burger span:nth-child(3) { top: 12px; }
.fm-header__burger:hover .fm-burger span:nth-child(2) { width: 100%; }

/* Variantes de disposition */
.fm-header--centered .fm-header__inner { display: block; padding-block: 6px; }
.fm-header--centered .fm-header__row--top { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: var(--_h); }
.fm-header--centered .fm-header__row--top .fm-logo { justify-self: center; --fm-logo-img-h: calc(var(--fm-logo-img-h-m) * 1.5); }
.fm-header--centered .fm-header__row--top .fm-header__actions { justify-self: end; }
.fm-header--centered .fm-header__row--nav { display: flex; justify-content: center; border-top: 1px solid var(--fm-header-line); }
.fm-header--centered .fm-header__nav { margin: 0; }
.fm-header--centered.is-scrolled .fm-header__row--nav { display: none; }

.fm-header--split .fm-header__inner { display: grid; grid-template-columns: 1fr auto 1fr; }
.fm-header--split .fm-header__nav { margin: 0; }
.fm-header--split .fm-header__nav--left .fm-menu { justify-content: flex-end; }
.fm-header--split .fm-header__end { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.fm-header--split .fm-logo { justify-self: center; }

.fm-header--minimal .fm-header__burger { display: inline-flex; }
.fm-header--minimal .fm-header__actions { margin-inline-start: auto; }

.fm-header--floating { padding: 14px var(--fm-gutter) 0; }
.fm-header--floating .fm-header__bar {
	max-width: calc(var(--fm-wide)); margin-inline: auto;
	border: 1px solid var(--fm-header-line); border-radius: 999px;
	padding-inline: 10px 8px;
}
.fm-header--floating .fm-header__inner { padding-inline: 18px 8px; max-width: none; }
.fm-header--floating.is-scrolled .fm-header__bar { box-shadow: 0 18px 50px rgb(0 0 0 / .18); }

.fm-header--compact { --fm-header-h: 60px; --fm-nav-size: 14px; }
.fm-header--compact .fm-logo__img { height: calc(var(--fm-logo-img-h) * .72); }
.fm-header--compact .fm-header__cta { min-height: 38px; padding: 8px 18px; font-size: 14px; }

/* Menu en capsule : les liens dans une pilule, au centre de la page. */
.fm-header--capsule:not(.is-collapsed) .fm-header__bar > .fm-header__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.fm-header--capsule:not(.is-collapsed) .fm-header__bar > .fm-header__inner > .fm-logo { justify-self: start; }
.fm-header--capsule:not(.is-collapsed) .fm-header__bar > .fm-header__inner > .fm-header__actions { justify-self: end; }
.fm-header--capsule .fm-header__nav { margin: 0; justify-self: center; padding: 5px 8px; border-radius: 999px; background: color-mix(in srgb, var(--fm-header-text) 7%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--fm-header-text) 10%, transparent); }
.fm-header--capsule .fm-header__nav > .fm-menu { gap: 4px; }
.fm-header--capsule .fm-menu > .fm-menu__item > .fm-menu__link { padding: 8px 14px; border-radius: 999px; }
.fm-header--capsule .fm-menu > .fm-menu__item > .fm-menu__link:hover, .fm-header--capsule .fm-menu > .fm-menu__item > .fm-menu__link[aria-current] { background: var(--fm-header-bg, #fff); box-shadow: 0 2px 10px rgb(0 0 0 / .08); }
.fm-header--capsule .fm-menu > .fm-menu__item > .fm-menu__link::after { display: none; }
.fm-header--capsule.fm-header--nav-left:not(.is-collapsed) .fm-header__bar > .fm-header__inner > .fm-header__nav { justify-self: start; }
.fm-header--capsule.fm-header--nav-right:not(.is-collapsed) .fm-header__bar > .fm-header__inner > .fm-header__nav { justify-self: end; }

/* Deux étages alignés à gauche : logo et boutons en haut, menu dessous. */
.fm-header--stacked .fm-header__inner { display: block; padding-block: 4px; }
.fm-header--stacked .fm-header__row--top { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: var(--_h); }
.fm-header--stacked .fm-header__row--nav { display: flex; justify-content: flex-start; border-top: 1px solid var(--fm-header-line); }
.fm-header--stacked .fm-header__nav { margin: 0; }
.fm-header--stacked.fm-header--nav-center .fm-header__row--nav { justify-content: center; }
.fm-header--stacked.fm-header--nav-right .fm-header__row--nav { justify-content: flex-end; }
.fm-header--stacked.is-scrolled .fm-header__row--nav, .fm-header--stacked.is-collapsed .fm-header__row--nav { display: none; }

.fm-header__top { font-size: 13.5px; background: linear-gradient(rgb(var(--fm-text-rgb) / .05), rgb(var(--fm-text-rgb) / .05)), var(--fm-header-bg); color: var(--fm-header-text); border-bottom: 1px solid var(--fm-header-line); }
.fm-header--on-dark .fm-header__top { background: linear-gradient(rgb(255 255 255 / .06), rgb(255 255 255 / .06)), var(--fm-header-bg); border-bottom-color: rgb(255 255 255 / .1); }
.fm-header__top .fm-header__inner { min-height: 38px; gap: 24px; }
.fm-header__topinfo { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; opacity: .85; }
.fm-header__secondary { margin-inline-start: auto; }
.fm-menu--small { --fm-nav-size: 13.5px; --fm-nav-weight: 500; gap: 18px; }
.fm-menu--small .fm-menu__link { min-height: 36px; }

/* Barre de progression de lecture */
.fm-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; pointer-events: none; }
.fm-progress span { display: block; height: 100%; background: var(--fm-primary); transform-origin: left; transform: scaleX(var(--fm-progress, 0)); }

/* 5. Menu mobile ----------------------------------------------------------- */

.fm-mobile { position: fixed; inset: 0; z-index: 1000; }
.fm-mobile[hidden] { display: none; }
.fm-mobile__backdrop { position: absolute; inset: 0; background: rgb(0 0 0 / .55); opacity: 0; transition: opacity .4s; }
.fm-mobile__panel {
	position: absolute; inset: 0;
	display: flex; flex-direction: column; gap: 28px;
	padding: 18px var(--fm-gutter) 32px;
	background: #0b0b0b; color: #fff;
	overflow-y: auto; overscroll-behavior: contain;
	clip-path: circle(0 at calc(100% - 44px) 40px);
	transition: clip-path .6s cubic-bezier(.7,0,.2,1);
}
.fm-mobile--drawer .fm-mobile__panel { inset: 0 0 0 auto; width: min(420px, 88vw); clip-path: none; transform: translateX(100%); transition: transform .5s cubic-bezier(.2,.8,.2,1); }
/* Panneau qui monte du bas (comme une application). */
.fm-mobile--sheet .fm-mobile__panel { inset: auto 0 0 0; max-height: min(88vh, 760px); border-radius: 24px 24px 0 0; clip-path: none; transform: translateY(100%); transition: transform .5s cubic-bezier(.2,.8,.2,1); padding-bottom: calc(28px + env(safe-area-inset-bottom)); }
.fm-mobile--sheet .fm-mobile__panel::before { content: ""; align-self: center; width: 44px; height: 5px; margin: -6px 0 -10px; border-radius: 99px; background: rgb(255 255 255 / .28); flex: none; }
.fm-mobile--sheet.is-open .fm-mobile__panel { transform: none; }
.fm-mobile--sheet .fm-menu--mobile .fm-menu__link { font-size: clamp(20px, 5.4vw, 30px); min-height: 56px; }
/* Déroulant sous le header. */
.fm-mobile--dropdown .fm-mobile__panel { inset: 0 0 auto 0; max-height: 86vh; clip-path: none; transform: translateY(-104%); transition: transform .45s cubic-bezier(.2,.8,.2,1); border-radius: 0 0 22px 22px; padding-top: 12px; }
.fm-mobile--dropdown.is-open .fm-mobile__panel { transform: none; }
.fm-mobile--dropdown .fm-menu--mobile .fm-menu__link { font-size: clamp(20px, 5.4vw, 30px); min-height: 54px; }
.fm-mobile.is-open .fm-mobile__backdrop { opacity: 1; }
.fm-mobile.is-open .fm-mobile__panel { clip-path: circle(150% at calc(100% - 44px) 40px); }
.fm-mobile:is(.fm-mobile--sheet, .fm-mobile--dropdown).is-open .fm-mobile__panel { clip-path: none; }
.fm-mobile--drawer.is-open .fm-mobile__panel { transform: none; }
.fm-mobile__head { display: flex; align-items: center; justify-content: space-between; min-height: 56px; }
.fm-mobile__head .fm-logo { --fm-logo-img-h: var(--fm-logo-img-h-m); }
.fm-mobile__close { width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgb(255 255 255 / .2); border-radius: 999px; background: none; color: #fff; cursor: pointer; }
.fm-menu--mobile { flex-direction: column; align-items: stretch; gap: 0; }
.fm-menu--mobile .fm-menu__item { flex-wrap: wrap; border-bottom: 1px solid rgb(255 255 255 / .1); }
.fm-menu--mobile .fm-menu__link {
	flex: 1; min-height: 64px;
	font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight); font-stretch: var(--fm-heading-stretch);
	font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case); font-size: clamp(22px, 6.2vw, 40px); letter-spacing: var(--fm-heading-track);
	white-space: normal; line-height: 1.05; padding-block: 10px;
}
.fm-menu--mobile .fm-menu__link[aria-current] { color: var(--fm-primary-on-dark, var(--fm-primary)); }
.fm-menu--mobile .fm-menu__toggle { width: 48px; height: 48px; }
.fm-menu--mobile .fm-menu__sub { position: static; width: 100%; display: none; opacity: 1; visibility: visible; transform: none; background: none; border: 0; box-shadow: none; padding: 0 0 12px; color: inherit; }
.fm-menu--mobile .fm-menu__item.is-open > .fm-menu__sub { display: block; }
.fm-menu--mobile .fm-menu__sublist .fm-menu__link { font-family: var(--fm-font-body); font-size: 18px; min-height: 48px; text-transform: none; font-weight: 500; }
.fm-mobile.is-open .fm-menu--mobile > .fm-menu__item { animation: fm-rise .6s cubic-bezier(.2,.8,.2,1) both; }
.fm-mobile.is-open .fm-menu--mobile > .fm-menu__item:nth-child(2) { animation-delay: .05s; }
.fm-mobile.is-open .fm-menu--mobile > .fm-menu__item:nth-child(3) { animation-delay: .1s; }
.fm-mobile.is-open .fm-menu--mobile > .fm-menu__item:nth-child(4) { animation-delay: .15s; }
.fm-mobile.is-open .fm-menu--mobile > .fm-menu__item:nth-child(5) { animation-delay: .2s; }
.fm-mobile.is-open .fm-menu--mobile > .fm-menu__item:nth-child(n+6) { animation-delay: .25s; }
.fm-mobile__cta .fm-btn { width: 100%; min-height: 56px; }
.fm-mobile__account { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; margin-top: 10px; border-radius: var(--fm-btn-radius, 999px); box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .35); color: inherit; font-weight: 700; text-decoration: none; }
.fm-mobile__account:hover { box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .7); }
.fm-mobile__social { margin-top: auto; }
/* Menu téléphone aux couleurs du thème : clair sur les thèmes clairs, sombre sur les sombres. */
.fm-mobile__panel { --fm-mpanel-bg: #0b0b0b; }
body.fm-scheme-light .fm-mobile__panel { --fm-mpanel-bg: var(--fm-bg, #fff); background: var(--fm-bg, #fff); color: var(--fm-text, #0a0a0a); }
body.fm-scheme-light .fm-mobile__close { border-color: color-mix(in srgb, currentColor 22%, transparent); color: inherit; }
body.fm-scheme-light .fm-menu--mobile .fm-menu__item { border-bottom-color: color-mix(in srgb, currentColor 11%, transparent); }
body.fm-scheme-light .fm-menu--mobile .fm-menu__link[aria-current] { color: var(--fm-primary-text, var(--fm-primary)); }
body.fm-scheme-light .fm-mobile__account { box-shadow: inset 0 0 0 1.5px color-mix(in srgb, currentColor 30%, transparent); }
body.fm-scheme-light .fm-mobile__account:hover { box-shadow: inset 0 0 0 1.5px color-mix(in srgb, currentColor 60%, transparent); }
body.fm-scheme-light .fm-mobile--sheet .fm-mobile__panel::before { background: color-mix(in srgb, currentColor 22%, transparent); }
body.fm-scheme-light .fm-mobile .fm-social__link { color: inherit; border-color: color-mix(in srgb, currentColor 22%, transparent); }
html.fm-lock, html.fm-lock body { overflow: hidden; }

/* Barre d'onglets mobile (Studio › Header et menus › Mobile). */
.fm-tabbar { position: fixed; inset: auto 0 0 0; z-index: 990; padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--fm-header-bg, #fff) 94%, transparent); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-top: 1px solid var(--fm-header-line, rgb(0 0 0 / .1)); box-shadow: 0 -8px 30px rgb(0 0 0 / .08); }
.fm-tabbar ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.fm-tabbar a, .fm-tabbar button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; width: 100%; min-height: 52px; padding: 4px 2px; border: 0; border-radius: 14px; background: none; color: var(--fm-header-text, #0a0a0a); font: 600 11px/1.15 var(--fm-font-body); text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.fm-tabbar span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fm-tabbar svg { width: 22px; height: 22px; opacity: .8; }
.fm-tabbar [aria-current="page"] { color: var(--fm-primary); }
.fm-tabbar [aria-current="page"] svg { opacity: 1; }
.fm-tabbar a:active, .fm-tabbar button:active { background: color-mix(in srgb, var(--fm-header-text, #000) 8%, transparent); }
/* Barre d'onglets : le bouton ☰ du header disparaît seulement là où la barre s'affiche (sous le passage au menu ☰, voir fitmove_header). */
body:has(.fm-tabbar) .fm-fx-toggle, body:has(.fm-tabbar) .fm-toast { bottom: calc(76px + env(safe-area-inset-bottom)) !important; }

/* 6. Bandeau d'annonce ----------------------------------------------------- */

.fm-banner {
	position: relative;
	display: flex; align-items: center;
	min-height: var(--fm-banner-h);
	background: var(--fm-banner-bg);
	color: var(--fm-banner-text);
	font-family: var(--fm-font-body);
	font-size: var(--fm-banner-size);
	font-weight: var(--fm-banner-weight);
	text-transform: var(--fm-banner-case);
	line-height: 1.3;
	overflow: hidden;
	z-index: 2;
}
.fm-banner[hidden] { display: none; }
.fm-banner__inner { flex: 1; min-width: 0; display: flex; justify-content: center; }
.fm-banner:has(.fm-banner__controls) .fm-banner__inner { padding-right: 76px; }
.fm-banner:has(.fm-banner__controls) .fm-banner__viewport { mask-image: linear-gradient(90deg, transparent, #000 4%, #000 92%, transparent); }
.fm-banner__item { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.fm-banner__tag {
	position: relative; overflow: hidden;
	display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 999px;
	background: var(--fm-banner-tag-bg); color: var(--fm-banner-tag-text);
	font-size: .78em; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
}
.fm-banner__link { display: inline-flex; align-items: center; gap: 4px; color: inherit; font-weight: 700; text-underline-offset: 3px; }
.fm-banner__link svg { transition: transform .3s; }
.fm-banner__link:hover svg { transform: translateX(3px); }
.fm-banner__sep { display: inline-flex; opacity: .7; margin-inline: 28px; }
.fm-banner__compact { display: none; }
.fm-banner__controls { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: flex; gap: 2px; z-index: 3; }
.fm-banner__controls button {
	display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; padding: 0; border: 0; border-radius: 999px;
	background: color-mix(in srgb, currentColor 12%, transparent); color: inherit; cursor: pointer;
	opacity: .75; transition: opacity .2s;
}
.fm-banner__controls button:hover { opacity: 1; }
.fm-banner__pause .fm-icon--play { display: none; }
.fm-banner.is-paused .fm-banner__pause .fm-icon--play { display: block; }
.fm-banner.is-paused .fm-banner__pause .fm-icon--pause { display: none; }
.fm-banner__static, .fm-banner__rotator { padding-inline: 48px; max-width: 100%; }

/* Défilement continu */
.fm-banner__viewport { width: 100%; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.fm-banner__track { display: flex; width: max-content; }
.fm-banner__group { display: flex; align-items: center; flex-shrink: 0; }
.fm-banner--marquee .fm-banner__track { animation: fm-marquee var(--fm-banner-speed) linear infinite; }
.fm-banner--marquee.fm-banner--dir-right .fm-banner__track { animation-direction: reverse; }
.fm-banner--pingpong .fm-banner__track { animation: fm-pingpong var(--fm-banner-speed) ease-in-out infinite alternate; padding-inline: 24px; }
.fm-banner--hover-pause:hover .fm-banner__track,
.fm-banner.is-paused .fm-banner__track { animation-play-state: paused; }

/* Alternance de messages */
.fm-banner__rotator { display: grid; place-items: center; }
.fm-banner__msg { grid-area: 1 / 1; display: flex; justify-content: center; opacity: 0; visibility: hidden; transition: opacity .55s, transform .65s cubic-bezier(.2,.8,.2,1), filter .55s, visibility 0s .65s; }
.fm-banner__msg.is-active { opacity: 1; visibility: visible; transform: none; filter: none; transition-delay: .1s, .1s, .1s, 0s; }
.fm-banner--tr-up .fm-banner__msg { transform: translateY(110%); }
.fm-banner--tr-up .fm-banner__msg.is-leaving { transform: translateY(-110%); }
.fm-banner--tr-down .fm-banner__msg { transform: translateY(-110%); }
.fm-banner--tr-down .fm-banner__msg.is-leaving { transform: translateY(110%); }
.fm-banner--tr-slide .fm-banner__msg { transform: translateX(40px); }
.fm-banner--tr-slide .fm-banner__msg.is-leaving { transform: translateX(-40px); }
.fm-banner--tr-zoom .fm-banner__msg { transform: scale(.7); filter: blur(4px); }
.fm-banner--tr-zoom .fm-banner__msg.is-leaving { transform: scale(1.25); filter: blur(4px); }
.fm-banner--tr-up .fm-banner__msg.is-active,
.fm-banner--tr-down .fm-banner__msg.is-active,
.fm-banner--tr-slide .fm-banner__msg.is-active,
.fm-banner--tr-zoom .fm-banner__msg.is-active { transform: none; filter: none; }
.fm-banner--tr-letters .fm-banner__msg { transition: opacity .3s, visibility 0s .3s; }
.fm-char { display: inline-block; white-space: pre; animation: fm-char .5s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--i) * 22ms); }

/* Machine à écrire */
.fm-banner--typing .fm-banner__text.is-typing::after { content: ""; display: inline-block; width: 2px; height: 1.1em; margin-left: 3px; vertical-align: -.15em; background: currentColor; animation: fm-caret .8s steps(1) infinite; }
.fm-banner--typing .fm-banner__msg .fm-banner__link,
.fm-banner--typing .fm-banner__msg .fm-banner__tag { transition: opacity .3s; }
.fm-banner--typing .fm-banner__msg.is-typing .fm-banner__link { opacity: 0; }

/* Animations de fond */
.fm-banner--bg-gradient { background: linear-gradient(90deg, var(--fm-gradient-from), var(--fm-gradient-to), var(--fm-gradient-from)); background-size: 200% 100%; animation: fm-bgshift 8s linear infinite; }
.fm-banner--bg-shine::before { content: ""; position: absolute; inset: 0 auto 0 -30%; width: 30%; background: linear-gradient(100deg, transparent, rgb(255 255 255 / .22), transparent); animation: fm-sweep 4.5s ease-in-out infinite; pointer-events: none; }
.fm-banner--bg-pulse { animation: fm-bgpulse 2.6s ease-in-out infinite; }
.fm-banner--bg-glow { box-shadow: inset 0 -2px 0 var(--fm-banner-tag-bg); }
.fm-banner--bg-glow::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: linear-gradient(90deg, transparent, #fff, transparent); background-size: 40% 100%; background-repeat: no-repeat; animation: fm-glowline 3s linear infinite; }

/* Animations de l'étiquette */
.fm-banner--tag-pulse .fm-banner__tag { animation: fm-tagpulse 1.8s ease-in-out infinite; }
.fm-banner--tag-halo .fm-banner__tag { animation: fm-halo 2s ease-out infinite; }
.fm-banner--tag-shine .fm-banner__tag::after { content: ""; position: absolute; inset: 0 auto 0 -60%; width: 50%; background: linear-gradient(100deg, transparent, rgb(255 255 255 / .6), transparent); animation: fm-sweep 2.8s ease-in-out infinite; }

/* Mobile */
@media (max-width: 640px) {
	.fm-banner--mobile-hide { display: none; }
	.fm-banner--mobile-compact .fm-banner__inner > :not(.fm-banner__compact) { display: none; }
	.fm-banner--mobile-compact .fm-banner__compact { display: flex; padding-inline: 44px 72px; }
	.fm-banner__static, .fm-banner__rotator { padding-inline: 12px 76px; justify-content: flex-start; }
	.fm-banner__msg { justify-content: flex-start; }
	.fm-banner__item { white-space: normal; }
	.fm-banner--marquee .fm-banner__item, .fm-banner--pingpong .fm-banner__item { white-space: nowrap; }
}

/* 7. Pied de page ---------------------------------------------------------- */

.fm-footer {
	--_bg: #0a0a0a; --_fg: #fff; --_muted: rgb(255 255 255 / .62); --_line: rgb(255 255 255 / .12);
	background: var(--_bg); color: var(--_fg);
	padding: clamp(56px, 8vw, 104px) 0 28px;
	font-size: 15.5px;
}
.fm-footer--light { --_bg: #F4F4F2; --_fg: #0A0A0A; --_muted: #55595F; --_line: rgb(0 0 0 / .12); }
.fm-scheme-dark .fm-footer--dark { --_bg: color-mix(in srgb, var(--fm-bg) 88%, #fff); }
.fm-footer--brand { --_bg: var(--fm-primary); --_fg: var(--fm-on-primary); --_muted: var(--fm-on-primary); --_line: color-mix(in srgb, var(--fm-on-primary) 25%, transparent); }
.fm-footer__inner { max-width: calc(var(--fm-wide) + 2 * var(--fm-gutter)); margin: 0 auto; padding-inline: var(--fm-gutter); }
.fm-footer a:not(.fm-btn) { color: inherit; text-decoration: none; transition: color .2s, opacity .2s; }
.fm-footer a:not(.fm-btn):hover { color: var(--fm-primary); }
.fm-footer--brand a:not(.fm-btn):hover { opacity: .75; color: inherit; }
.fm-footer__grid { display: grid; grid-template-columns: minmax(240px, 1.4fr) repeat(auto-fit, minmax(170px, 1fr)); gap: 40px 48px; }
.fm-footer__grid--center { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); text-align: center; margin-top: 48px; }
.fm-footer__grid--center .fm-hours div { justify-content: center; }
.fm-footer__brand .fm-logo { --fm-logo-img-h: 56px; }
.fm-footer__tagline { color: var(--_muted); margin: 16px 0 20px; max-width: 30ch; }
.fm-footer__title { font-family: var(--fm-font-body); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--_muted); margin: 0 0 16px; }
.fm-footer__menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fm-footer__menu .fm-menu__link { min-height: 0; font-size: inherit; font-weight: 500; }
.fm-footer__address { font-style: normal; display: grid; gap: 10px; }
.fm-hours { margin: 0; display: grid; gap: 8px; }
.fm-hours div { display: flex; gap: 14px; justify-content: space-between; max-width: 260px; }
.fm-hours dt { color: var(--_muted); }
.fm-hours dd { margin: 0; font-weight: 600; }
.fm-footer__cta {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px;
	padding-bottom: clamp(40px, 6vw, 72px); margin-bottom: clamp(40px, 6vw, 72px); border-bottom: 1px solid var(--_line);
}
.fm-footer__cta-title { margin: 0; font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight); font-stretch: var(--fm-heading-stretch); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case); letter-spacing: var(--fm-heading-track); line-height: var(--fm-heading-leading); font-size: var(--fm-h2, 44px); max-width: 16ch; }
.fm-footer--brand .fm-footer__cta-btn { --_bg: var(--fm-on-primary); --_fg: var(--fm-primary); --_bd: var(--fm-on-primary); }
.fm-footer__center { display: flex; flex-direction: column; align-items: center; text-align: center; }
.fm-footer__center .fm-footer__tagline { margin-inline: auto; }
.fm-footer__center .fm-social { justify-content: center; }
.fm-footer__giant {
	margin: clamp(40px, 6vw, 72px) 0 0; font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight); font-stretch: var(--fm-heading-stretch);
	text-transform: uppercase; line-height: .8; letter-spacing: -.02em; font-size: calc(var(--fm-h1, 60px) * 2); white-space: nowrap; overflow: hidden;
	color: transparent; -webkit-text-stroke: 1.5px var(--_line);
}
.fm-footer__minimal { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.fm-footer__inline .fm-footer__title { display: none; }
.fm-footer__inline .fm-footer__menu { display: flex; flex-wrap: wrap; gap: 24px; }
.fm-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--_line); color: var(--_muted); font-size: 14px; }
.fm-footer__bottom p { margin: 0; }
.fm-footer__legal ul { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; padding: 0; list-style: none; }
.fm-footer__legal a { color: inherit; text-decoration: none; padding-block: 6px; display: inline-block; }
.fm-footer__legal a:hover, .fm-footer__legal a[aria-current="page"] { color: var(--_fg, currentColor); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) { .fm-footer__bottom { flex-direction: column; align-items: flex-start; gap: 10px; } }

.fm-social { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; }
.fm-social__link {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px;
	border: 1px solid currentColor; color: inherit; opacity: .8; transition: background-color .25s, color .25s, opacity .25s, transform .3s cubic-bezier(.34,1.56,.64,1);
}
.fm-social__link:hover { opacity: 1; background: var(--fm-primary); border-color: var(--fm-primary); color: var(--fm-on-primary) !important; transform: translateY(-2px); }

/* 8. Utilitaires et animations --------------------------------------------- */

.fm-icon { flex-shrink: 0; }

@keyframes fm-draw { to { stroke-dashoffset: 0; } }
@keyframes fm-redraw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes fm-beat { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes fm-marquee { to { transform: translateX(-50%); } }
@keyframes fm-pingpong { from { transform: translateX(0); } to { transform: translateX(var(--fm-pp, -30%)); } }
@keyframes fm-char { from { opacity: 0; transform: translateY(.6em) rotate(6deg); filter: blur(3px); } }
@keyframes fm-caret { 50% { opacity: 0; } }
@keyframes fm-bgshift { to { background-position: -200% 0; } }
@keyframes fm-bgpulse { 50% { filter: brightness(1.18) saturate(1.1); } }
@keyframes fm-sweep { 0% { transform: translateX(0) skewX(-20deg); } 60%, 100% { transform: translateX(560%) skewX(-20deg); } }
@keyframes fm-shine { 0% { transform: translateX(0) skewX(-20deg); } 70%, 100% { transform: translateX(500%) skewX(-20deg); } }
@keyframes fm-glowline { from { background-position: -40% 0; } to { background-position: 140% 0; } }
@keyframes fm-tagpulse { 50% { transform: scale(1.08); } }
@keyframes fm-halo { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--fm-banner-tag-bg) 70%, transparent); } 100% { box-shadow: 0 0 0 10px transparent; } }
@keyframes fm-breathe { 50% { box-shadow: 0 14px 44px -4px rgb(var(--fm-btn-bg-rgb) / .95); } }
@keyframes fm-rise { from { opacity: 0; transform: translateY(24px); } }
@keyframes fm-vt-out { to { opacity: 0; transform: translateY(-24px); } }
@keyframes fm-vt-in { from { opacity: 0; transform: translateY(32px); } }

/* 9. Mouvement réduit et désactivation ------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.fm-banner--marquee .fm-banner__track, .fm-banner--pingpong .fm-banner__track { animation: none !important; }
	.fm-banner--marquee .fm-banner__group[aria-hidden] { display: none; }
	.fm-banner--marquee .fm-banner__viewport, .fm-banner--pingpong .fm-banner__viewport { overflow-x: auto; scrollbar-width: none; }
}
.fm-no-motion *, .fm-no-motion *::before, .fm-no-motion *::after { animation: none !important; transition-duration: .01ms !important; }
.fm-no-motion .fm-banner__group[aria-hidden] { display: none; }

/* 10. Pages intérieures ---------------------------------------------------- */

.fm-page-hero {
	padding-block: calc(var(--fm-section) * .8) calc(var(--fm-section) * .5);
	background: var(--fm-bg);
	border-bottom: var(--fm-border-width) solid var(--fm-border);
}
.fm-has-transparent-header .fm-page-hero { padding-top: calc(var(--fm-section) * .8 + var(--fm-header-real, 100px)); }
.fm-page-hero .wp-block-post-title { font-size: var(--fm-h1); margin: 0; }
.fm-page-hero__meta { color: var(--fm-muted); margin-bottom: 12px; }
.fm-page-content > :first-child:not(.alignfull) { margin-top: var(--fm-section); }
.fm-page-content > :last-child:not(.alignfull) { margin-bottom: var(--fm-section); }
.fm-main .wp-block-post-content > .alignfull { margin-block: 0; }
.fm-article { padding-block: var(--fm-section); }
.fm-posts { padding-block: var(--fm-section); }
.fm-posts .wp-block-post-featured-image img { border-radius: var(--fm-radius-media); }
.fm-posts .wp-block-post-title { font-size: var(--fm-h4); }
.fm-posts .wp-block-post-title a { text-decoration: none; color: inherit; }

/* 11. Styles de blocs WordPress proposés par le thème ----------------------- */

.wp-block-group.is-style-fm-card { background: var(--fm-surface); border: var(--fm-border-width) solid var(--fm-border); border-radius: var(--fm-radius); padding: clamp(20px, 3vw, 36px); box-shadow: var(--fm-shadow); }
.wp-block-group.is-style-fm-glass { background: rgb(var(--fm-text-rgb) / .06); border: 1px solid rgb(var(--fm-text-rgb) / .14); border-radius: var(--fm-radius); padding: clamp(20px, 3vw, 36px); backdrop-filter: blur(16px) saturate(1.4); -webkit-backdrop-filter: blur(16px) saturate(1.4); }
.wp-block-image.is-style-fm-rounded img { border-radius: var(--fm-radius-media); }
.wp-block-list.is-style-fm-checks { list-style: none; padding-left: 0; display: grid; gap: .6em; }
.wp-block-list.is-style-fm-checks li { position: relative; padding-left: 1.8em; }
.wp-block-list.is-style-fm-checks li::before { content: ""; position: absolute; left: 0; top: .35em; width: 1.05em; height: 1.05em; border-radius: 50%; background: var(--fm-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 70% no-repeat; }
.wp-block-separator.is-style-fm-pulse { border: 0; height: 28px; max-width: none; opacity: 1; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 28' preserveAspectRatio='none'%3E%3Cpath d='M0 16H170l8-12 12 24 14-26 8 14h188' fill='none' stroke='%23E1061B' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }

/* 12. Utilitaires de texte -------------------------------------------------- */

.fm-lead { font-size: clamp(18px, 1.6vw, 22px); line-height: 1.5; max-width: 56ch; opacity: .88; }
.has-text-align-center.fm-lead, .fm-section--ta-center .fm-lead { margin-inline: auto; }
.fm-muted { color: var(--fm-muted); }

@media (max-width: 767px) {
	.fm-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
	.fm-footer__brand { grid-column: 1 / -1; }
	.fm-footer__grid--center { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
	.fm-footer__grid { grid-template-columns: 1fr; }
}


/* 13. Traitement des photos ------------------------------------------------- */

.fm-photo-mono :is(.fm-section__img, .fm-activity__img, .fm-coach__img, .fm-tour__img, .fm-machine__img, .fm-hs__item img, .wp-block-image img),
.fm-photo-mono-hover :is(.fm-section__img, .fm-activity__img, .fm-coach__img, .fm-tour__img, .fm-machine__img, .fm-hs__item img, .wp-block-image img) {
	filter: grayscale(1) contrast(1.08) brightness(1.02);
	transition: filter .8s cubic-bezier(.2,.8,.2,1), transform 1s cubic-bezier(.2,.8,.2,1);
}
.fm-photo-mono-hover :is(.fm-activity, .fm-coach, .fm-machine, .fm-hs__item, .wp-block-image):hover img { filter: none; }
.fm-photo-cinema :is(.fm-section__img, .fm-activity__img, .fm-coach__img, .fm-tour__img, .fm-machine__img, .fm-hs__item img, .wp-block-image img) { filter: contrast(1.12) saturate(.82) brightness(.95); }

/* Section Hyrox : trois photos de même hauteur */
.fm-hyrox .wp-block-image { margin: 0; }
.fm-hyrox .wp-block-image img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--fm-radius-media); display: block; }
.fm-hyrox .fm-hyrox__c img { object-position: 50% 40%; }

/* Page Hyrox : les 8 ateliers */
.fm-hx-step { border-radius: var(--fm-radius); padding-inline: 22px !important; min-height: 130px; justify-content: flex-end; }
.fm-hx-step .fm-title { margin: 0; }
/* Séances et cartes : cartes compactes */
.fm-pricing--mini .fm-price { padding: 22px; gap: 8px; }
.fm-pricing--mini .fm-price__value { font-size: clamp(34px, 3.4vw, 48px); }
.fm-pricing--mini .fm-price__features { margin: 0; }
.fm-pricing--mini .fm-price__cta:empty { display: none; }
/* Équipe : portraits sur fond rouge */
.fm-team .fm-coach__media { background: #B30416; }
.fm-plans-more { margin-top: 28px; }

/* Actualités */
.fm-news-videos { padding-block: calc(var(--fm-section) * .55) calc(var(--fm-section) * .7); }
.fm-news-posts { padding-block: 0 var(--fm-section); }
.fm-news-title { font-size: var(--fm-h3); margin: 0 0 28px; }
.fm-news-empty { padding: 28px; border-radius: var(--fm-radius); background: var(--fm-surface); color: var(--fm-muted); max-width: 720px; }

/* Animation d'ouverture (ambiances) */
.fm-intro-burst { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: 100001; pointer-events: none; }
.fm-intro { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; background: var(--fm-intro-bg, #0A0A0A); color: #fff; cursor: pointer; clip-path: inset(0 0 0 0); transition: clip-path .8s cubic-bezier(.7,0,.2,1); animation: fm-intro-in .4s ease-out both; }
.fm-intro.is-out { clip-path: inset(0 0 100% 0); pointer-events: none; }
@keyframes fm-intro-in { from { opacity: 0; } }
.fm-intro__inner { display: flex; flex-direction: column; align-items: center; gap: 26px; padding: 24px; text-align: center; }
.fm-intro__logo { --fm-logo-img-h: clamp(90px, 16vw, 160px); position: relative; height: var(--fm-logo-img-h); animation: fm-intro-pop .9s cubic-bezier(.34,1.56,.64,1) .1s both; }
.fm-intro__logo img { height: 100%; width: auto; display: block; }
.fm-intro__text { margin: 0; font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight); font-stretch: var(--fm-heading-stretch); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case); font-size: var(--fm-h2, 44px); line-height: 1; animation: fm-intro-up .8s cubic-bezier(.2,.8,.2,1) .35s both; }
.fm-intro__skip { position: absolute; right: 20px; bottom: 20px; padding: 10px 18px; border: 1px solid rgb(255 255 255 / .35); border-radius: 999px; background: none; color: #fff; font: inherit; font-size: 14px; cursor: pointer; }
@keyframes fm-intro-pop { from { opacity: 0; transform: scale(.7); } }
@keyframes fm-intro-up { from { opacity: 0; transform: translateY(24px); } }
.fm-intro-toast { position: fixed; z-index: 100002; top: clamp(96px, 14vh, 140px); left: 50%; translate: -50% 0; padding: 12px 22px; border-radius: 999px; background: #0A0A0A; color: #fff; font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case); font-size: clamp(16px, 2vw, 22px); box-shadow: 0 18px 40px -16px rgb(0 0 0 / .5); animation: fm-toast-in .6s cubic-bezier(.34,1.56,.64,1) both; transition: opacity .5s, translate .5s; pointer-events: none; }
.fm-intro-toast.is-out { opacity: 0; translate: -50% -20px; }
@keyframes fm-toast-in { from { opacity: 0; translate: -50% -30px; } }
.fm-page-hero > .fm-kicker { display: flex; max-width: var(--fm-content); margin-inline: auto !important; margin-bottom: 14px; }
.fm-page-hero > h1.wp-block-heading { font-size: var(--fm-h1); margin-top: 0; margin-bottom: 0; }

/* Bandeau d'annonce sur téléphone : une seule ligne nette */
@media (max-width: 640px) {
	.fm-banner { font-size: min(var(--fm-banner-size), 13px); }
	.fm-banner__tag { display: none; }
	.fm-banner__static, .fm-banner__rotator { padding-inline: 12px; }
	.fm-banner:has(.fm-banner__controls) .fm-banner__inner { padding-right: 64px; }
	.fm-banner__msg, .fm-banner__static { min-width: 0; }
	.fm-banner__item { gap: 8px; min-width: 0; max-width: 100%; }
	.fm-banner__item, .fm-banner__link { white-space: nowrap; }
	.fm-banner__text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
	.fm-banner__msg { max-width: 100%; }
	.fm-banner__controls .fm-banner__pause { display: none; }
}
.fm-intro-toast { white-space: nowrap; max-width: calc(100vw - 32px); }
/* Téléphone : le bandeau est une fine bande rouge sous le header (la barre d'état du téléphone
   garde la couleur du header au lieu de virer au rouge), sans pastille. */
@media (max-width: 640px) {
	header.wp-block-template-part:has(> .fm-banner) { display: flex; flex-direction: column; }
	/* Safari (iOS 26) teinte la barre d'état avec le fond du header collant : on lui donne
	   celui du header (opaque), sinon il prend le rouge du bandeau quand le header revient. */
	.wp-site-blocks > header.wp-block-template-part:not(:has(.fm-header--transparent)) { background: var(--fm-header-solid, var(--fm-header-bg)); }
	.wp-site-blocks > header.wp-block-template-part:not(:has(.fm-header--transparent)):has(.fm-header.is-scrolled) { background: var(--fm-header-scrolled-solid, var(--fm-header-scrolled)); }
	header.wp-block-template-part > .fm-banner { order: 2; }
	header.wp-block-template-part > .fm-header { position: relative; z-index: 3; }
	/* Texte bien centré : marges égales des deux côtés du bouton de fermeture. */
	.fm-banner:has(.fm-banner__controls) .fm-banner__inner { padding-inline: 32px !important; }
	.fm-banner .fm-banner__static, .fm-banner .fm-banner__rotator { padding-inline: 0 !important; }
	.fm-banner { --fm-banner-h: 28px; min-height: 28px !important; font-size: 12px; }
	.fm-banner .fm-banner__tag { display: none !important; }
	.fm-banner__inner { min-height: 28px; }
	.fm-banner .fm-banner__link { padding-block: 2px; }
	.fm-banner__controls button { width: 26px; height: 26px; }
}
@media (max-width: 600px) { .fm-intro-toast { font-size: 15px; padding: 10px 18px; } }

/* Ambiances « élégantes » : effets limités au haut de page, fondus vers le bas */
.fm-fx--elegant.fm-fx--first_screen { -webkit-mask-image: linear-gradient(to bottom, #000 0, #000 55%, transparent 100%); mask-image: linear-gradient(to bottom, #000 0, #000 55%, transparent 100%); }
.fm-fx--elegant.fm-fx--window, .fm-fx--elegant.fm-fx--below_header { -webkit-mask-image: linear-gradient(to bottom, #000 0, #000 70%, transparent 100%); mask-image: linear-gradient(to bottom, #000 0, #000 70%, transparent 100%); }
/* Bouton des effets : discret, disparaît quand les effets s'arrêtent */
.fm-fx-toggle { min-height: 34px; padding: 6px 13px; font-size: 12px; font-weight: 600; opacity: .82; transition: opacity .35s, transform .35s; }
.fm-fx-toggle:hover { opacity: 1; }
.fm-fx-toggle.is-out { opacity: 0; transform: translateY(8px); pointer-events: none; }
/* Message d'accueil des événements */
.fm-greet { position: fixed; z-index: 100002; left: 16px; right: 16px; margin-inline: auto; width: fit-content; display: flex; align-items: center; gap: 10px; max-width: 520px; padding: 10px 10px 10px 12px; border: 1px solid rgb(0 0 0 / .08); border-radius: 14px; background: rgb(255 255 255 / .96); color: #111; box-shadow: 0 14px 40px -16px rgb(0 0 0 / .35); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); font: 600 14px/1.35 var(--fm-font-body, system-ui); opacity: 0; transform: translateY(-12px) scale(.98); transition: opacity .45s cubic-bezier(.2,.8,.2,1), transform .55s cubic-bezier(.2,.8,.2,1); }
.fm-greet.is-in { opacity: 1; transform: none; }
.fm-greet.is-out { opacity: 0; transform: translateY(-10px); }
.fm-greet.is-bottom { top: auto; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); }
.fm-greet.is-bottom:not(.is-in), .fm-greet.is-bottom.is-out { transform: translateY(12px); }
/* Menu téléphone ouvert (ou fenêtre plein écran) : le message d’ambiance s’efface pour ne rien cacher. */
.fm-lock .fm-greet, .fm-lock .fm-intro-toast { opacity: 0 !important; visibility: hidden; pointer-events: none; }
.fm-greet.is-dark { border-color: rgb(255 255 255 / .1); background: rgb(24 24 27 / .94); color: #f4f4f5; }
.fm-greet__ico { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: color-mix(in srgb, var(--fm-primary, #E1061B) 9%, transparent); }
.fm-greet__ico svg { width: 24px; height: 24px; }
.fm-greet__txt { flex: 1; min-width: 0; }
.fm-greet__x { flex: none; display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 8px; background: none; color: inherit; opacity: .55; cursor: pointer; }
.fm-greet__x:hover { opacity: 1; background: rgb(0 0 0 / .06); }
@media (prefers-reduced-motion: reduce) { .fm-greet { transition: opacity .2s; transform: none; } }
@media (max-width: 767px) { .fm-fx-toggle { display: none; } }
.fm-footer--brand .fm-footer__cta-btn.fm-btn { background: var(--fm-on-primary) !important; color: var(--fm-primary) !important; border-color: var(--fm-on-primary) !important; }

/* Pastille « Nouveau » sur un lien du menu */
.fm-menu__link.has-badge { display: inline-flex; align-items: center; gap: 7px; }
.fm-menu__new { display: inline-block; padding: 2px 7px 3px; border-radius: 999px; background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); font-size: 10.5px; font-weight: 800; font-style: normal; letter-spacing: .05em; line-height: 1.3; text-transform: uppercase; white-space: nowrap; box-shadow: 0 4px 10px -4px rgb(var(--fm-primary-rgb, 225 6 27) / .7); }
.fm-menu--mobile .fm-menu__new { font-size: 11.5px; }
@media (prefers-reduced-motion: no-preference) { .fm-menu__new { animation: fm-new-pulse 2.6s ease-in-out infinite; } }
@keyframes fm-new-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgb(var(--fm-primary-rgb, 225 6 27) / .45); } 50% { box-shadow: 0 0 0 5px rgb(var(--fm-primary-rgb, 225 6 27) / 0); } }

/* Header sombre : lien actif et survol en rouge éclairci (lisible sur noir) */
.fm-header--on-dark:is(.fm-header--hover-color, .fm-header--hover-lift) .fm-menu__link:is(:hover, [aria-current]) { color: var(--fm-primary-on-dark, #E84252); }
/* Pied de page « logo centré » : colonnes centrées elles aussi */
.fm-footer__grid--center .fm-footer__col { text-align: center; }
.fm-footer__grid--center .fm-footer__menu { justify-items: center; }
.fm-footer__grid--center .fm-hours { margin-inline: auto; width: fit-content; }
.fm-footer__grid--center .fm-hours > div { justify-content: center; }
.fm-footer__grid--center .fm-footer__address, .fm-footer__grid--center .fm-footer__contact { align-items: center; text-align: center; }
/* Décor de logo (ambiances) : passe au-dessus du bandeau au lieu d'être coupé */
.fm-header__bar { z-index: 2; }
.fm-banner { position: relative; z-index: 1; }

/* Liens « Autour de FitMove » (pages locales), au-dessus de la mention du bas. */
.fm-footer__local { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin-top: clamp(28px, 4vw, 40px); padding-top: 18px; border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent); font-size: 14px; }
.fm-footer__local-title { margin: 0; font-weight: 600; opacity: .9; }
.fm-footer__local ul { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; padding: 0; list-style: none; }
.fm-footer__local a { color: inherit; opacity: .78; text-decoration: none; }
.fm-footer__local a:hover, .fm-footer__local a:focus-visible, .fm-footer__local a[aria-current] { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
.fm-footer--centered .fm-footer__local { justify-content: center; }
.fm-footer--brand .fm-footer__local a, .fm-footer--brand .fm-footer__local-title { opacity: 1; }

/* Bandeau d'annonce : texte vraiment centré (même marge à gauche qu'à droite des boutons),
   et boutons discrets, sans pastille ronde. */
.fm-banner__controls { right: 4px; gap: 0; }
.fm-banner__controls button { width: 30px; height: 30px; background: none; opacity: .7; border-radius: 6px; }
.fm-banner__controls button:hover, .fm-banner__controls button:focus-visible { opacity: 1; background: color-mix(in srgb, currentColor 10%, transparent); }
.fm-banner:has(.fm-banner__controls) .fm-banner__inner { padding-inline: 68px; }
.fm-banner:has(.fm-banner__controls) .fm-banner__viewport { mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.fm-banner__static, .fm-banner__rotator, .fm-banner__compact { text-align: center; }
.fm-banner__rotator { width: 100%; }
.fm-banner__msg, .fm-banner__static, .fm-banner__compact { justify-content: center; }
/* Tablette et ordinateur : un message trop long passe sur deux lignes, toujours centré entre
   les boutons (au lieu de dépasser sous la croix). Le défilement garde une seule ligne. */
@media (min-width: 641px) {
	.fm-banner__msg, .fm-banner__static { min-width: 0; max-width: 100%; }
	.fm-banner:not(.fm-banner--marquee):not(.fm-banner--pingpong) .fm-banner__item { max-width: 100%; min-width: 0; }
	.fm-banner:not(.fm-banner--marquee):not(.fm-banner--pingpong) :is(.fm-banner__tag, .fm-banner__link) { flex: none; white-space: nowrap; }
	.fm-banner:not(.fm-banner--marquee):not(.fm-banner--pingpong) .fm-banner__text { flex: 0 1 auto; min-width: 0; white-space: normal; text-align: center; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}
@media (max-width: 640px) {
	/* Sur téléphone, seul le bouton « fermer » reste : 34 px de chaque côté. */
	.fm-banner:has(.fm-banner__controls) .fm-banner__inner { padding-inline: 34px; }
	.fm-banner:not(:has(.fm-banner__controls)) .fm-banner__inner { padding-inline: 12px; }
	.fm-banner__static, .fm-banner__rotator { padding-inline: 0; }
	.fm-banner--mobile-compact .fm-banner__compact { padding-inline: 0; }
	.fm-banner__controls { right: 2px; }
}

/* Articles (Actualités) ---------------------------------------------------- */
.single-post .fm-page-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 14px; opacity: .85; }
.single-post .fm-page-hero__meta a { color: inherit; font-weight: 600; text-decoration: none; }
.single-post .fm-page-hero__meta a:hover { text-decoration: underline; }
.fm-article .wp-block-post-featured-image { margin: 0 0 clamp(26px, 4vw, 40px); }
.fm-article .wp-block-post-featured-image img { border-radius: var(--fm-radius-media, 12px); }
.fm-article .wp-block-post-content { font-size: clamp(17px, 1.2vw, 18px); line-height: 1.7; }
.fm-article .wp-block-post-content > * { margin-block: 0; }
.fm-article .wp-block-post-content > * + * { margin-top: 1.05em; }
.fm-article .wp-block-post-content > h2 { margin-top: 2em; font-size: clamp(25px, 2.4vw, 32px); line-height: 1.18; }
.fm-article .wp-block-post-content > h3 { margin-top: 1.6em; font-size: clamp(20px, 1.7vw, 23px); line-height: 1.25; }
.fm-article .wp-block-post-content > h2 + *, .fm-article .wp-block-post-content > h3 + * { margin-top: .6em; }
.fm-article .wp-block-post-content :is(ul, ol) { padding-left: 1.25em; }
.fm-article .wp-block-post-content li + li { margin-top: .45em; }
.fm-article .wp-block-post-content li::marker { color: var(--fm-primary-text, var(--fm-primary)); font-weight: 700; }
.fm-article .wp-block-post-content p a:not(.fm-btn), .fm-article .wp-block-post-content li a:not(.fm-btn) { color: var(--fm-primary-text, var(--fm-primary)); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.fm-article .wp-block-quote { margin-inline: 0; padding: 4px 0 4px 22px; border-left: 4px solid var(--fm-primary); font-size: 1.15em; font-weight: 600; line-height: 1.45; }
.fm-article .wp-block-quote p { margin: 0; }
.fm-callout { padding: 18px 22px !important; border-radius: calc(var(--fm-radius, 12px) - 2px); background: color-mix(in srgb, var(--fm-primary) 7%, transparent); border-left: 4px solid var(--fm-primary); font-weight: 600; line-height: 1.55; }
.fm-callout p { margin: 0; }
.fm-legal-todo { padding: 1px 6px; border-radius: 4px; background: #fff3c4; color: #5c4400 !important; font-weight: 700; text-decoration: none; }
.fm-legal-todo:hover { background: #ffe68a; }
/* Clin d'œil « le seul coin sombre, c'est le fond du site » : seulement sur fond sombre. */
.fm-joke-light, .fm-scheme-light .fm-joke-dark { display: none; }
.fm-scheme-light .fm-joke-light { display: inline; }
.fm-article .fm-article-cta { margin-block: 1.4em 1.6em !important; }
.fm-article-end { margin-top: clamp(40px, 6vw, 64px); padding: clamp(24px, 4vw, 36px); border-radius: var(--fm-radius, 16px); background: #0b0b0c; color: #f4f4f5; }
.fm-article-end p { margin: 0; }
.fm-article-end p + p { margin-top: 10px; }
.fm-article-end__kicker { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--fm-primary-on-dark, #F0626F); }
.fm-article-end__title { font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight, 800); font-size: clamp(24px, 2.4vw, 30px); line-height: 1.15; color: #fff; text-transform: var(--fm-heading-case, none); }
.fm-article-end__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px !important; }
.fm-article-end .fm-btn--outline { color: #fff; border-color: rgb(255 255 255 / .6); }
@media (max-width: 640px) {
	.fm-article-end__btns .fm-btn { width: 100%; justify-content: center; }
}

/* Cartes (groupe « Carte ») posées sur une section sombre, rouge ou en dégradé :
   fond translucide et texte clair, jamais de carte claire avec un texte blanc. */
:is(.fm-section--tone-dark, .fm-alt-dark .fm-section--tone-alt) .wp-block-group.is-style-fm-card { background: rgb(255 255 255 / .06); border-color: rgb(255 255 255 / .14); color: inherit; }
:is(.fm-section--tone-primary, .fm-section--tone-gradient) .wp-block-group.is-style-fm-card { background: rgb(255 255 255 / .12); border-color: rgb(255 255 255 / .22); color: inherit; }
:is(.fm-section--tone-dark, .fm-section--tone-primary, .fm-section--tone-gradient, .fm-alt-dark .fm-section--tone-alt) .wp-block-group.is-style-fm-card :is(h2, h3, h4, p, .fm-title) { color: inherit; }

/* ---------------------------------------------------------------------------
 * Bouton d'inscription fixe (téléphone) : discret, aux couleurs du thème.
 * Apparaît après le premier écran, s'efface devant les offres et le bas de page.
 * ------------------------------------------------------------------------ */
.fm-buybar { display: none; }
@media (max-width: 640px) {
	.fm-buybar {
		position: fixed; z-index: 980; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom));
		display: flex; align-items: center; gap: 12px;
		padding: 8px 8px 8px 16px;
		border-radius: calc(var(--fm-radius, 12px) + 6px);
		background: color-mix(in srgb, var(--fm-surface, var(--fm-bg, #fff)) 92%, transparent);
		color: var(--fm-text, #0a0a0a);
		border: 1px solid color-mix(in srgb, currentColor 12%, transparent);
		box-shadow: 0 16px 40px -18px rgb(0 0 0 / .45);
		-webkit-backdrop-filter: blur(14px) saturate(1.3); backdrop-filter: blur(14px) saturate(1.3);
		transform: translateY(calc(100% + 24px)); opacity: 0;
		transition: transform .45s cubic-bezier(.2,.8,.2,1), opacity .3s;
		pointer-events: none;
	}
	.fm-buybar[hidden] { display: flex; }
	.fm-buybar.is-on { transform: none; opacity: 1; pointer-events: auto; }
	.fm-scheme-dark .fm-buybar { background: color-mix(in srgb, var(--fm-surface, #18181b) 90%, transparent); color: #fff; border-color: rgb(255 255 255 / .12); }
	.fm-buybar__info { flex: 1 1 auto; min-width: 0; margin: 0; display: grid; gap: 1px; line-height: 1.2; }
	.fm-buybar__info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; 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: 17px; }
	.fm-buybar__info span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; opacity: .72; }
	.fm-buybar.is-promo .fm-buybar__info strong { color: var(--fm-primary-text, var(--fm-primary, #C60518)); }
	/* Promo : le texte complet sur deux lignes plutôt que coupé. */
	.fm-buybar.is-promo .fm-buybar__info strong { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 15px; line-height: 1.1; }
	.fm-scheme-dark .fm-buybar.is-promo .fm-buybar__info strong { color: var(--fm-primary-on-dark, #ff6b78); }
	.fm-buybar .fm-buybar__btn { flex: none; min-height: 46px; padding-inline: 18px; font-size: 14px; animation: none !important; }
	.fm-buybar .fm-buybar__btn .fm-btn__icon { display: none; }
	html.fm-lock .fm-buybar { transform: translateY(calc(100% + 24px)); opacity: 0; pointer-events: none; }
	body.fm-buybar-on .fm-fx-toggle { bottom: calc(84px + env(safe-area-inset-bottom)) !important; }
	@media (prefers-reduced-motion: reduce) { .fm-buybar { transition: opacity .2s; } }
}
