/* ==========================================================================
   FitMove Builder — blocs immersifs
   Visite virtuelle, machines, texte au défilement, défilement horizontal,
   cartes empilées, avant/après, image interactive.
   Principe : tout est lisible sans JavaScript ; la classe .is-live active
   la mise en scène quand le script tourne (et que les mouvements sont permis).
   ========================================================================== */

:where(.fm-tour, .fm-machines, .fm-stext, .fm-hs, .fm-stack, .fm-compare, .fm-hotspots) {
	--_primary: var(--fm-primary, #E1061B);
	--_on-primary: var(--fm-on-primary, #fff);
	--_text: var(--fm-s-fg, var(--fm-text, #0a0a0a));
	--_bg: var(--fm-s-bg, var(--fm-bg, #fff));
	--_muted: var(--fm-muted, #5c5c5c);
	--_surface: var(--fm-surface, #f3f3f1);
	--_border: var(--fm-border, #e4e4e1);
	--_radius: var(--fm-radius, 18px);
	--_radius-media: var(--fm-radius-media, 28px);
	--_heading: var(--fm-font-heading, inherit);
	--_ease: cubic-bezier(.2, .8, .2, 1);
	--_spring: cubic-bezier(.34, 1.56, .64, 1);
	box-sizing: border-box;
}
:where(.fm-tour, .fm-machines, .fm-hs) :where(h2, h3) {
	font-family: var(--_heading);
	font-weight: var(--fm-heading-weight, 800);
	font-stretch: var(--fm-heading-stretch, 100%);
	font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none);
	letter-spacing: var(--fm-heading-track, 0);
	line-height: var(--fm-heading-leading, .95);
	margin: 0;
}
:where(.fm-tour__kicker, .fm-machines__kicker, .fm-hs__kicker) {
	display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px;
	font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
}
:where(.fm-tour__kicker, .fm-machines__kicker, .fm-hs__kicker)::before { content: ""; width: 22px; height: 2px; background: currentColor; }

/* ==========================================================================
   Visite virtuelle
   ========================================================================== */

.fm-tour { position: relative; color: #fff; background: #0a0a0a; margin-block: 0; }
.fm-tour { max-width: none; }
.fm-tour__stage { display: grid; gap: 0; }
.fm-tour__scene { position: relative; margin: 0; overflow: hidden; aspect-ratio: 16 / 10; background: #111; }
.fm-tour__img, .fm-tour__ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--fx, 50%) var(--fy, 50%); display: block; }
.fm-tour__ph { background: linear-gradient(135deg, #222, #3a3a3a); }
.fm-tour__scene::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(0 0 0 / calc(var(--fm-tour-ov) * .5)) 0%, transparent 30%, transparent 45%, rgb(0 0 0 / calc(var(--fm-tour-ov) + .25)) 100%); pointer-events: none; }
.fm-tour__cap { position: absolute; left: clamp(20px, 5vw, 72px); right: clamp(20px, 5vw, 72px); bottom: clamp(24px, 6vh, 72px); z-index: 2; max-width: 620px; }
.fm-tour__num { display: inline-flex; gap: 6px; margin-bottom: 14px; padding: 6px 12px; border-radius: 999px; background: rgb(255 255 255 / .14); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); font-size: 12.5px; font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.no-counter .fm-tour__num { display: none; }
.fm-tour__title { font-size: var(--fm-h2, 44px); }
.fm-tour__text { margin: 14px 0 0; font-size: clamp(16px, 1.3vw, 19px); line-height: 1.5; opacity: .88; max-width: 46ch; }
.fm-tour__intro { padding: clamp(48px, 8vw, 120px) clamp(20px, 5vw, 72px); max-width: 1100px; }
.fm-tour__h { font-size: var(--fm-h1, 60px); }
.fm-tour__lead { margin: 20px 0 0; max-width: 52ch; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.5; opacity: .85; }
.fm-tour__hint { display: none; }
.fm-tour__nav { display: none; }
.fm-tour__cta { padding: 32px clamp(20px, 5vw, 72px) 56px; }

/* Mise en scène (JS actif) */
.fm-tour.is-live { height: calc(100vh + var(--fm-tour-n) * var(--fm-tour-len)); height: calc(100svh + var(--fm-tour-n) * var(--fm-tour-len)); }
.fm-tour.is-live .fm-tour__pin { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; }
.fm-tour.is-live .fm-tour__stage { position: absolute; inset: 0; display: block; clip-path: inset(var(--fm-tour-inset, 0px) round var(--fm-tour-r, 0px)); will-change: clip-path; }
.fm-tour.is-live .fm-tour__scene { position: absolute; inset: 0; aspect-ratio: auto; opacity: 0; visibility: hidden; }
.fm-tour.is-live .fm-tour__scene.is-first { opacity: 1; visibility: visible; }
.fm-tour.is-live .fm-tour__img { will-change: transform, opacity, filter; transform-origin: var(--fx, 50%) var(--fy, 50%); }
.fm-tour.is-live .fm-tour__cap { opacity: 0; translate: 0 26px; transition: opacity .6s var(--_ease), translate .8s var(--_ease); }
.fm-tour.is-live .fm-tour__scene.is-current .fm-tour__cap { opacity: 1; translate: 0 0; transition-delay: .08s; }
.fm-tour.is-live .fm-tour__intro { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; justify-content: center; max-width: none; pointer-events: none; text-shadow: 0 2px 30px rgb(0 0 0 / .25); }
.fm-tour.is-live .fm-tour__intro > * { max-width: 1100px; }
.fm-tour.is-live .fm-tour__hint { position: absolute; left: 50%; bottom: 34px; translate: -50% 0; display: flex; flex-direction: column; align-items: center; gap: 10px; margin: 0; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
.fm-tour__mouse { width: 22px; height: 34px; border: 2px solid currentColor; border-radius: 12px; position: relative; }
.fm-tour__mouse i { position: absolute; left: 50%; top: 6px; width: 3px; height: 7px; margin-left: -1.5px; border-radius: 2px; background: currentColor; animation: fm-tour-wheel 1.6s var(--_ease) infinite; }
@keyframes fm-tour-wheel { 0% { opacity: 0; translate: 0 -2px; } 30% { opacity: 1; } 100% { opacity: 0; translate: 0 10px; } }

.fm-tour.is-live .fm-tour__nav { position: absolute; z-index: 4; right: clamp(16px, 3vw, 44px); top: 50%; translate: 0 -50%; display: flex; align-items: stretch; gap: 14px; opacity: 0; transition: opacity .5s; }
.fm-tour.is-live.is-touring .fm-tour__nav { opacity: 1; }
.fm-tour__nav ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.fm-tour__dot { display: flex; align-items: center; justify-content: flex-end; gap: 10px; width: 100%; padding: 6px 0; border: 0; background: none; color: inherit; cursor: pointer; font: inherit; font-size: 13px; opacity: .55; transition: opacity .3s; }
.fm-tour__dot:hover, .fm-tour__dot:focus-visible, .fm-tour__dot.is-active { opacity: 1; }
.fm-tour__dot:focus-visible { outline: 2px solid #fff; outline-offset: 3px; border-radius: 6px; }
.fm-tour__dotnum { font-variant-numeric: tabular-nums; font-size: 11px; }
.fm-tour__dotlabel { max-width: 0; overflow: hidden; white-space: nowrap; transition: max-width .5s var(--_ease); }
.fm-tour__dot.is-active .fm-tour__dotlabel, .fm-tour__nav:hover .fm-tour__dotlabel, .fm-tour__nav:focus-within .fm-tour__dotlabel { max-width: 160px; }
.fm-tour__bar { width: 2px; border-radius: 2px; background: rgb(255 255 255 / .25); position: relative; overflow: hidden; }
.fm-tour__bar i { position: absolute; inset: 0; background: #fff; transform-origin: top; scale: 1 var(--fm-tour-p, 0); }
.fm-tour.is-live .fm-tour__cta { position: absolute; z-index: 4; right: clamp(20px, 5vw, 72px); bottom: clamp(24px, 6vh, 72px); padding: 0; opacity: 0; translate: 0 20px; transition: opacity .5s, translate .6s var(--_ease); pointer-events: none; }
.fm-tour.is-live.is-end .fm-tour__cta { opacity: 1; translate: 0 0; pointer-events: auto; }

/* Fallback sans JS : la légende sous chaque espace reste lisible */
@media (max-width: 700px) {
	.fm-tour:not(.is-live) .fm-tour__scene { aspect-ratio: 4 / 5; }
	.fm-tour.is-live .fm-tour__nav { right: 12px; }
	.fm-tour__dotlabel { display: none; }
	.fm-tour.is-live .fm-tour__cap { right: 52px; }
}

/* ==========================================================================
   Machines
   ========================================================================== */

.fm-machines { --_cw: clamp(260px, 26vw, 360px); position: relative; color: var(--_text); }
.fm-machines--s { --_cw: clamp(220px, 21vw, 290px); }
.fm-machines--l { --_cw: clamp(280px, 34vw, 480px); }
.fm-machines__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.fm-machines__title { font-size: var(--fm-h2, clamp(40px, 6vw, 96px)); }
.fm-machines__intro { margin: 14px 0 0; max-width: 52ch; color: var(--_muted); font-size: 17px; line-height: 1.55; }
.fm-machines__ctrl { display: flex; gap: 8px; flex: none; }
.fm-machines__arrow { display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid var(--_border); border-radius: 50%; background: transparent; color: inherit; cursor: pointer; transition: background-color .3s, color .3s, border-color .3s, opacity .3s, scale .3s var(--_spring); }
.fm-machines__arrow:hover:not(:disabled) { background: var(--_text); color: var(--_bg); border-color: var(--_text); }
.fm-machines__arrow:active:not(:disabled) { scale: .92; }
.fm-machines__arrow:disabled { opacity: .3; cursor: default; }
.fm-machines__arrow:focus-visible, .fm-machine__card:focus-visible, .fm-machines__filters button:focus-visible { outline: 2px solid var(--fm-focus, var(--_primary)); outline-offset: 3px; }

.fm-machines__filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.fm-machines__filters button { padding: 10px 18px; border: 1px solid var(--_border); border-radius: 999px; background: transparent; color: inherit; cursor: pointer; font: inherit; font-size: 14px; font-weight: 500; transition: background-color .25s, color .25s, border-color .25s; }
.fm-machines__filters button:hover { border-color: var(--_text); }
.fm-machines__filters button[aria-pressed="true"] { background: var(--_text); color: var(--_bg); border-color: var(--_text); }

.fm-machines__track {
	list-style: none; margin: 0; padding: 4px 0 8px;
	display: grid; grid-auto-flow: column; grid-auto-columns: var(--_cw); gap: 16px;
	overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 0;
	scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.fm-machines__track::-webkit-scrollbar { display: none; }
.fm-machines__track.is-dragging { scroll-snap-type: none; cursor: grabbing; }
.fm-machines__track.is-dragging .fm-machine__card { pointer-events: none; }
.fm-machine { scroll-snap-align: start; transition: opacity .4s, scale .4s var(--_ease); }
.fm-machine.is-hidden { display: none; }
.fm-machine.is-entering { animation: fm-mach-in .5s var(--_ease) both; }
@keyframes fm-mach-in { from { opacity: 0; scale: .94; } }

.fm-machine__card {
	display: flex; flex-direction: column; width: 100%; height: 100%; padding: 0; border: 0;
	border-radius: var(--_radius-media); background: var(--_surface); color: inherit;
	text-align: left; font: inherit; cursor: pointer; overflow: hidden; isolation: isolate;
	transition: translate .5s var(--_ease), box-shadow .5s var(--_ease);
}
.fm-machine__card:hover { translate: 0 -6px; box-shadow: 0 24px 50px -24px rgb(0 0 0 / .35); }
.fm-machine__media { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 3.4; padding: 12% 10%; color: var(--_text); overflow: hidden; }
.fm-machine__media.has-photo { padding: 0; }
.fm-machine__media .fm-mach-ill { width: 100%; height: 100%; transition: scale .8s var(--_ease); }
.fm-machine__media .fm-mach-ill .a, .fm-mdialog__media .fm-mach-ill .a { color: var(--_primary); }
.fm-machine__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: scale .9s var(--_ease); }
.fm-machine__card:hover .fm-mach-ill, .fm-machine__card:hover .fm-machine__img { scale: 1.06; }
.fm-machine__body { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px 20px; flex: 1; }
.fm-machine__cat { font-size: 12px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: var(--_muted); }
.fm-machine__name { font-family: var(--_heading); font-weight: var(--fm-heading-weight, 800); font-stretch: var(--fm-heading-stretch, 100%); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); font-size: clamp(22px, 2vw, 28px); line-height: 1; }
.fm-machine__short { color: var(--_muted); font-size: 14.5px; line-height: 1.45; }
.fm-machine__more { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 14px; font-size: 14px; font-weight: 600; }
.fm-machine__plus { position: relative; width: 36px; height: 36px; border-radius: 50%; background: var(--_text); color: var(--_bg); transition: rotate .5s var(--_spring), background-color .3s; }
.fm-machine__plus::before, .fm-machine__plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; background: currentColor; border-radius: 2px; }
.fm-machine__plus::after { rotate: 90deg; }
.fm-machine__card:hover .fm-machine__plus { rotate: 90deg; background: var(--_primary); color: var(--_on-primary); }

.fm-machines--dark .fm-machine__card { background: #111; color: #fff; }
.fm-machines--dark .fm-machine__media { color: #fff; }
.fm-machines--dark .fm-machine__cat, .fm-machines--dark .fm-machine__short { color: rgb(255 255 255 / .62); }
.fm-machines--dark .fm-machine__plus { background: #fff; color: #111; }
.fm-machines--photo .fm-machine__card { position: relative; color: #fff; background: #111; }
.fm-machines--photo .fm-machine__media { aspect-ratio: 3 / 4; color: #fff; }
.fm-machines--photo .fm-machine__body { position: absolute; inset: auto 0 0; background: linear-gradient(transparent, rgb(0 0 0 / .78)); padding-top: 60px; }
.fm-machines--photo .fm-machine__cat, .fm-machines--photo .fm-machine__short { color: rgb(255 255 255 / .75); }
.fm-machines--photo .fm-machine__plus { background: #fff; color: #111; }

.fm-machines__progress { height: 2px; margin-top: 22px; background: var(--_border); border-radius: 2px; overflow: hidden; }
.fm-machines__progress i { display: block; height: 100%; width: var(--fm-mp-w, 30%); translate: var(--fm-mp-x, 0) 0; background: var(--_text); border-radius: 2px; transition: width .3s; }

/* Fiche (fenêtre au premier plan) */
.fm-mdialog { width: min(1080px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); padding: 0; border: 0; border-radius: calc(var(--_radius-media) + 4px); background: var(--fm-bg, #fff); color: var(--fm-text, #0a0a0a); box-shadow: 0 40px 120px -20px rgb(0 0 0 / .5); overflow: hidden; }
.fm-mdialog::backdrop { background: rgb(10 10 10 / .55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.fm-mdialog[open] { display: flex; }
.fm-mdialog__box { position: relative; display: flex; flex-direction: column; width: 100%; max-height: calc(100dvh - 32px); }
.fm-mdialog__items { overflow-y: auto; overscroll-behavior: contain; flex: 1; }
.fm-mdialog__item { display: grid; grid-template-columns: 1.05fr 1fr; min-height: 100%; }
html.fm-js .fm-mdialog__item:not(.is-active) { display: none; }
.fm-mdialog__media { position: relative; display: grid; place-items: center; min-height: 340px; padding: 10%; background: var(--fm-surface, #f3f3f1); color: var(--fm-text, #0a0a0a); }
.fm-mdialog__media.has-photo { padding: 0; }
.fm-mdialog__media .fm-mach-ill { width: 100%; max-height: 360px; }
.fm-mdialog__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fm-mdialog__body { display: flex; flex-direction: column; gap: 18px; padding: clamp(28px, 4vw, 52px); }
.fm-mdialog__cat { margin: 0; font-size: 12.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fm-primary, #E1061B); }
.fm-mdialog__name { margin: -8px 0 0; font-size: clamp(34px, 4vw, 56px); }
.fm-mdialog__desc { margin: 0; font-size: 16.5px; line-height: 1.6; color: var(--fm-muted, #5c5c5c); }
.fm-mdialog__specs { margin: 0; display: grid; border-top: 1px solid var(--fm-border, #e4e4e1); }
.fm-mdialog__specs div { display: grid; grid-template-columns: 9.5em 1fr; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--fm-border, #e4e4e1); }
.fm-mdialog__specs dt { font-size: 13px; color: var(--fm-muted, #5c5c5c); }
.fm-mdialog__specs dd { margin: 0; font-size: 14.5px; font-weight: 500; }
.fm-mdialog__sub { display: block; margin-bottom: 8px; font-size: 13px; color: var(--fm-muted, #5c5c5c); }
.fm-mdialog__muscles ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.fm-mdialog__muscles li { padding: 7px 13px; border-radius: 999px; background: var(--fm-surface, #f3f3f1); font-size: 13.5px; font-weight: 500; }
.fm-mdialog__level { display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 500; }
.fm-mdialog__level .fm-mdialog__sub { margin: 0; }
.fm-mdialog__bars { display: inline-flex; gap: 4px; }
.fm-mdialog__bars i { width: 22px; height: 6px; border-radius: 3px; background: var(--fm-border, #e4e4e1); }
.fm-mdialog__bars i.is-on { background: var(--fm-text, #0a0a0a); }
.fm-mdialog__tip { margin: 0; padding: 16px 18px; border-radius: var(--fm-radius, 18px); background: var(--fm-surface, #f3f3f1); font-size: 14.5px; line-height: 1.55; }
.fm-mdialog__tip strong { display: block; margin-bottom: 4px; font-size: 13px; }
.fm-mdialog__close { position: absolute; z-index: 3; top: 14px; right: 14px; display: grid; place-items: center; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--fm-bg, #fff); color: inherit; cursor: pointer; box-shadow: 0 4px 18px rgb(0 0 0 / .12); transition: rotate .4s var(--_spring), background-color .3s, color .3s; }
.fm-mdialog__close:hover { rotate: 90deg; background: var(--fm-text, #0a0a0a); color: var(--fm-bg, #fff); }
.fm-mdialog__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--fm-border, #e4e4e1); }
.fm-mdialog__nav { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 0; border-radius: 999px; background: none; color: inherit; cursor: pointer; font: inherit; font-size: 14px; font-weight: 600; transition: background-color .25s; }
.fm-mdialog__nav:hover { background: var(--fm-surface, #f3f3f1); }
.fm-mdialog__count { font-size: 13px; color: var(--fm-muted, #5c5c5c); font-variant-numeric: tabular-nums; }
.fm-mdialog :focus-visible { outline: 2px solid var(--fm-focus, var(--fm-primary, #E1061B)); outline-offset: 2px; }
html.fm-modal-open { overflow: hidden; }

/* Sans JS : les fiches s'affichent sous le carrousel */
html:not(.fm-js) .fm-mdialog { position: static; display: block; width: auto; max-height: none; margin: 32px 0 0; box-shadow: none; border: 1px solid var(--fm-border, #e4e4e1); }
html:not(.fm-js) .fm-mdialog__close, html:not(.fm-js) .fm-mdialog__foot, html:not(.fm-js) .fm-machines__ctrl { display: none; }
html:not(.fm-js) .fm-mdialog__item + .fm-mdialog__item { border-top: 1px solid var(--fm-border, #e4e4e1); }

@media (max-width: 760px) {
	.fm-machines { --_cw: 78vw; }
	.fm-machines__head { align-items: flex-start; flex-direction: column; }
	.fm-machines__ctrl { display: none; }
	.fm-machines__track { margin-inline: calc(var(--fm-gutter, 20px) * -1); padding-inline: var(--fm-gutter, 20px); scroll-padding-inline: var(--fm-gutter, 20px); }
	.fm-machines__filters { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--fm-gutter, 20px) * -1); padding-inline: var(--fm-gutter, 20px); }
	.fm-machines__filters button { flex: none; }
	.fm-mdialog { width: 100vw; max-height: 94dvh; margin: auto 0 0; border-radius: 26px 26px 0 0; }
	.fm-mdialog__box { max-height: 94dvh; }
	.fm-mdialog__item { grid-template-columns: 1fr; }
	.fm-mdialog__media { min-height: 0; aspect-ratio: 4 / 3; padding: 14%; }
	.fm-mdialog__specs div { grid-template-columns: 1fr; gap: 2px; }
	.fm-mdialog__nav span { display: none; }
}

/* ==========================================================================
   Texte au défilement
   ========================================================================== */

.fm-stext { margin: 0; font-family: var(--_heading); font-weight: var(--fm-heading-weight, 800); font-stretch: var(--fm-heading-stretch, 100%); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); letter-spacing: var(--fm-heading-track, 0); line-height: 1.02; color: var(--_text); text-wrap: balance; }
.fm-stext--m { font-size: clamp(28px, 3.6vw, 56px); }
.fm-stext--l { font-size: var(--fm-h2, 44px); }
.fm-stext--xl { font-size: var(--fm-h1, 60px); line-height: .94; }
.fm-stext.has-text-align-center { text-align: center; }
.fm-stext.has-text-align-right { text-align: right; }
.fm-stext__w { display: inline-block; transition: opacity .35s linear, filter .45s linear, translate .55s var(--_ease), color .3s; }
.fm-stext__w.is-accent { color: var(--fm-primary-text, var(--_primary)); }
.fm-stext.is-live .fm-stext__w { opacity: .14; }
.fm-stext.is-live.fm-stext--blur .fm-stext__w { opacity: .1; filter: blur(8px); }
.fm-stext.is-live.fm-stext--rise .fm-stext__w { opacity: 0; translate: 0 .35em; }
.fm-stext.is-live .fm-stext__w.is-on { opacity: 1; filter: none; translate: 0 0; }

/* ==========================================================================
   Défilement horizontal
   ========================================================================== */

.fm-hs { position: relative; color: var(--_text); }
.fm-hs__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px 48px; flex-wrap: wrap; margin-bottom: 28px; }
.fm-hs__title { font-size: var(--fm-h2, clamp(40px, 6vw, 96px)); }
.fm-hs__text { margin: 0; max-width: 40ch; color: var(--_muted); font-size: 17px; line-height: 1.55; }
.fm-hs__count { display: none; align-items: center; gap: 10px; font-size: 13px; font-variant-numeric: tabular-nums; }
.fm-hs__count i { display: block; width: 80px; height: 2px; background: var(--_border); position: relative; overflow: hidden; }
.fm-hs__count i::after { content: ""; position: absolute; inset: 0; background: var(--_text); transform-origin: left; scale: var(--fm-hs-p, 0) 1; }
.fm-hs__viewport { overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; margin-inline: calc(var(--fm-gutter, 20px) * -1); padding-inline: var(--fm-gutter, 20px); scroll-padding-inline: var(--fm-gutter, 20px); }
.fm-hs__viewport::-webkit-scrollbar { display: none; }
.fm-hs__track { display: flex; gap: var(--fm-hs-gap, 24px); width: max-content; }
.fm-hs__track > * { flex: 0 0 min(var(--fm-hs-w, 420px), 80vw); width: min(var(--fm-hs-w, 420px), 80vw); margin: 0 !important; scroll-snap-align: start; }

.fm-hs.is-live { height: var(--fm-hs-h, 300vh); }
.fm-hs.is-live .fm-hs__pin { position: sticky; top: 0; height: 100vh; height: 100svh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding-top: calc(var(--fm-header-h, 80px) * .6); }
.fm-hs.is-live .fm-hs__count { display: inline-flex; }
.fm-hs.is-live .fm-hs__viewport { overflow: visible; scroll-snap-type: none; }
.fm-hs.is-live .fm-hs__track { will-change: transform; }

/* ==========================================================================
   Cartes empilées
   ========================================================================== */

.fm-stack { display: grid; gap: 28px; }
.fm-stack > * { position: sticky; top: calc(var(--fm-header-h, 80px) + 24px + var(--fm-si, 0) * var(--fm-stack-off, 28px)); margin: 0 !important; transform-origin: 50% 0; will-change: transform; }
.fm-stack > *:nth-child(2) { --fm-si: 1; } .fm-stack > *:nth-child(3) { --fm-si: 2; } .fm-stack > *:nth-child(4) { --fm-si: 3; }
.fm-stack > *:nth-child(5) { --fm-si: 4; } .fm-stack > *:nth-child(6) { --fm-si: 5; } .fm-stack > *:nth-child(7) { --fm-si: 6; } .fm-stack > *:nth-child(n+8) { --fm-si: 7; }
.fm-stack > .fm-section, .fm-stack > .wp-block-group { border-radius: var(--_radius-media); box-shadow: 0 -18px 50px -30px rgb(0 0 0 / .4); }
.fm-stack.has-scale > * { scale: var(--fm-ss, 1); filter: brightness(var(--fm-sb, 1)); }
@media (max-width: 700px) { .fm-stack > * { top: calc(var(--fm-header-h-m, 64px) + 14px + var(--fm-si, 0) * 14px); } }

/* ==========================================================================
   Avant / après
   ========================================================================== */

.fm-compare { position: relative; margin: 0; overflow: hidden; border-radius: var(--_radius-media); background: #111; user-select: none; touch-action: pan-y; }
.fm-compare__after, .fm-compare__before { position: absolute; inset: 0; }
.fm-compare__before { clip-path: inset(0 calc(100% - var(--pos, 50%)) 0 0); }
.fm-compare__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fm-compare__label { position: absolute; top: 18px; padding: 7px 14px; border-radius: 999px; background: rgb(0 0 0 / .55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #fff; font-size: 13px; font-weight: 600; }
.fm-compare__label.is-before { left: 18px; } .fm-compare__label.is-after { right: 18px; }
.fm-compare__handle { position: absolute; top: 0; bottom: 0; left: var(--pos, 50%); width: 2px; margin-left: -1px; background: #fff; pointer-events: none; }
.fm-compare__handle i { position: absolute; top: 50%; left: 50%; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; background: #fff; box-shadow: 0 6px 24px rgb(0 0 0 / .25); transition: scale .3s var(--_spring); }
.fm-compare__handle i::before, .fm-compare__handle i::after { content: ""; position: absolute; top: 50%; width: 8px; height: 8px; margin-top: -4px; border: solid #111; border-width: 0 0 2px 2px; }
.fm-compare__handle i::before { left: 13px; rotate: 45deg; } .fm-compare__handle i::after { right: 13px; rotate: -135deg; }
.fm-compare:active .fm-compare__handle i { scale: .9; }
.fm-compare__range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none; }
.fm-compare:has(.fm-compare__range:focus-visible) .fm-compare__handle i { outline: 3px solid var(--fm-focus, var(--_primary)); outline-offset: 3px; }

/* ==========================================================================
   Image interactive
   ========================================================================== */

.fm-hotspots { margin: 0; }
.fm-hotspots__frame { position: relative; border-radius: var(--_radius-media); overflow: visible; }
.fm-hotspots__img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: var(--_radius-media); }
.fm-spot { position: absolute; z-index: 1; translate: -50% -50%; }
.fm-spot.is-open { z-index: 5; }
.fm-spot__btn { position: relative; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: #fff; color: #0a0a0a; cursor: pointer; font: inherit; font-size: 14px; font-weight: 700; box-shadow: 0 6px 22px rgb(0 0 0 / .3); transition: scale .35s var(--_spring), background-color .25s, color .25s; }
.fm-spot__btn:hover, .fm-spot.is-open .fm-spot__btn { scale: 1.1; background: var(--_primary); color: var(--_on-primary); }
.fm-spot__btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.has-pulse .fm-spot__btn::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid #fff; animation: fm-spot-pulse 2.2s var(--_ease) infinite; }
@keyframes fm-spot-pulse { from { opacity: .9; scale: 1; } to { opacity: 0; scale: 2; } }
.fm-spot__pop { position: absolute; left: calc(100% + 12px); top: 50%; translate: 0 -50%; width: max-content; max-width: 260px; padding: 14px 16px; border-radius: 14px; background: #fff; color: #0a0a0a; font-size: 14px; line-height: 1.45; box-shadow: 0 20px 50px -12px rgb(0 0 0 / .45); opacity: 0; visibility: hidden; scale: .92; transition: opacity .25s, scale .35s var(--_spring), visibility 0s .3s; }
.fm-spot__pop strong { display: block; margin-bottom: 2px; font-size: 15px; }
.fm-spot.is-left .fm-spot__pop { left: auto; right: calc(100% + 12px); }
.fm-spot.is-open .fm-spot__pop { opacity: 1; visibility: visible; scale: 1; transition-delay: 0s; }
.fm-hotspots__list { margin: 18px 0 0; padding: 0; list-style: none; display: none; gap: 8px; font-size: 15px; }
.fm-hotspots__list b { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--_text); color: var(--_bg); font-size: 12px; }
html:not(.fm-js) .fm-hotspots__list { display: grid; }
@media (max-width: 700px) {
	.fm-hotspots__list { display: grid; }
	.fm-spot__pop { display: none; }
	.fm-spot__btn { width: 30px; height: 30px; font-size: 12px; }
}

/* ==========================================================================
   Mouvements réduits : aucune mise en scène
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.fm-tour__mouse i, .has-pulse .fm-spot__btn::before { animation: none; }
	.fm-stack.has-scale > * { scale: 1; filter: none; }
}

/* Défilement horizontal pleine largeur : le contenu reste aligné sur la grille du site */
.fm-hs.alignfull { --_off: max(var(--fm-gutter, 20px), calc((100vw - var(--fm-content, 1240px)) / 2)); }
.fm-hs.alignfull .fm-hs__head { padding-inline: var(--_off); }
.fm-hs.alignfull .fm-hs__viewport { margin-inline: 0; padding-inline: var(--_off); scroll-padding-inline: var(--_off); }
@media (max-width: 700px) { .fm-tour.is-live .fm-tour__hint { bottom: 76px; } }

/* ==========================================================================
   Vidéos d'ambiance (cartes de cours, rangée de vidéos)
   ========================================================================== */

.fm-vid { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; background: #111; }
.fm-activity.has-video .fm-activity__media { position: relative; }
.fm-activity.has-video .fm-activity__img { transition: opacity .5s; }
/* La photo reste tant que la vidéo ne joue pas vraiment (réseau lent : jamais d'écran noir). */
.fm-activity.has-video .fm-vid { z-index: 0; opacity: 0; transition: opacity .5s; }
.fm-activity.has-video.is-playing .fm-vid { opacity: 1; }
.fm-activity.has-video.is-playing .fm-activity__img { opacity: 0; }
.fm-vstill { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; background: #111; transition: scale .8s cubic-bezier(.2,.8,.2,1); }
.fm-reel__open:hover .fm-vstill { scale: 1.04; }

.fm-reels { --_rw: clamp(220px, 22vw, 300px); position: relative; color: var(--fm-s-fg, var(--fm-text, #0a0a0a)); }
.fm-reels--s { --_rw: clamp(180px, 17vw, 240px); }
.fm-reels--l { --_rw: clamp(260px, 28vw, 380px); }
.fm-reels__head { margin-bottom: 28px; }
.fm-reels__kicker { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.fm-reels__kicker::before { content: ""; width: 22px; height: 2px; background: currentColor; }
.fm-reels__title { margin: 0; font-family: var(--fm-font-heading, inherit); font-weight: var(--fm-heading-weight, 800); font-stretch: var(--fm-heading-stretch, 100%); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); line-height: var(--fm-heading-leading, .95); font-size: var(--fm-h2, clamp(40px, 6vw, 96px)); }
.fm-reels__intro { margin: 14px 0 0; max-width: 52ch; color: var(--fm-muted, #5c5c5c); font-size: 17px; line-height: 1.55; }
.fm-reels__track { list-style: none; margin: 0; padding: 0 0 6px; display: grid; grid-auto-flow: column; grid-auto-columns: var(--_rw); gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.fm-reels__track::-webkit-scrollbar { display: none; }
.fm-reel { scroll-snap-align: start; }
.fm-reel__media { position: relative; aspect-ratio: 9 / 16; border-radius: var(--fm-radius-media, 28px); overflow: hidden; background: #111; transform: translateZ(0); }
.fm-reel__cap { margin: 12px 4px 0; font-size: 14.5px; font-weight: 500; }
/* Carrousel : une flèche de chaque côté, au milieu des vidéos (la rangée se fait aussi glisser au doigt). */
.fm-reels__stage { position: relative; }
.fm-reels__nav { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.fm-reels__nav[hidden] { display: none; }
.fm-reels__arrow { position: absolute; top: calc(var(--_rw) * 2 / 3); translate: 0 -50%; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 50%; background: rgb(10 10 10 / .62); color: #fff; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: 0 6px 18px -6px rgb(0 0 0 / .5); cursor: pointer; pointer-events: auto; transition: background-color .25s, opacity .25s; }
.fm-reels__arrow[data-dir="-1"] { left: 6px; }
.fm-reels__arrow[data-dir="1"] { right: 6px; }
.fm-reels__arrow:hover { background: var(--fm-primary, #E1061B); }
.fm-reels__arrow:disabled { opacity: 0; pointer-events: none; }
/* Vidéos plus petites : format 3/4, toutes alignées. */
.fm-reels { --_rw: clamp(190px, 17vw, 250px); }
.fm-reels--s { --_rw: clamp(160px, 14vw, 210px); }
.fm-reels--l { --_rw: clamp(220px, 21vw, 300px); }
.fm-reels--row .fm-reel__open, .fm-reels--row .fm-reel__media { aspect-ratio: 3 / 4; }
.fm-reels--row .fm-reels__track .fm-reel:nth-child(even) { translate: none; }
.fm-reels--row .fm-reels__track { padding-bottom: 6px; }
@media (max-width: 640px) { .fm-reels { --_rw: min(44vw, 185px); } .fm-reels--s { --_rw: min(40vw, 165px); } .fm-reel__cap { margin-top: 8px; font-size: 13px; } .fm-reels__arrow { width: 38px; height: 38px; } }
@media (min-width: 1100px) {
	.fm-reel:nth-child(even) { translate: 0 48px; }
	.fm-reels__track { padding-bottom: 54px; }
}
@media (max-width: 760px) {
	.fm-reels { --_rw: min(44vw, 185px); }
	.fm-reels--s { --_rw: min(40vw, 165px); }
	.fm-reels__track { margin-inline: calc(var(--fm-gutter, 20px) * -1); padding-inline: var(--fm-gutter, 20px); scroll-padding-inline: var(--fm-gutter, 20px); }
}

/* Textes secondaires lisibles sur fond clair comme sombre */
.fm-reels__intro, .fm-machines__intro, .fm-hs__text { color: color-mix(in srgb, currentColor 66%, transparent); }

/* ==========================================================================
   Visite virtuelle « sur bouton » : carte dans la page + plein écran
   ========================================================================== */

.fm-tourcard { position: relative; margin-block: 0; }
.fm-tourcard__open {
	position: relative; display: block; width: 100%; aspect-ratio: 21 / 9; min-height: 420px; padding: 0; border: 0;
	border-radius: var(--fm-radius-media, 28px); overflow: hidden; isolation: isolate; cursor: pointer;
	background: #111; color: #fff; font: inherit; text-align: left;
}
.fm-tourcard__img, .fm-tourcard .fm-tour__ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; transition: scale 1.2s cubic-bezier(.2,.8,.2,1); }
.fm-tourcard__open:hover .fm-tourcard__img { scale: 1.05; }
.fm-tourcard__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgb(0 0 0 / .72) 0%, rgb(0 0 0 / .35) 50%, rgb(0 0 0 / .1) 100%), linear-gradient(0deg, rgb(0 0 0 / .45), transparent 45%); }
.fm-tourcard__body { position: absolute; left: clamp(24px, 5vw, 64px); bottom: clamp(28px, 6vw, 64px); right: clamp(24px, 5vw, 64px); display: flex; flex-direction: column; align-items: flex-start; gap: 14px; max-width: 640px; }
.fm-tourcard__kicker { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.fm-tourcard__kicker::before { content: ""; width: 22px; height: 2px; background: currentColor; }
.fm-tourcard__title { font-family: var(--fm-font-heading, inherit); font-weight: var(--fm-heading-weight, 800); font-stretch: var(--fm-heading-stretch, 100%); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); line-height: .95; font-size: var(--fm-h2, 44px); }
.fm-tourcard__intro { font-size: clamp(15px, 1.2vw, 18px); line-height: 1.5; opacity: .88; max-width: 48ch; }
.fm-tourcard__cta { display: inline-flex; align-items: center; gap: 14px; margin-top: 8px; padding: 8px 24px 8px 8px; border-radius: 999px; background: #fff; color: #0a0a0a; font-weight: 600; font-size: 16px; transition: background-color .3s, color .3s, scale .4s cubic-bezier(.34,1.56,.64,1); }
.fm-tourcard__play { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--fm-primary, #E1061B); color: #fff; padding-left: 3px; box-sizing: border-box; position: relative; }
.fm-tourcard__play::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--fm-primary, #E1061B); animation: fm-spot-pulse 2.2s cubic-bezier(.2,.8,.2,1) infinite; }
.fm-tourcard__open:hover .fm-tourcard__cta { scale: 1.04; }
.fm-tourcard__open:focus-visible { outline: 3px solid var(--fm-focus, var(--fm-primary, #E1061B)); outline-offset: 4px; }
.fm-tourcard__chips { position: absolute; top: clamp(20px, 3vw, 32px); right: clamp(20px, 3vw, 32px); margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; max-width: 46%; }
.fm-tourcard__chips li { padding: 7px 13px; border-radius: 999px; background: rgb(255 255 255 / .16); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); font-size: 12.5px; font-weight: 500; }

.fm-tourdlg { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #0a0a0a; color: #fff; overflow: hidden; }
.fm-tourdlg::backdrop { background: #0a0a0a; }
.fm-tourdlg__scroll { height: 100%; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; }
.fm-tourdlg__scroll::-webkit-scrollbar { display: none; }
.fm-tourdlg .fm-tour { margin: 0; }
.fm-tourdlg__close { position: absolute; z-index: 10; top: 18px; right: 18px; display: grid; place-items: center; width: 50px; height: 50px; border: 0; border-radius: 50%; background: rgb(255 255 255 / .16); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: #fff; cursor: pointer; transition: background-color .3s, rotate .4s cubic-bezier(.34,1.56,.64,1); }
.fm-tourdlg__close:hover { background: #fff; color: #0a0a0a; rotate: 90deg; }
.fm-tourdlg__close:focus-visible, .fm-tourdlg__back:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.fm-tourdlg__end { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; min-height: 60vh; padding: 48px 24px; text-align: center; }
.fm-tourdlg__end p { margin: 0; font-family: var(--fm-font-heading, inherit); font-weight: var(--fm-heading-weight, 800); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); font-size: var(--fm-h2, 44px); line-height: 1; }
.fm-tourdlg__back { min-height: 48px; padding: 12px 26px; border: 1px solid rgb(255 255 255 / .4); border-radius: 999px; background: none; color: #fff; font: inherit; font-weight: 600; cursor: pointer; transition: background-color .3s, color .3s; }
.fm-tourdlg__back:hover { background: #fff; color: #0a0a0a; }
.fm-tourdlg .fm-tour.is-live .fm-tour__nav { right: clamp(16px, 3vw, 44px); }
html:not(.fm-js) .fm-tourdlg { position: static; display: block; width: auto; height: auto; margin-top: 24px; }
html:not(.fm-js) .fm-tourdlg__close, html:not(.fm-js) .fm-tourdlg__end { display: none; }

@media (max-width: 760px) {
	.fm-tourcard__open { aspect-ratio: 4 / 5; min-height: 0; }
	.fm-tourcard__shade { background: linear-gradient(0deg, rgb(0 0 0 / .8) 0%, rgb(0 0 0 / .2) 60%, rgb(0 0 0 / .1) 100%); }
	.fm-tourcard__chips { display: none; }
	.fm-tourcard__cta { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { .fm-tourcard__play::after { animation: none; } }
.fm-tourcard.alignfull { padding: 0 max(var(--fm-gutter, 20px), calc((100vw - var(--fm-wide, 1440px)) / 2)) clamp(48px, 6vw, 96px); box-sizing: border-box; }

/* ==========================================================================
   Formules (choix interactif)
   ========================================================================== */

.fm-plans { --_ink: var(--fm-s-fg, var(--fm-text, #0a0a0a)); color: var(--_ink); }
.fm-plans__head { margin-bottom: clamp(28px, 4vw, 48px); max-width: 760px; }
.fm-plans__kicker { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.fm-plans__kicker::before { content: ""; width: 22px; height: 2px; background: currentColor; }
.fm-plans__title { margin: 0; font-family: var(--fm-font-heading, inherit); font-weight: var(--fm-heading-weight, 800); font-stretch: var(--fm-heading-stretch, 100%); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); line-height: var(--fm-heading-leading, .95); font-size: var(--fm-h2, clamp(40px, 6vw, 96px)); }
.fm-plans__intro { margin: 14px 0 0; font-size: 17px; line-height: 1.55; color: color-mix(in srgb, currentColor 66%, transparent); }
.fm-plans__ui { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(20px, 3vw, 40px); align-items: stretch; }
.fm-plans__controls { display: flex; flex-direction: column; gap: 28px; }
.fm-plans__q { margin: 0 0 12px; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: color-mix(in srgb, currentColor 60%, transparent); }
.fm-plans__opts2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.fm-plans__opts3 { display: grid; gap: 10px; }
.fm-plans__opt {
	position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 12px; width: 100%; min-height: 64px; padding: 16px 20px;
	border: 1.5px solid var(--fm-border, #e4e4e1); border-radius: var(--fm-radius, 18px); background: transparent; color: inherit;
	font: inherit; text-align: left; cursor: pointer; transition: border-color .25s, background-color .25s, color .25s, transform .3s cubic-bezier(.34,1.56,.64,1);
}
.fm-plans__opt:hover { border-color: var(--_ink); }
.fm-plans__opt:active { transform: scale(.98); }
.fm-plans__opt:focus-visible { outline: 3px solid var(--fm-focus, var(--fm-primary, #E1061B)); outline-offset: 2px; }
.fm-plans__opt[aria-checked="true"] { border-color: var(--_ink); background: var(--_ink); color: var(--fm-s-bg, var(--fm-bg, #fff)); }
.fm-plans__optl { font-size: 17px; font-weight: 700; grid-column: 1; }
.fm-plans__opts { font-size: 13.5px; opacity: .7; grid-column: 1; }
.fm-plans__optp { grid-column: 2; grid-row: 1 / span 2; font-family: var(--fm-font-heading, inherit); font-weight: var(--fm-heading-weight, 800); font-size: 20px; font-variant-numeric: tabular-nums; }
.fm-plans__badge { position: absolute; top: -10px; right: 12px; padding: 4px 10px; border-radius: 999px; background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); font-size: 11.5px; font-weight: 700; }
.fm-plans__cards { position: relative; display: grid; }
.fm-plan {
	display: flex; flex-direction: column; gap: 16px; padding: clamp(28px, 3.4vw, 48px); border-radius: calc(var(--fm-radius-media, 28px) + 4px);
	background: #0a0a0a; color: #fff; box-shadow: 0 30px 80px -40px rgb(0 0 0 / .55); overflow: hidden; isolation: isolate; position: relative;
}
.fm-plan::before { content: ""; position: absolute; z-index: -1; right: -20%; top: -30%; width: 70%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgb(var(--fm-primary-rgb, 225 6 27) / .45), transparent 65%); filter: blur(10px); }
html.fm-js .fm-plans.is-live .fm-plan { grid-area: 1 / 1; }
html.fm-js .fm-plans.is-live .fm-plan:not(.is-active) { visibility: hidden; opacity: 0; pointer-events: none; }
.fm-plan__eng { margin: 0; align-self: flex-start; padding: 6px 12px; border-radius: 999px; background: rgb(255 255 255 / .12); font-size: 13px; font-weight: 600; }
.fm-plan__name { margin: 0; font-family: var(--fm-font-heading, inherit); font-weight: var(--fm-heading-weight, 800); font-stretch: var(--fm-heading-stretch, 100%); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); font-size: clamp(26px, 2.6vw, 38px); line-height: 1; }
.fm-plan__price { margin: 0; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.fm-plan__value { font-family: var(--fm-font-heading, inherit); font-weight: var(--fm-heading-weight, 800); font-stretch: var(--fm-heading-stretch, 100%); font-size: clamp(40px, 4vw, 56px); line-height: .9; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.fm-plan__period { font-size: 16px; opacity: .7; }
.fm-plan__features { list-style: none; margin: 6px 0 0; padding: 18px 0 0; border-top: 1px solid rgb(255 255 255 / .14); display: grid; gap: 10px; }
.fm-plan__features li { display: flex; gap: 10px; align-items: flex-start; font-size: 15.5px; }
.fm-plan__features svg { flex: none; margin-top: 2px; color: var(--fm-primary, #E1061B); }
.fm-plan__note { margin: 0; font-size: 13.5px; line-height: 1.5; opacity: .65; }
.fm-plan__cta { margin-top: auto; padding-top: 8px; }
.fm-plan__cta .fm-btn { width: 100%; justify-content: center; }
.fm-plans__foot { margin: 22px 0 0; font-size: 13.5px; color: color-mix(in srgb, currentColor 72%, transparent); }
html:not(.fm-js) .fm-plans__controls { display: none; }
html:not(.fm-js) .fm-plans__ui, .fm-plans:not(.is-live) .fm-plans__ui { grid-template-columns: 1fr; }
.fm-plans:not(.is-live) .fm-plans__cards { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
@media (max-width: 900px) {
	.fm-plans__ui { grid-template-columns: 1fr; }
	.fm-plans__opt { min-height: 56px; padding: 14px 16px; }
}

/* Vidéos : grille et lecteur plein écran */
.fm-reels--grid .fm-reels__track { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); overflow: visible; scroll-snap-type: none; gap: 18px; margin-inline: 0; padding-inline: 0; }
.fm-reels--grid .fm-reel:nth-child(even) { translate: none; }
.fm-reels--grid .fm-reels__track { padding-bottom: 0; }
.fm-reel__open { display: block; width: 100%; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; border-radius: var(--fm-radius-media, 28px); }
.fm-reel__open:focus-visible { outline: 3px solid var(--fm-focus, var(--fm-primary, #E1061B)); outline-offset: 4px; }
.fm-reel__media .fm-vid { transition: scale .8s cubic-bezier(.2,.8,.2,1); }
.fm-reel__open:hover .fm-vid { scale: 1.04; }
.fm-reel__play { position: absolute; z-index: 1; left: 14px; bottom: 14px; display: grid; place-items: center; width: 46px; height: 46px; padding-left: 3px; box-sizing: border-box; border-radius: 50%; background: rgb(255 255 255 / .9); color: #0a0a0a; transition: scale .35s cubic-bezier(.34,1.56,.64,1), background-color .3s, color .3s; }
.fm-reel__open:hover .fm-reel__play { scale: 1.12; background: var(--fm-primary, #E1061B); color: #fff; }
.fm-vbox { width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: #fff; }
.fm-vbox::backdrop { background: rgb(5 5 5 / .92); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.fm-vbox[open] { display: grid; place-items: center; }
.fm-vbox__inner { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.fm-vbox__video { display: block; height: min(86dvh, 900px); max-width: 92vw; aspect-ratio: 9 / 16; border-radius: 22px; background: #000; object-fit: contain; }
.fm-vbox__cap { margin: 0; font-weight: 600; font-size: 16px; }
.fm-vbox__close, .fm-vbox__nav { position: fixed; display: grid; place-items: center; width: 50px; height: 50px; border: 0; border-radius: 50%; background: rgb(255 255 255 / .14); color: #fff; cursor: pointer; transition: background-color .3s, color .3s; }
.fm-vbox__close { top: 18px; right: 18px; }
.fm-vbox__nav { top: 50%; translate: 0 -50%; }
.fm-vbox__nav.is-prev { left: max(18px, calc(50vw - min(86dvh, 900px) * 9 / 32 - 90px)); }
.fm-vbox__nav.is-next { right: max(18px, calc(50vw - min(86dvh, 900px) * 9 / 32 - 90px)); }
.fm-vbox__close:hover, .fm-vbox__nav:hover { background: #fff; color: #0a0a0a; }
.fm-vbox :focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
@media (max-width: 700px) {
	.fm-reels--grid .fm-reels__track { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.fm-vbox__nav { top: auto; bottom: 18px; translate: none; }
	.fm-vbox__video { height: min(78dvh, 900px); }
}
.fm-reels--grid .fm-reels__track { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }
@media (max-width: 700px) { .fm-reels--grid .fm-reels__track { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ------------------------------------------------------------------ */
/* Formules — cartes (style grandes enseignes)                          */
/* ------------------------------------------------------------------ */
.fm-plans__head.is-center { margin-inline: auto; text-align: center; }
.fm-plans__head.is-center .fm-plans__kicker { justify-content: center; }
.fm-plans--cards .fm-plans__title { font-size: var(--fm-h2, 42px); line-height: max(var(--fm-heading-leading, 1), 1); }
.fm-pgrid { display: grid; grid-template-columns: repeat(var(--n, 2), minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); max-width: calc(var(--n, 2) * 420px); margin-inline: auto; align-items: stretch; }
.fm-pcard[hidden] { display: none; }
.fm-pcard { position: relative; display: flex; flex-direction: column; padding: clamp(24px, 2.6vw, 32px); border: 1px solid color-mix(in srgb, var(--_ink) 14%, transparent); border-radius: var(--fm-radius, 12px); background: var(--fm-bg, #fff); color: var(--fm-text, #0a0a0a); text-align: left; box-shadow: 0 1px 2px rgb(0 0 0 / .04), 0 12px 32px -20px rgb(0 0 0 / .18); }
.fm-pcard.is-featured { border: 2px solid var(--fm-primary, #E1061B); box-shadow: 0 18px 40px -24px rgb(var(--fm-primary-rgb, 225 6 27) / .55); }
.fm-pcard__flag { position: absolute; top: 0; left: 50%; translate: -50% -50%; margin: 0; padding: 5px 14px; border-radius: 999px; background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); font-size: 12.5px; font-weight: 700; letter-spacing: .02em; white-space: nowrap; }
.fm-pcard__name { margin: 0; font-family: var(--fm-font-heading, inherit); font-weight: var(--fm-heading-weight, 800); font-stretch: var(--fm-heading-stretch, 100%); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); font-size: var(--fm-h3, 24px); line-height: 1.1; }
.fm-pcard__sub { margin: 4px 0 0; font-size: 14.5px; color: color-mix(in srgb, currentColor 62%, transparent); }
.fm-pcard__price { display: flex; align-items: baseline; gap: 6px; margin: 20px 0 0; }
.fm-pcard__value { font-family: var(--fm-font-heading, inherit); font-weight: var(--fm-heading-weight, 800); font-stretch: var(--fm-heading-stretch, 100%); font-size: clamp(36px, 3.4vw, 46px); line-height: 1; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.fm-pcard__period { font-size: 15px; color: color-mix(in srgb, currentColor 62%, transparent); }
.fm-pcard__eng { margin: 6px 0 0; font-size: 13.5px; font-weight: 600; color: color-mix(in srgb, currentColor 62%, transparent); }
.fm-pcard__cta { margin-top: 20px; }
.fm-pcard__cta .fm-btn { width: 100%; justify-content: center; }
.fm-pcard:not(.is-featured) .fm-pcard__cta .fm-btn { --fm-btn-bg: var(--fm-text, #0a0a0a); background: var(--fm-text, #0a0a0a); border-color: var(--fm-text, #0a0a0a); color: var(--fm-bg, #fff); }
.fm-pcard__features { list-style: none; display: grid; gap: 14px; margin: 24px 0 0; padding: 22px 0 0; border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent); }
.fm-pcard__features li { display: flex; gap: 12px; align-items: flex-start; }
.fm-pcard__features li > svg { flex: none; margin-top: 1px; padding: 3px; width: 22px; height: 22px; border-radius: 50%; background: color-mix(in srgb, var(--fm-primary, #E1061B) 12%, transparent); color: var(--fm-primary, #E1061B); }
.fm-pcard__features strong { display: block; font-size: 15px; font-weight: 700; line-height: 1.3; }
.fm-pcard__features small { display: block; margin-top: 2px; font-size: 13.5px; line-height: 1.4; color: color-mix(in srgb, currentColor 68%, transparent); }
.fm-pcard__features li.is-off { color: color-mix(in srgb, currentColor 64%, transparent); }
.fm-pcard__features li.is-off small { color: inherit; opacity: 1; }
.fm-pcard__features li.is-off strong { text-decoration: line-through; font-weight: 600; }
.fm-pcard__features li.is-off > svg { background: color-mix(in srgb, currentColor 10%, transparent); color: inherit; }
.fm-pcard__note { margin: auto 0 0; padding-top: 20px; font-size: 12.5px; line-height: 1.5; color: color-mix(in srgb, currentColor 70%, transparent); }
.fm-plans--cards .fm-plans__foot { text-align: center; }
html:not(.fm-js) .fm-pcard[hidden] { display: flex; }
html:not(.fm-js) .fm-pterms:not(.is-editor) { display: none; }
@media (max-width: 720px) {
	.fm-pgrid { grid-template-columns: minmax(0, 1fr); }
	.fm-pcard.is-featured { order: -1; }
}

/* Sportigo : réservation / séance offerte */
.fm-booking__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.fm-booking--center { text-align: center; }
.fm-booking--center .fm-booking__btns { justify-content: center; }
.fm-booking__note { margin: 10px 0 0; font-size: 13.5px; color: color-mix(in srgb, currentColor 62%, transparent); }
.fm-booking--band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; padding: clamp(24px, 3vw, 40px); border-radius: var(--fm-radius, 12px); background: var(--fm-surface-alt, color-mix(in srgb, currentColor 5%, transparent)); }
.fm-booking__txt { flex: 1 1 380px; }
.fm-booking__title { margin: 0; font-size: var(--fm-h3, 24px); line-height: 1.15; }
.fm-booking__text { margin: 8px 0 0; color: color-mix(in srgb, currentColor 70%, transparent); }
.fm-booking-embed { display: block; width: 100%; border: 1px solid color-mix(in srgb, currentColor 12%, transparent); border-radius: var(--fm-radius, 12px); background: #fff; }

/* Points forts */
.fm-usp { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px clamp(16px, 2.4vw, 32px); }
.fm-usp__item { display: flex; align-items: center; gap: 14px; height: 100%; color: inherit; text-decoration: none; }
.fm-usp__ico { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: calc(var(--fm-radius, 12px) - 2px); background: color-mix(in srgb, var(--fm-primary, #E1061B) 10%, transparent); color: var(--fm-primary, #E1061B); }
.fm-usp__txt strong { display: block; font-size: 16px; font-weight: 700; line-height: 1.25; }
.fm-usp__txt small { display: block; margin-top: 2px; font-size: 14px; line-height: 1.35; color: color-mix(in srgb, currentColor 62%, transparent); }
a.fm-usp__item:hover strong { color: var(--fm-primary, #E1061B); }
.fm-usp--boxed .fm-usp__item { padding: 18px; border: 1px solid color-mix(in srgb, currentColor 12%, transparent); border-radius: var(--fm-radius, 12px); background: var(--fm-bg, #fff); }
.fm-usp--outline .fm-usp__ico { background: none; border: 1.5px solid currentColor; color: inherit; }
@media (max-width: 600px) { .fm-usp { grid-template-columns: 1fr 1fr; } .fm-usp__item { flex-direction: column; align-items: flex-start; gap: 10px; } }

/* ===== Premier écran « Équilibre » : texte + visuel, points forts dessous ===== */
.fm-hero-split { align-items: center; }
.fm-hero-split__txt > * + * { margin-top: 0; }
.fm-hero-split__txt .fm-lead { margin: 18px 0 28px; max-width: 34em; }
.fm-hero-split__txt .fm-booking { margin-top: 18px; }
.fm-hero-split__media { margin: 0; overflow: hidden; border-radius: var(--fm-radius-media, 14px); aspect-ratio: 5 / 4; background: #111; }
.fm-hero-split__media video, .fm-hero-split__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.fm-hero-usp { margin-top: clamp(36px, 5vw, 64px) !important; padding-top: clamp(24px, 3vw, 32px); border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent); }
@media (max-width: 781px) {
	.fm-hero-split__media { aspect-ratio: 4 / 3; order: -1; }
	.fm-hero-split__txt .fm-lead { margin: 14px 0 22px; }
}
@media (max-width: 600px) {
	.fm-courses-grid .fm-activity__title { font-size: 18px; }
	.fm-courses-grid .fm-activity__tag { font-size: 11px; padding: 3px 8px; }
	.fm-courses-grid .fm-activity__meta { font-size: 12px; gap: 8px; white-space: nowrap; }
	.fm-courses-grid .fm-activity__body { padding: 14px; gap: 6px; }
	.fm-courses-grid .fm-activity__level i { width: 9px; height: 5px; }
	.fm-courses-grid .fm-activity__text { display: none; }
}


/* Machines : PNG détouré, vue 360°, modèle 3D */
.fm-machine__media.has-cutout { background: radial-gradient(120% 90% at 50% 100%, color-mix(in srgb, var(--fm-text, #0a0a0a) 8%, transparent), transparent 60%), var(--fm-surface, #f3f3f1); }
.fm-machine__media.has-cutout img, .fm-mdialog__media.has-cutout img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 18px 18px rgb(0 0 0 / .18)); }
.fm-machine__media.has-cutout img { padding: 8%; box-sizing: border-box; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.fm-machine__card:hover .fm-machine__media.has-cutout img { transform: scale(1.05) rotate(-1.5deg); }
.fm-mdialog__media.has-cutout { background: radial-gradient(80% 60% at 50% 100%, color-mix(in srgb, var(--fm-text, #0a0a0a) 10%, transparent), transparent 70%), var(--fm-surface, #f3f3f1); }
.fm-mdialog__media.has-cutout .fm-mdialog__img { inset: 8%; width: 84%; height: 84%; transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.fm-mdialog__media.is-turnable { cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.fm-mdialog__media.is-grabbing { cursor: grabbing; }
.fm-mdialog__media.is-spin, .fm-mdialog__media.is-3d { padding: 4%; }
.fm-mdialog__media .fm-mstage__spin { inset: 4%; width: 92%; height: 92%; object-fit: contain; pointer-events: none; }
.fm-mdialog__media.is-3d { min-height: min(60vh, 460px); }
.fm-mstage__model { width: 100%; height: min(60vh, 460px); --poster-color: transparent; background: transparent; }
.fm-mstage__hint { position: absolute; left: 50%; bottom: 14px; translate: -50% 0; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgb(255 255 255 / .9); color: #0a0a0a; font-size: 12.5px; font-weight: 600; white-space: nowrap; pointer-events: none; box-shadow: 0 4px 14px -6px rgb(0 0 0 / .3); }
.fm-mdialog__media:focus-visible { outline: 3px solid var(--fm-focus, var(--fm-primary, #E1061B)); outline-offset: -3px; }
.fm-mdialog__media.is-spin img { filter: none; }


/* ===== Formules en cartes : choix de l'engagement très lisible + animations ===== */
.fm-pterms { position: relative; display: grid; grid-template-columns: repeat(var(--c, 3), minmax(0, 1fr)); gap: 4px; width: min(100%, 640px); margin: 0 auto 16px; padding: 5px; border-radius: calc(var(--fm-radius, 12px) + 5px); background: color-mix(in srgb, var(--_ink) 7%, transparent); }
.fm-pterms__thumb { position: absolute; z-index: 0; top: 5px; left: 0; bottom: 5px; width: var(--w, 0); transform: translateX(var(--x, 0)); border-radius: var(--fm-radius, 12px); background: var(--fm-bg, #fff); box-shadow: 0 1px 2px rgb(0 0 0 / .1), 0 8px 20px -10px rgb(0 0 0 / .35); transition: transform .5s cubic-bezier(.3, 1.25, .5, 1), width .5s cubic-bezier(.3, 1.25, .5, 1), background-color .35s; }
.fm-pterms:not(.is-ready) .fm-pterms__thumb { transition: none; }
.fm-pterm { position: relative; z-index: 1; display: grid; justify-items: center; align-content: center; gap: 1px; min-height: 56px; padding: 10px 12px; border: 0; border-radius: var(--fm-radius, 12px); background: none; color: inherit; font: inherit; font-size: 15.5px; font-weight: 700; line-height: 1.2; cursor: pointer; transition: color .3s; }
.fm-pterm small { font-size: 12px; font-weight: 500; opacity: .7; }
.fm-pterm:not([aria-checked="true"]):hover { color: var(--fm-primary, #E1061B); }
.fm-pterm:focus-visible { outline: 3px solid var(--fm-focus, var(--fm-primary, #E1061B)); outline-offset: 2px; }
.fm-pterm__badge { position: absolute; top: -12px; left: 50%; translate: -50% 0; padding: 3px 9px; border-radius: 999px; background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); font-size: 10.5px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; box-shadow: 0 4px 10px -4px rgb(var(--fm-primary-rgb, 225 6 27) / .7); }
/* Couleur du curseur selon l'engagement choisi */
.fm-plans--cards[data-tone="best"] .fm-pterms__thumb { background: var(--fm-primary, #E1061B); }
.fm-plans--cards[data-tone="flex"] .fm-pterms__thumb { background: var(--fm-text, #0a0a0a); }
.fm-plans--cards[data-tone="best"] .fm-pterm[aria-checked="true"] { color: var(--fm-on-primary, #fff); }
.fm-plans--cards[data-tone="flex"] .fm-pterm[aria-checked="true"] { color: var(--fm-bg, #fff); }
.fm-plans--cards[data-tone="best"] .fm-pterm[aria-checked="true"] .fm-pterm__badge { background: var(--fm-text, #0a0a0a); color: var(--fm-bg, #fff); box-shadow: none; }
html:not(.fm-js) .fm-pterms__thumb { display: none; }
.fm-pinfo { display: grid; justify-items: center; min-height: 28px; margin: 0 auto clamp(28px, 4vw, 44px); max-width: 620px; text-align: center; }
.fm-pinfo__item { grid-area: 1 / 1; display: block; margin: 0; font-size: 15px; line-height: 1.45; color: color-mix(in srgb, currentColor 72%, transparent); }
.fm-pinfo__item[hidden] { display: none; }
/* Icône dans la ligne du texte : le texte reste centré, même sur deux lignes. */
.fm-pinfo__item svg { display: inline-block; vertical-align: -3px; margin-right: 8px; color: var(--fm-primary, #E1061B); }
/* Cartes : marqueurs propres à chaque engagement */
.fm-pcard__ribbon { width: fit-content; display: inline-flex; align-items: center; gap: 6px; margin: 14px 0 0; padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; line-height: 1.2; }
.fm-pcard[data-tone="best"] .fm-pcard__ribbon { background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); }
.fm-pcard[data-tone="flex"] .fm-pcard__ribbon { background: var(--fm-text, #0a0a0a); color: var(--fm-bg, #fff); }
.fm-pcard[data-tone="free"] .fm-pcard__ribbon, .fm-pcard:not([data-tone]) .fm-pcard__ribbon { background: color-mix(in srgb, currentColor 8%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent); }
.fm-pcard__top { display: flex; flex-direction: column; align-items: flex-start; }
.fm-pcard__top > .fm-pcard__cta { align-self: stretch; }
.fm-pcard__price { flex-wrap: wrap; }
.fm-pcard__value { font-style: var(--fm-heading-style, normal); display: inline-block; transform-origin: left bottom; }
.fm-pcard__value.is-bump { animation: fm-pbump .6s cubic-bezier(.3, 1.4, .5, 1); }
@keyframes fm-pbump { 0% { transform: scale(.9); } 55% { transform: scale(1.06); } 100% { transform: none; } }
.fm-pcard__was { margin-left: 4px; font-size: 16px; font-weight: 600; color: color-mix(in srgb, currentColor 66%, transparent); text-decoration-thickness: 2px; text-decoration-color: var(--fm-primary, #E1061B); }
.fm-pcard__eng { display: flex; align-items: center; gap: 6px; }
.fm-pcard__eng svg { flex: none; color: var(--fm-primary, #E1061B); }
.fm-pcard[data-tone="free"] .fm-pcard__eng svg { color: currentColor; }
.fm-pcard { transition: box-shadow .35s, transform .35s cubic-bezier(.2, .8, .2, 1); }
@media (hover: hover) { .fm-pcard:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgb(0 0 0 / .05), 0 24px 48px -24px rgb(0 0 0 / .3); } .fm-pcard.is-featured:hover { box-shadow: 0 26px 50px -24px rgb(var(--fm-primary-rgb, 225 6 27) / .6); } }
@media (max-width: 600px) {
	.fm-pterms { width: 100%; }
	.fm-pterm { min-height: 52px; padding: 10px 4px; font-size: 14px; }
	.fm-pterm small { display: none; }
	.fm-pterm__badge { font-size: 9.5px; padding: 2px 7px; top: -11px; }
	.fm-pinfo__item { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .fm-pterms__thumb, .fm-pcard { transition: none; } .fm-pcard__value.is-bump { animation: none; } }
.fm-plans--cards.is-waiting .fm-pcard { opacity: 0; }
@media (prefers-reduced-motion: no-preference) {
	.fm-js .fm-hero-split__media img { animation: fm-heroimg 2s cubic-bezier(.2, .8, .2, 1) both; }
	@keyframes fm-heroimg { from { transform: scale(1.12); } to { transform: none; } }
	.fm-usp__ico { transition: transform .4s cubic-bezier(.3, 1.4, .5, 1), background-color .3s; }
	.fm-usp__item:hover .fm-usp__ico { transform: translateY(-3px) rotate(-6deg); }
}

/* ===================================================================== */
/* Bloc Héros : dix mises en page                                         */
/* ===================================================================== */
.fm-hero { --_fg: var(--fm-text, #0a0a0a); position: relative; isolation: isolate; overflow: hidden; color: var(--_fg); }
.fm-hero__inner { position: relative; z-index: 2; box-sizing: border-box; width: 100%; max-width: calc(var(--fm-wide, 1440px) + 2 * var(--fm-gutter, 24px)); margin-inline: auto; padding: clamp(36px, 6vw, 88px) var(--fm-gutter, 24px); }
.fm-hero--h-tall .fm-hero__inner { min-height: min(76vh, 760px); display: grid; align-content: center; }
.fm-hero--h-screen .fm-hero__inner { min-height: calc(100svh - 110px); display: grid; align-content: center; }
.fm-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(28px, 4vw, 64px); align-items: center; }
.fm-hero__content { position: relative; max-width: 640px; }
.fm-hero__kicker { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 15px; font-weight: 600; color: var(--fm-primary-text, var(--fm-primary, #E1061B)); }
.fm-hero__kicker::before { content: ""; width: 24px; height: 2px; background: currentColor; }
.fm-hero__title { margin: 0; font-family: var(--fm-font-heading, inherit); font-weight: var(--fm-heading-weight, 800); font-stretch: var(--fm-heading-stretch, 100%); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); letter-spacing: var(--fm-heading-track, 0); line-height: max(var(--fm-heading-leading, 1), .95); font-size: var(--fm-h1, 60px); color: inherit; text-wrap: balance; }
.fm-hero__text { margin: 20px 0 0; max-width: 34em; font-size: clamp(17px, 1.35vw, 20px); line-height: 1.55; color: color-mix(in srgb, currentColor 80%, transparent); }
.fm-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.fm-hero__trial { margin: 16px 0 0; font-size: 14.5px; }
.fm-hero__trial a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.fm-hero__trial a span { color: var(--fm-primary, #E1061B); }
.fm-hero__trial small { display: block; margin-top: 2px; font-size: 13px; opacity: .7; }
.fm-hero__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fm-hero__media { margin: 0; overflow: hidden; border-radius: var(--fm-radius-media, 14px); aspect-ratio: 5 / 4; background: color-mix(in srgb, currentColor 8%, transparent); }
.fm-hero__foot { position: relative; z-index: 2; box-sizing: border-box; max-width: calc(var(--fm-wide, 1440px) + 2 * var(--fm-gutter, 24px)); margin-inline: auto; padding: 0 var(--fm-gutter, 24px) clamp(24px, 3vw, 36px); }
.fm-hero__foot .fm-usp { padding-top: clamp(20px, 2.6vw, 28px); border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent); }
.fm-hero.has-usp .fm-hero__inner { padding-bottom: clamp(28px, 4vw, 48px); }

/* Fonds plein cadre (photo, vidéo, diaporama) */
.fm-hero__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: #0a0a0a; }
.fm-hero__bg > .fm-hero__img, .fm-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fm-hero__bg::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgb(0 0 0 / var(--ov, .55)); }
.fm-hero.is-dark { --_fg: #fff; color: #fff; background: #0a0a0a; }
.fm-hero.is-dark .fm-hero__kicker { color: #fff; }
.fm-hero.is-dark .fm-hero__kicker::before { background: var(--fm-primary, #E1061B); }
.fm-hero.is-dark .fm-usp__ico { background: rgb(255 255 255 / .12); color: #fff; }
.fm-hero.is-dark .fm-usp__txt small { color: rgb(255 255 255 / .75); }
.fm-hero.is-dark .fm-hero__btn2 { --fm-btn-hover-bg: #fff; --fm-btn-hover-text: #0a0a0a; }
.fm-hero--fullbleed .fm-hero__bg::after { background: linear-gradient(90deg, rgb(0 0 0 / calc(var(--ov, .55) + .25)) 0%, rgb(0 0 0 / var(--ov, .55)) 45%, rgb(0 0 0 / calc(var(--ov, .55) * .25)) 100%), linear-gradient(0deg, rgb(0 0 0 / .55), transparent 40%); }
.fm-hero--center .fm-hero__inner, .fm-hero--minimal .fm-hero__inner { text-align: center; }
.fm-hero--center .fm-hero__content, .fm-hero--minimal .fm-hero__content { margin-inline: auto; max-width: 820px; }
.fm-hero--center .fm-hero__text, .fm-hero--minimal .fm-hero__text { margin-inline: auto; }
.fm-hero--center .fm-hero__btns, .fm-hero--minimal .fm-hero__btns { justify-content: center; }
.fm-hero--center .fm-hero__title { font-size: calc(var(--fm-h1, 60px) * 1.1); }
.fm-hero--video .fm-hero__bg::after { background: linear-gradient(90deg, rgb(0 0 0 / calc(var(--ov, .55) + .2)), rgb(0 0 0 / calc(var(--ov, .55) * .6))), linear-gradient(0deg, rgb(0 0 0 / .5), transparent 40%); }
.fm-hero--slider .fm-hero__bg::after { background: linear-gradient(90deg, rgb(0 0 0 / calc(var(--ov, .55) + .2)), rgb(0 0 0 / calc(var(--ov, .55) * .4))), linear-gradient(0deg, rgb(0 0 0 / .5), transparent 40%); }
.fm-hero__slide { position: absolute; inset: 0; margin: 0; overflow: hidden; opacity: 0; visibility: hidden; }
.fm-hero__slide.is-on { z-index: 2; opacity: 1; visibility: visible; }
.fm-hero__slide.is-out { z-index: 1; visibility: visible; }
.fm-hero__slides::after { z-index: 3; }
/* Textes des diapositives, empilés au même endroit */
.fm-hero__stack { display: grid; }
.fm-hero__pane { grid-area: 1 / 1; align-self: center; }
.fm-hero__pane:not(.is-on) { visibility: hidden; pointer-events: none; }
.fm-hero--slider .fm-hero__pane:not(.is-on) > * { animation: none !important; }
.fm-hero--slider.is-ready .fm-hero__pane.is-out { visibility: visible; animation: fm-pane-out .45s ease both; }
@keyframes fm-pane-out { to { opacity: 0; transform: translateX(calc(var(--dir, 1) * -32px)); } }
/* Navigation : flèches, points, pause */
.fm-hero__nav { display: flex; align-items: center; gap: 10px; margin-top: clamp(26px, 3.4vw, 40px); }
.fm-hero__arrow, .fm-hero__pause { flex: none; display: inline-grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1.5px solid rgb(255 255 255 / .55); border-radius: 50%; background: rgb(0 0 0 / .18); color: #fff; cursor: pointer; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: background-color .25s, border-color .25s, color .25s, transform .25s; }
.fm-hero__pause { width: 38px; height: 38px; margin-left: 4px; border-color: rgb(255 255 255 / .3); }
.fm-hero__arrow:hover { background: #fff; border-color: #fff; color: #0a0a0a; }
.fm-hero__arrow[data-dir="-1"]:hover { transform: translateX(-2px); }
.fm-hero__arrow[data-dir="1"]:hover { transform: translateX(2px); }
.fm-hero__pause:hover { border-color: #fff; }
.fm-hero__arrow:focus-visible, .fm-hero__pause:focus-visible, .fm-hero__dot:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.fm-hero__pause .is-play, .fm-hero__pause.is-play .is-pause { display: none; }
.fm-hero__pause.is-play .is-play { display: block; }
.fm-hero__dots { display: flex; align-items: center; gap: 4px; margin: 0 6px; }
.fm-hero__dot { display: grid; place-items: center; height: 32px; padding: 0 3px; border: 0; background: none; cursor: pointer; }
.fm-hero__dot i { position: relative; display: block; width: 26px; height: 3px; overflow: hidden; border-radius: 2px; background: rgb(255 255 255 / .35); transition: width .4s cubic-bezier(.2, .8, .2, 1); }
.fm-hero__dot i::after { content: ""; position: absolute; inset: 0; background: #fff; transform: scaleX(0); transform-origin: left; }
.fm-hero__dot.is-on i { width: 48px; }
.fm-hero__dot.is-on i::after { transform: none; }
.fm-hero.is-ready .fm-hero__dot.is-on.is-run i::after { animation: fm-dot var(--fm-slide-delay, 6s) linear both; }
.fm-hero:not(.is-ready) .fm-hero__dot.is-on i::after, .fm-hero.is-paused .fm-hero__dot.is-on i::after { animation: none; transform: none; }
@keyframes fm-dot { from { transform: scaleX(0); } to { transform: none; } }
.fm-hero:not(.is-ready) .fm-hero__nav { visibility: hidden; }
html:not(.fm-js) .fm-hero__nav { display: none; }
.fm-hero--center .fm-hero__nav, .fm-hero--minimal .fm-hero__nav { justify-content: center; }

/* Transitions entre diapositives (choisies dans le thème ou le bloc) */
@media (prefers-reduced-motion: no-preference) {
	.fm-hero.is-ready .fm-hero__slide.is-on { transition: opacity 1.3s ease, visibility 0s; }
	.fm-hero.is-ready .fm-hero__slide.is-out { opacity: 1; }
	/* Glissement */
	.fm-hero--tr-slide .fm-hero__slide:not(.is-on):not(.is-out) { transform: translateX(calc(var(--dir, 1) * 100%)); }
	.fm-hero--tr-slide.is-ready .fm-hero__slide.is-on { opacity: 1; transform: none; transition: transform 1s cubic-bezier(.75, 0, .2, 1), visibility 0s; }
	.fm-hero--tr-slide.is-ready .fm-hero__slide.is-out { opacity: 1; transform: translateX(calc(var(--dir, 1) * -35%)); transition: transform 1s cubic-bezier(.75, 0, .2, 1); }
	.fm-hero--tr-slide .fm-hero__slide:not(.is-on):not(.is-out) { opacity: 1; }
	/* Zoom */
	.fm-hero--tr-zoom .fm-hero__slide:not(.is-on):not(.is-out) { transform: scale(1.22); }
	.fm-hero--tr-zoom.is-ready .fm-hero__slide.is-on { transform: none; transition: opacity 1.2s ease, transform 1.4s cubic-bezier(.2, .8, .2, 1), visibility 0s; }
	.fm-hero--tr-zoom.is-ready .fm-hero__slide.is-out { transform: scale(.96); transition: transform 1.2s ease; }
	/* Rideau */
	.fm-hero--tr-wipe .fm-hero__slide:not(.is-on):not(.is-out) { opacity: 1; clip-path: inset(0 0 0 100%); }
	.fm-hero--tr-wipe.is-back .fm-hero__slide:not(.is-on):not(.is-out) { clip-path: inset(0 100% 0 0); }
	.fm-hero--tr-wipe.is-ready .fm-hero__slide.is-on { clip-path: inset(0); transition: clip-path 1.1s cubic-bezier(.75, 0, .2, 1), visibility 0s; }
	.fm-hero--tr-wipe.is-ready .fm-hero__slide.is-out { opacity: 1; transition: none; }
	.fm-hero--tr-wipe.is-ready .fm-hero__slide.is-out .fm-hero__img { transform: scale(1.06); transition: transform 1.1s cubic-bezier(.75, 0, .2, 1); }
	/* Flou */
	.fm-hero--tr-blur .fm-hero__slide:not(.is-on):not(.is-out) { filter: blur(26px); transform: scale(1.08); }
	.fm-hero--tr-blur.is-ready .fm-hero__slide.is-on { filter: none; transform: none; transition: opacity 1.2s ease, filter 1.2s ease, transform 1.4s ease, visibility 0s; }
	.fm-hero--tr-blur.is-ready .fm-hero__slide.is-out { filter: blur(14px); transition: filter 1.2s ease; }
	/* Cercle */
	.fm-hero--tr-circle .fm-hero__slide:not(.is-on):not(.is-out) { opacity: 1; clip-path: circle(0% at 50% 50%); }
	.fm-hero--tr-circle.is-ready .fm-hero__slide.is-on { clip-path: circle(75% at 50% 50%); transition: clip-path 1.2s cubic-bezier(.65, 0, .25, 1), visibility 0s; }
	.fm-hero--tr-circle.is-ready .fm-hero__slide.is-out { opacity: 1; transition: none; }
	/* Les textes suivent le mouvement */
	.fm-hero--slider.is-ready .fm-hero__pane.is-on > * { animation: fm-pane-in .8s cubic-bezier(.2, .8, .2, 1) both; }
	.fm-hero--slider.is-ready .fm-hero__pane.is-on > :nth-child(1) { animation-delay: .25s; }
	.fm-hero--slider.is-ready .fm-hero__pane.is-on > :nth-child(2) { animation-delay: .33s; }
	.fm-hero--slider.is-ready .fm-hero__pane.is-on > :nth-child(3) { animation-delay: .43s; }
	.fm-hero--slider.is-ready .fm-hero__pane.is-on > :nth-child(n+4) { animation-delay: .53s; }
	.fm-hero--tr-slide.is-ready .fm-hero__pane.is-on > * { animation-name: fm-pane-slide; }
	.fm-hero--tr-blur.is-ready .fm-hero__pane.is-on > * { animation-name: fm-pane-blur; }
	.fm-hero--tr-zoom.is-ready .fm-hero__pane.is-on > *, .fm-hero--tr-circle.is-ready .fm-hero__pane.is-on > * { animation-name: fm-pane-zoom; }
}
@keyframes fm-pane-in { from { opacity: 0; transform: translateY(22px); } }
@keyframes fm-pane-slide { from { opacity: 0; transform: translateX(calc(var(--dir, 1) * 60px)); } }
@keyframes fm-pane-blur { from { opacity: 0; filter: blur(10px); } }
@keyframes fm-pane-zoom { from { opacity: 0; transform: scale(.94); } }
@media (prefers-reduced-motion: reduce) {
	.fm-hero--slider .fm-hero__pane.is-out { display: none; }
	.fm-hero__slide.is-out { visibility: hidden; }
}
@media (max-width: 600px) {
	.fm-hero__arrow { width: 42px; height: 42px; }
	.fm-hero__pause { width: 34px; height: 34px; }
	.fm-hero__dot i { width: 16px; }
	.fm-hero__dot.is-on i { width: 30px; }
}

/* Carte posée sur la photo */
.fm-hero--floating { color: var(--fm-text, #0a0a0a); }
.fm-hero--floating .fm-hero__bg::after { background: linear-gradient(0deg, rgb(0 0 0 / calc(var(--ov, .55) * .7)), transparent 65%); }
.fm-hero--floating .fm-hero__inner { align-content: end; }
.fm-hero--floating .fm-hero__content { max-width: 600px; padding: clamp(24px, 3vw, 44px); border-radius: var(--fm-radius, 12px); background: var(--fm-bg, #fff); box-shadow: 0 30px 70px -30px rgb(0 0 0 / .5); }
.fm-hero--floating .fm-hero__foot { color: #fff; }
.fm-hero--floating .fm-usp__ico { background: rgb(255 255 255 / .14); color: #fff; }
.fm-hero--floating .fm-usp__txt small { color: rgb(255 255 255 / .78); }

/* Mosaïque */
.fm-hero__mosaic { display: grid; grid-template-columns: 1.25fr 1fr; grid-template-rows: 1fr 1fr; gap: 12px; height: clamp(380px, 44vw, 600px); }
.fm-hero__tile { margin: 0; overflow: hidden; border-radius: var(--fm-radius-media, 14px); }
.fm-hero__tile--1 { grid-row: 1 / span 2; }

/* Bloc de couleur */
.fm-hero--panel { background: var(--fm-alt-bg, #0a0a0a); }
.fm-hero--panel:not(.is-dark) { --_fg: var(--fm-alt-text, #0a0a0a); color: var(--fm-alt-text, #0a0a0a); }
.fm-hero--panel .fm-hero__inner { max-width: none; padding: 0; }
.fm-hero--panel .fm-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; align-items: stretch; min-height: inherit; }
.fm-hero--panel .fm-hero__content { max-width: none; align-self: center; padding: clamp(40px, 6vw, 96px) clamp(24px, 5vw, 80px) clamp(40px, 6vw, 96px) max(var(--fm-gutter, 24px), calc((100vw - var(--fm-wide, 1440px)) / 2 + var(--fm-gutter, 24px))); }
.fm-hero--panel .fm-hero__media { aspect-ratio: auto; height: 100%; min-height: 420px; border-radius: 0; }
.fm-hero--panel .fm-hero__foot { max-width: none; padding-top: 0; background: var(--fm-alt-bg, #0a0a0a); }
.fm-hero--panel .fm-hero__foot .fm-usp { max-width: var(--fm-wide, 1440px); margin-inline: auto; }

/* Grand titre + panorama */
.fm-hero--editorial .fm-hero__inner { min-height: 0 !important; display: block; }
.fm-hero--editorial .fm-hero__content { max-width: 1000px; }
.fm-hero--editorial .fm-hero__title { font-size: calc(var(--fm-h1, 60px) * 1.25); }
.fm-hero__pano { margin: clamp(28px, 4vw, 52px) 0 0; overflow: hidden; border-radius: var(--fm-radius-media, 14px); aspect-ratio: 21 / 9; }

/* Minimal */
.fm-hero--minimal { background: radial-gradient(60% 70% at 15% 10%, rgb(var(--fm-primary-rgb, 225 6 27) / .08), transparent 70%), radial-gradient(50% 60% at 90% 90%, rgb(var(--fm-primary-rgb, 225 6 27) / .06), transparent 70%); }
.fm-hero--minimal .fm-hero__title { font-size: calc(var(--fm-h1, 60px) * 1.3); }
.fm-hero--minimal .fm-hero__kicker { justify-content: center; }

/* Animations d'arrivée */
@media (prefers-reduced-motion: no-preference) {
	.fm-js .fm-hero__content > * { animation: fm-hero-in .9s cubic-bezier(.2, .8, .2, 1) both; }
	.fm-js .fm-hero__content > :nth-child(2) { animation-delay: .1s; }
	.fm-js .fm-hero__content > :nth-child(3) { animation-delay: .22s; }
	.fm-js .fm-hero__content > :nth-child(4) { animation-delay: .34s; }
	.fm-js .fm-hero__content > :nth-child(n+5) { animation-delay: .44s; }
	.fm-js .fm-hero--floating .fm-hero__content { animation: fm-hero-in 1s cubic-bezier(.2, .8, .2, 1) .1s both; }
	.fm-js .fm-hero__media, .fm-js .fm-hero__tile, .fm-js .fm-hero__pano { animation: fm-hero-reveal 1.3s cubic-bezier(.7, 0, .2, 1) .15s both; }
	.fm-js .fm-hero__tile--2 { animation-delay: .3s; }
	.fm-js .fm-hero__tile--3 { animation-delay: .45s; }
	.fm-js .fm-hero__media .fm-hero__img, .fm-js .fm-hero__tile .fm-hero__img, .fm-js .fm-hero__pano .fm-hero__img { animation: fm-hero-zoom 2.2s cubic-bezier(.2, .8, .2, 1) both; }
	.fm-hero--fullbleed .fm-hero__bg > .fm-hero__img, .fm-hero--center .fm-hero__bg > .fm-hero__img, .fm-hero--floating .fm-hero__bg > .fm-hero__img { animation: fm-hero-kb 16s ease-out both; }
	.fm-hero__slide.is-on .fm-hero__img { animation: fm-hero-kb 8s ease-out both; }
	.fm-js .fm-hero__foot .fm-usp > li { animation: fm-hero-in .8s cubic-bezier(.2, .8, .2, 1) both; }
	.fm-js .fm-hero__foot .fm-usp > li:nth-child(1) { animation-delay: .45s; }
	.fm-js .fm-hero__foot .fm-usp > li:nth-child(2) { animation-delay: .53s; }
	.fm-js .fm-hero__foot .fm-usp > li:nth-child(3) { animation-delay: .61s; }
	.fm-js .fm-hero__foot .fm-usp > li:nth-child(4) { animation-delay: .69s; }
}
@keyframes fm-hero-in { from { opacity: 0; transform: translateY(20px); } }
@keyframes fm-hero-reveal { from { clip-path: inset(0 0 0 100%); } to { clip-path: inset(0); } }
@keyframes fm-hero-zoom { from { transform: scale(1.14); } to { transform: none; } }
@keyframes fm-hero-kb { from { transform: scale(1.12); } to { transform: scale(1); } }

@media (max-width: 900px) {
	.fm-hero__grid, .fm-hero--panel .fm-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.fm-hero--split .fm-hero__media, .fm-hero--panel .fm-hero__media { order: -1; aspect-ratio: 4 / 3; }
	.fm-hero--panel .fm-hero__media { min-height: 0; }
	.fm-hero--panel .fm-hero__content { padding: 36px var(--fm-gutter, 24px); }
	.fm-hero__mosaic { order: -1; height: clamp(260px, 70vw, 420px); }
	.fm-hero--h-tall .fm-hero__inner { min-height: 0; }
	.fm-hero.is-dark.fm-hero--h-tall .fm-hero__inner, .fm-hero--floating.fm-hero--h-tall .fm-hero__inner { min-height: 72svh; }
	.fm-hero--editorial .fm-hero__pano { aspect-ratio: 4 / 3; }
}
@media (max-width: 600px) {
	.fm-hero__inner { padding-top: 28px; }
	.fm-hero--split .fm-hero__inner, .fm-hero--mosaic .fm-hero__inner { padding-top: 16px; }
	.fm-hero__btns { margin-top: 24px; }
	.fm-hero__btns .fm-btn { flex: 1 1 auto; justify-content: center; }
	.fm-hero--floating .fm-hero__content { padding: 22px; }
}

/* ===================================================================== */
/* Formules : styles de cartes                                            */
/* ===================================================================== */
.fm-plans--cards.is-waiting .fm-ptable { opacity: 0; }
.fm-ptable[hidden] { display: none; }

/* Sombre */
.fm-plans--s-dark .fm-pcard { background: #111113; color: #f4f4f5; border-color: #26262b; box-shadow: 0 20px 50px -30px rgb(0 0 0 / .7); }
.fm-plans--s-dark .fm-pcard.is-featured { border-color: var(--fm-primary, #E1061B); box-shadow: 0 0 0 1px var(--fm-primary, #E1061B), 0 30px 70px -30px rgb(var(--fm-primary-rgb, 225 6 27) / .7); background: radial-gradient(120% 60% at 50% 0%, rgb(var(--fm-primary-rgb, 225 6 27) / .18), transparent 60%), #111113; }
.fm-plans--s-dark .fm-pcard:not(.is-featured) .fm-pcard__cta .fm-btn { --fm-btn-bg: #fff; background: #fff; border-color: #fff; color: #0a0a0a; }
.fm-plans--s-dark .fm-pcard[data-tone="flex"] .fm-pcard__ribbon { background: #fff; color: #0a0a0a; }

/* Contour épuré */
.fm-plans--s-outline .fm-pcard { background: transparent; box-shadow: none; border: 1.5px solid color-mix(in srgb, currentColor 18%, transparent); }
.fm-plans--s-outline .fm-pcard.is-featured { border: 1.5px solid var(--fm-primary, #E1061B); box-shadow: none; }
.fm-plans--s-outline .fm-pcard__value { font-size: clamp(44px, 4.4vw, 60px); }
.fm-plans--s-outline .fm-pcard__ribbon { padding: 0; background: none !important; box-shadow: none !important; color: var(--fm-primary-text, var(--fm-primary, #E1061B)) !important; }
.fm-plans--s-outline .fm-pcard:not(.is-featured) .fm-pcard__cta .fm-btn { background: transparent; color: var(--fm-text, #0a0a0a); border: 1.5px solid currentColor; }
.fm-plans--s-outline .fm-pcard__features li > svg { background: none; padding: 0; }

/* Bandeau de couleur */
.fm-plans--s-banner .fm-pcard { padding: 0; overflow: hidden; }
.fm-plans--s-banner .fm-pcard__top { padding: clamp(24px, 2.6vw, 32px); background: var(--fm-text, #0a0a0a); color: var(--fm-bg, #fff); }
.fm-plans--s-banner .fm-pcard.is-featured .fm-pcard__top { background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); }
.fm-plans--s-banner .fm-pcard__top .fm-pcard__sub, .fm-plans--s-banner .fm-pcard__top .fm-pcard__period, .fm-plans--s-banner .fm-pcard__top .fm-pcard__eng, .fm-plans--s-banner .fm-pcard__top .fm-pcard__then, .fm-plans--s-banner .fm-pcard__top .fm-pcard__ends { color: inherit; opacity: .92; }
.fm-plans--s-banner .fm-pcard__top .fm-pcard__eng svg, .fm-plans--s-banner .fm-pcard__top .fm-pcard__was { color: inherit; text-decoration-color: currentColor; }
.fm-plans--s-banner .fm-pcard__top .fm-pcard__ribbon { background: rgb(255 255 255 / .16) !important; color: inherit !important; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .25) !important; }
.fm-plans--s-banner .fm-pcard__top .fm-pcard__cta .fm-btn { background: #fff !important; border-color: #fff !important; color: #0a0a0a !important; }
.fm-plans--s-banner .fm-pcard__features { margin: 0; padding: 22px clamp(24px, 2.6vw, 32px) 0; border-top: 0; }
.fm-plans--s-banner .fm-pcard__note { padding: 20px clamp(24px, 2.6vw, 32px) clamp(24px, 2.6vw, 32px); }
.fm-plans--s-banner .fm-pcard__flag { top: 14px; left: auto; right: 14px; translate: none; background: #fff; color: var(--fm-primary, #E1061B); }

/* Mise en avant */
.fm-plans--s-spotlight .fm-pgrid { align-items: center; }
.fm-plans--s-spotlight .fm-pcard.is-featured { z-index: 1; transform: scale(1.04); background: #0b0b0c; color: #fff; border: 0; box-shadow: 0 40px 80px -30px rgb(0 0 0 / .55); }
.fm-plans--s-spotlight .fm-pcard.is-featured .fm-pcard__sub, .fm-plans--s-spotlight .fm-pcard.is-featured .fm-pcard__period, .fm-plans--s-spotlight .fm-pcard.is-featured .fm-pcard__eng, .fm-plans--s-spotlight .fm-pcard.is-featured .fm-pcard__note { color: rgb(255 255 255 / .82); }
.fm-plans--s-spotlight .fm-pcard.is-featured .fm-pcard__features { border-top-color: rgb(255 255 255 / .14); }
.fm-plans--s-spotlight .fm-pcard.is-featured[data-tone="flex"] .fm-pcard__ribbon { background: #fff; color: #0a0a0a; }
.fm-plans--s-spotlight .fm-pcard:not(.is-featured) { opacity: .92; }
@media (hover: hover) { .fm-plans--s-spotlight .fm-pcard.is-featured:hover { transform: scale(1.04) translateY(-4px); } }

/* Liste compacte */
.fm-plans--s-list .fm-pgrid { grid-template-columns: minmax(0, 1fr); max-width: 980px; gap: 14px; }
.fm-plans--s-list .fm-pcard { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; grid-template-areas: "name price cta" "sub then cta" "rib eng cta" "perks perks perks" "ends ends ends" "feat feat feat" "note note note" "legal legal legal"; column-gap: 24px; row-gap: 4px; align-items: center; }
.fm-plans--s-list .fm-pcard__top { display: contents; }
.fm-plans--s-list .fm-pcard__name { grid-area: name; }
.fm-plans--s-list .fm-pcard__sub { grid-area: sub; margin: 0; }
.fm-plans--s-list .fm-pcard__ribbon { grid-area: rib; margin-top: 6px; }
.fm-plans--s-list .fm-pcard__price { grid-area: price; margin: 0; }
.fm-plans--s-list .fm-pcard__eng { grid-area: eng; align-self: start; margin: 0; }
.fm-plans--s-list .fm-pcard__cta { grid-area: cta; margin: 0; }
.fm-plans--s-list .fm-pcard__features { grid-area: feat; display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 16px 0 0; padding: 16px 0 0; }
.fm-plans--s-list .fm-pcard__features small { display: none; }
.fm-plans--s-list .fm-pcard__features strong { font-size: 14px; font-weight: 600; }
.fm-plans--s-list .fm-pcard__features li > svg { width: 18px; height: 18px; padding: 2px; }
.fm-plans--s-list .fm-pcard__note { grid-area: note; padding-top: 10px; }
.fm-plans--s-list .fm-pcard__flag { left: auto; right: 22px; translate: 0 -50%; }
/* Tablette et téléphone : tout en une colonne, dans l'ordre de lecture */
@media (max-width: 900px) {
	.fm-plans--s-list .fm-pcard { grid-template-columns: minmax(0, 1fr); grid-template-areas: "name" "sub" "rib" "price" "then" "eng" "perks" "ends" "cta" "feat" "note" "legal"; row-gap: 6px; }
	.fm-plans--s-list .fm-pcard__price { margin-top: 10px; }
	.fm-plans--s-list .fm-pcard__cta { margin-top: 14px; }
	.fm-plans--s-list .fm-pcard__cta .fm-btn { width: 100%; justify-content: center; }
	.fm-plans--s-list .fm-pcard__features { display: grid; gap: 10px; }
	.fm-plans--s-list .fm-pcard.has-promo .fm-pcard__name { padding-right: 0; }
}
.fm-plans--s-list .fm-pcard__then { grid-area: then; margin: 0; }
.fm-plans--s-list .fm-pcard__perks { grid-area: perks; }
.fm-plans--s-list .fm-pcard__ends { grid-area: ends; margin-top: 6px; }
.fm-plans--s-list .fm-pcard__legal { grid-area: legal; }

/* Tableau comparatif */
.fm-plans--s-table .fm-pgrid { display: block; max-width: 980px; }
.fm-ptable { overflow-x: auto; border-radius: var(--fm-radius, 12px); background: var(--fm-bg, #fff); color: var(--fm-text, #0a0a0a); box-shadow: 0 1px 2px rgb(0 0 0 / .05), 0 20px 50px -30px rgb(0 0 0 / .3); }
.fm-ptable table { width: 100%; min-width: 560px; border-collapse: separate; border-spacing: 0; }
.fm-ptable th, .fm-ptable td { padding: 16px 20px; border-bottom: 1px solid color-mix(in srgb, currentColor 9%, transparent); text-align: center; vertical-align: middle; }
.fm-ptable tbody th { text-align: left; font-weight: 400; }
.fm-ptable tbody th strong { display: block; font-size: 15px; font-weight: 700; }
.fm-ptable tbody th small { display: block; margin-top: 2px; font-size: 13px; color: color-mix(in srgb, currentColor 58%, transparent); }
.fm-ptable thead th { position: relative; padding-top: 34px; vertical-align: bottom; }
.fm-ptable__plan { display: table-cell; }
.fm-ptable__plan > * { display: block; margin-inline: auto; width: fit-content; }
.fm-ptable__name { font-family: var(--fm-font-heading, inherit); font-weight: var(--fm-heading-weight, 800); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); font-size: var(--fm-h4, 20px); }
.fm-ptable .fm-pcard__price { display: flex; justify-content: center; align-items: baseline; gap: 4px; margin: 10px auto 0; }
.fm-ptable .fm-pcard__value { font-size: clamp(30px, 3vw, 40px); }
.fm-ptable .fm-pcard__ribbon { margin: 8px auto 0; font-size: 12px; padding: 4px 10px; }
.fm-ptable .fm-pcard__flag { position: absolute; top: 8px; left: 50%; translate: -50% 0; }
.fm-ptable .is-featured { background: color-mix(in srgb, var(--fm-primary, #E1061B) 5%, transparent); }
.fm-ptable thead .is-featured { box-shadow: inset 0 3px 0 var(--fm-primary, #E1061B); }
.fm-ptable td.is-on svg { width: 26px; height: 26px; padding: 4px; border-radius: 50%; background: color-mix(in srgb, var(--fm-primary, #E1061B) 12%, transparent); color: var(--fm-primary, #E1061B); }
.fm-ptable td.is-off svg { width: 22px; height: 22px; color: color-mix(in srgb, currentColor 35%, transparent); }
.fm-ptable tfoot td { border-bottom: 0; padding-bottom: 24px; }
.fm-ptable__cta .fm-btn { width: 100%; justify-content: center; }
.fm-ptable__cta:not(.is-featured) .fm-btn { background: var(--fm-text, #0a0a0a); border-color: var(--fm-text, #0a0a0a); color: var(--fm-bg, #fff); }
.fm-ptable__cta small { display: block; margin-top: 8px; font-size: 12.5px; color: color-mix(in srgb, currentColor 58%, transparent); }
.fm-ptable[data-tone="flex"] .fm-pcard__ribbon { background: var(--fm-text, #0a0a0a); color: var(--fm-bg, #fff); }
.fm-ptable[data-tone="best"] .fm-pcard__ribbon { background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); }
.fm-ptable[data-tone="free"] .fm-pcard__ribbon { box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent); }
.fm-ptable .fm-pcard__was { display: block; margin: 4px auto 0; font-size: 14px; }

/* Le Héros suit le style d'animation du thème */
.fm-anim-aucune .fm-hero *, .fm-anim-aucune .fm-hero__img { animation: none !important; }
@media (prefers-reduced-motion: no-preference) {
	.fm-js.fm-anim-cinema .fm-hero__content > *, .fm-anim-cinema .fm-js .fm-hero__content > * { animation-name: fm-hero-blur; animation-duration: 1.3s; }
	.fm-js.fm-anim-dynamique .fm-hero__content > *, .fm-anim-dynamique .fm-js .fm-hero__content > * { animation-name: fm-hero-slide; animation-duration: .7s; }
	.fm-js.fm-anim-fluide .fm-hero__content > *, .fm-anim-fluide .fm-js .fm-hero__content > * { animation-duration: 1.4s; }
	.fm-js.fm-anim-percutant .fm-hero__content > *, .fm-anim-percutant .fm-js .fm-hero__content > * { animation-name: fm-hero-pop; animation-duration: .75s; animation-timing-function: cubic-bezier(.3, 1.5, .5, 1); }
	body.fm-anim-cinema .fm-hero__content > * { animation-name: fm-hero-blur; animation-duration: 1.3s; }
	body.fm-anim-dynamique .fm-hero__content > * { animation-name: fm-hero-slide; animation-duration: .7s; }
	body.fm-anim-fluide .fm-hero__content > * { animation-duration: 1.4s; }
	body.fm-anim-percutant .fm-hero__content > * { animation-name: fm-hero-pop; animation-duration: .75s; animation-timing-function: cubic-bezier(.3, 1.5, .5, 1); }
}
@keyframes fm-hero-blur { from { opacity: 0; filter: blur(14px); transform: scale(1.02); } }
@keyframes fm-hero-slide { from { opacity: 0; transform: translateX(-48px); } }
@keyframes fm-hero-pop { from { opacity: 0; transform: scale(.88); } }

/* ===== Séparateurs (forme selon le thème) ===== */
.fm-divider { --_c: var(--fm-primary, #E1061B); display: flex; align-items: center; justify-content: center; gap: 0; width: min(100% - 2 * var(--fm-gutter, 24px), var(--fm-wide, 1440px)); margin-inline: auto; color: var(--_c); }
.fm-divider--sp-s { margin-block: 20px; }
.fm-divider--sp-m { margin-block: clamp(32px, 4vw, 56px); }
.fm-divider--sp-l { margin-block: clamp(56px, 7vw, 104px); }
.fm-divider__rule { flex: 1; height: 2px; border-radius: 2px; background: currentColor; opacity: .9; }
.fm-divider--line .fm-divider__rule { height: 1px; background: color-mix(in srgb, var(--fm-text, #0a0a0a) 16%, transparent); opacity: 1; }
.fm-divider__dot { width: 8px; height: 8px; margin-inline: 14px; border-radius: 50%; background: currentColor; }
.fm-divider__beat { flex: none; display: block; }
.fm-divider__band { display: block; width: 100%; height: 14px; background: currentColor; }
.fm-divider--wave .fm-divider__band { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='14' viewBox='0 0 48 14'%3E%3Cpath d='M0 7c6 0 6-5 12-5s6 5 12 5 6 5 12 5 6-5 12-5' fill='none' stroke='black' stroke-width='2.4'/%3E%3C/svg%3E") repeat-x center / 48px 14px; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='14' viewBox='0 0 48 14'%3E%3Cpath d='M0 7c6 0 6-5 12-5s6 5 12 5 6 5 12 5 6-5 12-5' fill='none' stroke='black' stroke-width='2.4'/%3E%3C/svg%3E") repeat-x center / 48px 14px; }
.fm-divider--zigzag .fm-divider__band { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='14' viewBox='0 0 24 14'%3E%3Cpath d='M0 11 6 3l6 8 6-8 6 8' fill='none' stroke='black' stroke-width='2.4' stroke-linejoin='round'/%3E%3C/svg%3E") repeat-x center / 24px 14px; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='14' viewBox='0 0 24 14'%3E%3Cpath d='M0 11 6 3l6 8 6-8 6 8' fill='none' stroke='black' stroke-width='2.4' stroke-linejoin='round'/%3E%3C/svg%3E") repeat-x center / 24px 14px; }
.fm-divider--diagonal .fm-divider__band { height: 12px; background: repeating-linear-gradient(-45deg, currentColor 0 5px, transparent 5px 12px); }
.fm-divider--dots .fm-divider__band { height: 8px; background: radial-gradient(circle, currentColor 2.2px, transparent 2.6px) 0 50% / 18px 8px repeat-x; }
.fm-divider--bar .fm-divider__band { width: 64px; height: 4px; border-radius: 4px; }
@media (prefers-reduced-motion: no-preference) {
	.fm-js .fm-divider--pulse .fm-divider__beat path { stroke-dasharray: 160; stroke-dashoffset: 160; animation: fm-beat 1.4s cubic-bezier(.6, 0, .2, 1) .2s forwards; animation-timeline: view(); animation-range: entry 10% cover 40%; }
	@supports not (animation-timeline: view()) { .fm-js .fm-divider--pulse .fm-divider__beat path { animation-timeline: auto; } }
}
@keyframes fm-beat { to { stroke-dashoffset: 0; } }

/* Coachs : style « affiche » (nom sur la photo) */
.fm-coach--poster { position: relative; gap: 0; }
.fm-coach--poster .fm-coach__media { aspect-ratio: 3 / 4; }
.fm-coach--poster .fm-coach__media::after { content: ""; position: absolute; inset: 40% 0 0; background: linear-gradient(0deg, rgb(0 0 0 / .78), transparent); pointer-events: none; }
.fm-coach--poster .fm-coach__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 18px 18px 20px; color: #fff; pointer-events: none; }
.fm-coach--poster .fm-coach__role { color: rgb(255 255 255 / .85); }
.fm-coach--poster .fm-coach__bio { display: none; }
.fm-coach--poster .fm-coach__tags li { border-color: rgb(255 255 255 / .45); color: #fff; }
.fm-coach--poster .fm-coach__badge { top: 12px; bottom: auto; }


/* ===== Promotions sur les cartes de formules ===== */
.fm-pcard.has-promo { position: relative; }
.fm-pcard__sticker { position: absolute; z-index: 3; top: 16px; right: 16px; display: inline-grid; place-items: center; min-width: 64px; height: 30px; padding: 0 12px; border-radius: 999px; background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); font-family: var(--fm-font-heading, inherit); font-size: 13.5px; font-weight: 800; font-style: var(--fm-heading-style, normal); letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; box-shadow: 0 8px 18px -8px rgb(var(--fm-primary-rgb, 225 6 27) / .8); transform: rotate(-4deg); }
.fm-pcard.has-promo .fm-pcard__name { padding-right: 84px; }
.fm-pcard.is-featured .fm-pcard__sticker { background: var(--fm-text, #0a0a0a); color: var(--fm-bg, #fff); box-shadow: 0 8px 18px -8px rgb(0 0 0 / .6); }
.fm-pcard__ribbon.is-promo { padding: 6px 12px !important; background: var(--fm-primary, #E1061B) !important; color: var(--fm-on-primary, #fff) !important; box-shadow: none !important; }
.fm-pcard.has-promo .fm-pcard__was { font-size: 18px; }
.fm-pcard__then { margin: 4px 0 0; font-size: 14.5px; font-weight: 600; color: color-mix(in srgb, currentColor 72%, transparent); }
.fm-pcard__perks { display: grid; gap: 6px; margin: 12px 0 0; padding: 0; list-style: none; }
.fm-pcard__perks li { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border-radius: calc(var(--fm-radius, 12px) * .6); background: rgb(var(--fm-primary-rgb, 225 6 27) / .08); color: inherit; font-size: 14px; font-weight: 700; line-height: 1.35; }
.fm-pcard__perks svg { flex: none; margin-top: 1px; color: var(--fm-primary, #E1061B); }
.fm-pcard__ends { display: flex; align-items: center; gap: 6px; margin: 10px 0 0; font-size: 13px; font-weight: 600; color: color-mix(in srgb, currentColor 70%, transparent); }
.fm-pcard__ends svg { flex: none; }
.fm-pcard__ends.is-urgent { color: var(--fm-primary-text, var(--fm-primary, #E1061B)); }
/* Validité de la promo : bas de carte, centré, façon coupon (pointillés et encoches). */
.fm-pcard { --fm-pcard-pad: clamp(24px, 2.6vw, 32px); }
.fm-pcard__legal { position: relative; display: grid; justify-items: center; gap: 4px; margin: 18px calc(var(--fm-pcard-pad, 26px) * -1) calc(var(--fm-pcard-pad, 26px) * -1); padding: 16px var(--fm-pcard-pad, 26px) 18px; border-top: 1.5px dashed color-mix(in srgb, currentColor 22%, transparent); border-radius: 0 0 inherit inherit; background: color-mix(in srgb, var(--fm-primary, #E1061B) 5%, transparent); text-align: center; }
.fm-pcard__legal::before, .fm-pcard__legal::after { content: ""; position: absolute; top: -9px; width: 16px; height: 16px; border-radius: 50%; background: var(--fm-s-bg, var(--fm-bg, #fff)); box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 0%, transparent); }
.fm-pcard__legal::before { left: -8px; }
.fm-pcard__legal::after { right: -8px; }
.fm-pcard__legal p { margin: 0; }
.fm-pcard__valid { display: block; font-size: 13.5px; font-weight: 700; line-height: 1.35; color: color-mix(in srgb, var(--fm-primary-text, #C60518) 75%, #000); text-wrap: balance; }
.fm-pcard__valid svg { display: inline-block; margin: 0 6px 0 0; vertical-align: -3px; }
.fm-pcard__cond { max-width: 34ch; font-size: 12.5px; line-height: 1.45; color: color-mix(in srgb, currentColor 66%, transparent); text-wrap: balance; }
.fm-plans--s-dark .fm-pcard__legal, .fm-scheme-dark .fm-pcard__legal, .fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] .fm-pcard__legal { background: rgb(255 255 255 / .04); border-top-color: rgb(255 255 255 / .2); }
.fm-plans--s-dark .fm-pcard__valid, .fm-scheme-dark .fm-pcard__valid, .fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] .fm-pcard__valid { color: color-mix(in srgb, var(--fm-primary-on-dark, #F0626F) 62%, #fff); }

/* Frais d'adhésion, sous l'engagement. */
.fm-pcard__fee { display: flex; align-items: center; gap: 7px; margin: 6px 0 0; font-size: 13.5px; font-weight: 600; color: color-mix(in srgb, currentColor 62%, transparent); }
.fm-pcard__fee.is-promo { align-self: flex-start; width: fit-content; padding: 6px 12px 6px 10px; border-radius: 10px; background: color-mix(in srgb, var(--fm-primary, #E1061B) 9%, transparent); color: color-mix(in srgb, var(--fm-primary-text, #C60518) 75%, #000); font-weight: 600; }
.fm-pcard__fee.is-promo strong { font-weight: 800; }
.fm-pcard__fee.is-promo s { margin-left: 4px; opacity: .7; font-weight: 600; }
.fm-plans--s-dark .fm-pcard__fee.is-promo, .fm-scheme-dark .fm-pcard__fee.is-promo, .fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] .fm-pcard__fee.is-promo { background: color-mix(in srgb, var(--fm-primary, #E1061B) 20%, transparent); color: color-mix(in srgb, var(--fm-primary-on-dark, #F0626F) 62%, #fff); }
.fm-plans--s-banner .fm-pcard__top .fm-pcard__fee { color: inherit; opacity: .85; }
.fm-plans--s-banner .fm-pcard__top .fm-pcard__fee.is-promo { opacity: 1; background: rgb(0 0 0 / .24); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .2); color: #fff; }
.fm-pterm.has-promo .fm-pterm__l { position: relative; }
.fm-pterm__promo { display: inline-block; width: 7px; height: 7px; margin-left: 6px; border-radius: 50%; background: var(--fm-primary, #E1061B); vertical-align: middle; box-shadow: 0 0 0 3px rgb(var(--fm-primary-rgb, 225 6 27) / .2); }
.fm-plans--cards[data-tone="best"] .fm-pterm[aria-checked="true"] .fm-pterm__promo { background: #fff; box-shadow: 0 0 0 3px rgb(255 255 255 / .3); }
.fm-plans--s-dark .fm-pcard__perks li { background: rgb(255 255 255 / .07); }
.fm-plans--s-dark .fm-pcard.is-featured .fm-pcard__sticker { background: #fff; color: #0a0a0a; }
@media (prefers-reduced-motion: no-preference) {
	.fm-js .fm-pcard__sticker { animation: fm-sticker 3.2s ease-in-out infinite; }
	.fm-pterm__promo { animation: fm-promo-dot 1.8s ease-in-out infinite; }
}
@keyframes fm-sticker { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(-4deg) scale(1.07); } }
@keyframes fm-promo-dot { 50% { box-shadow: 0 0 0 6px rgb(var(--fm-primary-rgb, 225 6 27) / 0); } }


/* ===== Sommaire de page ===== */
.fm-toc { --_ink: var(--fm-text, #0a0a0a); }
.fm-toc__list { margin: 0; padding: 0; list-style: none; }
.fm-toc a { color: inherit; text-decoration: none; }
/* Barre qui suit le défilement */
.fm-toc--bar { position: sticky; z-index: 40; top: var(--fm-toc-top, 0px); width: 100%; max-width: none !important; margin: 0 !important; background: color-mix(in srgb, var(--fm-bg, #fff) 92%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--fm-border, #e4e4e1); transition: top .3s ease; }
.fm-toc--bar .fm-toc__title { display: none; }
.fm-toc--bar .fm-toc__list { display: flex; gap: 4px; max-width: calc(var(--fm-wide, 1440px) + 2 * var(--fm-gutter, 24px)); margin-inline: auto; padding: 8px var(--fm-gutter, 24px); overflow-x: auto; scrollbar-width: none; -webkit-mask: linear-gradient(90deg, #000 calc(100% - 32px), transparent); mask: linear-gradient(90deg, #000 calc(100% - 32px), transparent); }
.fm-toc--bar .fm-toc__list::-webkit-scrollbar { display: none; }
.fm-toc--bar a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; font-size: 14px; font-weight: 600; white-space: nowrap; color: color-mix(in srgb, var(--_ink) 70%, transparent); transition: background-color .25s, color .25s; }
.fm-toc--bar a:hover { color: var(--_ink); background: color-mix(in srgb, var(--_ink) 7%, transparent); }
.fm-toc--bar a.is-current { background: var(--fm-text, #0a0a0a); color: var(--fm-bg, #fff); }
.fm-toc a:focus-visible { outline: 3px solid var(--fm-focus, var(--fm-primary, #E1061B)); outline-offset: 2px; }
/* Liste numérotée */
.fm-toc--list { box-sizing: border-box; width: min(100% - 2 * var(--fm-gutter, 24px), var(--fm-content, 1240px)); margin: clamp(28px, 4vw, 48px) auto; padding: clamp(20px, 3vw, 32px); border: 1px solid var(--fm-border, #e4e4e1); border-radius: var(--fm-radius, 12px); background: var(--fm-surface, #f3f3f1); }
.fm-toc--list .fm-toc__title { margin: 0 0 14px; font-family: var(--fm-font-heading, inherit); font-size: var(--fm-h4, 20px); font-weight: var(--fm-heading-weight, 800); font-style: var(--fm-heading-style, normal); text-transform: var(--fm-heading-case, none); }
.fm-toc--list .fm-toc__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 4px 24px; }
.fm-toc--list a { display: flex; align-items: baseline; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--fm-border, #e4e4e1); font-weight: 600; transition: color .2s; }
.fm-toc--list a:hover { color: var(--fm-primary-text, var(--fm-primary, #E1061B)); }
.fm-toc__n { flex: none; font-size: 12px; font-weight: 700; color: var(--fm-primary-text, var(--fm-primary, #E1061B)); font-variant-numeric: tabular-nums; }
.fm-toc-empty { padding: 12px; border: 1px dashed currentColor; border-radius: 8px; font-size: 13px; opacity: .7; }
html { scroll-padding-top: var(--fm-scroll-pad, 140px); }

/* Héros : pastille « Nouveau », étiquettes des diapositives, titre principal */
.fm-hero__news { display: inline-flex; align-items: center; gap: 10px; max-width: 100%; margin: 0 0 18px; padding: 5px 14px 5px 5px; border-radius: 999px; background: color-mix(in srgb, currentColor 8%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 16%, transparent); color: inherit; font-size: 14.5px; font-weight: 600; line-height: 1.3; text-decoration: none; transition: background-color .25s, box-shadow .25s, transform .25s; }
.fm-hero__news:hover { background: color-mix(in srgb, currentColor 13%, transparent); transform: translateY(-1px); }
.fm-hero__news:focus-visible { outline: 3px solid var(--fm-focus, var(--fm-primary, #E1061B)); outline-offset: 3px; }
.fm-hero__news-tag { flex: none; padding: 4px 10px; border-radius: 999px; background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.fm-hero__news svg { flex: none; transition: transform .25s; }
.fm-hero__news:hover svg { transform: translateX(3px); }
.fm-hero--center .fm-hero__content, .fm-hero--minimal .fm-hero__content { display: flex; flex-direction: column; align-items: center; }
.fm-hero--center .fm-hero__content > *, .fm-hero--minimal .fm-hero__content > * { max-width: 100%; }
.fm-hero__tag { display: inline-block; margin: 0 0 14px; padding: 5px 12px; border-radius: 999px; background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); font-size: 12.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.fm-hero__h1 { font-family: inherit; font-weight: 600; font-style: normal; text-transform: none; letter-spacing: 0; line-height: 1.3; }
.fm-hero--slider .fm-hero__h1 { margin-bottom: 22px; }
@media (max-width: 600px) { .fm-hero__news { font-size: 13.5px; } .fm-hero__news-tag { font-size: 11px; } }

/* Badge salle affiliée HYROX */
.fm-aff { display: inline-flex; align-items: center; gap: 12px; width: fit-content; margin: 0 0 18px; padding: 8px 16px 8px 8px; border-radius: 999px; background: color-mix(in srgb, currentColor 9%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 18%, transparent); color: inherit; text-decoration: none; }
.fm-aff.aligncenter { margin-inline: auto; }
.fm-aff__logo { display: block; width: auto; height: 30px; }
.fm-aff__word { padding: 6px 10px; border-radius: 999px; background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); font-size: 13px; font-weight: 800; letter-spacing: .08em; line-height: 1; }
.fm-aff__label { font-size: 13.5px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.fm-aff.has-logo { padding-left: 14px; }
.fm-aff--s .fm-aff__logo { height: 22px; } .fm-aff--s .fm-aff__label { font-size: 12px; }
.fm-aff--l .fm-aff__logo { height: 44px; } .fm-aff--l .fm-aff__label { font-size: 15px; }
.fm-price__value.is-text { font-size: clamp(24px, 2.4vw, 30px) !important; line-height: 1.1; }
.fm-hero.is-dark .fm-usp--boxed .fm-usp__item, .fm-hero--floating .fm-hero__foot .fm-usp--boxed .fm-usp__item { background: rgb(255 255 255 / .07); border-color: rgb(255 255 255 / .16); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.fm-plans--cards .fm-pcard[hidden], .fm-plans--cards .fm-ptable[hidden] { display: none !important; }
.fm-plans--s-list .fm-pcard__sticker { top: -13px; left: 24px; right: auto; }
.fm-plans--s-list .fm-pcard.has-promo .fm-pcard__name { padding-right: 0; }

/* Lisibilité : liens et badges sur fond sombre */
a.fm-aff, a.fm-aff:hover, a.fm-aff .fm-aff__label { color: inherit !important; text-decoration: none; }
.fm-section--tone-dark .fm-pcard__ends.is-urgent, .fm-plans--s-dark .fm-pcard__ends.is-urgent, .fm-plans--s-spotlight .fm-pcard.is-featured .fm-pcard__ends.is-urgent, .fm-plans--s-banner .fm-pcard__top .fm-pcard__ends.is-urgent { color: #fff; opacity: 1; }
:is(.fm-section--tone-dark, .fm-plans--s-dark, .fm-plans--s-spotlight .fm-pcard.is-featured, .fm-plans--s-banner .fm-pcard__top) .fm-pcard__ends.is-urgent svg { color: var(--fm-primary-on-dark, #E84252); }
.fm-plans--s-banner .fm-pcard.is-featured .fm-pcard__top .fm-pcard__ends.is-urgent svg { color: inherit; }

/* Cartes à bandeau de couleur : textes et icônes de promo lisibles sur le rouge */
.fm-plans--s-banner .fm-pcard.is-featured .fm-pcard__top .fm-pcard__ribbon { background: rgb(0 0 0 / .22) !important; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .2) !important; }
.fm-plans--s-banner .fm-pcard.is-featured .fm-pcard__top .fm-pcard__ends.is-urgent { color: inherit; }
.fm-plans--s-banner .fm-pcard__top .fm-pcard__perks li { background: rgb(255 255 255 / .12); }
.fm-plans--s-banner .fm-pcard__top .fm-pcard__perks svg, .fm-plans--s-banner .fm-pcard__top .fm-pcard__ends svg { color: inherit; }
.fm-plans--s-banner .fm-pcard.is-featured .fm-pcard__sticker { background: #fff; color: var(--fm-primary-text, #C60518); }
.fm-plans--s-dark .fm-pcard__perks li, .fm-plans--s-spotlight .fm-pcard.is-featured .fm-pcard__perks li { background: rgb(255 255 255 / .08); }
.fm-plans--s-dark .fm-pcard__perks svg, .fm-plans--s-spotlight .fm-pcard.is-featured .fm-pcard__perks svg { color: var(--fm-primary-on-dark, #E84252); }
.fm-pcard__perks li { color: inherit; }

/* ===== Venir depuis une ville (pages locales) ===== */
.fm-local { box-sizing: border-box; display: grid; gap: 18px; width: min(100%, 560px); padding: clamp(22px, 3vw, 32px); border: 1px solid color-mix(in srgb, currentColor 14%, transparent); border-radius: var(--fm-radius, 12px); background: color-mix(in srgb, currentColor 5%, transparent); color: inherit; }
.fm-local__head { display: grid; gap: 4px; }
.fm-local__from { margin: 0; font-size: 14px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--fm-primary-text, var(--fm-primary, #E1061B)); }
.fm-section--tone-dark .fm-local__from, .fm-section--tone-dark .fm-local__list svg { color: var(--fm-primary-on-dark, #E84252); }
.fm-local__time { margin: 0; font-size: 18px; font-weight: 600; }
.fm-local__time span { font-family: var(--fm-font-heading, inherit); font-size: clamp(40px, 5vw, 56px); font-weight: var(--fm-heading-weight, 800); font-style: var(--fm-heading-style, normal); line-height: 1; margin-right: 6px; }
.fm-local__list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.fm-local__list li { display: flex; align-items: flex-start; gap: 12px; font-size: 15.5px; line-height: 1.45; }
.fm-local__list svg { flex: none; margin-top: 1px; color: var(--fm-primary-text, var(--fm-primary, #E1061B)); }
.fm-local__addr { font-style: normal; font-size: 13.5px; color: color-mix(in srgb, currentColor 70%, transparent); }
.fm-local__btn { justify-self: start; }
.fm-local-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.fm-local-links a { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1px solid color-mix(in srgb, currentColor 18%, transparent); border-radius: 999px; color: inherit; font-weight: 600; text-decoration: none; transition: border-color .2s, background-color .2s; }
.fm-local-links a:hover { border-color: currentColor; background: color-mix(in srgb, currentColor 6%, transparent); }

/* ===================================================================== */
/* Formules : « Sans / Avec cours collectifs », présentées à égalité      */
/* ===================================================================== */
.fm-pcard__kind { display: inline-flex; align-items: center; gap: 7px; align-self: flex-start; width: fit-content; margin: 0 0 12px; padding: 6px 11px 6px 9px; border-radius: 999px; font-size: 13px; font-weight: 700; line-height: 1.2; letter-spacing: .01em; background: color-mix(in srgb, currentColor 7%, transparent); color: inherit; }
.fm-pcard__kind svg { flex: none; }
.fm-pcard[data-kind="group"] .fm-pcard__kind { background: color-mix(in srgb, var(--fm-primary, #E1061B) 8%, transparent); color: color-mix(in srgb, var(--fm-primary-text, #C60518) 72%, #000); }
.fm-plans--s-dark .fm-pcard[data-kind="group"] .fm-pcard__kind,
.fm-section--tone-dark .fm-pcard[data-kind="group"] .fm-pcard__kind { background: color-mix(in srgb, var(--fm-primary, #E1061B) 18%, transparent); color: color-mix(in srgb, var(--fm-primary-on-dark, #F0626F) 62%, #fff); }
.fm-plans--s-banner .fm-pcard__top .fm-pcard__kind, .fm-plans--s-banner .fm-pcard[data-kind="group"] .fm-pcard__top .fm-pcard__kind { background: rgb(0 0 0 / .24); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .2); color: #fff; }

.fm-scheme-dark .fm-pcard[data-kind="group"] .fm-pcard__kind { background: color-mix(in srgb, var(--fm-primary, #E1061B) 18%, transparent); color: color-mix(in srgb, var(--fm-primary-on-dark, #F0626F) 62%, #fff); }

/* À égalité : mêmes bordures, même bouton plein ; la couleur du haut distingue les familles. */
.fm-plans--equal .fm-pcard:not(.is-featured) .fm-pcard__cta .fm-btn { --fm-btn-bg: var(--fm-primary, #E1061B); background: var(--fm-primary, #E1061B); border-color: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); }
.fm-plans--equal.fm-plans--s-outline .fm-pcard { border: 1.5px solid color-mix(in srgb, currentColor 16%, transparent); }
.fm-plans--equal.fm-plans--s-outline .fm-pcard[data-kind="group"] { border-color: color-mix(in srgb, var(--fm-primary, #E1061B) 45%, transparent); }
.fm-plans--equal.fm-plans--s-classic .fm-pcard[data-kind="group"] { box-shadow: inset 0 3px 0 var(--fm-primary, #E1061B), 0 18px 40px -28px rgb(0 0 0 / .35); }
.fm-plans--equal.fm-plans--s-spotlight .fm-pcard:not(.is-featured) { opacity: 1; }
.fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] { background: #0b0b0c; color: #fff; border: 1px solid #0b0b0c; }
.fm-plans--equal .fm-pgrid { align-items: stretch; }
.fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] :is(.fm-pcard__sub, .fm-pcard__period, .fm-pcard__eng, .fm-pcard__note, .fm-pcard__features small) { color: rgb(255 255 255 / .74); }
.fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] .fm-pcard__features { border-top-color: rgb(255 255 255 / .14); }
.fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] .fm-pcard__kind { background: color-mix(in srgb, var(--fm-primary, #E1061B) 18%, transparent); color: color-mix(in srgb, var(--fm-primary-on-dark, #F0626F) 62%, #fff); }
.fm-plans--equal.fm-plans--s-banner .fm-pcard[data-kind="group"] .fm-pcard__top { background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); }
.fm-plans--equal.fm-plans--s-banner .fm-pcard[data-kind="group"] .fm-pcard__top :is(.fm-pcard__sub, .fm-pcard__period, .fm-pcard__eng) { color: inherit; opacity: .85; }
.fm-plans--equal.fm-plans--s-banner .fm-pcard[data-kind="group"] .fm-pcard__top .fm-pcard__cta .fm-btn { background: #fff; border-color: #fff; color: var(--fm-primary-text, #C60518); }
.fm-plans--equal.fm-plans--s-banner .fm-pcard[data-kind="solo"] .fm-pcard__top .fm-pcard__cta .fm-btn { background: #fff; border-color: #fff; color: #0a0a0a; }
.fm-plans--equal.fm-plans--s-dark .fm-pcard:not(.is-featured) .fm-pcard__cta .fm-btn { background: var(--fm-primary, #E1061B); border-color: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); }

/* Sélecteur « Sans / Avec cours collectifs » : seulement sur téléphone, en mode carrousel. */
.fm-pfam { display: none; }

/* ===================================================================== */
/* Coaching : offres                                                      */
/* ===================================================================== */
.fm-coffers { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: clamp(14px, 2vw, 22px); }
.fm-coffer { position: relative; display: flex; flex-direction: column; gap: 10px; padding: clamp(22px, 2.6vw, 30px); border-radius: var(--fm-radius, 14px); background: var(--fm-bg, #fff); color: var(--fm-text, #0a0a0a); border: 1px solid color-mix(in srgb, currentColor 12%, transparent); box-shadow: 0 1px 2px rgb(0 0 0 / .04), 0 18px 40px -30px rgb(0 0 0 / .35); }
.fm-section--tone-dark .fm-coffer { background: rgb(255 255 255 / .05); color: #f4f4f5; border-color: rgb(255 255 255 / .12); box-shadow: none; }
.fm-coffer__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.fm-coffer__ico { display: grid; place-items: center; width: 46px; height: 46px; border-radius: calc(var(--fm-radius, 12px) - 2px); background: color-mix(in srgb, var(--fm-primary, #E1061B) 10%, transparent); color: var(--fm-primary-text, #C60518); }
.fm-section--tone-dark .fm-coffer__ico { background: color-mix(in srgb, var(--fm-primary, #E1061B) 22%, transparent); color: var(--fm-primary-on-dark, #F0626F); }
.fm-coffer__tag { padding: 5px 11px; border-radius: 999px; font-size: 12.5px; font-weight: 700; background: color-mix(in srgb, currentColor 7%, transparent); }
.fm-coffer__title { margin: 0; font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight, 800); font-size: clamp(19px, 1.6vw, 22px); line-height: 1.2; letter-spacing: var(--fm-heading-track, 0); text-transform: var(--fm-heading-case, none); }
.fm-coffer__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; margin: 2px 0 0; }
.fm-coffer__pay { display: inline-flex; align-items: center; gap: 7px; width: fit-content; margin: 0; padding: 4px 10px 4px 8px; border-radius: 999px; background: color-mix(in srgb, currentColor 8%, transparent); font-size: 13px; font-weight: 700; line-height: 1.3; }
.fm-coffer__pay svg { flex: none; color: var(--fm-primary, #E1061B); }
.fm-coffer__value { font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight, 800); font-size: clamp(34px, 3.4vw, 44px); line-height: 1; letter-spacing: -.02em; }
.fm-coffer__unit { font-size: 14px; opacity: .72; }
.fm-coffer__text { margin: 0; font-size: 15.5px; line-height: 1.55; opacity: .86; }
.fm-coffer__list { display: grid; gap: 8px; margin: 6px 0 0; padding: 14px 0 0; list-style: none; border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent); font-size: 15px; }
.fm-coffer__list li { display: flex; align-items: flex-start; gap: 9px; }
.fm-coffer__list svg { flex: none; margin-top: 2px; color: var(--fm-primary-text, #C60518); }
.fm-section--tone-dark .fm-coffer__list svg { color: var(--fm-primary-on-dark, #F0626F); }
.fm-coffer__cta { margin-top: auto; padding-top: 12px; }
.fm-coffer__cta .fm-btn { width: 100%; justify-content: center; text-align: center; padding-inline: 16px; }
.fm-coffer__cta .fm-btn__label { text-wrap: balance; }
.fm-coffers--compact .fm-coffer { gap: 8px; }
.fm-coffers--compact .fm-coffer__value { font-size: clamp(30px, 3vw, 38px); }

/* Coaching : créneaux des coachs */
.fm-cslots__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.fm-cslot { display: flex; align-items: flex-start; gap: 14px; padding: 16px; border-radius: var(--fm-radius, 14px); background: var(--fm-bg, #fff); color: var(--fm-text, #0a0a0a); border: 1px solid color-mix(in srgb, currentColor 11%, transparent); }
.fm-section--tone-dark .fm-cslot { background: rgb(255 255 255 / .05); color: #f4f4f5; border-color: rgb(255 255 255 / .12); }
.fm-cslot__img { flex: none; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; background: color-mix(in srgb, var(--fm-primary, #E1061B) 14%, transparent); }
.fm-cslot__img--none { display: grid; place-items: center; font-weight: 800; font-size: 20px; color: var(--fm-primary-text, #C60518); }
.fm-cslot__body { min-width: 0; }
.fm-cslot__name { margin: 2px 0 6px; font-weight: 800; font-size: 17px; }
.fm-cslot__list { display: grid; gap: 3px; margin: 0; padding: 0; list-style: none; font-size: 14.5px; }
.fm-cslot__list li::before { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 8px 2px 0; border-radius: 50%; background: var(--fm-primary, #E1061B); vertical-align: middle; }
.fm-cslot__empty { margin: 0; font-size: 14.5px; opacity: .72; }
.fm-cslots__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin-top: 22px; }
.fm-cslots__foot p { margin: 0; max-width: 60ch; font-size: 15px; opacity: .82; }

/* Coaching : questionnaire */
.fm-pform { max-width: 820px; margin-inline: auto; scroll-margin-top: calc(var(--fm-header-real, 90px) + 20px); }
.fm-pform__form { display: grid; gap: 18px; }
.fm-pform__step { padding: clamp(20px, 3vw, 30px); border-radius: var(--fm-radius, 16px); background: var(--fm-bg, #fff); color: var(--fm-text, #0a0a0a); border: 1px solid color-mix(in srgb, currentColor 11%, transparent); display: grid; gap: 18px; }
.fm-pform__step-title { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight, 800); font-size: clamp(18px, 1.6vw, 21px); line-height: 1.2; text-transform: var(--fm-heading-case, none); }
.fm-pform__step-title span { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); font-size: 14px; font-family: var(--fm-font-body); }
.fm-pform__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.fm-pform__field { display: grid; gap: 6px; }
.fm-pform__group { margin: 0; padding: 0; border: 0; min-width: 0; display: grid; gap: 8px; }
.fm-pform__label { padding: 0; font-weight: 700; font-size: 15px; }
.fm-pform__req { color: var(--fm-primary-text, #C60518); }
.fm-pform__help { font-size: 13.5px; opacity: .72; }
.fm-pform input[type="text"], .fm-pform input[type="email"], .fm-pform input[type="tel"], .fm-pform textarea { width: 100%; min-height: 48px; padding: 11px 14px; border: 1.5px solid color-mix(in srgb, currentColor 18%, transparent); border-radius: calc(var(--fm-radius, 12px) - 2px); background: transparent; color: inherit; font: inherit; font-size: 16px; line-height: 1.4; transition: border-color .2s, box-shadow .2s; }
.fm-pform textarea { min-height: 96px; resize: vertical; }
.fm-pform input:focus-visible, .fm-pform textarea:focus-visible { outline: none; border-color: var(--fm-primary, #E1061B); box-shadow: 0 0 0 3px color-mix(in srgb, var(--fm-primary, #E1061B) 22%, transparent); }
.fm-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.fm-chip { position: relative; display: inline-flex; cursor: pointer; }
.fm-chip input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.fm-chip span { display: inline-flex; align-items: center; min-height: 44px; padding: 9px 16px; border-radius: 999px; border: 1.5px solid color-mix(in srgb, currentColor 18%, transparent); font-size: 15px; font-weight: 600; line-height: 1.2; transition: background-color .2s, border-color .2s, color .2s; }
.fm-chip:hover span { border-color: color-mix(in srgb, currentColor 40%, transparent); }
.fm-chip input:checked + span { background: var(--fm-primary, #E1061B); border-color: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); }
.fm-chip input:focus-visible + span { box-shadow: 0 0 0 3px color-mix(in srgb, var(--fm-primary, #E1061B) 30%, transparent); }
.fm-pform__group--formule .fm-chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fm-pform__group--formule .fm-chip span { width: 100%; justify-content: center; text-align: center; min-height: 56px; border-radius: calc(var(--fm-radius, 12px)); }
.fm-pform__end { display: grid; gap: 14px; justify-items: start; padding: 4px 4px 0; }
.fm-pform__consent { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; cursor: pointer; }
.fm-pform__consent input { flex: none; width: 20px; height: 20px; margin-top: 1px; accent-color: var(--fm-primary, #E1061B); }
.fm-pform__privacy { margin: 0; font-size: 13.5px; opacity: .7; }
.fm-pform__submit { min-width: 240px; justify-content: center; border: 0; cursor: pointer; font: inherit; }
.fm-pform__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fm-cform { max-width: 680px; }
.fm-cform__card { display: grid; gap: 16px; }
.fm-pform__error { margin: 0 0 16px; padding: 14px 16px; border-radius: calc(var(--fm-radius, 12px) - 2px); background: #fde7e9; color: #8a0613; font-weight: 600; }
.fm-pform__done { display: grid; justify-items: center; gap: 10px; padding: clamp(28px, 4vw, 44px); text-align: center; border-radius: var(--fm-radius, 16px); background: var(--fm-bg, #fff); color: var(--fm-text, #0a0a0a); border: 1px solid color-mix(in srgb, currentColor 11%, transparent); }
.fm-pform__done p { margin: 0; max-width: 52ch; }
.fm-pform__done-title { font-family: var(--fm-font-heading); font-weight: var(--fm-heading-weight, 800); font-size: clamp(22px, 2.2vw, 28px); }
.fm-pform__done-ico { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: #e3f4e6; color: #14632b; }
@media (max-width: 640px) {
	.fm-pform__grid { grid-template-columns: minmax(0, 1fr); }
	.fm-pform__group--formule .fm-chips { grid-template-columns: minmax(0, 1fr); }
	.fm-pform__submit { width: 100%; }
	.fm-pform__end { justify-items: stretch; }
	.fm-cslots__foot .fm-btn { width: 100%; justify-content: center; }
	/* Créneaux : 2 colonnes, photo au-dessus du nom. */
	.fm-cslots__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.fm-cslot { flex-direction: column; gap: 8px; padding: 14px; }
	.fm-cslot__img { width: 48px; height: 48px; }
	.fm-cslot__name { margin: 0 0 2px; font-size: 16px; }
	.fm-cslot__list, .fm-cslot__empty { font-size: 13.5px; }
}

/* Accueil : « Vous êtes des alentours ? » — temps de trajet par ville */
.fm-towns { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 clamp(22px, 3vw, 34px); padding: 0; list-style: none; }
.fm-towns li { display: inline-flex; align-items: baseline; gap: 10px; padding: 10px 16px; border-radius: 999px; border: 1px solid color-mix(in srgb, currentColor 22%, transparent); background: color-mix(in srgb, currentColor 6%, transparent); font-size: 15px; }
.fm-towns strong { font-weight: 700; }
.fm-near { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 clamp(22px, 3vw, 34px); padding: 0; list-style: none; }
.fm-near li { display: flex; gap: 12px; align-items: flex-start; padding: 16px; border-radius: var(--fm-radius, 14px); background: color-mix(in srgb, currentColor 5%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 12%, transparent); font-size: 14.5px; line-height: 1.45; }
.fm-near strong { display: block; margin-bottom: 2px; font-size: 15.5px; }
.fm-near__ico { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--fm-primary, #E1061B); color: var(--fm-on-primary, #fff); }
@media (max-width: 760px) { .fm-near { grid-template-columns: 1fr; gap: 8px; } .fm-near li { padding: 12px 14px; } }
.fm-towns span { font-variant-numeric: tabular-nums; opacity: .78; }
.fm-towns span::before { content: "·"; margin-right: 8px; opacity: .6; }
@media (max-width: 640px) {
	.fm-towns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.fm-towns li { justify-content: space-between; padding: 10px 14px; font-size: 14.5px; }
	.fm-towns span::before { display: none; }
}

/* À égalité, styles « bandeau » et « mise en avant » : les deux formules sont colorées
   (sombre sans cours, couleur principale avec cours), textes toujours lisibles. */
.fm-plans--equal.fm-plans--s-banner .fm-pcard[data-kind="solo"] .fm-pcard__top { background: #141416; color: #fff; }
.fm-plans--equal.fm-plans--s-banner .fm-pcard .fm-pcard__top :is(.fm-pcard__sub, .fm-pcard__period, .fm-pcard__eng, .fm-pcard__was) { color: inherit; opacity: .85; }
.fm-plans--equal.fm-plans--s-banner .fm-pcard .fm-pcard__top .fm-pcard__ribbon { background: rgb(0 0 0 / .24) !important; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .22) !important; color: #fff !important; }
.fm-plans--equal.fm-plans--s-banner .fm-pcard .fm-pcard__top .fm-pcard__ribbon svg { color: inherit; }
.fm-plans--equal.fm-plans--s-banner .fm-pcard .fm-pcard__top .fm-pcard__ends.is-urgent, .fm-plans--equal.fm-plans--s-banner .fm-pcard .fm-pcard__top .fm-pcard__ends.is-urgent svg { color: inherit; }
.fm-plans--equal.fm-plans--s-banner .fm-pcard .fm-pcard__sticker { background: #fff; color: var(--fm-primary-text, #C60518); }
.fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] .fm-pcard__ribbon { background: rgb(255 255 255 / .12); color: #fff; }
.fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] .fm-pcard__ribbon svg { color: var(--fm-primary-on-dark, #F0626F); }
.fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] :is(.fm-pcard__ends.is-urgent, .fm-pcard__was) { color: #fff; }
.fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] .fm-pcard__perks li { background: rgb(255 255 255 / .08); }
.fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] :is(.fm-pcard__perks svg, .fm-pcard__features .is-on svg) { color: var(--fm-primary-on-dark, #F0626F); }
.fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] .fm-pcard__features .is-off { color: rgb(255 255 255 / .6); }

/* Coaching réservé aux adhérents : mention, encadré « En option » sous les abonnements */
.fm-members-note { display: flex; align-items: flex-start; gap: 10px; max-width: 760px; margin: 18px 0 0; padding: 14px 16px; border-radius: calc(var(--fm-radius, 12px) - 2px); background: color-mix(in srgb, currentColor 5%, transparent); border: 1px solid color-mix(in srgb, currentColor 12%, transparent); font-size: 15px; line-height: 1.5; }
.fm-members-note svg { flex: none; margin-top: 2px; color: var(--fm-primary-text, #C60518); }
.fm-members-note a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.fm-section--tone-dark .fm-members-note svg, .fm-scheme-dark .fm-members-note svg { color: var(--fm-primary-on-dark, #F0626F); }
.fm-members-note--form { margin: 0; max-width: none; }
.fm-pform__signup { display: none; margin: -4px 0 0; padding: 12px 14px; border-radius: calc(var(--fm-radius, 12px) - 2px); background: color-mix(in srgb, var(--fm-primary, #E1061B) 7%, transparent); font-size: 14.5px; line-height: 1.5; }
.fm-pform__signup a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.fm-pform__step:has(input[name="fm_member"][value="inscription"]:checked) .fm-pform__signup { display: block; }
.fm-pform__signup--done { display: block; margin: 6px 0 0; text-align: center; }
.fm-pform__go { font-size: 14px; opacity: .72; }

.fm-upsell { display: flex; align-items: center; gap: 16px; max-width: 880px; margin: clamp(22px, 3vw, 32px) auto 0; padding: 18px 20px; border-radius: var(--fm-radius, 14px); background: var(--fm-bg, #fff); color: var(--fm-text, #0a0a0a); border: 1.5px dashed color-mix(in srgb, var(--fm-primary, #E1061B) 45%, transparent); text-align: left; }
.fm-upsell__ico { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: color-mix(in srgb, var(--fm-primary, #E1061B) 9%, transparent); color: color-mix(in srgb, var(--fm-primary-text, #C60518) 80%, #000); }
.fm-upsell__body { flex: 1; min-width: 0; }
.fm-upsell__body p { margin: 0; }
.fm-upsell__title { font-weight: 800; font-size: 16px; }
.fm-upsell__text { margin-top: 2px !important; font-size: 14.5px; opacity: .8; }
.fm-upsell__pay { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px !important; padding: 4px 10px; border-radius: 999px; background: color-mix(in srgb, var(--fm-primary, #E1061B) 9%, transparent); color: color-mix(in srgb, var(--fm-primary-text, #C60518) 75%, #000); font-size: 13px; font-weight: 700; }
.fm-section--tone-dark .fm-upsell__pay, .fm-scheme-dark .fm-upsell__pay { background: color-mix(in srgb, var(--fm-primary, #E1061B) 20%, transparent); color: color-mix(in srgb, var(--fm-primary-on-dark, #F0626F) 62%, #fff); }
.fm-upsell__btn { flex: none; white-space: nowrap; }
.fm-upsell__item { white-space: nowrap; }
.fm-section--tone-dark .fm-upsell, .fm-scheme-dark .fm-upsell { background: rgb(255 255 255 / .05); color: #f4f4f5; border-color: color-mix(in srgb, var(--fm-primary, #E1061B) 55%, transparent); }
.fm-section--tone-dark .fm-upsell__ico, .fm-scheme-dark .fm-upsell__ico { background: color-mix(in srgb, var(--fm-primary, #E1061B) 18%, transparent); color: color-mix(in srgb, var(--fm-primary-on-dark, #F0626F) 62%, #fff); }
@media (max-width: 640px) {
	.fm-upsell { flex-wrap: wrap; gap: 12px 14px; padding: 16px; }
	.fm-upsell__btn { width: 100%; justify-content: center; }
	.fm-upsell__text { display: grid; gap: 2px; }
	.fm-upsell__sep { display: none; }
}
/* Style « bandeau » : la carte n'a pas de marge intérieure (overflow caché) ; le coupon a la sienne. */
.fm-plans--s-banner .fm-pcard__legal { margin: 18px 0 0; border-radius: 0; }
.fm-plans--s-banner .fm-pcard__legal::before, .fm-plans--s-banner .fm-pcard__legal::after { display: none; }
.fm-plans--s-banner .fm-pcard:has(.fm-pcard__legal) .fm-pcard__note { padding-bottom: 0; }

/* Option coaching : rappel en bas de chaque formule (page Abonnements). */
.fm-card-upsell { margin: 16px 0 0; }
p.fm-card-upsell > a { display: flex; align-items: center; gap: 9px; padding: 10px 12px; border-radius: 10px; background: color-mix(in srgb, currentColor 5%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 10%, transparent); color: inherit; font-size: 13.5px; font-weight: 600; line-height: 1.3; text-decoration: none; transition: background .2s, box-shadow .2s; }
.fm-card-upsell a > svg { flex: none; color: var(--fm-primary-text, #C60518); }
.fm-card-upsell a > span:first-of-type { flex: 1; min-width: 0; }
.fm-card-upsell__go { flex: none; font-weight: 700; transition: transform .2s; }
.fm-card-upsell a:hover { background: color-mix(in srgb, currentColor 9%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent); }
.fm-card-upsell a:hover .fm-card-upsell__go { transform: translateX(3px); }
.fm-card-upsell a:focus-visible { outline: 2px solid var(--fm-primary, #E1061B); outline-offset: 2px; }
.fm-pcard__features + .fm-pcard__upsell { margin-top: auto; padding-top: 22px; }
.fm-pcard__note + .fm-pcard__upsell { margin-top: 14px; }
.fm-pcard__upsell + .fm-pcard__legal { margin-top: 16px; }
.fm-plans--s-banner .fm-pcard__upsell { margin-inline: clamp(24px, 2.6vw, 32px); }
.fm-plans--s-banner .fm-pcard__note + .fm-pcard__upsell { margin-top: -6px; }
.fm-plans--s-banner .fm-pcard > .fm-pcard__upsell:last-child { margin-bottom: clamp(24px, 2.6vw, 32px); }
.fm-plans--s-dark .fm-card-upsell a > svg, .fm-scheme-dark .fm-card-upsell a > svg, .fm-section--tone-dark .fm-card-upsell a > svg, .fm-price.is-highlight .fm-card-upsell a > svg, .fm-plans--equal.fm-plans--s-spotlight .fm-pcard[data-kind="group"] .fm-card-upsell a > svg, .fm-plans--s-spotlight .fm-pcard.is-featured .fm-card-upsell a > svg { color: var(--fm-primary-on-dark, #F0626F); }
.fm-coach--poster .fm-coach__cta { margin-top: 12px; }
.fm-coach--poster .fm-coach__body { z-index: 3; } /* au-dessus de la zone cliquable : le bouton coaching reste cliquable, le reste laisse passer le clic */
.fm-coach--poster .fm-coach__cta, .fm-coach.is-ghost.fm-coach--poster .fm-coach__cta { background: #fff; color: #0a0a0a; } .fm-coach--poster .fm-coach__cta:hover { color: #0a0a0a; }

/* ---------------------------------------------------------------------------
 * Planning de réservation des coachings (bloc « Créneaux des coachs »)
 * ------------------------------------------------------------------------- */
.fm-cslot__img--ghost { display: flex; align-items: flex-end; justify-content: center; overflow: hidden; }
.fm-cslot__img--ghost svg, .fm-cbook__av--ghost svg { display: block; width: 78%; height: auto; opacity: .45; color: var(--fm-primary, #E1061B); }
.fm-cbook__coaches { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.fm-cbook__chip { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 5px 15px 5px 5px; border: 1px solid color-mix(in srgb, currentColor 20%, transparent); border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: 14.5px; font-weight: 700; cursor: pointer; transition: background-color .2s, border-color .2s, color .2s; }
.fm-cbook__chip:first-child { padding-left: 15px; }
.fm-cbook__chip:hover { border-color: var(--fm-primary, #E1061B); }
.fm-cbook__chip[aria-pressed="true"] { border-color: var(--fm-primary, #E1061B); background: var(--fm-primary, #E1061B); color: #fff; }
.fm-cbook__av { flex: none; width: 30px; height: 30px; border-radius: 50%; object-fit: cover; background: color-mix(in srgb, currentColor 10%, transparent); }
.fm-cbook__chip[aria-pressed="true"] .fm-cbook__av--ghost svg { color: #fff; opacity: .7; }
.fm-cbook__nav { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; }
.fm-cbook__range { margin: 0; font-size: 17px; font-weight: 800; }
.fm-cbook__arrow { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid color-mix(in srgb, currentColor 22%, transparent); border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.fm-cbook__arrow:hover:not(:disabled) { border-color: var(--fm-primary, #E1061B); color: var(--fm-primary, #E1061B); }
.fm-cbook__arrow:disabled { opacity: .3; cursor: default; }
.fm-cbook__days { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; }
.fm-cbook__day { padding: 12px; border: 1px solid color-mix(in srgb, currentColor 11%, transparent); border-radius: var(--fm-radius, 14px); background: color-mix(in srgb, currentColor 4%, transparent); }
.fm-cbook__day[hidden], .fm-cbook__item[hidden] { display: none; }
.fm-cbook__dayname { margin: 0 0 10px; font-size: 15px; font-weight: 800; }
.fm-cbook__list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.fm-cbook__slot { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: start; gap: 1px; width: 100%; margin: 0; padding: 9px 10px 9px 12px; border: 1.5px solid color-mix(in srgb, var(--fm-primary, #E1061B) 55%, transparent); border-radius: 10px; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background-color .2s, transform .2s; }
button.fm-cbook__slot:hover { background: color-mix(in srgb, var(--fm-primary, #E1061B) 12%, transparent); }
button.fm-cbook__slot:focus-visible { outline: 3px solid var(--fm-primary, #E1061B); outline-offset: 2px; }
.fm-cbook__time { font-size: 15px; font-weight: 800; }
.fm-cbook__who { font-size: 13px; opacity: .78; }
.fm-cbook__state { margin-top: 6px; padding: 3px 9px; border-radius: 999px; background: var(--fm-primary, #E1061B); color: #fff; font-size: 11.5px; font-weight: 800; letter-spacing: .02em; white-space: nowrap; }
.fm-cbook__slot.is-booked { border-style: dashed; border-color: color-mix(in srgb, currentColor 28%, transparent); cursor: not-allowed; }
.fm-cbook__slot.is-booked .fm-cbook__time { text-decoration: line-through; opacity: .55; }
.fm-cbook__slot.is-booked .fm-cbook__who { opacity: .5; }
.fm-cbook__slot.is-booked .fm-cbook__state { background: color-mix(in srgb, currentColor 12%, transparent); color: inherit; }
.fm-cbook__none { margin: 0; padding: 18px; border: 1px dashed color-mix(in srgb, currentColor 25%, transparent); border-radius: var(--fm-radius, 14px); font-size: 15px; }
.fm-cbook__none[hidden] { display: none; }
.fm-cbook__legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 16px 0 0; font-size: 13.5px; opacity: .82; }
.fm-cbook__dot { display: inline-block; width: 13px; height: 13px; border: 2px solid var(--fm-primary, #E1061B); border-radius: 4px; }
.fm-cbook__dot.is-booked { margin-left: 10px; border-style: dashed; border-color: currentColor; opacity: .55; }
.fm-cbook__others { margin: 12px 0 0; font-size: 14.5px; opacity: .82; }
.fm-cbook .fm-cslots__foot { margin-top: 14px; }
/* Formulaire de réservation */
.fm-cbook__dialog { width: min(560px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); margin: auto; padding: 0; overflow: auto; border: 0; border-radius: 18px; background: #fff; color: #141414; box-shadow: 0 30px 80px -20px rgb(0 0 0 / .55); color-scheme: light; }
.fm-cbook__dialog::backdrop { background: rgb(8 8 10 / .6); backdrop-filter: blur(2px); }
.fm-cbook__form, .fm-cbook__done { position: relative; display: grid; gap: 14px; padding: 28px clamp(18px, 4vw, 32px) 24px; }
.fm-cbook__form[hidden], .fm-cbook__done[hidden] { display: none; }
.fm-cbook__close { position: absolute; top: 8px; right: 10px; width: 42px; height: 42px; border: 0; border-radius: 50%; background: transparent; color: inherit; font-size: 28px; line-height: 1; cursor: pointer; }
.fm-cbook__close:hover { background: #f1f1f3; }
.fm-cbook__kicker { margin: 0; color: #C60518; font-size: 12.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.fm-cbook__title { margin: 0; padding-right: 34px; font-size: 20px; font-weight: 800; line-height: 1.3; }
.fm-cbook__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fm-cbook__field { display: grid; gap: 6px; font-size: 14px; font-weight: 700; }
.fm-cbook__field--wide, .fm-cbook__consent { grid-column: 1 / -1; }
.fm-cbook__field input, .fm-cbook__field select, .fm-cbook__field textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #c9c9cf; border-radius: 10px; background: #fff; color: #141414; font: inherit; font-size: 16px; font-weight: 500; }
.fm-cbook__field input:focus, .fm-cbook__field select:focus, .fm-cbook__field textarea:focus { outline: 2px solid #E1061B; outline-offset: 1px; border-color: #E1061B; }
.fm-cbook__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fm-cbook__consent { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; line-height: 1.45; }
.fm-cbook__consent input { flex: none; width: 18px; height: 18px; margin-top: 1px; accent-color: #E1061B; }
.fm-cbook__info { margin: 0; color: #55555c; font-size: 13.5px; }
.fm-cbook__error { margin: 0; padding: 10px 12px; border-radius: 10px; background: #fde7e9; color: #a00a17; font-size: 14px; font-weight: 600; }
.fm-cbook__error[hidden] { display: none; }
.fm-cbook__submit { width: 100%; justify-content: center; border: 0; cursor: pointer; }
.fm-cbook__submit.is-busy { opacity: .6; pointer-events: none; }
.fm-cbook__done { justify-items: center; text-align: center; }
.fm-cbook__done p { margin: 0; }
.fm-cbook__done-ico { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: #e3f4e6; color: #14632b; }
.fm-cbook__done .fm-btn { margin-top: 6px; padding: 11px 26px; border: 1.5px solid currentColor; border-radius: 999px; background: transparent; color: inherit; font: inherit; font-weight: 700; cursor: pointer; }
@media (max-width: 600px) {
	.fm-cbook__days { grid-template-columns: 1fr; }
	.fm-cbook__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fm-cbook__range { font-size: 15px; }
	.fm-cbook__fields { grid-template-columns: 1fr; }
	.fm-cbook__coaches { flex-wrap: nowrap; overflow-x: auto; margin-right: -16px; padding-right: 16px; scrollbar-width: none; }
	.fm-cbook__chip { flex: none; }
}

/* Vidéos en grille : « Voir les autres vidéos ». */
.fm-reels__more { display: flex; justify-content: center; margin-top: 22px; }
.fm-reel[hidden] { display: none !important; }
