/* ==========================================================================
   M Formula — main stylesheet
   Mobile first. Breakpoints: 640 · 768 · 1024 · 1280 · 1800 (framed ultra-wide)
   ========================================================================== */

/* ---------- Base ---------------------------------------------------------- */
html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	background: var(--mf-crema);
	scroll-padding-top: calc(var(--mf-header-h) + 16px);
}
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

body.mf {
	margin: 0;
	background: var(--mf-crema);
	color: var(--mf-burdeos);
	font-family: var(--mf-font-text);
	font-size: var(--mf-fs-md);
	font-weight: 350;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
.mf *, .mf *::before, .mf *::after { box-sizing: border-box; }
.mf img, .mf svg, .mf video { display: block; max-width: 100%; }
.mf img { height: auto; }
.mf a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.mf a:hover { color: inherit; }
.mf p { margin: 0 0 1em; }
.mf p:last-child { margin-bottom: 0; }
.mf h1, .mf h2, .mf h3, .mf h4 { margin: 0; color: inherit; font-weight: inherit; }
.mf ul[role="list"] { list-style: none; margin: 0; padding: 0; }
.mf button { font: inherit; color: inherit; }
.mf ::selection { background: var(--mf-rosa); color: var(--mf-noche); }

.mf :focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
	border-radius: 4px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.mf-skip {
	position: fixed;
	z-index: 200;
	top: 8px; left: 8px;
	padding: 10px 16px;
	background: var(--mf-burdeos);
	color: var(--mf-crema) !important;
	border-radius: 999px;
	transform: translateY(-160%);
	transition: transform 0.2s var(--mf-ease);
}
.mf-skip:focus { transform: none; }

.mf-main { display: block; outline: none; }

/* ---------- Elementor resets (we own spacing and type) -------------------- */
.mf .elementor-widget-heading .elementor-heading-title,
.mf .elementor-widget-text-editor,
.mf .elementor-widget-shortcode,
.mf .elementor-widget-html {
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
}
.mf .elementor-widget:not(:last-child) { margin-block-end: 0; }
.mf .e-con {
	--padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0;
	--gap: 0; --row-gap: 0; --column-gap: 0;
	--margin-top: 0; --margin-bottom: 0;
	--content-width: 100%;
	--width: 100%;
}
.mf .e-con { --display: block; display: block; min-width: 0; }
.mf .mf-manifesto__st1, .mf .mf-manifesto__st2 { position: static; }
.mf .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* ---------- Layout primitives --------------------------------------------- */
.mf .mf-wrap {
	width: 100%;
	max-width: calc(var(--mf-max) + var(--mf-safe-l) + var(--mf-safe-r));
	margin-inline: auto;
	padding-inline: var(--mf-safe-l) var(--mf-safe-r);
}
.mf .mf-s { position: relative; padding-block: var(--mf-section); }
.mf .mf-s.mf-flush-top { padding-top: 0; }
.mf .mf-s.mf-flush-bottom { padding-bottom: 0; }
.mf .mf-stack > * + * { margin-top: clamp(1rem, 0.7rem + 1vw, 1.75rem); }

.mf .mf-bg-crema { background: var(--mf-crema); color: var(--mf-burdeos); }
.mf .mf-bg-rosa { background: var(--mf-rosa); color: var(--mf-burdeos); }
.mf .mf-bg-rosa-polvo { background: var(--mf-rosa-polvo); color: var(--mf-burdeos); }
.mf .mf-bg-menta { background: var(--mf-menta); color: var(--mf-burdeos); }
.mf .mf-bg-lima { background: var(--mf-lima); color: var(--mf-burdeos); }
.mf .mf-bg-burdeos { background: var(--mf-burdeos); color: var(--mf-crema); }
.mf .mf-bg-noche { background: var(--mf-noche); color: var(--mf-crema); }
.mf .mf-bg-vino { background: var(--mf-vino); color: var(--mf-crema); }
.mf .mf-bg-burdeos .mf-script, .mf .mf-bg-noche .mf-script, .mf .mf-bg-vino .mf-script { color: var(--mf-rosa); }
.mf .mf-bg-rosa .mf-script, .mf .mf-bg-rosa-polvo .mf-script { color: var(--mf-vino); }
.mf .mf-bg-lima .mf-script, .mf .mf-bg-menta .mf-script { color: var(--mf-vino); }

/* Asymmetric two-column grid: narrow aside + wide main. */
@media (min-width: 1024px) {
	.mf .mf-grid-5-7 {
		display: grid;
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		column-gap: clamp(2rem, 1rem + 3vw, 6rem);
		align-items: start;
	}
	.mf .mf-grid-7-5 {
		display: grid;
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		column-gap: clamp(2rem, 1rem + 3vw, 6rem);
		align-items: start;
	}
	.mf .mf-grid-4-8 {
		display: grid;
		grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
		column-gap: clamp(2rem, 1rem + 3vw, 6rem);
		align-items: end;
	}
}

/* ---------- Type ---------------------------------------------------------- */
.mf .mf-display,
.mf .mf-h1,
.mf .mf-h2,
.mf .mf-h3 {
	font-family: var(--mf-font-display);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: -0.025em;
	line-height: 0.9;
	text-wrap: balance;
	font-kerning: normal;
}
.mf .mf-display { font-size: var(--mf-fs-hero); line-height: 0.86; }
.mf .mf-h1 { font-size: var(--mf-fs-3xl); }
.mf .mf-h2 { font-size: var(--mf-fs-2xl); line-height: 0.94; }
.mf .mf-h3 { font-size: var(--mf-fs-xl); font-weight: 800; letter-spacing: -0.015em; line-height: 1; }
.mf .mf-h-sentence {
	font-family: var(--mf-font-display);
	font-weight: 700;
	font-size: var(--mf-fs-2xl);
	letter-spacing: -0.03em;
	line-height: 1;
	text-wrap: balance;
}

.mf .mf-script {
	font-family: var(--mf-font-script);
	font-style: normal;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: var(--mf-rosa);
	font-size: 0.62em;
	line-height: 1;
	display: inline-block;
	padding-inline: 0.12em 0.18em;
	transform: translateY(-0.12em) rotate(-4deg);
}
.mf .mf-bg-crema .mf-script, .mf .mf-s:not([class*="mf-bg-"]) .mf-script { color: #B0657E; } /* rosa deepened to 3.4:1 on crema */

.mf .mf-eyebrow {
	font-family: var(--mf-font-text);
	font-size: var(--mf-fs-xs);
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 1.3;
}
.mf .mf-folio {
	display: inline-block;
	font-family: var(--mf-font-text);
	font-size: var(--mf-fs-sm);
	font-weight: 400;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
}
.mf .mf-lede {
	font-size: var(--mf-fs-lg);
	font-weight: 350;
	line-height: 1.42;
	max-width: var(--mf-max-text);
	text-wrap: pretty;
}
.mf .mf-body { max-width: var(--mf-max-text); text-wrap: pretty; }
.mf .elementor-widget.mf-lede, .mf .elementor-widget.mf-body { max-width: var(--mf-max-text); }
.mf .mf-headgrid { align-items: end; margin-bottom: clamp(2rem, 1.2rem + 3vw, 4.5rem); }
.mf .mf-headgrid .mf-head { margin-bottom: 0; }
@media (max-width: 1023px) { .mf .mf-head__intro { margin-top: 1.25rem; } }
.mf .mf-small { font-size: var(--mf-fs-sm); }
.mf .mf-muted { opacity: 0.72; }

.mf .mf-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.75rem 1.5rem; margin-bottom: clamp(2rem, 1.2rem + 3vw, 4.5rem); }
.mf .mf-head .mf-folio { min-width: 3.2em; }

.mf .mf-placeholder-tag {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	margin: 0.75rem 0;
	padding: 0.35em 0.8em;
	border: 1px dashed currentColor;
	border-radius: 999px;
	font-size: var(--mf-fs-xs);
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* ---------- Buttons --------------------------------------------------------
   Pill, uppercase Helvena, press feedback + optional magnetic pull (JS). */
.mf .mf-btn,
.mf .mf-cta .elementor-button {
	--btn-bg: var(--mf-burdeos);
	--btn-fg: var(--mf-crema);
	--btn-bd: var(--mf-burdeos);
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
	min-height: 48px;
	padding: 0.95em 1.7em;
	border: 1px solid var(--btn-bd);
	border-radius: 999px;
	background: var(--btn-bg);
	color: var(--btn-fg);
	font-family: var(--mf-font-text);
	font-size: var(--mf-fs-sm);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	overflow: hidden;
	isolation: isolate;
	transition: transform 0.35s var(--mf-ease), background-color 0.3s, color 0.3s, border-color 0.3s;
	-webkit-tap-highlight-color: transparent;
}
.mf .mf-btn::before,
.mf .mf-cta .elementor-button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--mf-vino);
	border-radius: inherit;
	transform: translateY(101%);
	transition: transform 0.45s var(--mf-ease);
}
.mf .mf-btn:hover::before,
.mf .mf-cta .elementor-button:hover::before { transform: none; }
.mf .mf-btn:hover,
.mf .mf-cta .elementor-button:hover { color: var(--btn-fg); }
.mf .mf-btn:active,
.mf .mf-cta .elementor-button:active { transform: scale(0.955); transition-duration: 0.12s; transition-timing-function: var(--mf-ease-press); }
.mf .mf-cta .elementor-button .elementor-button-content-wrapper { gap: 0.6em; }

.mf .mf-btn--ghost,
.mf .mf-cta--ghost .elementor-button { --btn-bg: transparent; --btn-fg: currentColor; --btn-bd: currentColor; }
.mf .mf-btn--ghost::before,
.mf .mf-cta--ghost .elementor-button::before { background: var(--mf-burdeos); }
.mf .mf-btn--ghost:hover,
.mf .mf-cta--ghost .elementor-button:hover { --btn-fg: var(--mf-crema); color: var(--mf-crema); border-color: var(--mf-burdeos); }
.mf .mf-btn--rosa,
.mf .mf-cta--rosa .elementor-button { --btn-bg: var(--mf-rosa); --btn-fg: var(--mf-noche); --btn-bd: var(--mf-rosa); }
.mf .mf-btn--rosa::before,
.mf .mf-cta--rosa .elementor-button::before { background: var(--mf-crema); }
.mf .mf-btn--lima,
.mf .mf-cta--lima .elementor-button { --btn-bg: var(--mf-burdeos); --btn-fg: var(--mf-lima); }
.mf .mf-bg-burdeos .mf-cta--ghost .elementor-button:hover,
.mf .mf-bg-noche .mf-cta--ghost .elementor-button:hover { color: var(--mf-noche); border-color: var(--mf-crema); }
.mf .mf-bg-burdeos .mf-cta--ghost .elementor-button::before,
.mf .mf-bg-noche .mf-cta--ghost .elementor-button::before { background: var(--mf-crema); }
.mf .mf-btn--sm { min-height: 40px; padding: 0.8em 1.25em; font-size: var(--mf-fs-xs); }
.mf .mf-btn--lg { min-height: 56px; padding: 1.1em 2em; }

.mf .mf-btns { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 0.75rem; align-items: center; justify-content: flex-start; }
.mf .mf-btns > .elementor-widget { margin: 0 !important; width: auto !important; flex: none; }
.mf .mf-cta, .mf .mf-link { text-align: start; }
.mf .mf-s--manifesto .mf-cta, .mf .mf-s--cta .mf-cta { text-align: center; }

.mf .mf-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	font-size: var(--mf-fs-sm);
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat;
	padding-bottom: 0.3em;
	transition: background-size 0.4s var(--mf-ease);
}
.mf .mf-link:hover { background-size: 0 1px; background-position: 100% 100%; }
.mf .mf-link .elementor-button { all: unset; cursor: pointer; }

/* ---------- Header -------------------------------------------------------- */
.mf-header {
	position: fixed;
	z-index: 100;
	inset: 0 0 auto 0;
	height: calc(var(--mf-header-h) + env(safe-area-inset-top));
	padding-top: env(safe-area-inset-top);
	color: var(--mf-burdeos);
	transition: transform 0.5s var(--mf-ease), background-color 0.35s, box-shadow 0.35s;
}
.mf-header.is-solid { background: var(--mf-crema); box-shadow: 0 1px 0 rgba(58, 25, 29, 0.12); }
.mf-header.is-hidden { transform: translateY(-100%); }
.mf.mf-menu-open .mf-header { background: var(--mf-crema); box-shadow: none; transform: none; }
.mf-header__inner {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2vw, 2.5rem);
	height: 100%;
	max-width: calc(var(--mf-max) + var(--mf-safe-l) + var(--mf-safe-r));
	margin-inline: auto;
	padding-inline: var(--mf-safe-l) var(--mf-safe-r);
}
.mf-header__logo { display: block; flex: none; color: inherit; text-decoration: none; }
.mf-header__logo .mf-logo { --mf-logo-w: clamp(104px, 82px + 3.6vw, 148px); }

.mf-logo { display: inline-flex; flex-direction: column; align-items: center; width: var(--mf-logo-w, 140px); }
.mf-logo__svg { width: 100%; height: auto; fill: currentColor; overflow: visible; }
.mf-logo__tag {
	margin-top: 0.85em;
	font-family: var(--mf-font-text);
	font-weight: 450;
	font-size: calc(var(--mf-logo-w, 140px) * 0.034);
	letter-spacing: 0.24em;
	text-transform: uppercase;
	white-space: nowrap;
}
.mf-logo--mark { width: var(--mf-logo-w, 48px); }

.mf-nav { flex: 1; display: none; justify-content: center; }
.mf-nav__list { display: flex; gap: clamp(1.1rem, 2vw, 2.4rem); margin: 0; padding: 0; list-style: none; }
.mf-nav__list a,
.mf-header__login {
	position: relative;
	font-size: var(--mf-fs-sm);
	font-weight: 450;
	text-decoration: none;
	white-space: nowrap;
	padding-block: 0.4em;
}
.mf-nav__list a::after,
.mf-header__login::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.45s var(--mf-ease);
}
.mf-nav__list a:hover::after, .mf-header__login:hover::after,
.mf-nav__list .current-menu-item > a::after, .mf-nav__list a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }

.mf-header__actions { display: flex; align-items: center; gap: clamp(0.75rem, 1.4vw, 1.5rem); margin-left: auto; }
.mf-header__login { display: none; }
.mf-header__cta { display: none !important; }

.mf-lang { display: flex; gap: 0.15rem; margin: 0; padding: 0; list-style: none; font-size: var(--mf-fs-xs); font-weight: 500; letter-spacing: 0.08em; }
.mf-lang a {
	display: grid;
	place-items: center;
	min-width: 34px; min-height: 34px;
	border-radius: 999px;
	text-decoration: none;
	opacity: 0.62;
	transition: opacity 0.2s, background-color 0.2s;
}
.mf-lang a:hover { opacity: 1; }
.mf-lang a[aria-current="true"] { opacity: 1; background: rgba(58, 25, 29, 0.08); }
.mf-header .mf-lang { display: none; }

.mf-burger {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 44px;
	padding: 0 0 0 0.25rem;
	border: 0;
	background: none;
	cursor: pointer;
	font-size: var(--mf-fs-xs) !important;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.mf-burger__lines { position: relative; width: 26px; height: 10px; }
.mf-burger__lines i {
	position: absolute; left: 0; right: 0;
	height: 1.5px;
	background: currentColor;
	border-radius: 2px;
	transition: transform 0.45s var(--mf-ease), top 0.45s var(--mf-ease);
}
.mf-burger__lines i:first-child { top: 0; }
.mf-burger__lines i:last-child { top: 8.5px; }
.mf-burger[aria-expanded="true"] .mf-burger__lines i:first-child { top: 4.25px; transform: rotate(45deg); }
.mf-burger[aria-expanded="true"] .mf-burger__lines i:last-child { top: 4.25px; transform: rotate(-45deg); }

@media (min-width: 640px) {
	.mf-header__cta { display: inline-flex !important; }
}
@media (min-width: 1100px) {
	.mf-nav { display: flex; }
	.mf-burger { display: none; }
	.mf-header .mf-lang { display: flex; }
	.mf-header__login { display: inline-block; }
}

/* Mobile menu: full-screen crema sheet, big Satoshi links with folios. */
.mf-menu {
	position: fixed;
	z-index: 90;
	inset: 0;
	padding: calc(var(--mf-header-h) + env(safe-area-inset-top) + 1rem) var(--mf-safe-r) calc(1.5rem + env(safe-area-inset-bottom)) var(--mf-safe-l);
	background: var(--mf-crema);
	color: var(--mf-burdeos);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.mf-menu[hidden] { display: none; }
.mf-menu__inner { position: relative; display: flex; flex-direction: column; min-height: 100%; gap: 2rem; }
.mf-menu__list { margin: 0; padding: 0; list-style: none; counter-reset: mf-menu; }
.mf-menu__list li { counter-increment: mf-menu; overflow: hidden; border-bottom: 1px solid rgba(58, 25, 29, 0.14); }
.mf-menu__list a {
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	padding: 0.55rem 0;
	font-family: var(--mf-font-display);
	font-weight: 900;
	font-size: clamp(1.9rem, 1.2rem + 4.5vw, 3.2rem);
	letter-spacing: -0.02em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
}
.mf-menu__list a::before {
	content: "(" counter(mf-menu, decimal-leading-zero) ")";
	font-family: var(--mf-font-text);
	font-weight: 400;
	font-size: var(--mf-fs-xs);
	letter-spacing: 0.04em;
	transform: translateY(-0.9em);
}
.mf-menu__list .current-menu-item a { color: var(--mf-vino); }
.mf-menu__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: auto; }
.mf-menu__login { font-weight: 500; text-decoration: none; }
.mf-menu__foot .mf-lang { margin-left: auto; }
.mf-menu__seal { position: absolute; right: 0; bottom: 5.5rem; width: 96px; opacity: 0.9; }
@media (min-width: 1100px) { .mf-menu { display: none !important; } }

/* ---------- Footer -------------------------------------------------------- */
.mf-footer {
	background: var(--mf-noche);
	color: var(--mf-crema);
	padding: clamp(4rem, 3rem + 5vw, 8rem) 0 calc(1.5rem + env(safe-area-inset-bottom));
}
.mf-footer__inner {
	max-width: calc(var(--mf-max) + var(--mf-safe-l) + var(--mf-safe-r));
	margin-inline: auto;
	padding-inline: var(--mf-safe-l) var(--mf-safe-r);
	display: grid;
	gap: clamp(3rem, 2rem + 4vw, 6rem);
}
.mf-footer__logo { --mf-logo-w: clamp(220px, 140px + 26vw, 520px); color: var(--mf-rosa); }
.mf-footer__claim { margin-top: 1.5rem !important; max-width: 24ch; font-size: var(--mf-fs-lg); opacity: 0.85; }
.mf-footer__brand { display: flex; flex-direction: column; align-items: flex-start; }
.mf-footer__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 1.5rem; }
.mf-footer__h { margin-bottom: 1rem !important; font-size: var(--mf-fs-xs) !important; font-weight: 500 !important; letter-spacing: 0.18em; text-transform: uppercase; color: var(--mf-rosa); }
.mf-footer__list { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.55rem; }
.mf-footer__list a { text-decoration: none; opacity: 0.88; font-size: var(--mf-fs-sm); }
.mf-footer__list a:hover { opacity: 1; text-decoration: underline; }
.mf-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(237, 232, 213, 0.16);
	font-size: var(--mf-fs-xs);
}
.mf-footer__copy { margin: 0 !important; opacity: 0.7; }
.mf-footer .mf-lang a[aria-current="true"] { background: rgba(237, 232, 213, 0.12); }
.mf-credit { display: inline-flex; align-items: center; gap: 0.8rem; margin-left: auto; text-decoration: none; opacity: 0.8; transition: opacity 0.2s; }
.mf-credit:hover { opacity: 1; }
.mf-credit__label { font-size: var(--mf-fs-xs); letter-spacing: 0.16em; text-transform: uppercase; }
.mf-credit__logo svg { width: 76px; height: auto; }
@media (min-width: 768px) {
	.mf-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.mf-footer__inner { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); align-items: start; }
	.mf-footer__bottom { grid-column: 1 / -1; }
}

/* ---------- Photos -------------------------------------------------------- */
.mf .mf-photo { position: relative; margin: 0; overflow: hidden; border-radius: var(--mf-radius); background: var(--mf-rosa-polvo); }
.mf .mf-photo picture, .mf .mf-photo img { width: 100%; height: 100%; }
.mf .mf-photo img { object-fit: cover; }
.mf .mf-photo--empty {
	display: grid;
	place-items: center;
	background: #E2DBC3;
	color: rgba(58, 25, 29, 0.55);
}
.mf .mf-photo__ph {
	font-size: var(--mf-fs-xs);
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 0.5em 1em;
	border: 1px dashed currentColor;
	border-radius: 999px;
}

/* ---------- Icons, stickers, seal ----------------------------------------- */
.mf .mf-icon { display: inline-block; width: 1em; height: 1em; }
.mf .mf-icon svg { width: 100%; height: 100%; }
.mf .mf-sticker {
	display: inline-grid;
	place-items: center;
	width: var(--size, clamp(88px, 70px + 4vw, 136px));
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--mf-crema);
	color: var(--mf-burdeos);
	box-shadow: 0 0 0 2px var(--mf-burdeos) inset;
	transform: rotate(var(--tilt, -6deg));
}
.mf .mf-sticker .mf-icon { width: 58%; height: 58%; }

.mf .mf-seal { display: inline-block; width: var(--size, 140px); color: currentColor; }
.mf .mf-seal svg { width: 100%; height: auto; overflow: visible; }
.mf .mf-seal__text { font-family: var(--mf-font-text); font-size: 17.5px; font-weight: 450; letter-spacing: 0.04em; fill: currentColor; }

/* ---------- Hero ---------------------------------------------------------- */
.mf .mf-s--hero { padding: 0; }
.mf .mf-hero { position: relative; }
.mf .mf-hero__media .mf-photo { border-radius: 0; background: #D9C3A8; }
.mf .mf-hero__title {
	position: relative;
	z-index: 2;
	color: var(--mf-burdeos);
	font-family: var(--mf-font-display);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: -0.035em;
	line-height: 0.84;
	white-space: nowrap;
}
.mf .mf-hero__title .mf-script { color: var(--mf-rosa); font-size: 0.68em; padding-inline: 0.06em 0.12em; transform: translateY(-0.2em) rotate(-5deg); }
.mf .mf-hero__lede { font-size: var(--mf-fs-lg); line-height: 1.4; text-wrap: pretty; }
.mf .mf-hero__aside .mf-btns { margin-top: 1.5rem; }

/* Mobile/tablet portrait: photo, then the headline straddles its bottom edge. */
@media (max-width: 767px), (max-width: 1023px) and (orientation: portrait) {
	.mf .mf-hero__media .mf-photo { aspect-ratio: auto !important; height: min(78svh, 150vw); }
	.mf .mf-hero__media .mf-photo img { object-position: 50% 82% !important; }
	.mf .mf-hero__copy { padding-inline: var(--mf-safe-l) var(--mf-safe-r); }
	.mf .mf-hero__title {
		margin-top: -0.98em;
		font-size: clamp(2.6rem, 15vw, 7.6rem);
		white-space: normal;
	}
	.mf .mf-hero__title .mf-hl { display: block; }
	.mf .mf-hero__aside { padding: 1.5rem 0 0; max-width: 34rem; }
}

/* Landscape / desktop: headline over the floor, copy over the curtain. */
@media (min-width: 768px) and (orientation: landscape), (min-width: 1024px) {
	.mf .mf-hero {
		height: min(100svh, 66.6667vw);
		min-height: 520px;
		overflow: hidden;
	}
	.mf .mf-hero__mediawrap, .mf .mf-hero__mediawrap > .elementor-shortcode, .mf .mf-hero__media { position: absolute !important; inset: 0; }
	.mf .mf-hero__media .mf-photo { position: absolute; inset: 0; aspect-ratio: auto !important; height: 100%; }
	.mf .mf-hero__media .mf-photo img { object-position: 50% 100% !important; }
	.mf .mf-hero__copy { position: absolute; inset: 0; container-type: inline-size; padding-inline: var(--mf-safe-l) var(--mf-safe-r); }
	.mf .mf-hero__title {
		position: absolute;
		left: var(--mf-safe-l);
		right: var(--mf-safe-r);
		/* Mat top sits at 12% of the photo height (= 8vw when width-bound). */
		bottom: calc(var(--mf-hero-w, 100vw) * 0.084);
		font-size: 9.6cqi;
	}
	.mf .mf-hero__title .elementor-heading-title { display: flex; justify-content: space-between; align-items: baseline; }
	.mf .mf-hero__title .mf-hl--2 { display: contents; }
	.mf .mf-hero__aside {
		position: absolute;
		right: var(--mf-safe-r);
		top: calc(var(--mf-header-h) + 13%);
		width: clamp(17rem, 24vw, 27rem);
	}
	.mf .mf-hero__lede { font-size: clamp(1rem, 0.6rem + 0.75vw, 1.45rem); }
}
@media (min-width: 1800px) {
	.mf .mf-s--hero { padding: calc(var(--mf-header-h) + 0.5rem) var(--mf-safe-r) 0 var(--mf-safe-l); }
	.mf .mf-hero { --mf-hero-w: min(var(--mf-max), 100vw); max-width: var(--mf-max); height: min(calc(100svh - var(--mf-header-h) - 2rem), 1120px); margin-inline: auto; border-radius: var(--mf-radius); }
	.mf .mf-hero__aside { top: 12%; }
}

/* ---------- Intro (heading left, paragraph right — as in the branding) ---- */
.mf .mf-s--intro .mf-h-sentence { max-width: 12ch; }
.mf .mf-s--intro .mf-lede { margin-top: 1.5rem; }
@media (min-width: 1024px) { .mf .mf-s--intro .mf-lede { margin-top: 0; } }
.mf .mf-intro__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: clamp(2.5rem, 2rem + 2vw, 4rem); padding-top: 1.5rem; border-top: 1px solid rgba(58, 25, 29, 0.18); }
.mf .mf-count { display: flex; flex-direction: column; gap: 0.4rem; }
.mf .mf-count__num { font-family: var(--mf-font-display); font-weight: 900; font-size: var(--mf-fs-2xl); letter-spacing: -0.03em; line-height: 0.9; font-variant-numeric: tabular-nums; }
.mf .mf-count__label { font-size: var(--mf-fs-sm); line-height: 1.3; max-width: 16ch; }

/* ---------- Manifesto ----------------------------------------------------- */
.mf .mf-s--manifesto { text-align: center; overflow: hidden; }
.mf .mf-s--manifesto > .mf-wrap { position: static; }
.mf .mf-manifesto__title { font-size: clamp(2rem, 0.9rem + 4.6vw, 7.2rem); max-width: 16ch; margin-inline: auto; }
.mf .mf-s--manifesto .mf-btns, .mf .mf-s--cta .mf-btns { justify-content: center !important; margin-top: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.mf .mf-s--manifesto .mf-sticker { position: absolute; }
.mf .mf-manifesto__st1 .mf-sticker { left: clamp(-10px, 4vw, 9%); top: 14%; --tilt: -14deg; }
.mf .mf-manifesto__st2 .mf-sticker { right: clamp(-10px, 4vw, 8%); bottom: 12%; --tilt: 9deg; }
@media (max-width: 767px) {
	.mf .mf-manifesto__st1 .mf-sticker { top: 1.25rem; left: 1rem; --size: 68px; }
	.mf .mf-manifesto__st2 .mf-sticker { top: auto; bottom: 1.25rem; right: 1rem; --size: 68px; }
	.mf .mf-s--manifesto { padding-block: calc(var(--mf-section) + 3.5rem); }
}

/* ---------- Marquee (scroll-linked) --------------------------------------- */
.mf .mf-s--marquee { padding-block: clamp(1.4rem, 1rem + 1.6vw, 2.6rem); overflow: hidden; }
.mf .mf-marquee { overflow: hidden; }
.mf .mf-marquee__track { display: flex; width: max-content; will-change: transform; }
.mf .mf-marquee__run { display: flex; align-items: center; flex: none; }
.mf .mf-marquee__item {
	font-family: var(--mf-font-display);
	font-weight: 900;
	font-size: clamp(2.6rem, 1.2rem + 6.5vw, 9rem);
	letter-spacing: -0.03em;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
	padding-inline: 0.35em;
}
.mf .mf-marquee__item .mf-script { font-size: 0.6em; }
.mf .mf-marquee__icon { width: clamp(2.2rem, 1rem + 4vw, 5.5rem); height: clamp(2.2rem, 1rem + 4vw, 5.5rem); flex: none; }
.mf .mf-bg-burdeos .mf-marquee, .mf .mf-bg-noche .mf-marquee { color: var(--mf-rosa); }

/* ---------- Pillars (method) ---------------------------------------------- */
.mf .mf-pillars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 1.5rem + 2vw, 4rem) clamp(0.9rem, 2vw, 2.5rem); }
.mf .mf-pillars > :nth-child(2n) { margin-top: clamp(2.5rem, 8vw, 10rem); }
.mf .mf-pillar .mf-photo { aspect-ratio: 4 / 5; }
.mf .mf-pillar__n { display: block; margin: 1.25rem 0 0.5rem; }
.mf .mf-pillar__title { font-family: var(--mf-font-display); font-weight: 900; text-transform: uppercase; font-size: var(--mf-fs-xl); letter-spacing: -0.02em; line-height: 1; }
.mf .mf-pillar__text { margin-top: 0.75rem; max-width: 34ch; }

@media (min-width: 1024px) {
	.mf .mf-pillars { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; }
}

/* ---------- Program cards ------------------------------------------------- */
.mf .mf-pcards { display: grid; gap: clamp(1rem, 1.5vw, 1.75rem); }
.mf .mf-pcards--row { grid-auto-flow: column; grid-auto-columns: minmax(78%, 1fr); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--mf-safe-l); padding-bottom: 0.5rem; margin-inline: calc(var(--mf-safe-l) * -1) calc(var(--mf-safe-r) * -1); padding-inline: var(--mf-safe-l) var(--mf-safe-r); scrollbar-width: none; }
.mf .mf-pcards--row::-webkit-scrollbar { display: none; }
.mf .mf-pcards--row > * { scroll-snap-align: start; }
.mf .mf-pcard {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 0.6rem;
	border-radius: calc(var(--mf-radius) + 0.6rem);
	transition: transform 0.5s var(--mf-ease);
}
.mf .mf-pcard__link { position: absolute; inset: 0; z-index: 3; border-radius: inherit; }
.mf .mf-pcard .mf-photo { aspect-ratio: 4/5; }
.mf .mf-pcard .mf-photo img { transition: transform 0.9s var(--mf-ease); }
.mf .mf-pcard__body { padding: 1.1rem 0.6rem 0.8rem; display: grid; gap: 0.5rem; }
.mf .mf-pcard__title { font-family: var(--mf-font-display); font-weight: 900; text-transform: uppercase; font-size: var(--mf-fs-xl); letter-spacing: -0.02em; line-height: 0.95; }
.mf .mf-pcard__desc { font-size: var(--mf-fs-sm); max-width: 36ch; }
.mf .mf-pcard__meta { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.4rem 0 0 !important; padding: 0 !important; list-style: none; }
.mf .mf-pcard__meta li, .mf .mf-tags li {
	padding: 0.35em 0.75em;
	border: 1px solid rgba(58, 25, 29, 0.35);
	border-radius: 999px;
	font-size: var(--mf-fs-xs);
	font-weight: 500;
	letter-spacing: 0.04em;
}
.mf .mf-pcard:hover .mf-photo img, .mf .mf-pcard:focus-within .mf-photo img { transform: scale(1.06); }
.mf .mf-pcard:hover, .mf .mf-pcard:focus-within { transform: translateY(-4px); }
.mf .mf-pcard:focus-within { outline: 2px solid var(--mf-burdeos); outline-offset: 3px; }
.mf .mf-pcard .mf-pcard__link:focus-visible { outline: none; }
@media (min-width: 640px) { .mf .mf-pcards--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mf .mf-pcards--row { grid-auto-columns: minmax(46%, 1fr); } }
@media (min-width: 1024px) {
	.mf .mf-pcards--grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mf .mf-pcards--grid > :nth-child(3n + 2) { margin-top: clamp(3rem, 5vw, 6rem); }
	.mf .mf-pcards--row { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; margin-inline: 0; padding-inline: 0; }
	.mf .mf-pcards--row > :nth-child(2) { margin-top: clamp(3rem, 5vw, 6rem); }
}

/* ---------- Feature block (training + nutrition, lima) -------------------- */
.mf .mf-feature { border-radius: var(--mf-radius); padding: clamp(1.75rem, 1rem + 3vw, 4.5rem); position: relative; overflow: hidden; }
.mf .mf-feature__title { font-family: var(--mf-font-display); font-weight: 700; letter-spacing: -0.03em; line-height: 1; font-size: var(--mf-fs-2xl); max-width: 14ch; text-wrap: balance; }
.mf .mf-feature__title .mf-script { font-size: 0.8em; color: var(--mf-vino); }
.mf .mf-feature .mf-lede { max-width: 34rem; }
.mf .mf-feature .mf-lede { margin-top: 1.25rem; }
.mf .mf-feature .mf-btns { margin-top: 2rem; }
.mf .mf-feature .mf-sticker { position: absolute; right: clamp(1rem, 4vw, 4rem); bottom: clamp(1rem, 4vw, 3.5rem); --tilt: 8deg; }
@media (max-width: 639px) { .mf .mf-feature .mf-sticker { position: static; margin-top: 2rem; } }

/* ---------- Instructor cards + profile ------------------------------------ */
.mf .mf-icards { display: grid; gap: clamp(2rem, 3vw, 3rem) clamp(1rem, 2vw, 2rem); }
.mf .mf-icard { position: relative; display: grid; gap: 0.35rem; text-decoration: none; color: inherit; }
.mf .mf-icard .mf-photo { margin-bottom: 0.9rem; }
.mf .mf-icard .mf-photo img { transition: transform 0.9s var(--mf-ease), filter 0.6s; }
.mf .mf-icard:hover .mf-photo img { transform: scale(1.05); }
.mf .mf-icard .mf-folio { font-size: var(--mf-fs-xs); }
.mf .mf-icard__name { font-family: var(--mf-font-display); font-weight: 900; font-size: var(--mf-fs-xl); text-transform: uppercase; letter-spacing: -0.02em; line-height: 0.95; }
.mf .mf-icard__role { font-size: var(--mf-fs-sm); }
.mf .mf-icard__more { margin-top: 0.5rem; font-size: var(--mf-fs-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 0.3em; }
.mf .mf-icard__more.is-soon { text-decoration: none; opacity: 0.6; }
@media (min-width: 640px) { .mf .mf-icards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
	.mf .mf-icards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mf .mf-icards > :nth-child(2) { margin-top: clamp(3rem, 6vw, 7rem); }
}

.mf .mf-profile { display: grid; gap: clamp(2rem, 4vw, 5rem); }
.mf .mf-profile__name { font-family: var(--mf-font-display); font-weight: 900; text-transform: uppercase; font-size: var(--mf-fs-3xl); letter-spacing: -0.03em; line-height: 0.88; margin: 0.6rem 0 1rem !important; }
.mf .mf-profile__bio { font-size: var(--mf-fs-lg); max-width: 34rem; text-wrap: pretty; }
.mf .mf-profile__h { margin: 2.25rem 0 0.9rem !important; font-size: var(--mf-fs-xs) !important; font-weight: 500 !important; letter-spacing: 0.18em; text-transform: uppercase; }
.mf .mf-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.mf .mf-profile__programs { display: grid; gap: 0; border-top: 1px solid rgba(58, 25, 29, 0.2); }
.mf .mf-profile__programs a { display: flex; justify-content: space-between; padding: 0.9rem 0; border-bottom: 1px solid rgba(58, 25, 29, 0.2); font-family: var(--mf-font-display); font-weight: 800; text-transform: uppercase; text-decoration: none; font-size: var(--mf-fs-lg); }
.mf .mf-profile__programs a::after { content: "→"; font-family: var(--mf-font-text); transition: transform 0.4s var(--mf-ease); }
.mf .mf-profile__programs a:hover::after { transform: translateX(6px); }
.mf .mf-profile__cta { margin-top: 2.5rem !important; }
@media (min-width: 1024px) {
	.mf .mf-profile { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: start; }
	.mf .mf-profile__media { position: sticky; top: calc(var(--mf-header-h) + 1.5rem); }
}
.mf .mf-s--profile { padding-top: calc(var(--mf-header-h) + clamp(2rem, 4vw, 4rem)); }

/* ---------- Catalog shell ------------------------------------------------- */
.mf .mf-catalog__filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
.mf .mf-catalog .mf-chip {
	min-height: 40px;
	padding: 0.55em 1.1em;
	border: 1px solid rgba(58, 25, 29, 0.4);
	border-radius: 999px;
	background: transparent;
	font-size: var(--mf-fs-sm) !important;
	font-weight: 450;
	cursor: pointer;
	transition: background-color 0.25s, color 0.25s, transform 0.2s var(--mf-ease-press);
}
.mf .mf-catalog .mf-chip:hover { border-color: var(--mf-burdeos); }
.mf .mf-catalog .mf-chip:active { transform: scale(0.95); }
.mf .mf-catalog .mf-chip[aria-pressed="true"] { background: var(--mf-burdeos); color: var(--mf-crema); border-color: var(--mf-burdeos); }
.mf .mf-catalog__count { font-size: var(--mf-fs-sm); opacity: 0.7; margin-bottom: 1.75rem !important; }
.mf .mf-catalog__grid { display: grid; gap: clamp(1.5rem, 2.5vw, 2.5rem) clamp(1rem, 1.8vw, 1.75rem); }
.mf .mf-catalog__note { margin-top: 2.5rem !important; font-size: var(--mf-fs-sm); opacity: 0.7; }
.mf .mf-ccard[hidden] { display: none; }
.mf .mf-ccard__media { position: relative; }
.mf .mf-ccard .mf-photo img { transition: transform 1.2s var(--mf-ease); }
.mf .mf-ccard:hover .mf-photo img { transform: scale(1.08); }
.mf .mf-ccard__preview, .mf .mf-ccard__time {
	position: absolute;
	padding: 0.4em 0.8em;
	border-radius: 999px;
	background: var(--mf-crema);
	font-size: var(--mf-fs-xs);
	font-weight: 500;
	letter-spacing: 0.06em;
}
.mf .mf-ccard__time { right: 0.75rem; top: 0.75rem; }
.mf .mf-ccard__preview { left: 0.75rem; bottom: 0.75rem; background: var(--mf-burdeos); color: var(--mf-crema); opacity: 0; transform: translateY(8px); transition: opacity 0.35s, transform 0.45s var(--mf-ease); }
.mf .mf-ccard:hover .mf-ccard__preview, .mf .mf-ccard.is-previewing .mf-ccard__preview { opacity: 1; transform: none; }
.mf .mf-ccard__body { padding-top: 0.9rem; display: grid; gap: 0.25rem; }
.mf .mf-ccard__cat { font-size: var(--mf-fs-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; }
.mf .mf-ccard__title { font-family: var(--mf-font-display); font-weight: 800; font-size: var(--mf-fs-lg); text-transform: uppercase; letter-spacing: -0.01em; line-height: 1.05; }
.mf .mf-ccard__meta { font-size: var(--mf-fs-sm); opacity: 0.8; }
@media (min-width: 640px) { .mf .mf-catalog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .mf .mf-catalog__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- Plans --------------------------------------------------------- */
.mf .mf-plans__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 2rem; }
.mf .mf-plans__tax { font-size: var(--mf-fs-xs); max-width: 44ch; opacity: 0.75; margin: 0 !important; }
.mf .mf-cur { display: inline-flex; padding: 4px; border-radius: 999px; background: rgba(58, 25, 29, 0.08); }
.mf .mf-cur__btn {
	min-width: 64px; min-height: 40px;
	border: 0; border-radius: 999px;
	background: transparent;
	font-size: var(--mf-fs-xs) !important;
	font-weight: 500;
	letter-spacing: 0.12em;
	cursor: pointer;
	transition: background-color 0.3s var(--mf-ease), color 0.3s;
}
.mf .mf-cur__btn[aria-pressed="true"] { background: var(--mf-burdeos); color: var(--mf-crema); }
.mf .mf-plans__grid { display: grid; gap: 1rem; }
.mf .mf-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem);
	border-radius: var(--mf-radius);
	background: var(--mf-crema);
	color: var(--mf-burdeos);
	box-shadow: 0 0 0 1px rgba(58, 25, 29, 0.2) inset;
}
.mf .mf-plan.is-featured { background: var(--mf-rosa); box-shadow: none; }
.mf .mf-plan.is-dark { background: var(--mf-burdeos); color: var(--mf-crema); box-shadow: none; }
.mf .mf-plan__badge { position: absolute; top: 1.25rem; right: 1.25rem; padding: 0.4em 0.8em; border-radius: 999px; background: var(--mf-lima); color: var(--mf-burdeos); font-size: var(--mf-fs-xs); font-weight: 500; }
.mf .mf-plan__name { font-size: var(--mf-fs-xs) !important; font-weight: 500 !important; letter-spacing: 0.18em; text-transform: uppercase; }
.mf .mf-plan__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.4rem; margin: 0.5rem 0 0 !important; }
.mf .mf-plan__amt { font-family: var(--mf-font-display); font-weight: 900; font-size: clamp(2.4rem, 1.6rem + 2.6vw, 4.2rem); letter-spacing: -0.035em; line-height: 0.9; font-variant-numeric: tabular-nums; }
.mf .mf-plan__per { font-size: var(--mf-fs-sm); }
.mf .mf-plan__desc { font-size: var(--mf-fs-sm); max-width: 34ch; }
.mf .mf-plan__trial { margin-top: auto !important; padding-top: 1rem; font-size: var(--mf-fs-xs); font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; }
.mf .mf-plan__trial.is-muted { opacity: 0.6; }
.mf .mf-plan .mf-btn { align-self: flex-start; }
.mf .mf-plan.is-featured .mf-btn::before { background: var(--mf-vino); }
@media (min-width: 768px) { .mf .mf-plans__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .mf .mf-plans--full .mf-plans__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.mf .mf-plans--teaser .mf-plans__grid { max-width: 980px; }

/* ---------- Testimonials (placeholders) ----------------------------------- */
.mf .mf-voices { display: grid; gap: 1rem; }
.mf .mf-voice {
	position: relative;
	padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem);
	border-radius: var(--mf-radius);
	border: 1px dashed rgba(58, 25, 29, 0.45);
}
.mf .mf-voice__q { font-family: var(--mf-font-display); font-weight: 700; font-size: var(--mf-fs-lg); letter-spacing: -0.015em; line-height: 1.2; }
.mf .mf-voice__who { margin-top: 1.25rem; font-size: var(--mf-fs-sm); }
@media (min-width: 768px) { .mf .mf-voices { grid-template-columns: repeat(3, minmax(0, 1fr)); } .mf .mf-voices > :nth-child(2) { transform: translateY(2.5rem); } }

/* ---------- Sticker strip + seal ------------------------------------------ */
.mf .mf-s--stickers { overflow: hidden; }
.mf .mf-stickers { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(0.75rem, 2vw, 2rem); }
.mf .mf-stickers li { flex: none; transform: rotate(var(--tilt)); }
.mf .mf-stickers .mf-sticker { --size: clamp(76px, 6.4vw, 132px); }
.mf .mf-stickers .mf-sticker { --tilt: 0deg; transition: transform 0.5s var(--mf-ease); }
.mf .mf-stickers li:hover .mf-sticker { transform: rotate(-12deg) scale(1.06); }
.mf .mf-stickers__seal { display: flex; justify-content: center; margin-top: clamp(2.5rem, 4vw, 4rem); }
.mf .mf-stickers__seal .mf-seal { --size: clamp(150px, 110px + 8vw, 260px); }
.mf .mf-seal svg .mf-seal__text { transform-origin: 100px 100px; }
@media (min-width: 1024px) { .mf .mf-stickers { flex-wrap: nowrap; justify-content: space-between; } }

/* ---------- Final CTA band ------------------------------------------------- */
.mf .mf-s--cta { text-align: center; }
.mf .mf-cta__title { font-size: clamp(2.6rem, 1rem + 7vw, 10rem); line-height: 0.86; }
.mf .mf-s--cta .mf-lede { margin: 1.5rem auto 0; }
.mf .mf-s--cta .mf-btns { margin-top: 2.25rem; }

/* ---------- Inner page head ----------------------------------------------- */
.mf .mf-s--pagehead { padding-top: calc(var(--mf-header-h) + clamp(3rem, 2rem + 5vw, 8rem)); padding-bottom: clamp(3rem, 2rem + 4vw, 6rem); }
.mf .mf-pagehead__top { display: flex; gap: 1.5rem; align-items: baseline; margin-bottom: clamp(1.25rem, 2vw, 2rem); }
.mf .mf-pagehead__title { font-size: clamp(2.9rem, 0.8rem + 9vw, 12rem); line-height: 0.84; letter-spacing: -0.04em; }
.mf .mf-pagehead__lede { margin-top: clamp(1.5rem, 2.5vw, 2.5rem); }
.mf .mf-pagehead__media { margin-top: clamp(2.5rem, 4vw, 4rem); }
@media (min-width: 1024px) {
	.mf .mf-pagehead__lede { margin-left: 33.33%; }
}

/* ---------- Steps / numbered list ----------------------------------------- */
.mf .mf-steps { display: grid; border-top: 1px solid rgba(58, 25, 29, 0.25); }
.mf .mf-bg-burdeos .mf-steps, .mf .mf-bg-noche .mf-steps, .mf .mf-bg-burdeos .mf-step { border-color: rgba(237, 232, 213, 0.22); }
.mf .mf-step { display: grid; gap: 0.6rem 2rem; padding: clamp(1.5rem, 2vw, 2.25rem) 0; border-bottom: 1px solid rgba(58, 25, 29, 0.25); }
.mf .mf-step__title { font-family: var(--mf-font-display); font-weight: 900; text-transform: uppercase; font-size: var(--mf-fs-xl); letter-spacing: -0.02em; line-height: 1; }
.mf .mf-step p { max-width: 46ch; }
@media (min-width: 1024px) { .mf .mf-step { grid-template-columns: 6rem minmax(0, 5fr) minmax(0, 6fr); align-items: baseline; } }

/* ---------- FAQ ------------------------------------------------------------ */
.mf .mf-faq { border-top: 1px solid rgba(58, 25, 29, 0.25); }
.mf .mf-faq details { border-bottom: 1px solid rgba(58, 25, 29, 0.25); }
.mf .mf-faq summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
	padding: 1.35rem 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--mf-font-display);
	font-weight: 700;
	font-size: var(--mf-fs-lg);
	letter-spacing: -0.01em;
	line-height: 1.2;
}
.mf .mf-faq summary::-webkit-details-marker { display: none; }
.mf .mf-faq summary::after {
	content: "";
	flex: none;
	width: 14px; height: 14px;
	background: linear-gradient(currentColor, currentColor) center / 100% 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 100% no-repeat;
	transition: transform 0.4s var(--mf-ease);
}
.mf .mf-faq details[open] summary::after { transform: rotate(45deg); }
.mf .mf-faq__a { padding: 0 0 1.5rem; max-width: 60ch; }
.mf .mf-faq__group { margin: clamp(2.5rem, 4vw, 4rem) 0 1rem; }
.mf .mf-faq__group:first-child { margin-top: 0; }

/* ---------- Contact -------------------------------------------------------- */
.mf .mf-contact-form { display: grid; gap: 1.1rem; max-width: 40rem; }
.mf .mf-contact-form label { display: grid; gap: 0.4rem; font-size: var(--mf-fs-xs); font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; }
.mf .mf-contact-form input, .mf .mf-contact-form textarea, .mf .mf-contact-form select {
	width: 100%;
	min-height: 52px;
	padding: 0.9rem 1rem;
	border: 1px solid rgba(58, 25, 29, 0.35);
	border-radius: var(--mf-radius-sm);
	background: rgba(255, 255, 255, 0.35);
	color: var(--mf-burdeos);
	font: 400 var(--mf-fs-md) / 1.4 var(--mf-font-text);
	letter-spacing: 0;
	text-transform: none;
	transition: border-color 0.2s, background-color 0.2s;
}
.mf .mf-contact-form textarea { min-height: 160px; resize: vertical; }
.mf .mf-contact-form input:focus, .mf .mf-contact-form textarea:focus, .mf .mf-contact-form select:focus { outline: none; border-color: var(--mf-burdeos); background: #fff; box-shadow: 0 0 0 3px rgba(231, 181, 197, 0.6); }
.mf .mf-contact-form .mf-form__row { display: grid; gap: 1.1rem; }
.mf .mf-contact-form .mf-form__consent { display: flex !important; align-items: flex-start; gap: 0.7rem !important; text-transform: none !important; letter-spacing: 0 !important; font-size: var(--mf-fs-sm) !important; font-weight: 350 !important; }
.mf .mf-contact-form .mf-form__consent input { width: 20px; min-height: 20px; height: 20px; margin-top: 0.15rem; accent-color: var(--mf-burdeos); }
.mf .mf-contact-form .mf-form__status { font-size: var(--mf-fs-sm); }
@media (min-width: 640px) { .mf .mf-contact-form .mf-form__row { grid-template-columns: 1fr 1fr; } }
.mf .mf-contact__aside { display: grid; gap: 1.75rem; margin-top: 3rem; }
.mf .mf-contact__aside h3 { font-size: var(--mf-fs-xs); font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 0.4rem; }
@media (min-width: 1024px) { .mf .mf-contact__aside { margin-top: 0; } }

/* ---------- Plugin slots --------------------------------------------------- */
.mf .mf-slot {
	display: grid;
	gap: 0.5rem;
	padding: clamp(1.75rem, 1rem + 3vw, 4rem);
	border: 1.5px dashed rgba(58, 25, 29, 0.45);
	border-radius: var(--mf-radius);
	background: repeating-linear-gradient(-45deg, transparent 0 14px, rgba(58, 25, 29, 0.035) 14px 15px);
}
.mf .mf-slot__tag { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: var(--mf-fs-xs); opacity: 0.75; }
.mf .mf-slot__title { font-family: var(--mf-font-display); font-weight: 800; font-size: var(--mf-fs-xl); text-transform: uppercase; letter-spacing: -0.02em; line-height: 1; margin: 0.25rem 0 0 !important; }
.mf .mf-slot__note { font-size: var(--mf-fs-sm); max-width: 50ch; }
.mf .mf-s--member { padding-top: calc(var(--mf-header-h) + clamp(2.5rem, 4vw, 5rem)); }

/* ---------- Legal / prose -------------------------------------------------- */
.mf .mf-doc { padding: calc(var(--mf-header-h) + clamp(3rem, 6vw, 7rem)) 0 var(--mf-section); }
.mf .mf-doc__title { font-family: var(--mf-font-display); font-weight: 900; text-transform: uppercase; font-size: clamp(2.4rem, 1rem + 5.5vw, 7rem); letter-spacing: -0.035em; line-height: 0.88; margin: 1rem 0 !important; max-width: 14ch; text-wrap: balance; }
.mf .mf-doc__date { font-size: var(--mf-fs-sm); opacity: 0.7; }
.mf .mf-doc__body { margin-top: clamp(2rem, 4vw, 4rem); }
.mf .mf-prose { max-width: calc(44rem + var(--mf-safe-l) + var(--mf-safe-r)); margin-inline: 0; }
@media (min-width: 1024px) { .mf .mf-doc__body.mf-prose { padding-left: calc(var(--mf-safe-l) + 33.33% - 10rem); max-width: none; } .mf .mf-doc__body.mf-prose > * { max-width: 44rem; } }
.mf .mf-prose h2 { font-family: var(--mf-font-display); font-weight: 800; font-size: var(--mf-fs-xl); letter-spacing: -0.02em; line-height: 1.05; margin: 2.5em 0 0.7em; text-transform: uppercase; }
.mf .mf-prose h3 { font-family: var(--mf-font-display); font-weight: 700; font-size: var(--mf-fs-lg); margin: 1.8em 0 0.5em; }
.mf .mf-prose ul, .mf .mf-prose ol { padding-left: 1.2em; margin: 0 0 1em; }
.mf .mf-prose li { margin-bottom: 0.4em; }
.mf .mf-prose a { text-decoration: underline; }

/* ---------- 404 ------------------------------------------------------------ */
.mf .mf-404 { position: relative; padding-top: calc(var(--mf-header-h) + 5rem); padding-bottom: var(--mf-section); min-height: 80svh; }
.mf .mf-404__title { font-family: var(--mf-font-display); font-weight: 900; text-transform: uppercase; font-size: clamp(2.8rem, 1rem + 8vw, 10rem); letter-spacing: -0.04em; line-height: 0.86; max-width: 12ch; margin: 1rem 0 2rem !important; }
.mf .mf-404__cta { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 2rem !important; }
.mf .mf-404__sticker { position: absolute; right: var(--mf-safe-r); top: 30%; --tilt: 12deg; }

/* ==========================================================================
   Motion initial states (JS adds .mf-motion when GSAP is ready).
   Fail-safe: everything becomes visible after 2.5 s even if JS never runs.
   ========================================================================== */
@keyframes mf-failsafe { to { visibility: visible; opacity: 1; clip-path: inset(0 0 0 0); transform: none; } }
.mf-js:not(.mf-rm) .mf-split:not(.is-split),
.mf-js:not(.mf-rm) .mf-hero__title:not(.is-split),
.mf-js:not(.mf-rm) .mf-fade:not(.is-in) { visibility: hidden; animation: mf-failsafe 0s 1.6s forwards; }
.mf-js:not(.mf-rm) .mf-reveal-mask:not(.is-in) { clip-path: inset(100% 0 0 0); animation: mf-failsafe 0s 1.6s forwards; }
.mf-js:not(.mf-rm) [data-mf-draw] .mf-logo__draw { stroke-dasharray: 1 1; stroke-dashoffset: 1; }

.mf .mf-line { display: block; overflow: hidden; padding-bottom: 0.06em; margin-bottom: -0.06em; }
.mf .mf-line__inner { display: block; }
.mf .mf-hero__title .mf-line, .mf .mf-hero__title .mf-line__inner { display: inline-block; }

@media (prefers-reduced-motion: reduce) {
	.mf *, .mf *::before, .mf *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; scroll-behavior: auto !important; }
	.mf .mf-split, .mf .mf-fade, .mf .mf-hero__title, .mf .mf-reveal-mask { visibility: visible !important; clip-path: none !important; }
}

/* Join tile in the team grid */
.mf .mf-icard--join { align-content: end; min-height: 100%; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); border-radius: var(--mf-radius); aspect-ratio: 4 / 5; position: relative; }
.mf .mf-icard--join .mf-sticker { position: absolute; top: clamp(1.25rem, 2vw, 2rem); right: clamp(1.25rem, 2vw, 2rem); --size: clamp(72px, 6vw, 104px); --tilt: 10deg; }
@media (min-width: 1024px) { .mf .mf-icards > .mf-icard--join { margin-top: clamp(1.5rem, 3vw, 3.5rem); } }

/* Hello Elementor's reset paints buttons #c36 on hover/focus; ours stay on-brand. */
.mf .mf-burger, .mf .mf-burger:hover, .mf .mf-burger:focus { background: none; color: inherit; }
.mf .mf-catalog .mf-chip:hover, .mf .mf-catalog .mf-chip:focus { background: transparent; color: inherit; }
.mf .mf-catalog .mf-chip[aria-pressed="true"]:hover, .mf .mf-catalog .mf-chip[aria-pressed="true"]:focus { background: var(--mf-burdeos); color: var(--mf-crema); }
.mf .mf-cur__btn:hover, .mf .mf-cur__btn:focus { background: rgba(58, 25, 29, 0.08); color: inherit; }
.mf .mf-cur__btn[aria-pressed="true"]:hover, .mf .mf-cur__btn[aria-pressed="true"]:focus { background: var(--mf-burdeos); color: var(--mf-crema); }
.mf button.mf-btn:hover, .mf button.mf-btn:focus { background: var(--btn-bg); color: var(--btn-fg); }

/* Page head top row: folio + eyebrow inline (Elementor containers default to column). */
.mf .mf-pagehead__top { flex-direction: row !important; flex-wrap: wrap; }

/* ---------- Principles: do / don't ---------------------------------------- */
.mf .mf-principles { display: grid; gap: clamp(0.75rem, 1.5vw, 1.25rem); }
.mf .mf-principles__col { position: relative; padding: clamp(1.75rem, 1rem + 3vw, 4rem); border-radius: var(--mf-radius); }
.mf .mf-principles__h { font-family: var(--mf-font-script) !important; font-size: clamp(2.6rem, 2rem + 2.5vw, 4.5rem) !important; color: var(--mf-vino); line-height: 1; margin-bottom: 1.25rem !important; text-transform: none; }
.mf .mf-principles ul { display: grid; gap: 0; }
.mf .mf-principles li { padding: 0.9rem 0; border-top: 1px solid rgba(58, 25, 29, 0.22); font-family: var(--mf-font-display); font-weight: 700; font-size: var(--mf-fs-lg); letter-spacing: -0.01em; line-height: 1.2; max-width: 26ch; }
.mf .mf-principles .mf-sticker { position: absolute; top: clamp(1rem, 2vw, 2rem); right: clamp(1rem, 2vw, 2rem); --size: clamp(64px, 5vw, 96px); --tilt: 10deg; }
@media (min-width: 768px) { .mf .mf-principles { grid-template-columns: 1fr 1fr; } .mf .mf-principles__col:nth-child(2) { margin-top: clamp(2rem, 5vw, 5rem); } }

/* ==========================================================================
   formula-studio marketing blocks inside theme slots
   (.mf-block--programs / --classes / --instructors / --pricing).
   The plugin owns the markup and data; the theme dresses it like the pages.
   ========================================================================== */
.mf .mf-s .mf-block { color: inherit; font-family: var(--mf-font-text); }
.mf .mf-s .mf-block .mf-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.mf .mf-s .mf-block .mf-grid { display: grid; gap: clamp(2rem, 3vw, 3rem) clamp(1rem, 1.8vw, 1.75rem); }
@media (min-width: 640px) { .mf .mf-s .mf-block .mf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .mf .mf-s .mf-block .mf-grid { grid-template-columns: repeat(var(--mf-cols, 3), minmax(0, 1fr)); } }

/* Cards (classes + programs) */
.mf .mf-s .mf-card { position: relative; }
.mf .mf-s .mf-card__link { display: grid; gap: 0; color: inherit; text-decoration: none; border-radius: calc(var(--mf-radius) + 0.6rem); }
.mf .mf-s .mf-card__media { position: relative; overflow: hidden; border-radius: var(--mf-radius); aspect-ratio: 4 / 3; background: #E2DBC3; }
.mf .mf-s .mf-card--program .mf-card__media { aspect-ratio: 4 / 5; }
.mf .mf-s .mf-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--mf-ease); }
.mf .mf-s .mf-card__link:hover .mf-card__media img, .mf .mf-s .mf-card__link:focus-visible .mf-card__media img { transform: scale(1.06); }
.mf .mf-s .mf-card__duration, .mf .mf-s .mf-card__lock, .mf .mf-s .mf-card__badge {
	position: absolute; top: 0.75rem;
	display: inline-flex; align-items: center; gap: 0.3em;
	padding: 0.4em 0.8em; border-radius: 999px;
	background: var(--mf-crema); color: var(--mf-burdeos);
	font-size: var(--mf-fs-xs); font-weight: 500; letter-spacing: 0.05em; line-height: 1;
}
.mf .mf-s .mf-card__duration { right: 0.75rem; }
.mf .mf-s .mf-card__lock, .mf .mf-s .mf-card__badge { left: 0.75rem; }
.mf .mf-s .mf-card__lock svg { width: 14px; height: 14px; }
.mf .mf-s .mf-card__badge { background: var(--mf-menta); }
.mf .mf-s .mf-card__body { display: grid; gap: 0.35rem; padding-top: 1rem; }
.mf .mf-s .mf-card__eyebrow { margin: 0 !important; font-size: var(--mf-fs-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; }
.mf .mf-s .mf-card__title { font-family: var(--mf-font-display); font-weight: 900; font-size: var(--mf-fs-xl); text-transform: uppercase; letter-spacing: -0.02em; line-height: 0.95; }
.mf .mf-s .mf-card--class .mf-card__title { font-weight: 800; font-size: var(--mf-fs-lg); line-height: 1.05; }
.mf .mf-s .mf-card__sub { margin: 0 !important; font-size: var(--mf-fs-sm); max-width: 36ch; }
.mf .mf-s .mf-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin: 0.35rem 0 0 !important; font-size: var(--mf-fs-xs); }
.mf .mf-s .mf-card__meta > span:not(.mf-dots) { padding: 0.35em 0.75em; border: 1px solid rgba(58, 25, 29, 0.35); border-radius: 999px; font-weight: 500; letter-spacing: 0.04em; }
.mf .mf-s .mf-dots { display: inline-flex; gap: 3px; margin-left: 0.25rem; }
.mf .mf-s .mf-dots i { width: 6px; height: 6px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--mf-burdeos); }
.mf .mf-s .mf-dots i.is-on { background: var(--mf-burdeos); }
.mf .mf-s .mf-card__placeholder { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--mf-font-display); font-weight: 900; font-size: clamp(4rem, 10vw, 9rem); color: rgba(58, 25, 29, 0.18); }

/* Program cards sit on flat colour blocks, like the branding's cards. */
.mf .mf-s .mf-card--program .mf-card__link { padding: 0.6rem 0.6rem 1rem; transition: transform 0.5s var(--mf-ease); }
.mf .mf-s .mf-card--program .mf-card__body { padding: 1rem 0.6rem 0; }
.mf .mf-s .mf-card--program:nth-child(4n + 1) .mf-card__link { background: var(--mf-rosa); }
.mf .mf-s .mf-card--program:nth-child(4n + 2) .mf-card__link { background: var(--mf-rosa-polvo); }
.mf .mf-s .mf-card--program:nth-child(4n + 3) .mf-card__link { background: var(--mf-menta); }
.mf .mf-s .mf-card--program:nth-child(4n + 4) .mf-card__link { background: var(--mf-lima); }
.mf .mf-s .mf-card--program .mf-card__link:hover { transform: translateY(-4px); }
@media (min-width: 1024px) {
	.mf .mf-s .mf-grid--programs > :nth-child(3n + 2),
	.mf .mf-s .mf-grid--team > :nth-child(3n + 2) { margin-top: clamp(3rem, 5vw, 6rem); }
}

/* People */
.mf .mf-s .mf-person { display: grid; align-content: start; gap: 0.35rem; }
.mf .mf-s .mf-person__link { display: grid; gap: 0.35rem; color: inherit; text-decoration: none; }
.mf .mf-s .mf-person__media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; border-radius: var(--mf-radius); background: #E2DBC3; margin-bottom: 0.75rem; }
.mf .mf-s .mf-person__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--mf-ease); }
.mf .mf-s .mf-person__link:hover .mf-person__media img { transform: scale(1.05); }
.mf .mf-s .mf-person .mf-folio { font-size: var(--mf-fs-xs); }
.mf .mf-s .mf-person__name { font-family: var(--mf-font-display); font-weight: 900; font-size: var(--mf-fs-xl); text-transform: uppercase; letter-spacing: -0.02em; line-height: 0.95; }
.mf .mf-s .mf-person__role { margin: 0 !important; font-size: var(--mf-fs-sm); }
.mf .mf-s .mf-person__bio { margin: 0.5rem 0 0 !important; font-size: var(--mf-fs-sm); max-width: 40ch; opacity: 0.85; }
.mf .mf-s .mf-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.75rem 0 0; padding: 0; list-style: none; }
.mf .mf-s .mf-tag { display: inline-flex; padding: 0.35em 0.75em; border: 1px solid rgba(58, 25, 29, 0.35); border-radius: 999px; font-size: var(--mf-fs-xs); font-weight: 500; letter-spacing: 0.04em; }
.mf .mf-s .mf-tag--lima { background: var(--mf-lima); border-color: transparent; }
.mf .mf-s .mf-tag--menta { border-color: transparent; }

/* Prices */
.mf .mf-s .mf-pricing { display: grid; gap: 1rem; }
@media (min-width: 768px) { .mf .mf-s .mf-pricing { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .mf .mf-s .mf-pricing[data-count="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); } .mf .mf-s .mf-pricing[data-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mf .mf-s .mf-price { display: flex; flex-direction: column; gap: 0.75rem; padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem); border-radius: var(--mf-radius); background: var(--mf-crema); box-shadow: 0 0 0 1px rgba(58, 25, 29, 0.2) inset; }
.mf .mf-s .mf-price.is-featured { background: var(--mf-rosa); box-shadow: none; }
.mf .mf-s .mf-price:last-child:nth-child(n + 4) { background: var(--mf-burdeos); color: var(--mf-crema); box-shadow: none; }
.mf .mf-s .mf-price__head { display: flex; justify-content: space-between; align-items: center; min-height: 1.8rem; }
.mf .mf-s .mf-price__name { font-size: var(--mf-fs-xs); font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; }
.mf .mf-s .mf-price__desc { margin: 0 !important; font-size: var(--mf-fs-sm); max-width: 34ch; }
.mf .mf-s .mf-price__amount { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem; margin: 0.25rem 0 0 !important; }
.mf .mf-s .mf-price__value { font-family: var(--mf-font-display); font-weight: 900; font-size: clamp(2rem, 1.4rem + 2vw, 3.4rem); letter-spacing: -0.035em; line-height: 0.95; font-variant-numeric: tabular-nums; }
.mf .mf-s .mf-price__period { font-size: var(--mf-fs-sm); }
.mf .mf-s .mf-price__trial { margin: 0 !important; font-size: var(--mf-fs-xs); font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; }
.mf .mf-s .mf-price__list { display: grid; gap: 0.45rem; margin: 0.5rem 0 1rem; padding: 0; list-style: none; font-size: var(--mf-fs-sm); }
.mf .mf-s .mf-price__list li { display: flex; gap: 0.5rem; align-items: flex-start; }
.mf .mf-s .mf-price__list svg { flex: none; width: 16px; height: 16px; margin-top: 0.2em; }
.mf .mf-s .mf-price .mf-btn { margin-top: auto; }
.mf .mf-s .mf-btn--block { width: 100%; }
.mf .mf-s .mf-price:last-child:nth-child(n + 4) .mf-btn { --btn-bg: var(--mf-rosa); --btn-fg: var(--mf-noche); --btn-bd: var(--mf-rosa); }
.mf .mf-s .mf-price.is-featured .mf-btn { --btn-fg: var(--mf-lima); }
.mf .mf-s .mf-fineprint { margin-top: 1.25rem !important; font-size: var(--mf-fs-xs); opacity: 0.75; }
.mf .mf-s .mf-block__head { margin-bottom: 2rem; }

/* Fixes after review */
.mf .mf-sticker { width: var(--size, clamp(88px, 70px + 4vw, 136px)); height: var(--size, clamp(88px, 70px + 4vw, 136px)); flex: none; }
.mf .mf-voice__q { margin: 0; padding: 0; border: 0; }
.mf .elementor-widget.mf-feature__title { max-width: 16ch; }
.mf .elementor-widget.mf-manifesto__title { max-width: 18ch; margin-inline: auto; }
.mf .elementor-widget.mf-h-sentence { max-width: 14ch; }
.mf .mf-s .mf-folio { opacity: 1; color: inherit; }
/* Hero script word sits over the leggings: a touch larger and with a hairline stroke so it holds up. */
.mf .mf-hero__title .mf-script { font-size: 0.74em; -webkit-text-stroke: 0.014em currentColor; }

/* About: "all you need" object strip, asymmetric */
.mf .mf-kit { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(0.75rem, 1.5vw, 1.5rem); }
.mf .mf-kit__a { grid-column: 1 / -1; }
.mf .mf-kit__c { margin-top: clamp(2rem, 5vw, 5rem); }
@media (min-width: 1024px) {
	.mf .mf-kit { grid-template-columns: 7fr 3fr 3fr; align-items: start; }
	.mf .mf-kit__a { grid-column: auto; }
	.mf .mf-kit__b { margin-top: clamp(3rem, 8vw, 9rem); }
	.mf .mf-kit__c { margin-top: 0; }
}

/* Studio Display and up: same composition, a size up (not stretched). */
@media (min-width: 2200px) {
	html { font-size: 112.5%; }
	:root { --mf-max: 1900px; }
}

/* Elementor caps every widget at max-width:100% with (0,4,0) specificity; restore our measures. */
.mf .e-con > .elementor-widget.mf-lede,
.mf .e-con > .elementor-widget.mf-body { max-width: var(--mf-max-text) !important; }
.mf .e-con > .elementor-widget.mf-feature__title { max-width: 15ch !important; }
.mf .e-con > .elementor-widget.mf-manifesto__title { max-width: 17ch !important; margin-inline: auto; }
.mf .e-con > .elementor-widget.mf-h-sentence { max-width: 13ch !important; }
.mf .e-con > .elementor-widget.mf-feature .mf-lede, .mf .mf-feature > .elementor-widget.mf-lede { max-width: 34rem !important; }
.mf .mf-s--cta .e-con > .elementor-widget.mf-lede { margin-inline: auto; }
.mf .mf-s .mf-price__value { white-space: nowrap; font-size: clamp(1.9rem, 1.2rem + 1.5vw, 3.1rem); }

/* Team: plugin people + the theme's join tile share one grid. One instructor = person + wide tile. */
.mf .mf-team { display: grid; gap: clamp(2rem, 3vw, 3rem) clamp(1rem, 2vw, 2rem); }
.mf .mf-team .mf-block, .mf .mf-team .mf-grid { display: contents !important; }
@media (min-width: 640px) { .mf .mf-team { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
	.mf .mf-team { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mf .mf-team:has(.mf-person:only-of-type) .mf-icard--join,
	.mf .mf-icards--n1 .mf-icard--join { grid-column: span 2; aspect-ratio: auto; align-self: stretch; margin-top: 0 !important; }
	.mf .mf-team > .mf-icard--join, .mf .mf-team .mf-person:nth-child(3n + 2) { margin-top: 0; }
}
.mf .mf-team .mf-icard--join { min-height: 280px; }

/* ==========================================================================
   Review pass
   ========================================================================== */

/* Hero: the headline never crosses the body. Desktop: two groups either side of
   the feet, on a soft wine fade over the floor (as in the branding's web mockup). */
@media (min-width: 768px) and (orientation: landscape), (min-width: 1024px) {
	.mf .mf-hero__media::after {
		content: "";
		position: absolute;
		inset: auto 0 0 0;
		height: 42%;
		background: linear-gradient(to top, rgba(85, 20, 42, 0.78) 0%, rgba(85, 20, 42, 0.42) 38%, rgba(85, 20, 42, 0) 100%);
		pointer-events: none;
	}
	.mf .mf-hero__title { bottom: clamp(1.25rem, 2.4vw, 3rem); font-size: 7.2cqi; color: var(--mf-crema); }
	.mf .mf-hero__title .mf-hl--2 { display: inline; white-space: nowrap; }
	.mf .mf-hero__title .mf-script { color: var(--mf-rosa); font-size: 0.6em; -webkit-text-stroke: 0; transform: translateY(-0.18em) rotate(-5deg); }
}
/* Phones / portrait tablets: the headline sits under the photo, on crema. */
@media (max-width: 767px), (max-width: 1023px) and (orientation: portrait) {
	.mf .mf-hero__title { margin-top: 0.32em; -webkit-text-stroke: 0; }
	.mf .mf-hero__title .mf-script { -webkit-text-stroke: 0; color: #B0657E; }
	.mf .mf-hero__media .mf-photo img { object-position: 50% 100% !important; }
}

/* Keep a script word with its neighbours. */
.mf .mf-keep { white-space: nowrap; }

/* Nutrition band: sticker lives in the top-right corner, outside the text column. */
.mf .mf-feature { padding-right: clamp(1.75rem, 1rem + 3vw, 4.5rem); }
@media (min-width: 640px) {
	.mf .mf-feature { padding-right: calc(clamp(1.75rem, 1rem + 3vw, 4.5rem) + clamp(90px, 9vw, 150px)); }
	.mf .mf-feature .mf-sticker { top: clamp(1.25rem, 2.5vw, 2.5rem); bottom: auto; right: clamp(1.25rem, 2.5vw, 2.5rem); }
}

/* Manifesto stickers sit in the block's padding, clear of the type. */
@media (min-width: 768px) {
	.mf .mf-manifesto__st1 .mf-sticker { left: clamp(1rem, 3vw, 3rem); top: clamp(1rem, 3vw, 2.5rem); --size: clamp(76px, 6vw, 112px); }
	.mf .mf-manifesto__st2 .mf-sticker { right: clamp(1rem, 3vw, 3rem); bottom: clamp(1rem, 3vw, 2.5rem); top: auto; --size: clamp(76px, 6vw, 112px); }
}

/* Lima/menta stay accents: program cards alternate rosa, rosa polvo, burdeos. */
.mf .mf-s .mf-card--program:nth-child(3n + 1) .mf-card__link { background: var(--mf-rosa); }
.mf .mf-s .mf-card--program:nth-child(3n + 2) .mf-card__link { background: var(--mf-rosa-polvo); }
.mf .mf-s .mf-card--program:nth-child(3n + 3) .mf-card__link { background: var(--mf-burdeos); color: var(--mf-crema); }
.mf .mf-s .mf-card--program:nth-child(3n + 3) .mf-card__meta > span:not(.mf-dots) { border-color: rgba(237, 232, 213, 0.4); }

/* Principles: plain Satoshi titles (one script word per headline). */
.mf .mf-principles__h { font-family: var(--mf-font-display) !important; font-weight: 900 !important; font-size: var(--mf-fs-xl) !important; text-transform: uppercase; letter-spacing: -0.02em; color: inherit; }

/* Dark price card: visible rosa button. */
.mf .mf-s .mf-pricing .mf-price:last-child:nth-child(n + 4) .mf-btn,
.mf .mf-s .mf-pricing .mf-price:last-child:nth-child(n + 4) .mf-btn--dark { --btn-bg: var(--mf-rosa); --btn-fg: var(--mf-noche); --btn-bd: var(--mf-rosa); background: var(--mf-rosa); color: var(--mf-noche); border-color: var(--mf-rosa); }

/* Active language: burdeos pill. */
.mf-lang a[aria-current="true"] { background: var(--mf-burdeos); color: var(--mf-crema); }
.mf-footer .mf-lang a[aria-current="true"] { background: var(--mf-rosa); color: var(--mf-noche); }

/* Seal: Satoshi, larger, even tracking. */
.mf .mf-seal__text { font-family: var(--mf-font-display); font-weight: 500; font-size: 16px; letter-spacing: 0.06em; }
.mf .mf-stickers__seal .mf-seal { --size: clamp(180px, 140px + 6vw, 260px); }

/* Numbered lists line up with their rules. */
.mf ol[role="list"] { list-style: none; margin: 0; padding: 0; }

/* About title: script word sits higher so it clears the line below. */
.mf .mf-pagehead__title .mf-script { transform: translateY(-0.28em) rotate(-4deg); }
/* Stickers anchor to their block, not to Elementor's (relative) widget wrapper. */
.mf .mf-feature > .elementor-widget-shortcode { position: static; }

/* Stickers use the brand's own art: the dumbbell sticker, or a loose brand icon. No drawn discs. */
.mf .mf-sticker { background: none; box-shadow: none; border-radius: 0; color: var(--mf-burdeos); }
.mf .mf-sticker .mf-icon { width: 100%; height: 100%; }
.mf .mf-sticker--brand { width: calc(var(--size, clamp(88px, 70px + 4vw, 136px)) * 1.35); height: auto; aspect-ratio: 189 / 89; --mf-sticker-bg: var(--mf-crema); }
.mf .mf-sticker--brand svg { width: 100%; height: auto; }
.mf .mf-bg-burdeos .mf-sticker, .mf .mf-bg-noche .mf-sticker { color: var(--mf-rosa); }
.mf .mf-seal svg { overflow: visible; }
.mf .mf-seal .mf-seal__ring { transform-box: view-box; }

/* ---------- Team -----------------------------------------------------------
   1 instructor: editorial solo (portrait 7 cols, text 5 cols).
   2: two cards. 3–6+: three columns, middle column drops.
   "Teach with us" is a slim band underneath. */
.mf .mf-solo { display: grid; gap: clamp(1.5rem, 3vw, 4rem); align-items: end; }
.mf .mf-solo__media { display: block; }
.mf .mf-solo__media .mf-photo img { transition: transform 1.1s var(--mf-ease); }
.mf .mf-solo:hover .mf-solo__media .mf-photo img { transform: scale(1.04); }
.mf .mf-solo__body { display: grid; gap: 0.9rem; align-content: end; max-width: 34rem; }
.mf .mf-solo__role { margin: 0 !important; }
.mf .mf-solo__name { font-family: var(--mf-font-display); font-weight: 900; text-transform: uppercase; font-size: clamp(2.6rem, 1.2rem + 4.6vw, 6.8rem); letter-spacing: -0.035em; line-height: 0.86; }
.mf .mf-solo__name a { text-decoration: none; }
.mf .mf-solo__bio { margin: 0 !important; font-size: var(--mf-fs-lg); line-height: 1.42; text-wrap: pretty; }
.mf .mf-solo__more { justify-self: start; margin-top: 0.4rem; }
@media (min-width: 1024px) {
	.mf .mf-solo { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}

.mf .mf-icards--c2, .mf .mf-icards--c3 { display: grid; gap: clamp(2rem, 3vw, 3rem) clamp(1rem, 2vw, 2rem); }
@media (min-width: 640px) { .mf .mf-icards--c2, .mf .mf-icards--c3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
	.mf .mf-icards--c2 { max-width: 72rem; }
	.mf .mf-icards--c2 > :nth-child(2) { margin-top: clamp(3rem, 6vw, 7rem); }
	.mf .mf-icards--c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mf .mf-icards--c3 > :nth-child(2) { margin-top: 0; }
	.mf .mf-icards--c3 > :nth-child(3n + 2) { margin-top: clamp(3rem, 6vw, 7rem); }
}

.mf .mf-joinband {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	margin: clamp(2.5rem, 5vw, 5rem) 0 0 !important;
	padding: 1.1rem 0;
	border-top: 1px solid rgba(58, 25, 29, 0.22);
	border-bottom: 1px solid rgba(58, 25, 29, 0.22);
	font-size: var(--mf-fs-sm);
}
.mf .mf-joinband__icon { width: 2.4rem; height: 2.4rem; flex: none; }
.mf .mf-joinband__text { flex: 1 1 20rem; }
.mf .mf-joinband__text strong { font-weight: 600; }

/* Page-header photos never outgrow the screen on wide-but-short displays. */
.mf .mf-pagehead__media .mf-photo { max-height: min(78svh, 980px); width: 100%; }

/* ---------- Franja de íconos: misma altura óptica, fila pareja ------------- */
.mf .mf-stickers { display: grid; grid-template-columns: repeat(auto-fit, minmax(64px, 1fr)); align-items: center; justify-items: center; gap: clamp(1.25rem, 3vw, 3rem); max-width: 72rem; margin-inline: auto; }
.mf .mf-stickers li { transform: rotate(calc(var(--tilt) * 0.4)); }
.mf .mf-stickers .mf-sticker--line { width: auto; height: clamp(52px, 2.6rem + 1.8vw, 84px); aspect-ratio: auto; transform: none; }
.mf .mf-stickers .mf-sticker--line .mf-icon { width: auto; height: 100%; }
.mf .mf-stickers .mf-sticker--line svg { width: auto; height: 100%; display: block; }
.mf .mf-stickers .mf-icon--bolt, .mf .mf-stickers .mf-icon--shaker { height: 112%; margin-block: -6%; }
@media (max-width: 639px) { .mf .mf-stickers { grid-template-columns: repeat(3, 1fr); row-gap: 2rem; } }

/* ---------- Ajustes de diagramación (revisión final) ---------------------- */
/* Las palabras en script (Huntley) tienen trazos que se salen de su caja: más aire a los lados. */
.mf .mf-script { padding-inline: 0.38em 0.3em; }
/* "Ver todos los programas" respira entre la grilla y el bloque siguiente. */
.mf .mf-more { margin-top: clamp(1.75rem, 3vw, 2.5rem); }
.mf .mf-more:not(:last-child) { margin-bottom: clamp(3rem, 6vw, 5rem); }
.mf .mf-cur--select { padding: 0; background: none; }
.mf .mf-cur__select { min-height: 44px; padding: 0.5rem 2.2rem 0.5rem 1rem; border: 1px solid rgba(58, 25, 29, 0.35); border-radius: 999px; background: transparent; color: inherit; font: 500 var(--mf-fs-xs) / 1 var(--mf-font-text); letter-spacing: 0.08em; }

/* ==========================================================================
   Consolidated QA pass
   ========================================================================== */

/* Script words at the PDF's proportion (~0.85× the caps), sitting on the baseline area. */
.mf .mf-script { font-size: 0.85em; transform: translateY(0.04em) rotate(-4deg); }
.mf .mf-h-sentence .mf-script, .mf .mf-feature__title .mf-script { font-size: 0.95em; transform: translateY(0.06em) rotate(-4deg); }
.mf .mf-pagehead__title .mf-script { transform: translateY(0.02em) rotate(-4deg); }
.mf .mf-marquee__item .mf-script { font-size: 0.85em; }
@media (min-width: 768px) and (orientation: landscape), (min-width: 1024px) {
	.mf .mf-hero__title .mf-script { font-size: 0.8em; transform: translateY(0.02em) rotate(-4deg); }
}
@media (max-width: 767px), (max-width: 1023px) and (orientation: portrait) {
	.mf .mf-hero__title .mf-script { font-size: 0.82em; }
}

/* Icons never sit on text: in the principle cards they take their own column. */
.mf .mf-principles__col { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1.25rem; align-items: start; }
.mf .mf-principles__h { grid-column: 1; grid-row: 1; }
.mf .mf-principles ul { grid-column: 1 / -1; grid-row: 2; }
.mf .mf-principles .mf-sticker { position: static; grid-column: 2; grid-row: 1; --size: clamp(52px, 4vw, 80px); width: var(--size); height: var(--size); }

/* 404: the disco ball sits beside the title on wide screens, under the buttons on small ones. */
@media (max-width: 1023px) {
	.mf .mf-404__sticker { position: static; display: block; width: 88px; height: 88px; margin-top: 2.5rem; }
}

/* How you start: three steps, icon + numeral + title + text, on the grid. */
.mf .mf-how { display: grid; gap: clamp(2rem, 3vw, 3rem); }
.mf .mf-how__step { display: grid; gap: 0.6rem; align-content: start; padding-top: 1.5rem; border-top: 1px solid rgba(58, 25, 29, 0.25); }
.mf .mf-how__icon { width: 3rem; height: 3rem; margin-bottom: 0.5rem; }
.mf .mf-how__n { font-family: var(--mf-font-display); font-weight: 900; font-size: var(--mf-fs-2xl); line-height: 0.9; letter-spacing: -0.03em; color: #B0657E; font-variant-numeric: tabular-nums; }
.mf .mf-how__title { font-family: var(--mf-font-display); font-weight: 900; text-transform: uppercase; font-size: var(--mf-fs-xl); letter-spacing: -0.02em; line-height: 1; }
.mf .mf-how__step p { max-width: 32ch; }
.mf .mf-how__cta { margin-top: clamp(2rem, 4vw, 3.5rem); }
@media (min-width: 768px) { .mf .mf-how { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Testimonials section only exists when there are real quotes. */
.mf .mf-s--voices:not(:has(.mf-voice)) { display: none; }

/* Inner pages: the header is solid from the start, so nothing shows through it while scrolling. */
.mf:not(.home) .mf-header { background: var(--mf-crema); box-shadow: 0 1px 0 rgba(58, 25, 29, 0.1); }
.mf-header { transition: transform 0.5s var(--mf-ease), background-color 0.15s linear, box-shadow 0.15s linear; }

/* Footer on very wide screens: type and spacing keep pace with the content. */
@media (min-width: 1920px) {
	.mf-footer { padding-top: clamp(8rem, 6vw, 11rem); }
	.mf-footer__logo { --mf-logo-w: clamp(520px, 24vw, 640px); }
	.mf-footer__claim { font-size: 1.7rem; }
	.mf-footer__h { font-size: 0.9rem !important; margin-bottom: 1.25rem !important; }
	.mf-footer__list { gap: 0.8rem; }
	.mf-footer__list a { font-size: 1.12rem; }
	.mf-footer__bottom { font-size: 0.9rem; padding-top: 2rem; }
	.mf-credit__logo svg { width: 104px; }
}
/* Icons always fit their sticker box (tall icons like the bolt included). */
.mf .mf-sticker:not(.mf-sticker--line) .mf-icon,
.mf .mf-sticker:not(.mf-sticker--line) .mf-icon svg { width: 100% !important; height: 100% !important; }
.mf .mf-principles .mf-sticker { overflow: visible; }
.mf .mf-sticker:not(.mf-sticker--line) { display: inline-block; }
.mf .mf-sticker:not(.mf-sticker--line) .mf-icon { display: block; }
/* No orphan words: headlines balance, running text wraps "pretty". */
.mf p, .mf li, .mf blockquote, .mf figcaption { text-wrap: pretty; }
.mf h1, .mf h2, .mf h3, .mf .elementor-heading-title { text-wrap: balance; }

/* ---------- Collage de íconos de marca + sello ---------------------------- */
.mf .mf-s--stickers .mf-stickers__seal { display: none; } /* el sello vive dentro del collage */
.mf .mf-scatter { --size: clamp(72px, 2.5rem + 5vw, 190px); position: relative; color: var(--mf-burdeos); }
.mf .mf-scatter__seal { display: grid; place-items: center; }
.mf .mf-scatter__seal .mf-seal { width: clamp(190px, 8rem + 11vw, 420px); }
.mf .mf-scatter__seal .mf-seal svg { width: 100%; height: auto; display: block; }
.mf .mf-scatter__list { list-style: none; margin: 0; padding: 0; }
.mf .mf-scatter__item { width: calc(var(--vbw) / 170 * var(--size)); will-change: transform; }
.mf .mf-scatter__icon { display: block; transform: rotate(var(--r)); transition: transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1), color 0.3s ease; cursor: default; }
.mf .mf-scatter__icon svg { display: block; width: 100%; height: auto; overflow: visible; }
.mf .mf-scatter__item:hover .mf-scatter__icon, .mf .mf-scatter__item:active .mf-scatter__icon { transform: rotate(calc(var(--r) * -1.4)) scale(1.22); color: var(--mf-vino); }

/* Escritorio: escenario con el sello al centro y los íconos repartidos a mano. */
@media (min-width: 900px) {
	.mf .mf-scatter { aspect-ratio: 16 / 7; max-height: 78vh; margin-inline: auto; }
	.mf .mf-scatter__seal { position: absolute; inset: 0; }
	.mf .mf-scatter__item { position: absolute; left: var(--x); top: var(--y); }
}
/* Teléfono y tableta: sello arriba y los íconos en grilla, girados y con desfase alterno. */
@media (max-width: 899px) {
	.mf .mf-scatter { --size: clamp(58px, 14vw, 96px); display: grid; gap: clamp(2rem, 6vw, 3rem); }
	.mf .mf-scatter__list { display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; justify-items: center; row-gap: clamp(1.5rem, 5vw, 2.5rem); column-gap: 0.75rem; }
	.mf .mf-scatter__item:nth-child(even) { transform: translateY(14%); }
}
@media (max-width: 479px) { .mf .mf-scatter__list { grid-template-columns: repeat(3, 1fr); } }
@media (prefers-reduced-motion: reduce) { .mf .mf-scatter__icon { transition: none; } }
/* Safety net: nothing inside the page can create a horizontal scroll (clip keeps sticky working). */
.mf .mf-main { overflow-x: clip; }

/* ==========================================================================
   QA round 2 (restores the script/auth block lost in a concurrent edit)
   ========================================================================== */

/* Script words: ~0.76× the caps, lifted so descenders never reach the next line;
   headings that hold one get more line room. */
.mf .mf-script { font-size: 0.76em; transform: translateY(-0.12em) rotate(-4deg); }
.mf .mf-h-sentence .mf-script, .mf .mf-feature__title .mf-script { font-size: 0.86em; transform: translateY(-0.08em) rotate(-4deg); }
.mf .mf-pagehead__title .mf-script { transform: translateY(-0.14em) rotate(-4deg); }
.mf :is(h1, h2, h3, .elementor-heading-title):has(.mf-script) { line-height: 1.04; padding-bottom: 0.22em; }
.mf .mf-feature__title, .mf .mf-feature__title .elementor-heading-title { line-height: 1.14; }
.mf .mf-hero__title .mf-script { padding-inline: 0.22em 0.16em; }
.mf .mf-hero__title, .mf .mf-hero__title .elementor-heading-title { line-height: 0.92; padding-bottom: 0; }

/* Accents (Ó, Í, É, Á) are never clipped by the line-reveal mask. */
.mf .mf-line { padding-top: 0.16em; margin-top: -0.16em; padding-bottom: 0.1em; margin-bottom: -0.1em; }

/* Names with accents get room above. */
.mf .mf-solo__name, .mf .mf-profile__name, .mf .mf-icard__name { line-height: 0.98; padding-top: 0.06em; }

/* Auth pages (log in / get started): one title, brand panel | form, one viewport on desktop. */
.mf .mf-s--auth { padding: calc(var(--mf-header-h) + clamp(1rem, 2vw, 2rem)) 0 clamp(1.5rem, 3vw, 3rem); }
.mf .mf-auth-grid { display: grid !important; gap: clamp(1.5rem, 3vw, 4rem); }
.mf .mf-auth-brand { position: relative; display: grid !important; align-content: end; min-height: clamp(260px, 42svh, 420px); padding: clamp(1.5rem, 3vw, 3rem); border-radius: var(--mf-radius); overflow: hidden; color: var(--mf-crema); isolation: isolate; }
.mf .mf-auth-brand > .elementor-widget-shortcode { position: absolute !important; inset: 0; z-index: -2; }
.mf .mf-auth-brand .mf-photo { position: absolute; inset: 0; height: 100%; aspect-ratio: auto !important; border-radius: 0; }
.mf .mf-auth-brand::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(85, 20, 42, 0.86) 0%, rgba(85, 20, 42, 0.5) 45%, rgba(85, 20, 42, 0) 78%); }
.mf .mf-auth-brand .mf-eyebrow { color: var(--mf-rosa); }
.mf .mf-auth-brand .mf-h1 { font-size: clamp(2.6rem, 1.4rem + 4vw, 6.4rem); margin-top: 0.5rem; }
.mf .mf-auth-brand .mf-script { color: var(--mf-rosa); }
.mf .mf-auth-brand .mf-lede { margin-top: 0.6rem; max-width: 26rem; }
.mf .mf-auth-form { display: grid !important; align-content: center; }
.mf .mf-auth-form .mf-app, .mf .mf-auth-form .mf-auth, .mf .mf-auth-form .mf-auth__main, .mf .mf-auth-form .mf-main { width: 100%; max-width: 30rem; margin: 0; padding: 0; min-height: 0; }
.mf .mf-auth-form .mf-auth__box > .mf-h1:first-child, .mf .mf-auth-form .mf-auth__box > .mf-h1:first-child + .mf-lede { display: none; }
@media (min-width: 1024px) {
	.mf .mf-auth-grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); min-height: calc(100svh - var(--mf-header-h) - clamp(2.5rem, 5vw, 5rem)); align-items: stretch; }
	.mf .mf-auth-brand { min-height: 0; }
	.mf .mf-auth-form { justify-items: start; padding-inline: clamp(0rem, 3vw, 4rem); }
}
@media (min-width: 1800px) { .mf .mf-auth-grid { max-height: 1120px; } }

/* Stacked two-column blocks keep a gap on small screens. */
@media (max-width: 1023px) {
	.mf .mf-grid-5-7 > * + *, .mf .mf-grid-7-5 > * + *, .mf .mf-grid-4-8 > * + * { margin-top: clamp(1.25rem, 4vw, 2rem); }
	.mf .mf-faq__aside { display: none !important; }
}
.mf .mf-stack > .elementor-widget-button.mf-link { margin-top: 1.25rem; }

/* Contact form: labels breathe; consent checkbox inline and small. */
.mf .mf-contact-form label { margin: 0; }
.mf .mf-contact-form .mf-form__consent { display: flex !important; align-items: flex-start; gap: 0.7rem; }
.mf .mf-contact-form .mf-form__consent input[type="checkbox"] { flex: none; width: 20px !important; height: 20px !important; min-height: 0 !important; margin: 0.15rem 0 0; padding: 0; accent-color: var(--mf-burdeos); }

/* Prices stay on one line with their period. */
.mf .mf-s .mf-price__amount { flex-wrap: nowrap; }
.mf .mf-s .mf-price__value { font-size: clamp(1.7rem, 1.05rem + 1.25vw, 2.8rem); }
.mf .mf-s .mf-price__period { white-space: nowrap; }

/* Do / don't cards and how-it-works steps line up. */
@media (min-width: 768px) { .mf .mf-principles__col:nth-child(2) { margin-top: 0; } }
.mf .mf-how__title { font-size: var(--mf-fs-lg); min-height: 2.1em; }

/* Nutrition card: text | photo (no sticker, no empty right side). */
.mf .mf-feature { padding-right: clamp(1.75rem, 1rem + 3vw, 4.5rem) !important; }
.mf .mf-feature__media .mf-photo { border-radius: calc(var(--mf-radius) - 6px); }
@media (min-width: 768px) {
	.mf .mf-feature { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(220px, 0.62fr); column-gap: clamp(2rem, 5vw, 6rem); align-items: center; }
	.mf .mf-feature > :not(.mf-feature__media) { grid-column: 1; }
	.mf .mf-feature > .mf-feature__media { grid-column: 2; grid-row: 1 / span 5; align-self: stretch; }
	.mf .mf-feature > .mf-feature__media .mf-photo { height: 100%; aspect-ratio: auto !important; }
}
@media (max-width: 767px) { .mf .mf-feature__media { margin-top: 1.75rem; } }
/* Member pages: the platform screen carries its own header. */
.mf .mf-s--slot.mf-s--member { padding-top: calc(var(--mf-header-h) + clamp(1.5rem, 3vw, 3rem)); }
/* Script on crema everywhere (404, legal, plain pages): the deepened rosa. Dark/photo contexts keep their own. */
.mf .mf-404 .mf-script, .mf .mf-doc .mf-script { color: #B0657E; }

/* ==========================================================================
   Last-gate QA
   ========================================================================== */

/* 404: text | brand photo, one composition; the disco ball sits on the photo's corner. */
.mf .mf-404 { min-height: 0; padding: calc(var(--mf-header-h) + clamp(2.5rem, 5vw, 6rem)) 0 var(--mf-section); }
.mf .mf-404__grid { display: grid; gap: clamp(2.5rem, 5vw, 6rem); align-items: center; }
.mf .mf-404__title { max-width: 13ch; margin: 1rem 0 1.5rem !important; }
.mf .mf-404__lede { font-size: var(--mf-fs-lg); max-width: 30ch; }
.mf .mf-404__media { position: relative; max-width: 34rem; width: 100%; justify-self: end; }
.mf .mf-404__media .mf-404__sticker { position: absolute !important; top: auto; left: clamp(-2.5rem, -3vw, -1rem); bottom: clamp(-2rem, -3vw, -1rem); right: auto; display: block; margin: 0; --size: clamp(76px, 7vw, 120px); width: var(--size); height: var(--size); }
@media (min-width: 1024px) { .mf .mf-404__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
@media (max-width: 1023px) { .mf .mf-404__media { justify-self: start; max-width: 26rem; } .mf .mf-404__media .mf-404__sticker { left: auto; right: 1rem; } }

/* Hero: the script word sits on the caps' baseline area (as in the brand banner) and reads on the photo. */
@media (min-width: 768px) and (orientation: landscape), (min-width: 1024px) {
	.mf .mf-hero__media::after { height: 48%; background: linear-gradient(to top, rgba(58, 25, 29, 0.86) 0%, rgba(58, 25, 29, 0.55) 40%, rgba(58, 25, 29, 0) 100%); }
	.mf .mf-hero__title .elementor-heading-title { align-items: center; }
	.mf .mf-hero__title .mf-script { color: #F6D3DF; font-size: 0.72em; transform: translateY(-0.06em) rotate(-5deg); }
}

/* Auth brand panel: stronger fade; eyebrow and script in crema/light rosa so they read on the photo. */
.mf .mf-auth-brand::after { background: linear-gradient(to top, rgba(58, 25, 29, 0.92) 0%, rgba(58, 25, 29, 0.66) 42%, rgba(58, 25, 29, 0.12) 80%); }
.mf .mf-auth-brand .mf-eyebrow { color: var(--mf-crema); opacity: 0.9; }
.mf .mf-auth-brand .mf-script { color: #F6D3DF; }
/* Login / get started on very wide screens: the form sits centred in its half, a touch larger. */
@media (min-width: 1800px) {
	.mf .mf-auth-form { justify-items: center; }
	.mf .mf-auth-form .mf-app, .mf .mf-auth-form .mf-auth, .mf .mf-auth-form .mf-auth__main, .mf .mf-auth-form .mf-main { max-width: 34rem; }
	.mf .mf-auth-form { font-size: 1.08rem; }
}

/* Numbered lists use bare numerals so they don't echo section folios. */
.mf .mf-step > .mf-folio { font-variant-numeric: tabular-nums; }

/* Pricing cards: the trial line keeps its place in every card, so prices and lists align. */
.mf .mf-s .mf-price__desc { min-height: calc(3 * 1.45em); }
.mf .mf-auth-brand .mf-script { color: #F6D3DF !important; padding-inline: 0.06em 0.14em; }
@media (min-width: 1800px) { .mf .mf-auth-form .mf-auth__box { max-width: none; width: 100%; } }

/* Spacing rule: a CTA row, link or text block never touches the image or card next to it. */
.mf .mf-btns:not(:last-child), .mf .mf-404__cta:not(:last-child), .mf .mf-more:not(:last-child) { margin-bottom: var(--mf-gap-block); }
.mf :is(.mf-btns, .mf-more, .mf-head, .mf-headgrid) + :is(.mf-pillars, .mf-feature, .mf-pcards, .mf-icards, .mf-teamwrap, .elementor-widget-shortcode, .elementor-widget-html) { margin-top: var(--mf-gap-block); }
.mf .mf-404__grid { row-gap: var(--mf-gap-block); }
.mf .mf-feature__media { margin-top: 0; }
@media (max-width: 767px) { .mf .mf-feature__media { margin-top: var(--mf-gap-block); } }

/* Auth pages: the form fills its column; right edge flush with the container, centred against the photo. */
@media (min-width: 1024px) {
	.mf .mf-auth-form { justify-items: stretch !important; padding-inline: clamp(1rem, 4vw, 6rem) 0 !important; font-size: 1rem; }
	.mf .mf-auth-form .mf-app, .mf .mf-auth-form .mf-auth, .mf .mf-auth-form .mf-auth__main, .mf .mf-auth-form .mf-main, .mf .mf-auth-form .mf-auth__box { max-width: none !important; width: 100%; }
}
@media (min-width: 1800px) { .mf .mf-auth-form { font-size: 1.08rem; } }

/* Pricing cards: the period drops under the price when it doesn't fit; rows line up across cards (subgrid). */
.mf .mf-s .mf-price__amount { flex-wrap: wrap; row-gap: 0.15rem; }
.mf .mf-s .mf-price__value { white-space: nowrap; }
.mf .mf-s .mf-pricing { grid-auto-rows: auto; row-gap: 0; }
.mf .mf-s .mf-price { display: grid; grid-row: span 7; grid-template-rows: subgrid; row-gap: 0.75rem; align-content: start; margin-bottom: 1rem; }
.mf .mf-s .mf-price__desc { min-height: 0; }
.mf .mf-s .mf-price .mf-btn { align-self: end; margin-top: 0.5rem; }
@media (min-width: 768px) { .mf .mf-s .mf-price { margin-bottom: 0; } .mf .mf-s .mf-pricing { column-gap: 1rem; } }

/* Do / don't cards: the icon belongs to the title row and never reaches the rule under it. */
.mf .mf-principles__col { align-items: center; }
.mf .mf-principles__h { margin-bottom: 0 !important; padding-bottom: 1.1rem; }
.mf .mf-principles .mf-sticker { --size: 2.6rem; width: var(--size); height: var(--size); align-self: start; transform: none !important; margin-bottom: 1.1rem; }
.mf .mf-principles .mf-sticker svg { overflow: hidden; }

/* Coaching cards (The Method): four cream cards on pink, sticker beside the title, closing line + CTA. */
.mf .mf-services__label { margin-bottom: 1.25rem; }
.mf .mf-services { display: grid; gap: clamp(0.75rem, 1.5vw, 1.25rem); }
.mf .mf-service { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1.25rem; align-content: start; padding: clamp(1.5rem, 1rem + 2vw, 3rem); border-radius: var(--mf-radius); background: var(--mf-crema); color: var(--mf-burdeos); }
.mf .mf-service > .mf-folio { grid-column: 1; grid-row: 1; font-variant-numeric: tabular-nums; }
.mf .mf-service .mf-sticker { grid-column: 2; grid-row: 1 / span 2; align-self: start; --size: clamp(56px, 3rem + 1.5vw, 80px); --tilt: 8deg; }
.mf .mf-service__title { grid-column: 1; grid-row: 2; margin: 0.75rem 0 0; font-family: var(--mf-font-display); font-weight: 900; text-transform: uppercase; font-size: var(--mf-fs-xl); letter-spacing: -0.02em; line-height: 1; }
.mf .mf-service p { grid-column: 1 / -1; margin-top: 1rem; max-width: 44ch; }
.mf .mf-services__close { display: grid; gap: 1.5rem; align-items: center; margin-top: clamp(2.5rem, 2rem + 3vw, 5rem); }
.mf .mf-services__close .mf-lede { max-width: 40ch; }
@media (min-width: 768px) { .mf .mf-services { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .mf .mf-services__close { grid-template-columns: minmax(0, 1fr) auto; } }

/* Text-only sections (pillars, kit): no photos, a top rule per item and loose stickers that drift with scroll. */
.mf .mf-has-floaters { position: relative; overflow: clip; }
.mf .mf-has-floaters > .mf-wrap { position: relative; z-index: 1; }
.mf .mf-floaters-w { position: absolute !important; inset: 0; z-index: 0; pointer-events: none; }
.mf .mf-floaters-w > .elementor-widget-container, .mf .mf-floaters { position: absolute; inset: 0; }
.mf .mf-floater { position: absolute; left: var(--x); top: var(--y); width: var(--s, 72px); height: var(--s, 72px); color: var(--mf-burdeos); }
.mf .mf-floater .mf-icon { width: 100%; height: 100%; }
@media (max-width: 767px) { .mf .mf-floater { --s: 40px !important; top: 1.25rem; left: auto; right: 1rem; } .mf .mf-floater:not(:first-child) { display: none; } }

.mf .mf-pillars--text > :nth-child(2n) { margin-top: 0; }
.mf .mf-pillars--text .mf-pillar { padding-top: 1.25rem; border-top: 1px solid rgba(58, 25, 29, 0.25); }
.mf .mf-pillars--text .mf-pillar__n { margin-top: 0; }
.mf .mf-pillars--text .mf-pillar__title { font-size: clamp(1.6rem, 0.6rem + 2.2vw, 3.4rem); }
.mf .mf-pillars--text .mf-pillar__text { max-width: 30ch; }

.mf .mf-kitlist { display: grid; border-top: 1px solid rgba(58, 25, 29, 0.25); }
.mf .mf-kitlist__item { display: grid; grid-template-columns: 3rem auto minmax(0, 1fr); align-items: center; gap: 1.25rem; padding: clamp(1.1rem, 1.5vw, 1.75rem) 0; border-bottom: 1px solid rgba(58, 25, 29, 0.25); }
.mf .mf-kitlist__icon { width: clamp(2.5rem, 2rem + 1.5vw, 3.75rem); height: clamp(2.5rem, 2rem + 1.5vw, 3.75rem); }
.mf .mf-kitlist__icon .mf-icon { width: 100%; height: 100%; }
.mf .mf-kitlist__label { font-family: var(--mf-font-display); font-weight: 900; text-transform: uppercase; font-size: var(--mf-fs-2xl); letter-spacing: -0.02em; line-height: 1; }
@media (min-width: 1024px) { .mf .mf-kitlist { grid-template-columns: 1fr 1fr; column-gap: clamp(2rem, 4vw, 5rem); } }
.mf .mf-s--kit .mf-kit { display: block; }

/* Pillars as colour blocks: each card its own brand colour, a big sticker, title and text at the bottom.
   Slightly tilted like stickers on a wall; they straighten and lift on hover. */
.mf .mf-pillars--text { gap: clamp(0.75rem, 1.2vw, 1.25rem); grid-template-columns: minmax(0, 1fr); }
.mf .mf-pillars--text .mf-pillar {
	position: relative; display: flex; flex-direction: column;
	min-height: clamp(13rem, 9rem + 12vw, 28rem); padding: clamp(1.4rem, 1rem + 1.2vw, 2.4rem);
	border: 0; border-radius: var(--mf-radius); background: var(--bg); color: var(--fg);
	transform: rotate(var(--r, 0deg)); transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.mf .mf-pillars--text .mf-pillar:hover { transform: rotate(0deg) translateY(-8px); }
.mf .mf-pillar--c1 { --bg: var(--mf-burdeos); --fg: var(--mf-crema); --ic: var(--mf-rosa); --r: -1.4deg; }
.mf .mf-pillar--c2 { --bg: var(--mf-rosa); --fg: var(--mf-burdeos); --ic: var(--mf-vino); --r: 1deg; }
.mf .mf-pillar--c3 { --bg: var(--mf-menta); --fg: var(--mf-burdeos); --ic: var(--mf-burdeos); --r: -0.8deg; }
.mf .mf-pillar--c4 { --bg: var(--mf-vino); --fg: var(--mf-crema); --ic: var(--mf-rosa); --r: 1.5deg; }
.mf .mf-pillars--text .mf-pillar * { color: inherit; }
.mf .mf-pillars--text .mf-pillar__icon { position: absolute; top: clamp(1.2rem, 1rem + 0.8vw, 2rem); right: clamp(1.2rem, 1rem + 0.8vw, 2rem); width: clamp(4rem, 2.5rem + 3vw, 6.5rem); height: clamp(4rem, 2.5rem + 3vw, 6.5rem); color: var(--ic) !important; transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.mf .mf-pillars--text .mf-pillar__icon * { color: var(--ic) !important; }
.mf .mf-pillars--text .mf-pillar__icon .mf-icon { width: 100%; height: 100%; }
.mf .mf-pillars--text .mf-pillar:hover .mf-pillar__icon { transform: rotate(-12deg) scale(1.08); }
.mf .mf-pillars--text .mf-pillar__n { margin: 0; opacity: 0.8; }
.mf .mf-pillars--text .mf-pillar__title { margin-top: auto; font-size: clamp(1.7rem, 0.9rem + 1.9vw, 3rem); }
.mf .mf-pillars--text .mf-pillar__text { margin-top: 0.75rem; max-width: 30ch; opacity: 0.92; }
@media (min-width: 640px) { .mf .mf-pillars--text { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .mf .mf-pillars--text { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .mf .mf-pillars--text .mf-pillar, .mf .mf-pillars--text .mf-pillar__icon { transition: none; } }

/* No folio numbers anywhere (Luis): hide them and drop the columns that held them. Kit list without rules. */
.mf .mf-folio { display: none !important; }
@media (min-width: 1024px) { .mf .mf-step { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } }
.mf .mf-kitlist { border-top: 0; row-gap: clamp(0.5rem, 1vw, 1rem); }
.mf .mf-kitlist__item { grid-template-columns: auto minmax(0, 1fr); border-bottom: 0; padding: 0.4rem 0; }
.mf .mf-steps, .mf .mf-step, .mf .mf-bg-burdeos .mf-steps, .mf .mf-bg-burdeos .mf-step { border: 0; }
.mf .mf-step { padding: clamp(1rem, 1.5vw, 1.75rem) 0; }
