/* ==========================================================================
   METABOZ — Sistema de ficha de producto y de tratamiento
   Tokens heredados del kit de Elementor (kit 6). No introduce paleta nueva.
   Prefijo unico: .mbz-  ·  Raiz: .mbz-ficha
   ========================================================================== */

.mbz-ficha {
	/* Paleta: identica a los colores globales del kit */
	--mbz-verde: #003223;
	--mbz-verde-claro: #0c4a35;
	--mbz-verde-pie: #01251a;
	--mbz-lima: #8cc84f;
	--mbz-lima-claro: #9ed95f;
	--mbz-naranja: #ff6400;
	--mbz-naranja-osc: #e05800;
	/* Mismo tono de marca, oscurecido lo justo para que el texto pequeno
	   sobre crema o blanco pase el contraste AA. Solo para tipografia. */
	--mbz-naranja-txt: #b04400;
	--mbz-naranja-claro: #ffb27a;
	--mbz-crema: #f6ebe1;
	--mbz-crema-claro: #fbf5ee;
	--mbz-blanco: #fff;
	--mbz-tinta: #2d2d2d;

	/* Derivados de superficie y linea */
	--mbz-linea: rgba(0, 50, 35, .14);
	--mbz-linea-fuerte: rgba(0, 50, 35, .26);
	--mbz-linea-osc: rgba(246, 235, 225, .18);
	--mbz-tinta-70: rgba(45, 45, 45, .72);
	--mbz-crema-70: rgba(246, 235, 225, .74);

	/* Radios: los mismos que usa Elementor en el resto de la web */
	--mbz-r-pill: 999px;
	--mbz-r-lg: 18px;
	--mbz-r-md: 14px;
	--mbz-r-sm: 12px;

	/* Ritmo vertical: una sola escala para toda la ficha */
	--mbz-seccion: clamp(56px, 8.5vw, 104px);
	--mbz-ancho: 1200px;
	--mbz-borde: clamp(20px, 5vw, 40px);
	--mbz-sticky-top: 0px;

	--mbz-ease: cubic-bezier(.22, .61, .36, 1);

	color: var(--mbz-tinta);
	font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	font-size: 17px;
	line-height: 1.62;
	overflow-x: clip;
	overflow-wrap: break-word;
}

/* Reset acotado. IMPORTANTE: no usar :where() aqui. Astra estila button,
   input y los titulares con selectores de elemento, y :where() tiene
   especificidad cero, asi que el tema ganaba y pintaba de naranja las
   miniaturas, los formatos, el paso de cantidad y las flechas de galeria. */
.mbz-ficha h1,
.mbz-ficha h2,
.mbz-ficha h3,
.mbz-ficha h4,
.mbz-ficha h5,
.mbz-ficha h6 {
	font-family: "Archivo", system-ui, sans-serif;
	font-weight: 900;
	font-stretch: 125%;
	line-height: 1.02;
	letter-spacing: -.012em;
	margin: 0;
	color: inherit;
	text-wrap: balance;
}
.mbz-ficha p,
.mbz-ficha ul,
.mbz-ficha ol,
.mbz-ficha dl,
.mbz-ficha figure,
.mbz-ficha dd { margin: 0; }
.mbz-ficha ul,
.mbz-ficha ol { list-style: none; padding: 0; }
.mbz-ficha img { display: block; max-width: 100%; height: auto; }
.mbz-ficha a { color: inherit; text-decoration: none; }

/* Los botones de la ficha parten de cero: cada componente pinta el suyo. */
.mbz-ficha button {
	font: inherit;
	line-height: inherit;
	letter-spacing: normal;
	text-transform: none;
	color: inherit;
	background: none;
	background-color: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
	box-shadow: none;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
.mbz-ficha button:hover,
.mbz-ficha button:focus { background: none; color: inherit; }
.mbz-ficha input { box-shadow: none; }
.mbz-ficha *, .mbz-ficha *::before, .mbz-ficha *::after { box-sizing: border-box; }

/* Foco visible y consistente en toda la ficha. */
.mbz-ficha a:focus-visible,
.mbz-ficha button:focus-visible,
.mbz-ficha input:focus-visible,
.mbz-ficha [tabindex]:focus-visible {
	outline: 3px solid var(--mbz-lima);
	outline-offset: 3px;
	border-radius: 6px;
}
.mbz-seccion--osc a:focus-visible,
.mbz-seccion--osc button:focus-visible { outline-color: var(--mbz-lima-claro); }

/* Integracion con el envoltorio de Elementor / Astra de la pagina. */
.mbz-contenedor,
.mbz-contenedor > .elementor-widget-shortcode,
.mbz-contenedor .elementor-shortcode {
	width: 100%;
	max-width: 100%;
	padding: 0;
	margin: 0;
	overflow: visible;
	text-align: left;
}

/* --------------------------------------------------------------------------
   1. Estructura de seccion
   -------------------------------------------------------------------------- */
.mbz-seccion {
	padding: var(--mbz-seccion) var(--mbz-borde);
	background: var(--mbz-blanco);
	scroll-margin-top: calc(var(--mbz-sticky-top) + 62px);
}
.mbz-seccion--crema { background: var(--mbz-crema-claro); }
.mbz-seccion--crema-media { background: var(--mbz-crema); }
.mbz-seccion--osc { background: var(--mbz-verde); color: var(--mbz-crema); }
.mbz-seccion--osc .mbz-eyebrow { color: var(--mbz-lima); }
.mbz-seccion--compacta { padding-block: clamp(38px, 5.5vw, 64px); }

.mbz-int { width: 100%; max-width: var(--mbz-ancho); margin-inline: auto; }
.mbz-int--estrecho { max-width: 820px; }

/* Cabecera de seccion: eyebrow + titulo + entradilla */
.mbz-eyebrow {
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--mbz-naranja-txt);
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
}
.mbz-eyebrow::before {
	content: "";
	width: 22px;
	height: 2px;
	background: currentColor;
	flex: none;
}
.mbz-cab { max-width: 760px; margin-bottom: clamp(32px, 4vw, 52px); }
.mbz-cab h2 { font-size: clamp(1.72rem, 3.6vw, 2.55rem); }
.mbz-cab p {
	margin-top: 18px;
	font-size: 1.06rem;
	color: var(--mbz-tinta-70);
	max-width: 62ch;
}
.mbz-seccion--osc .mbz-cab p { color: var(--mbz-crema-70); }

/* --------------------------------------------------------------------------
   2. Migas y aviso de contenido demostrativo
   -------------------------------------------------------------------------- */
.mbz-migas {
	background: var(--mbz-verde);
	color: var(--mbz-crema-70);
	padding: 14px var(--mbz-borde) 0;
	font-size: .78rem;
}
.mbz-migas ol {
	max-width: var(--mbz-ancho);
	margin-inline: auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
}
.mbz-migas li { display: flex; align-items: center; gap: 10px; }
.mbz-migas li:not(:last-child)::after {
	content: "";
	width: 4px; height: 4px;
	border-radius: 50%;
	background: currentColor;
	opacity: .5;
}
.mbz-ficha .mbz-migas a { transition: color .2s var(--mbz-ease); }
.mbz-ficha .mbz-migas a:hover { color: var(--mbz-lima); }
.mbz-migas [aria-current] { color: var(--mbz-crema); }

/* Distintivo de dato provisional: aparece junto a cada valor inventado. */
.mbz-demo {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--mbz-naranja-txt);
	background: rgba(255, 100, 0, .09);
	border: 1px solid rgba(176, 68, 0, .3);
	border-radius: var(--mbz-r-pill);
	padding: 2px 9px;
	vertical-align: middle;
	white-space: nowrap;
}
.mbz-seccion--osc .mbz-demo {
	color: var(--mbz-naranja-claro);
	background: rgba(255, 100, 0, .16);
	border-color: rgba(255, 100, 0, .42);
}
.mbz-aviso-demo {
	background: var(--mbz-verde);
	padding: 14px var(--mbz-borde) 0;
}
.mbz-aviso-demo > div {
	max-width: var(--mbz-ancho);
	margin-inline: auto;
	display: flex;
	gap: 12px;
	align-items: flex-start;
	border: 1px solid rgba(140, 200, 79, .34);
	background: rgba(140, 200, 79, .09);
	border-radius: var(--mbz-r-md);
	padding: 12px 16px;
	font-size: .82rem;
	line-height: 1.5;
	color: var(--mbz-crema-70);
}
.mbz-aviso-demo svg { color: var(--mbz-lima); }
.mbz-aviso-demo strong { color: var(--mbz-lima); font-weight: 700; }

/* --------------------------------------------------------------------------
   3. Botones
   -------------------------------------------------------------------------- */
.mbz-ficha .mbz-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 15px 30px;
	border-radius: var(--mbz-r-pill);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-align: center;
	transition: background-color .25s var(--mbz-ease), color .25s var(--mbz-ease),
		border-color .25s var(--mbz-ease), transform .25s var(--mbz-ease);
	will-change: transform;
}
.mbz-ficha .mbz-btn:active { transform: translateY(1px); }
.mbz-ficha .mbz-btn--primario { background: var(--mbz-naranja); color: #fff; }
.mbz-ficha .mbz-btn--primario:hover { background: var(--mbz-naranja-osc); color: #fff; }
.mbz-ficha .mbz-btn--secundario {
	background: transparent;
	color: var(--mbz-verde);
	border: 2px solid var(--mbz-linea-fuerte);
}
.mbz-ficha .mbz-btn--secundario:hover { border-color: var(--mbz-verde); background: rgba(0, 50, 35, .05); }
.mbz-ficha .mbz-seccion--osc .mbz-btn--secundario,
.mbz-ficha .mbz-hero .mbz-btn--secundario { color: var(--mbz-crema); border-color: var(--mbz-linea-osc); }
.mbz-ficha .mbz-seccion--osc .mbz-btn--secundario:hover,
.mbz-ficha .mbz-hero .mbz-btn--secundario:hover { border-color: var(--mbz-lima); background: rgba(140, 200, 79, .12); }
.mbz-ficha .mbz-btn--lima { background: var(--mbz-lima); color: var(--mbz-verde); }
.mbz-ficha .mbz-btn--lima:hover { background: var(--mbz-lima-claro); color: var(--mbz-verde); }
.mbz-ficha .mbz-btn--bloque { width: 100%; }
/* Estado de venta: ocupa el sitio del boton de compra, pero no se pulsa. */
.mbz-ficha .mbz-btn--prox {
	background: rgba(0, 50, 35, .06);
	color: var(--mbz-verde);
	border: 1px solid var(--mbz-linea);
	cursor: default;
	letter-spacing: .1em;
}
.mbz-ficha .mbz-btn--prox::before {
	content: "";
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--mbz-lima);
	flex: none;
}
.mbz-ficha .mbz-btn--prox:active { transform: none; }
.mbz-ficha .mbz-btn--ancho { grid-column: 1 / -1; }

/* Enlace-flecha: el patron de enlace secundario que ya usa la web. */
.mbz-ficha .mbz-flecha {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--mbz-verde);
	padding-block: 6px;
}
.mbz-ficha .mbz-seccion--osc .mbz-flecha { color: var(--mbz-lima); }
.mbz-ficha .mbz-flecha svg { transition: transform .25s var(--mbz-ease); flex: none; }
.mbz-ficha .mbz-flecha:hover svg { transform: translateX(5px); }

/* --------------------------------------------------------------------------
   4. Barra de indice (elemento de firma: la ficha se lee como un documento)
   -------------------------------------------------------------------------- */
.mbz-indice {
	position: sticky;
	top: var(--mbz-sticky-top);
	z-index: 40;
	background: var(--mbz-verde-pie);
	border-block: 1px solid rgba(246, 235, 225, .1);
}
.mbz-indice__int {
	max-width: var(--mbz-ancho);
	margin-inline: auto;
	display: flex;
	align-items: stretch;
	gap: 0;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding-inline: var(--mbz-borde);
	mask-image: linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 24px), transparent 100%);
}
.mbz-indice__int::-webkit-scrollbar { display: none; }
.mbz-ficha .mbz-indice a {
	flex: none;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 15px 16px;
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--mbz-crema-70);
	border-bottom: 2px solid transparent;
	transition: color .2s var(--mbz-ease), border-color .2s var(--mbz-ease);
	white-space: nowrap;
}
.mbz-ficha .mbz-indice a span {
	font-family: "Archivo", sans-serif;
	font-weight: 900;
	font-size: .68rem;
	color: var(--mbz-lima);
	opacity: .55;
	transition: opacity .2s var(--mbz-ease);
}
.mbz-ficha .mbz-indice a:hover { color: var(--mbz-crema); }
.mbz-ficha .mbz-indice a[aria-current="true"] {
	color: var(--mbz-crema);
	border-bottom-color: var(--mbz-lima);
}
.mbz-ficha .mbz-indice a[aria-current="true"] span { opacity: 1; }

/* --------------------------------------------------------------------------
   5. Hero
   -------------------------------------------------------------------------- */
.mbz-hero {
	background: var(--mbz-verde);
	color: var(--mbz-crema);
	padding: clamp(28px, 4vw, 46px) var(--mbz-borde) clamp(48px, 6vw, 78px);
}
.mbz-hero__int {
	max-width: var(--mbz-ancho);
	margin-inline: auto;
	display: grid;
	gap: clamp(30px, 4vw, 56px);
}
.mbz-hero__cat {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .17em;
	text-transform: uppercase;
	color: var(--mbz-lima);
	margin-bottom: 20px;
}
.mbz-hero__cat i {
	width: 3px; height: 3px;
	border-radius: 50%;
	background: currentColor;
	opacity: .6;
}
.mbz-hero h1 {
	font-size: clamp(2.15rem, 6.4vw, 3.55rem);
	line-height: .98;
	margin-bottom: 20px;
}
.mbz-hero__claim {
	font-size: clamp(1.06rem, 2.1vw, 1.25rem);
	font-weight: 500;
	color: var(--mbz-lima);
	line-height: 1.42;
	max-width: 34ch;
	margin-bottom: 16px;
}
.mbz-hero__intro {
	color: var(--mbz-crema-70);
	max-width: 52ch;
	font-size: 1rem;
}

/* Atributos del hero: tres hechos verificables, separados por linea */
.mbz-hero__atrib {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin-top: 26px;
	border-top: 1px solid var(--mbz-linea-osc);
}
.mbz-hero__atrib > div {
	flex: 1 1 150px;
	padding: 16px 18px 16px 0;
	border-bottom: 1px solid var(--mbz-linea-osc);
}
.mbz-hero__atrib dt {
	font-size: .63rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--mbz-lima);
	opacity: .82;
	margin-bottom: 5px;
}
.mbz-hero__atrib dd { font-size: .93rem; color: var(--mbz-crema); line-height: 1.4; }

/* Estado del producto (badge) */
.mbz-ficha .mbz-estado {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-radius: var(--mbz-r-pill);
	padding: 7px 16px;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	background: rgba(140, 200, 79, .14);
	color: var(--mbz-lima);
	border: 1px solid rgba(140, 200, 79, .35);
}
.mbz-ficha .mbz-estado::before {
	content: "";
	width: 7px; height: 7px;
	border-radius: 50%;
	background: currentColor;
	flex: none;
}

/* --------------------------------------------------------------------------
   6. Galeria
   -------------------------------------------------------------------------- */
.mbz-gal__marco { position: relative; }
.mbz-gal__visor {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	border-radius: var(--mbz-r-lg);
	background: var(--mbz-crema);
	-webkit-overflow-scrolling: touch;
	touch-action: pan-x pan-y;
}
.mbz-gal__visor::-webkit-scrollbar { display: none; }
.mbz-gal__d {
	flex: 0 0 100%;
	scroll-snap-align: center;
	scroll-snap-stop: always;
	position: relative;
	aspect-ratio: var(--mbz-ratio, 4 / 5);
	overflow: hidden;
}
.mbz-gal__d img { width: 100%; height: 100%; object-fit: cover; }
.mbz-gal--contain .mbz-gal__d img { object-fit: contain; padding: 6%; }

/* Etiqueta del tipo de toma: viaja con su imagen. */
.mbz-gal__tipo {
	position: absolute;
	left: 16px;
	bottom: 16px;
	background: rgba(0, 50, 35, .86);
	color: var(--mbz-crema);
	border-radius: var(--mbz-r-pill);
	padding: 6px 14px;
	font-size: .63rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	pointer-events: none;
}
/* Contador: fijo sobre el marco, no dentro del carrusel. */
.mbz-gal__cont {
	position: absolute;
	right: 16px;
	bottom: 16px;
	z-index: 2;
	font-family: "Archivo", sans-serif;
	font-weight: 900;
	font-stretch: 100%;
	font-size: .72rem;
	letter-spacing: .06em;
	color: var(--mbz-verde);
	background: rgba(246, 235, 225, .92);
	border-radius: var(--mbz-r-pill);
	padding: 6px 13px;
	pointer-events: none;
	font-variant-numeric: tabular-nums;
}

.mbz-ficha .mbz-gal__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 40px; height: 40px;
	border-radius: 50%;
	background: rgba(0, 50, 35, .3);
	color: #fff;
	display: none;
	align-items: center;
	justify-content: center;
	box-shadow: none;
	opacity: .48;
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
	transition: opacity .25s var(--mbz-ease), background-color .25s var(--mbz-ease), transform .25s var(--mbz-ease);
	z-index: 2;
}
.mbz-ficha .mbz-gal__marco:hover .mbz-gal__nav,
.mbz-ficha .mbz-gal__nav:focus-visible { opacity: 1; }
.mbz-ficha .mbz-gal__nav:hover {
	background: rgba(0, 50, 35, .62);
	color: #fff;
	transform: translateY(-50%) scale(1.06);
}
.mbz-ficha .mbz-gal__nav[disabled] { opacity: 0; pointer-events: none; }
.mbz-ficha .mbz-gal__nav--prev { left: 14px; }
.mbz-ficha .mbz-gal__nav--next { right: 14px; }
@media (hover: hover) and (pointer: fine) {
	.mbz-ficha .mbz-gal__nav { display: flex; }
}

.mbz-ficha .mbz-gal__tiras {
	display: flex;
	gap: 10px;
	margin-top: 12px;
	overflow-x: auto;
	scrollbar-width: none;
	padding-bottom: 2px;
}
.mbz-ficha .mbz-gal__tiras::-webkit-scrollbar { display: none; }
.mbz-ficha .mbz-gal__tira {
	flex: none;
	width: 66px;
	aspect-ratio: 1;
	border-radius: var(--mbz-r-sm);
	overflow: hidden;
	background: var(--mbz-crema);
	border: 2px solid transparent;
	opacity: .55;
	transition: opacity .25s var(--mbz-ease), border-color .25s var(--mbz-ease), transform .25s var(--mbz-ease);
}
.mbz-ficha .mbz-gal__tira img { width: 100%; height: 100%; object-fit: cover; }
.mbz-ficha .mbz-gal__tira:hover { opacity: .85; }
.mbz-ficha .mbz-gal__tira[aria-current="true"] {
	opacity: 1;
	border-color: var(--mbz-lima);
	transform: translateY(-2px);
}

/* Marcador de imagen pendiente: reserva el hueco exacto, sin salto de layout. */
.mbz-ph {
	width: 100%;
	height: 100%;
	min-height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-align: center;
	padding: 18px;
	background:
		repeating-linear-gradient(135deg, rgba(0, 50, 35, .045) 0 10px, transparent 10px 20px),
		var(--mbz-crema);
	color: rgba(0, 50, 35, .58);
	border: 1px dashed rgba(0, 50, 35, .22);
	border-radius: inherit;
}
.mbz-ph b {
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--mbz-naranja-txt);
}
.mbz-ph code {
	font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
	font-size: .68rem;
	line-height: 1.35;
	word-break: break-all;
	color: rgba(0, 50, 35, .7);
}
.mbz-ph small { font-size: .62rem; opacity: .7; }
.mbz-ph--mini { gap: 4px; padding: 8px; }
.mbz-ph--mini code { font-size: .5rem; }
.mbz-ph--mini b, .mbz-ph--mini small { display: none; }

/* --------------------------------------------------------------------------
   7. Modulo de compra
   -------------------------------------------------------------------------- */
.mbz-compra {
	background: var(--mbz-crema-claro);
	color: var(--mbz-tinta);
	border-radius: var(--mbz-r-lg);
	padding: clamp(20px, 3.4vw, 28px);
	margin-top: 30px;
	border: 1px solid rgba(246, 235, 225, .3);
}
.mbz-compra__cab {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 18px;
}
.mbz-compra__tit {
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--mbz-verde);
}

/* Selector de formato */
.mbz-formatos { display: grid; gap: 10px; }
.mbz-formatos--3 { grid-template-columns: repeat(3, 1fr); }
.mbz-ficha .mbz-fmt {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 3px;
	padding: 14px 12px 13px;
	min-height: 88px;
	border: 2px solid var(--mbz-linea);
	border-radius: var(--mbz-r-md);
	background: var(--mbz-blanco);
	text-align: left;
	transition: border-color .22s var(--mbz-ease), background-color .22s var(--mbz-ease),
		transform .22s var(--mbz-ease), box-shadow .22s var(--mbz-ease);
}
.mbz-ficha .mbz-fmt:hover { border-color: var(--mbz-linea-fuerte); transform: translateY(-2px); }
.mbz-ficha .mbz-fmt__n {
	font-family: "Archivo", sans-serif;
	font-weight: 900;
	font-stretch: 100%;
	font-size: 1.18rem;
	line-height: 1.05;
	color: var(--mbz-verde);
	letter-spacing: -.01em;
	overflow-wrap: anywhere;
}
.mbz-ficha .mbz-fmt__s { font-size: .72rem; color: var(--mbz-tinta-70); line-height: 1.25; }
.mbz-ficha .mbz-fmt__p { font-size: .82rem; font-weight: 700; color: var(--mbz-verde); margin-top: auto; }
.mbz-ficha .mbz-fmt[aria-checked="true"] {
	border-color: var(--mbz-verde);
	background: #fff;
	box-shadow: 0 6px 18px rgba(0, 50, 35, .1);
}
.mbz-ficha .mbz-fmt[aria-checked="true"]::after {
	content: "";
	position: absolute;
	top: 9px; right: 9px;
	width: 15px; height: 15px;
	border-radius: 50%;
	background: var(--mbz-lima) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003223' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 10px no-repeat;
}

/* Cantidad + precio */
.mbz-linea-precio {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-top: 20px;
	padding-top: 18px;
	border-top: 1px solid var(--mbz-linea);
}
.mbz-ficha .mbz-cant { display: flex; flex-direction: column; gap: 7px; }
.mbz-ficha .mbz-cant__lab {
	font-size: .63rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--mbz-tinta-70);
}
.mbz-ficha .mbz-cant__ctrl {
	display: flex;
	align-items: center;
	border: 2px solid var(--mbz-linea);
	border-radius: var(--mbz-r-pill);
	background: #fff;
	overflow: hidden;
}
.mbz-ficha .mbz-cant__ctrl button {
	width: 46px; height: 46px;
	display: grid;
	place-items: center;
	font-size: 1.1rem;
	color: var(--mbz-verde);
	transition: background-color .2s var(--mbz-ease);
}
.mbz-ficha .mbz-cant__ctrl button:hover { background: rgba(0, 50, 35, .07); }
.mbz-ficha .mbz-cant__ctrl button:disabled { opacity: .3; cursor: not-allowed; }
.mbz-ficha .mbz-cant__ctrl input {
	width: 46px;
	height: 46px;
	border: 0;
	text-align: center;
	font: 700 1rem/1 "Inter", sans-serif;
	color: var(--mbz-verde);
	background: transparent;
	-moz-appearance: textfield;
	appearance: textfield;
}
.mbz-ficha .mbz-cant__ctrl input::-webkit-outer-spin-button,
.mbz-ficha .mbz-cant__ctrl input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.mbz-ficha .mbz-precio { text-align: right; margin-left: auto; }
.mbz-ficha .mbz-precio__v {
	font-family: "Archivo", sans-serif;
	font-weight: 900;
	font-stretch: 100%;
	font-size: clamp(1.7rem, 4vw, 2.1rem);
	line-height: 1;
	color: var(--mbz-verde);
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
}
.mbz-ficha .mbz-precio__n { font-size: .72rem; color: var(--mbz-tinta-70); margin-top: 6px; }

.mbz-compra__acciones { display: grid; gap: 10px; margin-top: 20px; }
.mbz-compra__nota {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin-top: 16px;
	padding-top: 15px;
	border-top: 1px solid var(--mbz-linea);
	font-size: .78rem;
	line-height: 1.5;
	color: var(--mbz-tinta-70);
}
.mbz-compra__nota svg { flex: none; margin-top: 2px; color: var(--mbz-verde); }

/* --------------------------------------------------------------------------
   8. Rejillas y tarjetas genericas
   -------------------------------------------------------------------------- */
/* Prosa, notas al pie y medios dentro de una seccion */
.mbz-prosa { display: grid; gap: 15px; }
.mbz-prosa p { font-size: 1.02rem; color: var(--mbz-tinta-70); max-width: 62ch; }
.mbz-seccion--osc .mbz-prosa p { color: var(--mbz-crema-70); }
.mbz-prosa + .mbz-checks { margin-top: 24px; }
.mbz-checks + .mbz-acciones, .mbz-prosa + .mbz-acciones { margin-top: 28px; }
.mbz-acciones { display: flex; flex-wrap: wrap; gap: 12px; }
.mbz-nota {
	margin-top: 24px;
	font-size: .83rem;
	line-height: 1.55;
	color: var(--mbz-tinta-70);
	max-width: 70ch;
}
.mbz-seccion--osc .mbz-nota { color: var(--mbz-crema-70); }
.mbz-media {
	width: 100%;
	border-radius: var(--mbz-r-lg);
	overflow: hidden;
	background: var(--mbz-crema);
}
.mbz-media img { width: 100%; height: 100%; object-fit: cover; }
.mbz-col { min-width: 0; }

.mbz-rejilla { display: grid; gap: clamp(14px, 1.8vw, 22px); }
.mbz-rejilla--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mbz-rejilla--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mbz-rejilla--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.mbz-tarjeta {
	background: var(--mbz-blanco);
	border: 1px solid var(--mbz-linea);
	border-radius: var(--mbz-r-lg);
	padding: clamp(22px, 2.6vw, 30px);
	display: flex;
	flex-direction: column;
	gap: 12px;
	transition: transform .3s var(--mbz-ease), box-shadow .3s var(--mbz-ease), border-color .3s var(--mbz-ease);
}
.mbz-seccion--crema .mbz-tarjeta { background: var(--mbz-blanco); }
.mbz-tarjeta h3 {
	font-size: 1.12rem;
	font-stretch: 100%;
	line-height: 1.2;
	color: var(--mbz-verde);
}
.mbz-tarjeta p { font-size: .93rem; color: var(--mbz-tinta-70); }
.mbz-tarjeta--hover:hover {
	transform: translateY(-5px);
	box-shadow: 0 14px 34px rgba(0, 50, 35, .1);
	border-color: var(--mbz-linea-fuerte);
}

/* Beneficios: la etiqueta nombra el eje al que pertenece cada ventaja. */
.mbz-benef {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: clamp(22px, 2.6vw, 28px) 0 0;
	border-top: 2px solid var(--mbz-verde);
}
.mbz-benef__et {
	font-size: .63rem;
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--mbz-naranja-txt);
}
.mbz-benef h3 { font-size: 1.16rem; font-stretch: 100%; color: var(--mbz-verde); line-height: 1.18; }
.mbz-benef p { font-size: .93rem; color: var(--mbz-tinta-70); }

/* Lista de comprobacion */
.mbz-checks { display: grid; gap: 13px; }
.mbz-checks li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: .97rem;
	line-height: 1.5;
}
.mbz-checks li::before {
	content: "";
	flex: none;
	width: 20px; height: 20px;
	margin-top: 2px;
	border-radius: 50%;
	background: var(--mbz-lima) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003223' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.mbz-seccion--osc .mbz-checks li { color: var(--mbz-crema); }

/* Cita / afirmacion de marca */
.mbz-lema {
	margin-top: clamp(34px, 4vw, 50px);
	padding: clamp(26px, 3.4vw, 38px) clamp(24px, 3.4vw, 40px);
	border-radius: var(--mbz-r-lg);
	background: var(--mbz-verde);
	color: var(--mbz-crema);
	font-family: "Archivo", sans-serif;
	font-weight: 900;
	font-stretch: 125%;
	font-size: clamp(1.25rem, 2.7vw, 1.85rem);
	line-height: 1.14;
	letter-spacing: -.012em;
	text-wrap: balance;
}
.mbz-lema span { color: var(--mbz-lima); display: block; }
.mbz-seccion--osc .mbz-lema { background: var(--mbz-verde-pie); }
.mbz-seccion--crema .mbz-lema { background: var(--mbz-verde); }

/* --------------------------------------------------------------------------
   9. Secuencia (como funciona / fases del tratamiento)
   -------------------------------------------------------------------------- */
.mbz-sec { display: grid; gap: 0; position: relative; }
.mbz-paso {
	position: relative;
	padding: 0 0 34px 40px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.mbz-paso:last-child { padding-bottom: 0; }
.mbz-paso::before {
	content: "";
	position: absolute;
	left: 13px; top: 26px; bottom: 0;
	width: 2px;
	background: var(--mbz-linea);
}
.mbz-paso:last-child::before { display: none; }
.mbz-paso__n {
	position: absolute;
	left: 0; top: 0;
	width: 28px; height: 28px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--mbz-verde);
	color: var(--mbz-lima);
	font-family: "Archivo", sans-serif;
	font-weight: 900;
	font-stretch: 100%;
	font-size: .72rem;
}
.mbz-paso h3 { font-size: 1.14rem; font-stretch: 100%; color: var(--mbz-verde); }
.mbz-paso p { font-size: .95rem; color: var(--mbz-tinta-70); }
.mbz-paso__datos {
	display: grid;
	gap: 8px 22px;
	margin-top: 4px;
	padding-top: 12px;
	border-top: 1px solid var(--mbz-linea);
	font-size: .85rem;
}
.mbz-paso__datos div { display: flex; gap: 8px; flex-wrap: wrap; }
.mbz-paso__datos dt {
	font-size: .63rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--mbz-tinta-70);
	min-width: 78px;
	padding-top: 3px;
}
.mbz-paso__datos dd { color: var(--mbz-verde); font-weight: 600; }
.mbz-seccion--osc .mbz-paso::before { background: var(--mbz-linea-osc); }
.mbz-seccion--osc .mbz-paso__n { background: var(--mbz-lima); color: var(--mbz-verde); }
.mbz-seccion--osc .mbz-paso h3 { color: var(--mbz-crema); }
.mbz-seccion--osc .mbz-paso p { color: var(--mbz-crema-70); }
.mbz-seccion--osc .mbz-paso__datos { border-color: var(--mbz-linea-osc); }
.mbz-seccion--osc .mbz-paso__datos dt { color: var(--mbz-crema-70); }
.mbz-seccion--osc .mbz-paso__datos dd { color: var(--mbz-lima); }

/* --------------------------------------------------------------------------
   10. Datos: tabla de definicion
   -------------------------------------------------------------------------- */
.mbz-datos { display: grid; }
.mbz-datos > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2px;
	padding: 15px 0;
	border-bottom: 1px solid var(--mbz-linea);
}
.mbz-datos dt {
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .11em;
	text-transform: uppercase;
	color: var(--mbz-tinta-70);
}
.mbz-datos dd {
	font-size: .98rem;
	font-weight: 600;
	color: var(--mbz-verde);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.mbz-datos dd em { font-style: normal; font-weight: 400; color: var(--mbz-tinta-70); }
.mbz-seccion--osc .mbz-datos > div { border-color: var(--mbz-linea-osc); }
.mbz-seccion--osc .mbz-datos dt { color: var(--mbz-crema-70); }
.mbz-seccion--osc .mbz-datos dd { color: var(--mbz-crema); }

/* Panel de aplicacion: los cuatro numeros que el tecnico busca primero */
.mbz-aplic {
	display: grid;
	gap: 1px;
	background: var(--mbz-linea-osc);
	border-radius: var(--mbz-r-lg);
	overflow: hidden;
}
.mbz-aplic > div { background: var(--mbz-verde-claro); padding: 22px 20px; }
.mbz-aplic dt {
	font-size: .63rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--mbz-lima);
	margin-bottom: 8px;
}
.mbz-aplic dd {
	font-family: "Archivo", sans-serif;
	font-weight: 900;
	font-stretch: 100%;
	font-size: 1.4rem;
	line-height: 1.05;
	color: var(--mbz-crema);
	letter-spacing: -.015em;
}
.mbz-aplic dd small {
	display: block;
	font-family: "Inter", sans-serif;
	font-weight: 400;
	font-size: .74rem;
	letter-spacing: 0;
	color: var(--mbz-crema-70);
	margin-top: 7px;
	line-height: 1.4;
}

/* --------------------------------------------------------------------------
   11. Acordeon (informacion tecnica y FAQ)
   -------------------------------------------------------------------------- */
.mbz-acor { display: grid; gap: 10px; }
.mbz-acor__it {
	background: var(--mbz-blanco);
	border: 1px solid var(--mbz-linea);
	border-radius: var(--mbz-r-md);
	overflow: hidden;
	transition: border-color .25s var(--mbz-ease), box-shadow .25s var(--mbz-ease);
}
.mbz-acor__it:has(button[aria-expanded="true"]) {
	border-color: var(--mbz-linea-fuerte);
	box-shadow: 0 8px 22px rgba(0, 50, 35, .07);
}
.mbz-ficha .mbz-acor__b {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 19px 22px;
	text-align: left;
	font-family: "Archivo", sans-serif;
	font-weight: 900;
	font-stretch: 100%;
	font-size: 1.02rem;
	line-height: 1.28;
	color: var(--mbz-verde);
	transition: background-color .2s var(--mbz-ease);
}
.mbz-ficha .mbz-acor__b:hover { background: rgba(0, 50, 35, .035); }
.mbz-ficha .mbz-acor__ic {
	flex: none;
	width: 26px; height: 26px;
	border-radius: 50%;
	border: 1.5px solid var(--mbz-linea-fuerte);
	display: grid;
	place-items: center;
	position: relative;
	transition: background-color .25s var(--mbz-ease), border-color .25s var(--mbz-ease), transform .3s var(--mbz-ease);
}
.mbz-ficha .mbz-acor__ic::before,
.mbz-ficha .mbz-acor__ic::after {
	content: "";
	position: absolute;
	background: var(--mbz-verde);
	transition: opacity .25s var(--mbz-ease), background-color .25s var(--mbz-ease);
}
.mbz-ficha .mbz-acor__ic::before { width: 11px; height: 1.5px; }
.mbz-ficha .mbz-acor__ic::after { width: 1.5px; height: 11px; }
.mbz-ficha .mbz-acor__b[aria-expanded="true"] .mbz-acor__ic {
	background: var(--mbz-verde);
	border-color: var(--mbz-verde);
	transform: rotate(180deg);
}
.mbz-ficha .mbz-acor__b[aria-expanded="true"] .mbz-acor__ic::before { background: var(--mbz-lima); }
.mbz-ficha .mbz-acor__b[aria-expanded="true"] .mbz-acor__ic::after { opacity: 0; }
.mbz-acor__p {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .34s var(--mbz-ease);
}
.mbz-acor__p[data-abierto="1"] { grid-template-rows: 1fr; }
.mbz-acor__p > div { overflow: hidden; }
.mbz-acor__c {
	padding: 0 22px 22px;
	font-size: .95rem;
	color: var(--mbz-tinta-70);
	display: grid;
	gap: 12px;
}
.mbz-acor__c p + p { margin-top: 0; }

/* --------------------------------------------------------------------------
   12. Documentacion
   -------------------------------------------------------------------------- */
.mbz-ficha .mbz-docs { display: grid; gap: 12px; }
.mbz-ficha .mbz-doc {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 20px;
	border: 1px solid var(--mbz-linea);
	border-radius: var(--mbz-r-md);
	background: var(--mbz-blanco);
	transition: border-color .25s var(--mbz-ease), transform .25s var(--mbz-ease), box-shadow .25s var(--mbz-ease);
}
.mbz-ficha .mbz-doc__ic {
	flex: none;
	width: 42px; height: 42px;
	border-radius: var(--mbz-r-sm);
	display: grid;
	place-items: center;
	background: rgba(0, 50, 35, .07);
	color: var(--mbz-verde);
}
.mbz-ficha .mbz-doc__t { flex: 1; min-width: 0; }
.mbz-ficha .mbz-doc__t strong {
	display: block;
	font-family: "Archivo", sans-serif;
	font-weight: 900;
	font-stretch: 100%;
	font-size: .98rem;
	color: var(--mbz-verde);
	line-height: 1.25;
}
.mbz-ficha .mbz-doc__t span { font-size: .78rem; color: var(--mbz-tinta-70); }
.mbz-ficha .mbz-doc__e {
	flex: none;
	font-size: .63rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	border-radius: var(--mbz-r-pill);
	padding: 6px 13px;
	background: rgba(45, 45, 45, .07);
	color: var(--mbz-tinta-70);
}
.mbz-ficha a.mbz-doc:hover { border-color: var(--mbz-verde); transform: translateY(-3px); box-shadow: 0 10px 26px rgba(0, 50, 35, .09); }
.mbz-ficha a.mbz-doc .mbz-doc__e { background: rgba(140, 200, 79, .22); color: var(--mbz-verde); }
.mbz-ficha .mbz-doc[aria-disabled="true"] { opacity: .72; background: transparent; border-style: dashed; }

/* --------------------------------------------------------------------------
   13. Tratamiento: pack, matriz y formatos
   -------------------------------------------------------------------------- */
.mbz-pieza {
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr);
	gap: 18px;
	align-items: start;
	padding: 20px;
	border: 1px solid var(--mbz-linea);
	border-radius: var(--mbz-r-lg);
	background: var(--mbz-blanco);
	transition: transform .3s var(--mbz-ease), box-shadow .3s var(--mbz-ease), border-color .3s var(--mbz-ease);
}
.mbz-pieza:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(0, 50, 35, .09); border-color: var(--mbz-linea-fuerte); }
.mbz-pieza__img {
	aspect-ratio: 1;
	border-radius: var(--mbz-r-sm);
	overflow: hidden;
	background: var(--mbz-crema);
}
.mbz-pieza__img img { width: 100%; height: 100%; object-fit: cover; }
.mbz-pieza__c { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.mbz-pieza__et {
	font-size: .61rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--mbz-naranja-txt);
}
.mbz-pieza h3 { font-size: 1.08rem; font-stretch: 100%; color: var(--mbz-verde); }
.mbz-pieza p { font-size: .9rem; color: var(--mbz-tinta-70); }
.mbz-pieza__pie {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 4px;
}
.mbz-ficha .mbz-tag {
	font-size: .68rem;
	font-weight: 600;
	color: var(--mbz-verde);
	background: rgba(0, 50, 35, .06);
	border-radius: var(--mbz-r-pill);
	padding: 4px 11px;
}

/* Matriz herramienta x fase: la prueba visual de que es un sistema. */
.mbz-matriz-env { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 8px; }
.mbz-matriz {
	width: 100%;
	min-width: 560px;
	border-collapse: collapse;
	font-size: .88rem;
}
.mbz-matriz th, .mbz-matriz td {
	padding: 14px 12px;
	border-bottom: 1px solid var(--mbz-linea-osc);
	text-align: center;
}
.mbz-matriz thead th {
	font-size: .63rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--mbz-lima);
	border-bottom-color: rgba(140, 200, 79, .4);
	white-space: nowrap;
}
.mbz-matriz tbody th {
	text-align: left;
	font-weight: 600;
	color: var(--mbz-crema);
	white-space: nowrap;
}
.mbz-matriz td span {
	display: inline-block;
	width: 12px; height: 12px;
	border-radius: 50%;
	background: rgba(246, 235, 225, .16);
}
.mbz-matriz td.on span { background: var(--mbz-lima); box-shadow: 0 0 0 5px rgba(140, 200, 79, .16); }
.mbz-matriz caption {
	caption-side: bottom;
	text-align: left;
	padding-top: 14px;
	font-size: .78rem;
	color: var(--mbz-crema-70);
}

/* Formatos comparados */
.mbz-ficha .mbz-plan {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: clamp(24px, 3vw, 32px);
	border: 1px solid var(--mbz-linea);
	border-radius: var(--mbz-r-lg);
	background: var(--mbz-blanco);
	transition: transform .3s var(--mbz-ease), box-shadow .3s var(--mbz-ease), border-color .3s var(--mbz-ease);
}
.mbz-ficha .mbz-plan--dest { border-color: var(--mbz-verde); border-width: 2px; }
.mbz-ficha .mbz-plan:hover { transform: translateY(-5px); box-shadow: 0 16px 38px rgba(0, 50, 35, .1); }
.mbz-ficha .mbz-plan__et {
	display: inline-flex;
	align-self: flex-start;
	font-size: .61rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--mbz-verde);
	background: var(--mbz-lima);
	border-radius: var(--mbz-r-pill);
	padding: 4px 12px;
}
.mbz-ficha .mbz-plan h3 { font-size: 1.45rem; color: var(--mbz-verde); }
.mbz-ficha .mbz-plan__sub { font-size: .88rem; color: var(--mbz-tinta-70); }
.mbz-ficha .mbz-plan__p {
	font-family: "Archivo", sans-serif;
	font-weight: 900;
	font-stretch: 100%;
	font-size: 1.85rem;
	line-height: 1;
	color: var(--mbz-verde);
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
}
.mbz-ficha .mbz-plan ul { display: grid; gap: 9px; padding-top: 14px; border-top: 1px solid var(--mbz-linea); }
.mbz-ficha .mbz-plan li { display: flex; gap: 10px; font-size: .88rem; color: var(--mbz-tinta-70); line-height: 1.45; }
.mbz-ficha .mbz-plan li::before { content: ""; flex: none; width: 6px; height: 6px; margin-top: 8px; border-radius: 50%; background: var(--mbz-lima); }
.mbz-ficha .mbz-plan .mbz-btn { margin-top: auto; }

/* --------------------------------------------------------------------------
   14. Cierre y relacionados
   -------------------------------------------------------------------------- */
.mbz-cierre {
	position: relative;
	padding: clamp(60px, 8vw, 106px) var(--mbz-borde);
	background: var(--mbz-verde);
	color: var(--mbz-crema);
	overflow: hidden;
	isolation: isolate;
}
.mbz-cierre__bg { position: absolute; inset: 0; z-index: -2; }
.mbz-cierre__bg img { width: 100%; height: 100%; object-fit: cover; }
.mbz-cierre::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(100deg, rgba(0, 50, 35, .95) 0%, rgba(0, 50, 35, .84) 52%, rgba(0, 50, 35, .66) 100%);
}
.mbz-cierre__int { max-width: var(--mbz-ancho); margin-inline: auto; }
.mbz-cierre h2 { font-size: clamp(1.85rem, 4.6vw, 3rem); max-width: 18ch; }
.mbz-cierre p { margin-top: 20px; max-width: 54ch; color: var(--mbz-crema-70); }
.mbz-cierre__acc { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

.mbz-rel {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--mbz-linea);
	border-radius: var(--mbz-r-lg);
	overflow: hidden;
	background: var(--mbz-blanco);
	transition: transform .3s var(--mbz-ease), box-shadow .3s var(--mbz-ease), border-color .3s var(--mbz-ease);
}
.mbz-rel:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(0, 50, 35, .1); border-color: var(--mbz-linea-fuerte); }
.mbz-rel__img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--mbz-crema); }
.mbz-rel__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--mbz-ease); }
.mbz-rel:hover .mbz-rel__img img { transform: scale(1.045); }
.mbz-rel__c { padding: 22px; display: flex; flex-direction: column; gap: 9px; flex: 1; }
.mbz-rel__et {
	font-size: .61rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--mbz-naranja-txt);
}
.mbz-rel h3 { font-size: 1.1rem; font-stretch: 100%; color: var(--mbz-verde); }
.mbz-rel p { font-size: .88rem; color: var(--mbz-tinta-70); }
.mbz-ficha .mbz-rel .mbz-flecha { margin-top: auto; padding-top: 8px; }

/* Modulo reservado por el cliente: preparado, oculto hasta tener contenido. */
.mbz-reservado { display: none; }
body.elementor-editor-active .mbz-reservado { display: block; outline: 2px dashed rgba(255, 100, 0, .5); }

/* --------------------------------------------------------------------------
   15. Entrada al hacer scroll
   -------------------------------------------------------------------------- */
.mbz-rise {
	opacity: 0;
	transform: translate3d(0, 16px, 0);
	transition: opacity .58s var(--mbz-ease), transform .58s var(--mbz-ease);
	transition-delay: var(--mbz-d, 0ms);
}
.mbz-rise.mbz-in { opacity: 1; transform: none; }
.mbz-js-off .mbz-rise { opacity: 1; transform: none; }

/* --------------------------------------------------------------------------
   16. Puntos de ruptura — el movil se disena, no se apila
   -------------------------------------------------------------------------- */

/* Movil pequeno: una sola columna en todas las rejillas y formatos apilados. */
@media (max-width: 599px) {
	.mbz-formatos--3 { grid-template-columns: 1fr; }
	.mbz-ficha .mbz-fmt {
		flex-direction: row;
		align-items: center;
		gap: 12px;
		min-height: 60px;
		padding: 12px 14px;
	}
	.mbz-ficha .mbz-fmt__s { flex: 1; }
	.mbz-ficha .mbz-fmt__p { margin: 0; }
	.mbz-ficha .mbz-fmt[aria-checked="true"]::after { position: static; }
}

@media (max-width: 479px) {
	.mbz-ficha { font-size: 16px; }
	.mbz-pieza { grid-template-columns: 64px minmax(0, 1fr); gap: 14px; padding: 16px; }
	.mbz-ficha .mbz-doc { flex-wrap: wrap; }
	.mbz-ficha .mbz-doc__t { flex: 1 1 100%; order: 3; }
}

/* Tablet: la galeria no debe estirarse a todo el ancho o come la pantalla. */
@media (min-width: 600px) and (max-width: 1023px) {
	.mbz-hero__gal { max-width: 460px; }
}

@media (min-width: 480px) {
	.mbz-rejilla--2, .mbz-rejilla--3, .mbz-rejilla--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mbz-datos > div { grid-template-columns: 40% minmax(0, 1fr); gap: 18px; align-items: baseline; }
	.mbz-aplic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Tablet */
@media (min-width: 768px) {
	.mbz-hero__atrib > div { padding-right: 26px; }
	.mbz-compra__acciones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mbz-ficha .mbz-cierre__acc .mbz-btn { min-width: 220px; }
	.mbz-ficha .mbz-gal__tira { width: 74px; }
	.mbz-sec--h { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
	.mbz-sec--h .mbz-paso { padding: 42px 0 0; }
	.mbz-sec--h .mbz-paso::before {
		left: 0; right: 0; top: 13px; bottom: auto;
		width: auto; height: 2px;
	}
	.mbz-sec--h .mbz-paso:last-child::before { display: block; }
	.mbz-sec--h .mbz-paso:last-child::before { background: linear-gradient(90deg, var(--mbz-linea) 0 50%, transparent 50%); }
}

/* Portatil */
@media (min-width: 1024px) {
	.mbz-hero__int {
		grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
		align-items: stretch;
	}
	.mbz-hero__gal { display: flex; flex-direction: column; min-height: 0; }
	.mbz-hero__gal .mbz-gal { flex: 1; display: flex; flex-direction: column; min-height: 0; }
	.mbz-hero__gal .mbz-gal__marco { flex: 1; min-height: 420px; }
	.mbz-hero__gal .mbz-gal__visor { height: 100%; }
	.mbz-hero__gal .mbz-gal__d { aspect-ratio: auto; height: 100%; }
	.mbz-hero__gal .mbz-gal__tiras { flex: none; }
	.mbz-rejilla--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mbz-rejilla--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	/* 5 tarjetas en 3 columnas: la primera ocupa dos y no queda hueco. */
	.mbz-rejilla--primera-doble > :first-child { grid-column: span 2; }
	.mbz-aplic { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.mbz-dos-col {
		display: grid;
		grid-template-columns: minmax(0, .78fr) minmax(0, 1fr);
		gap: clamp(32px, 4vw, 62px);
		align-items: start;
	}
	.mbz-dos-col--media { grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); }
	.mbz-dos-col > .mbz-cab { margin-bottom: 0; position: sticky; top: calc(var(--mbz-sticky-top) + 88px); }
	.mbz-dos-col .mbz-col > .mbz-cab { position: static; margin-bottom: 26px; }
	.mbz-benef { border-top-width: 3px; }
}

/* Desktop grande: la ficha no se estira mas alla de su medida optima. */
@media (min-width: 1440px) {
	.mbz-ficha { --mbz-ancho: 1280px; }
}

/* --------------------------------------------------------------------------
   17. Accesibilidad
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.mbz-ficha *,
	.mbz-ficha *::before,
	.mbz-ficha *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	.mbz-rise { opacity: 1; transform: none; }
	.mbz-gal__visor { scroll-behavior: auto; }
	.mbz-tarjeta--hover:hover, .mbz-pieza:hover, .mbz-ficha .mbz-plan:hover, .mbz-rel:hover,
	.mbz-ficha a.mbz-doc:hover, .mbz-ficha .mbz-fmt:hover { transform: none; }
	.mbz-rel:hover .mbz-rel__img img { transform: none; }
}

.mbz-solo-lector {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@media (forced-colors: active) {
	.mbz-ficha .mbz-fmt[aria-checked="true"] { outline: 2px solid; }
	.mbz-ficha .mbz-indice a[aria-current="true"] { outline: 1px solid; }
}
