/*!
 * Manesencia Elements — hoja de estilos única.
 * Paleta y tipografía: manual de marca oficial (§6 y §7).
 */


/* ######################################################################
   Sistema de diseño (tokens, base, cabecera, pie, decoración)
   ###################################################################### */
/* =====================================================================
   MANESENCIA — Sistema de diseño
   1. Tokens
   2. Reset / base
   3. Tipografía
   4. Utilidades de composición
   5. Botones y enlaces
   6. Formularios
   7. Header
   8. Footer
   9. Decoración (ondas, hojas, recortes)
   10. Accesibilidad
   11. Responsive
   ===================================================================== */

/* ------------------------------------------------------------------
   1. TOKENS
------------------------------------------------------------------ */
:root {
	/* ------------------------------------------------------------------
	   Paleta oficial — Manual de marca Manesencia, §6.
	   Los nombres de token se conservan por compatibilidad; entre paréntesis
	   va el nombre de marca. No introduzcas colores fuera de esta lista.
	   ------------------------------------------------------------------ */

	/* Verdes */
	--mns-green-900: #2C4522;  /* Verde Profundo — fondo oscuro de marca */
	--mns-green-800: #2C4522;  /* Verde Profundo — footer, franja de datos, botón primario */
	--mns-green-700: #4B6B3A;  /* Verde Selva — estado hover del botón primario */
	--mns-green-500: #4B6B3A;  /* Verde Selva — titulares, iconos, follaje principal */
	--mns-green-300: #8AA05A;  /* Verde Hoja — acentos suaves */
	--mns-green-mid: #6C813C;  /* Verde Medio — follaje intermedio */

	/* Azul */
	--mns-sea: #1E6B75;        /* Azul Mar — mar/raíces, datos, enlaces en texto corrido */

	/* Dorados */
	--mns-gold-600: #C08A22;   /* Dorado Bronce — hover, monocromo dorado */
	--mns-gold-500: #D89B2B;   /* Dorado Sol — acentos, filetes, CTA */
	--mns-gold-300: #D89B2B;   /* Dorado Sol; lo decorativo se atenúa con opacidad, no con otro hex */

	/* Marrones */
	--mns-brown-900: #3B2F1F;  /* Marrón Tierra — texto principal, logotipo */
	--mns-brown-700: #54401F;  /* Marrón Rama — ramas y detalles */

	/* Cremas */
	--mns-cream-50:  #F7F3F0;  /* Crema Arte — superficies, tarjetas, cabecera */
	--mns-cream-100: #F7F3F0;  /* Crema Arte — fondo base de página */
	--mns-cream-200: #F2EFE8;  /* Crema Arena — fondo institucional / sección alterna */
	/* Matiz de interfaz, no color de marca: 8 % de Marrón Tierra sobre Crema Arena. */
	--mns-cream-300: #E9E3D9;

	/* Tinta */
	--mns-ink-900: #3B2F1F;             /* Marrón Tierra */
	--mns-ink-600: #4A4A46;             /* Gris Texto */
	--mns-ink-400: rgba(74, 74, 70, .7);/* Gris Texto atenuado */
	/* El borde es una veladura de Marrón Tierra: funciona sobre cualquier crema. */
	--mns-line: rgba(59, 47, 31, .14);

	/* Semánticos */
	--mns-bg:            var(--mns-cream-100);
	--mns-bg-alt:        var(--mns-cream-200);
	--mns-surface:       var(--mns-cream-50);
	--mns-text:          var(--mns-ink-600);
	/* Decisión declarada: el manual asigna Verde Selva a titulares, pero a 48–56 px
	   resulta demasiado claro frente a la referencia. Se usa Verde Profundo y se deja
	   el cambio a una línea si la fundación prefiere ceñirse al manual. */
	--mns-heading:       var(--mns-green-900);
	--mns-primary:       var(--mns-green-800);
	--mns-primary-hover: var(--mns-green-700);
	--mns-accent:        var(--mns-gold-500);
	--mns-accent-hover:  var(--mns-gold-600);

	/* ------------------------------------------------------------------
	   Tipografía — Manual de marca §7.
	   Cinzel (versalitas) para titulares institucionales en caja alta;
	   EB Garamond para titulares en caja mixta (coincide con el logotipo);
	   Montserrat para interfaz y cuerpo.
	   Los .ttf con licencia OFL vienen en el kit de marca: 05_TIPOGRAFIA/fuentes/.
	   ------------------------------------------------------------------ */
	--mns-font-display: 'EB Garamond', 'Cinzel', Georgia, 'Times New Roman', serif;
	--mns-font-institutional: 'Cinzel', 'EB Garamond', Georgia, serif;
	--mns-font-ui: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

	/* Escala fluida: clamp(min, preferido, max) */
	--mns-fs-h1:      clamp(2rem, 1.35rem + 2.6vw, 3.5rem);    /* 32 → 56 */
	--mns-fs-h1-page: clamp(1.85rem, 1.3rem + 2.2vw, 3rem);    /* 30 → 48 */
	--mns-fs-h2:      clamp(1.5rem, 1.2rem + 1.2vw, 2.125rem); /* 24 → 34 */
	--mns-fs-h3:      clamp(1.15rem, 1.02rem + .5vw, 1.375rem);/* 18 → 22 */
	--mns-fs-lead:    clamp(.975rem, .93rem + .2vw, 1.0625rem);/* 15.6 → 17 */
	--mns-fs-body:    .9375rem;  /* 15 */
	--mns-fs-small:   .8125rem;  /* 13 */
	--mns-fs-eyebrow: .75rem;    /* 12 */

	/* Ritmo */
	--mns-section-y: clamp(3rem, 1.5rem + 6vw, 6rem); /* 48 → 96 */
	--mns-gap:       1.5rem;
	--mns-container: 1280px;
	--mns-content:   1200px;

	/* Forma */
	--mns-radius-sm: 8px;
	--mns-radius:    12px;
	--mns-radius-lg: 16px;
	--mns-radius-pill: 999px;

	/* Sombras — veladuras de Marrón Tierra, difusas, nunca duras */
	--mns-shadow-sm: 0 1px 2px rgba(59, 47, 31, .05);
	--mns-shadow:    0 4px 18px rgba(59, 47, 31, .08);
	--mns-shadow-lg: 0 14px 40px rgba(59, 47, 31, .12);

	/* Movimiento */
	--mns-ease: cubic-bezier(.4, 0, .2, 1);
	--mns-dur: .28s;

	--mns-header-h: 88px;
}

/* Antetítulo institucional en caja alta: Montserrat Medium con tracking amplio,
   como el bloque «FUNDACIÓN» del logotipo (manual §7). */

/* ------------------------------------------------------------------
   2. RESET / BASE
------------------------------------------------------------------ */
body.mns *, body.mns *::before, body.mns *::after{ box-sizing: border-box; }

body.mns {
	margin: 0;
	background-color: var(--mns-bg);
	color: var(--mns-text);
	font-family: var(--mns-font-ui);
	font-size: var(--mns-fs-body);
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.mns img{ max-width: 100%; height: auto; }
body.mns svg{ display: block; }

/* ------------------------------------------------------------------
   3. TIPOGRAFÍA
------------------------------------------------------------------ */
/* Los estilos base de titular van dentro de :where() para que su especificidad
   sea la de `.mns` (0,1,0): así superan a los selectores de elemento del tema
   padre pero NO a las clases de componente (.mns-cart-item__name, etc.), que
   se cargan después y deben poder redefinir tamaño y familia. */
body.mns :where(h1, h2, h3, h4),
body.mns :where(.mns-display){
	font-family: var(--mns-font-display);
	color: var(--mns-heading);
	font-weight: 600;
	margin: 0 0 .5em;
}

body.mns :where(h1){ font-size: var(--mns-fs-h1); line-height: 1.12; letter-spacing: -.01em; }
body.mns :where(h2){ font-size: var(--mns-fs-h2); line-height: 1.25; }
body.mns :where(h3){ font-size: var(--mns-fs-h3); line-height: 1.3; }
body.mns :where(h4){ font-size: 1.0625rem; line-height: 1.4; }

body.mns p{ margin: 0 0 1.1em; }
body.mns p:last-child{ margin-bottom: 0; }

/* Título de página interior (Nosotros, Impacto…) */
body.mns .mns-title--page{ font-size: var(--mns-fs-h1-page); line-height: 1.15; }

/* Eyebrow: "NOSOTROS", "TIENDA SOLIDARIA"… */
body.mns .mns-eyebrow{
	display: inline-block;
	font-family: var(--mns-font-ui);
	font-size: var(--mns-fs-eyebrow);
	font-weight: 500;
	line-height: 1;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--mns-ink-400);
	margin-bottom: 1.25rem;
}
body.mns .mns-eyebrow--gold{ color: var(--mns-gold-600); }

body.mns .mns-lead{ font-size: var(--mns-fs-lead); line-height: 1.65; }
body.mns .mns-small{ font-size: var(--mns-fs-small); }
body.mns .mns-meta{ font-size: var(--mns-fs-small); color: var(--mns-ink-400); }

/* Filete dorado corto bajo un título (footer, "Nuestra historia"…) */
body.mns .mns-rule::after{
	content: "";
	display: block;
	width: 40px;
	height: 2px;
	margin-top: .75rem;
	background: var(--mns-gold-500);
	border-radius: 2px;
}
body.mns .mns-rule--center::after{ margin-inline: auto; }

/* ------------------------------------------------------------------
   4. UTILIDADES DE COMPOSICIÓN
------------------------------------------------------------------ */
body.mns .mns-container{
	width: 100%;
	max-width: var(--mns-content);
	margin-inline: auto;
	padding-inline: clamp(1rem, .5rem + 2vw, 2.5rem);
}
body.mns .mns-section{ padding-block: var(--mns-section-y); }
body.mns .mns-section--alt{ background: var(--mns-bg-alt); }
body.mns .mns-section--green{ background: var(--mns-green-800); color: rgba(247, 243, 240, .82); }
body.mns .mns-section--green h2, body.mns .mns-section--green h3{ color: var(--mns-cream-50); }

body.mns .mns-grid{ display: grid; gap: var(--mns-gap); }
body.mns .mns-grid--2{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.mns .mns-grid--3{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.mns .mns-grid--4{ grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Tarjeta base — usada por programas, noticias, productos, bloques de confianza. */
body.mns .mns-card{
	background: var(--mns-surface);
	border: 1px solid var(--mns-line);
	border-radius: var(--mns-radius-lg);
	box-shadow: var(--mns-shadow-sm);
	overflow: hidden;
}
body.mns .mns-card--pad{ padding: 1.5rem; }
body.mns .mns-card--flat{ box-shadow: none; background: var(--mns-cream-200); border-color: transparent; }
body.mns .mns-card--dark{
	background: var(--mns-green-900);
	border-color: transparent;
	color: rgba(247, 243, 240, .78);
}
body.mns .mns-card--dark h2, body.mns .mns-card--dark h3{ color: var(--mns-cream-50); }

/* Círculo de icono (52–64 px) presente en casi todas las secciones. */
body.mns .mns-icon-circle{
	display: inline-grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--mns-cream-200);
	color: var(--mns-green-800);
	flex: 0 0 auto;
}
body.mns .mns-icon-circle--green{ background: var(--mns-green-800); color: var(--mns-cream-50); }
body.mns .mns-icon-circle--gold{ background: var(--mns-gold-500);  color: #fff; }
body.mns .mns-icon-circle--lg{ width: 64px; height: 64px; }
body.mns .mns-icon-circle svg{ width: 24px; height: 24px; }

/* Separadores verticales entre columnas (valores, estadísticas, garantías). */
body.mns .mns-divided > * + *{ border-left: 1px solid var(--mns-line); }
body.mns .mns-divided--onGreen > * + *{ border-left-color: rgba(247, 243, 240, .18); }

/* ------------------------------------------------------------------
   5. BOTONES Y ENLACES
------------------------------------------------------------------ */
body.mns .mns-btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .625rem;
	padding: .875rem 1.5rem;
	font-family: var(--mns-font-ui);
	font-size: var(--mns-fs-body);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: var(--mns-radius-sm);
	cursor: pointer;
	transition: background-color var(--mns-dur) var(--mns-ease),
	            border-color var(--mns-dur) var(--mns-ease),
	            color var(--mns-dur) var(--mns-ease),
	            transform var(--mns-dur) var(--mns-ease),
	            box-shadow var(--mns-dur) var(--mns-ease);
}
body.mns .mns-btn svg{ width: 18px; height: 18px; }
body.mns .mns-btn:hover{ transform: translateY(-1px); }
body.mns .mns-btn:active{ transform: translateY(0); }

body.mns .mns-btn--primary{ background: var(--mns-green-800); color: var(--mns-cream-50); }
body.mns .mns-btn--primary:hover{ background: var(--mns-green-700); color: var(--mns-cream-50); box-shadow: var(--mns-shadow); }

body.mns .mns-btn--gold{ background: var(--mns-gold-500); color: #fff; border-radius: var(--mns-radius-pill); }
body.mns .mns-btn--gold:hover{ background: var(--mns-gold-600); color: #fff; box-shadow: var(--mns-shadow); }

body.mns .mns-btn--outline{ background: transparent; color: var(--mns-green-800); border-color: var(--mns-line); }
body.mns .mns-btn--outline:hover{ border-color: var(--mns-green-800); background: var(--mns-cream-50); }

body.mns .mns-btn--block{ width: 100%; }

/* La flecha se desplaza al hacer hover — presente en todos los CTA de la referencia. */
body.mns .mns-btn .mns-arrow{ transition: transform var(--mns-dur) var(--mns-ease); }
body.mns .mns-btn:hover .mns-arrow{ transform: translateX(4px); }

/* Enlace de texto "Ver más →" / "Leer más →" */
body.mns .mns-link{
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-size: var(--mns-fs-small);
	font-weight: 500;
	color: var(--mns-gold-600);
	text-decoration: none;
	transition: color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-link svg{ width: 14px; height: 14px; transition: transform var(--mns-dur) var(--mns-ease); }
body.mns .mns-link:hover{ color: var(--mns-green-800); }
body.mns .mns-link:hover svg{ transform: translateX(3px); }

/* ------------------------------------------------------------------
   6. FORMULARIOS
------------------------------------------------------------------ */
/* Igual que con los titulares: el selector base va en :where() para que valga
   0,1,0 y cualquier clase de componente cargada después pueda redefinirlo. */
body.mns :where(
	input[type="text"], input[type="email"], input[type="tel"],
	input[type="search"], input[type="number"], input[type="password"],
	select, textarea, .elementor-field-textual
){
	width: 100%;
	min-height: 48px;
	padding: .75rem 1rem;
	background: var(--mns-cream-50);
	border: 1px solid var(--mns-line);
	border-radius: var(--mns-radius-sm);
	font-family: var(--mns-font-ui);
	font-size: var(--mns-fs-body);
	color: var(--mns-ink-900);
	transition: border-color var(--mns-dur) var(--mns-ease), box-shadow var(--mns-dur) var(--mns-ease);
}
body.mns :where(textarea){ min-height: 132px; resize: vertical; }
body.mns ::placeholder{ color: var(--mns-ink-400); opacity: 1; }

body.mns :where(input, select, textarea, .elementor-field-textual):focus{
	outline: none;
	border-color: var(--mns-green-500);
	box-shadow: 0 0 0 3px rgba(46, 107, 79, .14);
}

body.mns :where(label){ font-size: var(--mns-fs-small); font-weight: 500; color: var(--mns-ink-900); display: block; margin-bottom: .4rem; }
body.mns .mns-required{ color: var(--mns-gold-600); }

/* Select con flecha propia (la nativa no coincide con la referencia). */
body.mns :where(select){
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237c857d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	padding-right: 2.5rem;
}

/* Checkbox cuadrado verde de la referencia (contacto, checkout, donación). */
body.mns .mns-check{ display: flex; align-items: flex-start; gap: .625rem; cursor: pointer; }
body.mns .mns-check input[type="checkbox"]{
	appearance: none;
	flex: 0 0 auto;
	width: 18px; height: 18px;
	margin: 2px 0 0;
	border: 1px solid var(--mns-line);
	border-radius: 4px;
	background: var(--mns-cream-50);
	cursor: pointer;
	transition: background-color var(--mns-dur) var(--mns-ease), border-color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-check input[type="checkbox"]:checked{
	background: var(--mns-green-800) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23fdfbf6' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px no-repeat;
	border-color: var(--mns-green-800);
}
body.mns .mns-check input[type="checkbox"]:focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: 2px; }
body.mns .mns-check > span{ font-size: var(--mns-fs-small); color: var(--mns-ink-600); line-height: 1.5; }

/* Tooltip ⓘ (envío, costo de transacción). */
body.mns .mns-tip{ position: relative; display: inline-flex; vertical-align: middle; color: var(--mns-ink-400); }
body.mns .mns-tip > button{
	all: unset; cursor: help; display: inline-grid; place-items: center;
	width: 16px; height: 16px; border-radius: 50%;
}
body.mns .mns-tip > button:focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: 2px; }
body.mns .mns-tip__bubble{
	position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%);
	width: max-content; max-width: 220px;
	padding: .5rem .625rem;
	background: var(--mns-green-900); color: var(--mns-cream-50);
	font-size: .75rem; line-height: 1.4; border-radius: 6px;
	opacity: 0; visibility: hidden;
	transition: opacity var(--mns-dur) var(--mns-ease), visibility var(--mns-dur);
	z-index: 20; pointer-events: none;
}
body.mns .mns-tip:hover .mns-tip__bubble,
body.mns .mns-tip > button:focus-visible + .mns-tip__bubble{ opacity: 1; visibility: visible; }

/* Stepper de cantidad − 1 + */
body.mns .mns-qty{ display: inline-flex; align-items: center; border: 1px solid var(--mns-line); border-radius: var(--mns-radius-sm); background: var(--mns-cream-50); overflow: hidden; }
body.mns .mns-qty button{
	all: unset; display: grid; place-items: center;
	width: 38px; height: 44px; cursor: pointer; color: var(--mns-ink-600);
	transition: background-color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-qty button:hover{ background: var(--mns-cream-200); }
body.mns .mns-qty button:focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: -2px; }
body.mns .mns-qty button[disabled]{ opacity: .4; cursor: not-allowed; }
body.mns .mns-qty input{
	width: 42px; min-height: 44px; padding: 0; text-align: center;
	border: 0; border-inline: 1px solid var(--mns-line); border-radius: 0;
	background: transparent; font-weight: 500; -moz-appearance: textfield;
}
body.mns .mns-qty input::-webkit-outer-spin-button,
body.mns .mns-qty input::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
body.mns .mns-qty input:focus{ box-shadow: none; }

/* ------------------------------------------------------------------
   7. HEADER
------------------------------------------------------------------ */
body.mns .mns-header{
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--mns-cream-50);
	border-bottom: 1px solid transparent;
	transition: box-shadow var(--mns-dur) var(--mns-ease), border-color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-header.is-stuck{ box-shadow: var(--mns-shadow); border-bottom-color: var(--mns-line); }

body.mns .mns-header__inner{
	display: flex;
	align-items: center;
	gap: 2rem;
	min-height: var(--mns-header-h);
	max-width: var(--mns-container);
	margin-inline: auto;
	padding-inline: clamp(1rem, .5rem + 2vw, 2.5rem);
}
body.mns .mns-header__logo{ flex: 0 0 auto; display: inline-flex; }
body.mns .mns-header__logo img{ height: 56px; width: auto; }
body.mns .mns-header__nav{ flex: 1 1 auto; display: flex; justify-content: center; }
body.mns .mns-header__actions{ flex: 0 0 auto; display: flex; align-items: center; gap: 1rem; }

/* Menú principal */
body.mns .mns-menu{ display: flex; align-items: center; gap: 2.125rem; list-style: none; margin: 0; padding: 0; }
body.mns .mns-menu a{
	position: relative;
	display: block;
	padding-block: .5rem;
	font-size: var(--mns-fs-body);
	font-weight: 500;
	color: var(--mns-ink-900);
	text-decoration: none;
	transition: color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-menu a::after{
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 2px;
	background: var(--mns-gold-500);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform var(--mns-dur) var(--mns-ease);
}
body.mns .mns-menu a:hover{ color: var(--mns-green-800); }
body.mns .mns-menu a:hover::after,
body.mns .mns-menu .current-menu-item > a::after,
body.mns .mns-menu .current_page_item > a::after,
body.mns .mns-menu .current-menu-ancestor > a::after{ transform: scaleX(1); }
body.mns .mns-menu .current-menu-item > a{ color: var(--mns-green-800); }

/* Carrito con badge */
body.mns .mns-cart-link{ position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; color: var(--mns-ink-900); }
body.mns .mns-cart-link svg{ width: 26px; height: 26px; }
body.mns .mns-cart-count{
	position: absolute; top: 2px; right: 2px;
	min-width: 19px; height: 19px; padding: 0 4px;
	display: grid; place-items: center;
	background: var(--mns-green-800); color: var(--mns-cream-50);
	font-size: .6875rem; font-weight: 600; line-height: 1;
	border-radius: var(--mns-radius-pill);
}

/* Botón hamburguesa (sólo móvil/tablet) */
/* `all: unset` debe ir primero: si va después anula el display. */
body.mns .mns-burger{ all: unset; display: none; cursor: pointer; width: 44px; height: 44px; place-items: center; color: var(--mns-ink-900); }
body.mns .mns-burger svg{ width: 26px; height: 26px; }
body.mns .mns-burger:focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: 2px; }

/* ------------------------------------------------------------------
   8. FOOTER
------------------------------------------------------------------ */
body.mns .mns-footer{
	position: relative;
	background: var(--mns-green-800);
	color: rgba(247, 243, 240, .72);
	font-size: var(--mns-fs-small);
	overflow: hidden;
}
body.mns .mns-footer__inner{
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr 1.2fr;
	gap: 2.5rem;
	max-width: var(--mns-content);
	margin-inline: auto;
	padding: clamp(2.5rem, 1.5rem + 3vw, 4rem) clamp(1rem, .5rem + 2vw, 2.5rem);
}
body.mns .mns-footer__logo img{ height: 60px; width: auto; margin-bottom: 1rem; }
body.mns .mns-footer__tagline{ color: rgba(247, 243, 240, .82); line-height: 1.6; max-width: 22ch; }

body.mns .mns-footer h4{
	color: var(--mns-cream-50);
	font-family: var(--mns-font-ui);
	font-size: var(--mns-fs-body);
	font-weight: 600;
	margin-bottom: 1rem;
}
body.mns .mns-footer h4::after{ content: ""; display: block; width: 28px; height: 2px; margin-top: .5rem; background: var(--mns-gold-500); }

body.mns .mns-footer ul{ list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
body.mns .mns-footer a{ color: rgba(247, 243, 240, .72); text-decoration: none; transition: color var(--mns-dur) var(--mns-ease); }
body.mns .mns-footer a:hover{ color: var(--mns-gold-300); }

body.mns .mns-footer__contact li{ display: flex; align-items: flex-start; gap: .625rem; }
body.mns .mns-footer__contact svg{ width: 16px; height: 16px; flex: 0 0 auto; margin-top: 3px; color: var(--mns-gold-300); }

body.mns .mns-social{ display: flex; gap: .625rem; margin-top: 1.25rem; }
body.mns .mns-social a{
	display: grid; place-items: center;
	width: 38px; height: 38px;
	border-radius: 50%;
	background: rgba(247, 243, 240, .10);
	color: var(--mns-cream-50);
	transition: background-color var(--mns-dur) var(--mns-ease), transform var(--mns-dur) var(--mns-ease);
}
body.mns .mns-social a svg{ width: 18px; height: 18px; }
body.mns .mns-social a:hover{ background: var(--mns-gold-500); color: #fff; transform: translateY(-2px); }

body.mns .mns-footer__bottom{
	position: relative; z-index: 2;
	border-top: 1px solid rgba(247, 243, 240, .12);
	text-align: center;
	padding: 1.25rem;
	font-size: .75rem;
	color: rgba(247, 243, 240, .55);
}

/* ------------------------------------------------------------------
   9. DECORACIÓN
------------------------------------------------------------------ */
/* Hojas en marca de agua. Se posicionan con variables desde Elementor. */
body.mns .mns-leaf{
	position: absolute;
	inset: auto;
	top: var(--mns-leaf-top, auto);
	right: var(--mns-leaf-right, auto);
	bottom: var(--mns-leaf-bottom, auto);
	left: var(--mns-leaf-left, auto);
	width: var(--mns-leaf-size, 180px);
	opacity: var(--mns-leaf-opacity, .35);
	transform: rotate(var(--mns-leaf-rotate, 0deg));
	color: var(--mns-gold-300);
	pointer-events: none;
	user-select: none;
	z-index: 0;
}
body.mns .mns-leaf svg{ width: 100%; height: auto; }

/* Onda superior del footer / de una sección verde. */
body.mns .mns-wave-top{ position: relative; }
body.mns .mns-wave-top > svg{
	position: absolute;
	bottom: 100%;
	left: 0;
	width: 100%;
	height: clamp(40px, 5vw, 90px);
	fill: var(--mns-green-800);
}

/* Recorte curvo de imagen (bloque "¿Quiénes somos?"). */
body.mns .mns-curved-media{ position: relative; }
body.mns .mns-curved-media img{
	display: block;
	width: 100%;
	border-radius: var(--mns-radius-lg) 45% var(--mns-radius-lg) var(--mns-radius-lg);
	object-fit: cover;
}
/* Filete dorado que bordea el recorte por fuera con offset. */
body.mns .mns-curved-media::after{
	content: "";
	position: absolute;
	inset: -12px -12px 12px 12px;
	border: 2px solid var(--mns-gold-300);
	border-radius: var(--mns-radius-lg) 45% var(--mns-radius-lg) var(--mns-radius-lg);
	pointer-events: none;
	z-index: -1;
}

/* Cita en bloque de la noticia individual. */
body.mns .mns-quote{
	position: relative;
	background: var(--mns-cream-200);
	border-radius: var(--mns-radius);
	padding: 1.75rem 2rem 1.75rem 3.5rem;
	overflow: hidden;
}
body.mns .mns-quote::before{
	content: "\201C";
	position: absolute;
	top: .35em; left: .55rem;
	font-family: var(--mns-font-display);
	font-size: 3.5rem;
	line-height: 1;
	color: var(--mns-gold-500);
}
body.mns .mns-quote p{ font-family: var(--mns-font-display); font-style: italic; font-size: 1.0625rem; color: var(--mns-heading); }
body.mns .mns-quote cite{ display: block; margin-top: .75rem; font-style: normal; font-size: var(--mns-fs-small); color: var(--mns-ink-400); }

/* ------------------------------------------------------------------
   10. ACCESIBILIDAD
------------------------------------------------------------------ */
body.mns .mns-visually-hidden{
	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;
}

body.mns :focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: 3px; border-radius: 2px; }

body.mns .mns-skip-link{
	position: absolute; top: -60px; left: 1rem; z-index: 999;
	padding: .75rem 1.25rem;
	background: var(--mns-green-800); color: var(--mns-cream-50);
	border-radius: 0 0 var(--mns-radius-sm) var(--mns-radius-sm);
	text-decoration: none;
	transition: top var(--mns-dur) var(--mns-ease);
}
body.mns .mns-skip-link:focus{ top: 0; }

@media (prefers-reduced-motion: reduce) {
	body.mns *, body.mns *::before, body.mns *::after{
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ------------------------------------------------------------------
   11. RESPONSIVE
------------------------------------------------------------------ */
@media (max-width: 1200px) {
	body.mns .mns-menu{ gap: 1.5rem; }
	body.mns .mns-footer__inner{ grid-template-columns: 1.4fr 1fr 1fr 1.2fr; }
	body.mns .mns-footer__inner > :nth-child(4){ grid-column: auto; }
}

@media (max-width: 1024px) {
	:root { --mns-header-h: 76px; }

	body.mns .mns-burger{ display: grid; }
	body.mns .mns-header__nav{
		position: fixed;
		inset: var(--mns-header-h) 0 auto 0;
		display: block;
		background: var(--mns-cream-50);
		border-bottom: 1px solid var(--mns-line);
		box-shadow: var(--mns-shadow);
		max-height: 0;
		overflow: hidden;
		transition: max-height var(--mns-dur) var(--mns-ease);
	}
	body.mns .mns-header__nav.is-open{ max-height: calc(100vh - var(--mns-header-h)); overflow-y: auto; }
	body.mns .mns-menu{ flex-direction: column; align-items: stretch; gap: 0; padding: .5rem 1.5rem 1.5rem; }
	body.mns .mns-menu li + li{ border-top: 1px solid var(--mns-line); }
	body.mns .mns-menu a{ padding-block: .9rem; }
	body.mns .mns-menu a::after{ display: none; }
	body.mns .mns-menu .current-menu-item > a{ color: var(--mns-gold-600); }

	body.mns .mns-grid--4{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.mns .mns-grid--3{ grid-template-columns: repeat(2, minmax(0, 1fr)); }

	body.mns .mns-footer__inner{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }

	/* Los separadores verticales se convierten en horizontales. */
	body.mns .mns-divided > * + *{ border-left: 0; }
}

@media (max-width: 767px) {
	/* La cabecera no tiene sitio para logo + CTA + carrito + hamburguesa.
	   El CTA de donación pasa al menú desplegable (marca ese ítem con la clase
	   `mns-menu-cta` en Apariencia > Menús). */
	body.mns .mns-header__actions > .mns-btn--gold{ display: none; }
	body.mns .mns-menu .mns-menu-cta > a{
		margin: 1rem 0 .25rem;
		padding: .875rem 1.25rem;
		background: var(--mns-gold-500);
		color: #fff;
		border-radius: var(--mns-radius-pill);
		text-align: center;
		font-weight: 600;
	}
	body.mns .mns-menu .mns-menu-cta{ border-top: 0; }

	body.mns .mns-grid--2, body.mns .mns-grid--3, body.mns .mns-grid--4{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-footer__inner{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-footer__tagline{ max-width: none; }
	body.mns .mns-header__logo img{ height: 44px; }
	body.mns .mns-curved-media img,
	body.mns .mns-curved-media::after{ border-radius: var(--mns-radius-lg); }
	body.mns .mns-quote{ padding: 1.5rem 1.25rem 1.5rem 2.75rem; }
}


/* ######################################################################
   WooCommerce (tienda, producto, carrito, checkout)
   ###################################################################### */
/* =====================================================================
   MANESENCIA — WooCommerce
   1. Reset de Woo
   2. Card de producto (grid)
   3. Producto individual
   4. Carrito
   5. Checkout
   6. Notices y mini-cart
   7. Responsive
   ===================================================================== */

/* ------------------------------------------------------------------
   1. RESET DE WOO
------------------------------------------------------------------ */
body.mns .woocommerce .button,
body.mns .woocommerce a.button,
body.mns .woocommerce button.button,
body.mns .woocommerce input.button{
	background: var(--mns-green-800);
	color: var(--mns-cream-50);
	font-family: var(--mns-font-ui);
	font-size: var(--mns-fs-body);
	font-weight: 600;
	line-height: 1;
	padding: .875rem 1.5rem;
	border: 0;
	border-radius: var(--mns-radius-sm);
	transition: background-color var(--mns-dur) var(--mns-ease), box-shadow var(--mns-dur) var(--mns-ease);
}
body.mns .woocommerce .button:hover,
body.mns .woocommerce a.button:hover,
body.mns .woocommerce button.button:hover,
body.mns .woocommerce input.button:hover{
	background: var(--mns-green-700);
	color: var(--mns-cream-50);
	box-shadow: var(--mns-shadow);
}
body.mns .woocommerce .button.alt{ background: var(--mns-green-800); }

body.mns .woocommerce .price,
body.mns .woocommerce span.amount{ color: var(--mns-gold-600); font-weight: 600; }
body.mns .woocommerce del{ opacity: .5; font-weight: 400; }

/* Los breadcrumbs de la referencia son texto pequeño gris con separador ">" */
body.mns .woocommerce-breadcrumb{
	font-size: var(--mns-fs-small);
	color: var(--mns-ink-400);
	margin-bottom: 1.5rem;
}
body.mns .woocommerce-breadcrumb a{ color: var(--mns-ink-400); text-decoration: none; }
body.mns .woocommerce-breadcrumb a:hover{ color: var(--mns-green-800); }

/* ------------------------------------------------------------------
   2. CARD DE PRODUCTO (grid de tienda y "También te pueden gustar")
------------------------------------------------------------------ */
body.mns .mns-products{
	display: grid;
	grid-template-columns: repeat(var(--mns-products-cols, 3), minmax(0, 1fr));
	gap: var(--mns-gap);
	list-style: none;
	margin: 0;
	padding: 0;
}

body.mns .mns-product{
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

body.mns .mns-product__media{
	position: relative;
	display: block;
	background: var(--mns-cream-200);
	border-radius: var(--mns-radius);
	overflow: hidden;
	aspect-ratio: 1 / 1;
}
body.mns .mns-product__media img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s var(--mns-ease);
}
body.mns .mns-product:hover .mns-product__media img{ transform: scale(1.04); }

body.mns .mns-product__title{
	font-family: var(--mns-font-ui);
	font-size: .875rem;
	font-weight: 500;
	color: var(--mns-ink-900);
	margin: .25rem 0 0;
	line-height: 1.4;
}
body.mns .mns-product__title a{ color: inherit; text-decoration: none; }
body.mns .mns-product__price{ font-size: .875rem; font-weight: 600; color: var(--mns-gold-600); }

/* Botón circular "+" solapando la esquina inferior derecha de la card. */
body.mns .mns-product__add{
	position: absolute;
	right: .625rem;
	bottom: .625rem;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 50%;
	background: var(--mns-green-800);
	color: var(--mns-cream-50);
	cursor: pointer;
	box-shadow: var(--mns-shadow);
	transition: background-color var(--mns-dur) var(--mns-ease), transform var(--mns-dur) var(--mns-ease);
}
body.mns .mns-product__add svg{ width: 16px; height: 16px; }
body.mns .mns-product__add:hover{ background: var(--mns-gold-500); transform: scale(1.08); }
body.mns .mns-product__add:focus-visible{ outline: 2px solid var(--mns-gold-500); outline-offset: 2px; }
body.mns .mns-product__add.is-loading{ pointer-events: none; opacity: .6; }
body.mns .mns-product__add.is-done{ background: var(--mns-gold-500); }

/* Encabezado de categoría dentro del grid de la tienda. */
body.mns .mns-cat-head{
	display: flex;
	align-items: baseline;
	gap: .75rem;
	margin-bottom: 1rem;
}
body.mns .mns-cat-head__title{
	font-family: var(--mns-font-ui);
	font-size: var(--mns-fs-small);
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--mns-ink-900);
	margin: 0;
	position: relative;
	padding-bottom: .4rem;
}
body.mns .mns-cat-head__title::after{
	content: "";
	position: absolute; left: 0; bottom: 0;
	width: 28px; height: 2px;
	background: var(--mns-gold-500);
}

/* Barra de filtros por categoría de la tienda. */
body.mns .mns-shop-filters{
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
	padding-block: 1.25rem;
	border-bottom: 1px solid var(--mns-line);
	margin-bottom: 2rem;
}
body.mns .mns-shop-filters__pill{
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .625rem 1rem;
	border: 0;
	border-radius: var(--mns-radius-sm);
	background: transparent;
	color: var(--mns-ink-600);
	font-size: var(--mns-fs-body);
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--mns-dur) var(--mns-ease), color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-shop-filters__pill svg{ width: 18px; height: 18px; }
body.mns .mns-shop-filters__pill:hover{ background: var(--mns-cream-200); color: var(--mns-green-800); }
body.mns .mns-shop-filters__pill.is-active{ background: var(--mns-green-800); color: var(--mns-cream-50); }
body.mns .mns-shop-filters__sort{ margin-left: auto; display: flex; align-items: center; gap: .625rem; }
body.mns .mns-shop-filters__sort label{ margin: 0; white-space: nowrap; color: var(--mns-ink-400); font-weight: 400; }
body.mns .mns-shop-filters__sort select{ min-height: 42px; width: auto; min-width: 170px; }

/* ------------------------------------------------------------------
   3. PRODUCTO INDIVIDUAL
------------------------------------------------------------------ */
body.mns .mns-single-product{
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) 300px;
	gap: 2.5rem;
	align-items: start;
}

/* Galería: miniaturas verticales + imagen principal. */
body.mns .mns-gallery{ display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 1rem; }
body.mns .mns-gallery__thumbs{ display: grid; gap: .75rem; align-content: start; }
body.mns .mns-gallery__thumb{
	all: unset;
	display: block;
	aspect-ratio: 1 / 1;
	background: var(--mns-cream-200);
	border: 1px solid var(--mns-line);
	border-radius: var(--mns-radius-sm);
	overflow: hidden;
	cursor: pointer;
	transition: border-color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-gallery__thumb img{ width: 100%; height: 100%; object-fit: cover; }
body.mns .mns-gallery__thumb:hover{ border-color: var(--mns-gold-300); }
body.mns .mns-gallery__thumb.is-active{ border-color: var(--mns-gold-500); box-shadow: 0 0 0 1px var(--mns-gold-500); }
body.mns .mns-gallery__thumb:focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: 2px; }

body.mns .mns-gallery__stage{
	position: relative;
	background: var(--mns-cream-200);
	border-radius: var(--mns-radius);
	overflow: hidden;
	aspect-ratio: 4 / 3.6;
}
body.mns .mns-gallery__stage img{ width: 100%; height: 100%; object-fit: cover; }
body.mns .mns-gallery__zoom{
	position: absolute; top: 1rem; right: 1rem;
	display: grid; place-items: center;
	width: 38px; height: 38px;
	border: 0; border-radius: 50%;
	background: rgba(247, 243, 240, .92);
	color: var(--mns-green-800);
	cursor: pointer; box-shadow: var(--mns-shadow-sm);
	transition: background-color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-gallery__zoom:hover{ background: var(--mns-cream-50); }
body.mns .mns-gallery__zoom svg{ width: 18px; height: 18px; }

/* Columna de información. */
body.mns .mns-product-info__price{ font-size: 1.25rem; font-weight: 600; color: var(--mns-gold-600); margin-bottom: 1rem; }

/* Lista de atributos con icono line. */
body.mns .mns-attrs{ list-style: none; margin: 1.5rem 0; padding: 0; display: grid; gap: .875rem; }
body.mns .mns-attrs li{ display: flex; align-items: center; gap: .75rem; font-size: var(--mns-fs-body); color: var(--mns-ink-600); }
body.mns .mns-attrs svg{ width: 20px; height: 20px; flex: 0 0 auto; color: var(--mns-green-800); }
body.mns .mns-attrs strong{ color: var(--mns-ink-900); font-weight: 500; }

body.mns .mns-add-row{ display: flex; align-items: center; gap: 1rem; margin-top: 1.5rem; }
body.mns .mns-add-row .mns-btn--primary{ min-width: 260px; }

/* Botón circular de lista de deseos. */
body.mns .mns-wish{
	display: grid; place-items: center;
	width: 48px; height: 48px;
	border: 1px solid var(--mns-line); border-radius: 50%;
	background: var(--mns-cream-50); color: var(--mns-ink-600);
	cursor: pointer;
	transition: color var(--mns-dur) var(--mns-ease), border-color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-wish:hover, body.mns .mns-wish.is-active{ color: var(--mns-gold-500); border-color: var(--mns-gold-300); }
body.mns .mns-wish svg{ width: 20px; height: 20px; }

/* Franja de 4 garantías con separadores. */
body.mns .mns-guarantees{
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-block: 1px solid var(--mns-line);
	margin-block: 2.5rem;
}
body.mns .mns-guarantees > *{
	display: flex; align-items: center; gap: .75rem;
	padding: 1.25rem 1.5rem;
}
body.mns .mns-guarantees > * + *{ border-left: 1px solid var(--mns-line); }
body.mns .mns-guarantees svg{ width: 24px; height: 24px; flex: 0 0 auto; color: var(--mns-green-800); }
body.mns .mns-guarantees strong{ display: block; font-size: var(--mns-fs-small); font-weight: 600; color: var(--mns-ink-900); }
body.mns .mns-guarantees span{ font-size: .75rem; color: var(--mns-ink-400); }

/* ------------------------------------------------------------------
   4. CARRITO
------------------------------------------------------------------ */
body.mns .mns-cart{ display: grid; grid-template-columns: minmax(0, 1fr) 344px; gap: 2.5rem; align-items: start; }

/* Cabecera de la "tabla" (Producto / Precio / Cantidad / Subtotal). */
body.mns .mns-cart__head,
body.mns .mns-cart-item{
	display: grid;
	/* El suelo de 200px evita que el nombre del producto se parta palabra a
	   palabra cuando la ventana se estrecha. */
	grid-template-columns: minmax(200px, 1fr) 96px 116px 96px 36px;
	align-items: center;
	gap: 1rem;
}
body.mns .mns-cart__head{
	padding: 0 1.25rem .875rem;
	border-bottom: 1px solid var(--mns-line);
	font-size: var(--mns-fs-small);
	font-weight: 500;
	color: var(--mns-ink-400);
}
body.mns .mns-cart__head span:nth-child(n+2){ text-align: center; }

/* Cada línea es una tarjeta independiente, no una fila de tabla. */
body.mns .mns-cart-item{
	padding: 1.25rem;
	margin-top: 1rem;
	background: var(--mns-cream-50);
	border: 1px solid var(--mns-line);
	border-radius: var(--mns-radius);
	transition: box-shadow var(--mns-dur) var(--mns-ease), opacity var(--mns-dur) var(--mns-ease);
}
body.mns .mns-cart-item:hover{ box-shadow: var(--mns-shadow); }
body.mns .mns-cart-item.is-busy{ opacity: .5; pointer-events: none; }

body.mns .mns-cart-item__product{ display: flex; align-items: center; gap: 1.25rem; min-width: 0; }
/* Sin min-width:0 el hijo flex no baja de su ancho de contenido y se desborda
   sobre la columna de precio. */
body.mns .mns-cart-item__info{ min-width: 0; }
body.mns .mns-cart-item__name, body.mns .mns-cart-item__attrs{ overflow-wrap: break-word; }
body.mns .mns-cart-item__media{
	flex: 0 0 auto;
	width: 96px; height: 96px;
	background: var(--mns-cream-200);
	border-radius: var(--mns-radius-sm);
	overflow: hidden;
}
body.mns .mns-cart-item__media img{ width: 100%; height: 100%; object-fit: cover; }
body.mns .mns-cart-item__name{
	font-family: var(--mns-font-display);
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--mns-ink-900);
	margin: 0 0 .35rem;
}
body.mns .mns-cart-item__name a{ color: inherit; text-decoration: none; }
body.mns .mns-cart-item__attrs{ display: grid; gap: .15rem; font-size: var(--mns-fs-small); color: var(--mns-ink-400); }
body.mns .mns-cart-item__attrs strong{ font-weight: 500; color: var(--mns-ink-600); }

/* Precio con la divisa en segunda línea, como en la referencia. */
body.mns .mns-money{ text-align: center; line-height: 1.25; }
body.mns .mns-money__value{ display: block; font-size: 1rem; font-weight: 600; color: var(--mns-ink-900); }
body.mns .mns-money__cur{ display: block; font-size: var(--mns-fs-small); color: var(--mns-ink-400); }
body.mns .mns-cart-item__subtotal .mns-money__value{ color: var(--mns-ink-900); }

body.mns .mns-cart-item__qty{ display: flex; justify-content: center; }

body.mns .mns-cart-item__remove{
	all: unset;
	display: grid; place-items: center;
	width: 34px; height: 34px; margin-inline: auto;
	border-radius: 50%;
	color: var(--mns-ink-400);
	cursor: pointer;
	transition: background-color var(--mns-dur) var(--mns-ease), color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-cart-item__remove:hover{ background: var(--mns-cream-200); color: #b3261e; }
body.mns .mns-cart-item__remove:focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: 2px; }
body.mns .mns-cart-item__remove svg{ width: 18px; height: 18px; }

body.mns .mns-cart__actions{ display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; }

/* Resumen lateral, sticky bajo el header. */
body.mns .mns-summary{
	position: sticky;
	top: calc(var(--mns-header-h) + 24px);
	background: var(--mns-cream-50);
	border: 1px solid var(--mns-line);
	border-radius: var(--mns-radius-lg);
	padding: 1.75rem;
	box-shadow: var(--mns-shadow-sm);
}
body.mns .mns-summary h2{ font-size: 1.25rem; margin-bottom: 1rem; }
body.mns .mns-summary h2::after{ content: ""; display: block; width: 32px; height: 2px; margin-top: .625rem; background: var(--mns-gold-500); }

body.mns .mns-summary__row{
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding-block: .625rem;
	/* 13px: Montserrat es más ancha que una grotesca neutra y a 15px la etiqueta
	   «Subtotal (3 productos)» parte en dos líneas dentro de los 344px del panel. */
	font-size: var(--mns-fs-small);
}
body.mns .mns-summary__row dt{ color: var(--mns-ink-600); display: flex; align-items: center; gap: .375rem; margin: 0; }
body.mns .mns-summary__row dd{ margin: 0; font-weight: 500; color: var(--mns-ink-900); }
body.mns .mns-summary__row--total{
	border-top: 1px solid var(--mns-line);
	margin-top: .5rem; padding-top: 1rem;
}
body.mns .mns-summary__row--total dt{ font-family: var(--mns-font-display); font-size: 1.125rem; font-weight: 600; color: var(--mns-ink-900); }
body.mns .mns-summary__row--total dd{ font-size: 1.25rem; font-weight: 700; color: var(--mns-gold-600); }

body.mns .mns-summary__note{
	display: flex; gap: .75rem;
	background: var(--mns-cream-200);
	border-radius: var(--mns-radius-sm);
	padding: 1rem;
	margin-block: 1.25rem;
	font-size: var(--mns-fs-small);
	line-height: 1.5;
}
body.mns .mns-summary__note svg{ width: 22px; height: 22px; flex: 0 0 auto; color: var(--mns-green-800); }
body.mns .mns-summary__note strong{ display: block; color: var(--mns-ink-900); margin-bottom: .15rem; }

body.mns .mns-summary__secure{
	display: flex; align-items: center; justify-content: center; gap: .4rem;
	margin-top: .875rem;
	font-size: var(--mns-fs-small); color: var(--mns-ink-400);
}
body.mns .mns-summary__secure svg{ width: 15px; height: 15px; }

/* Logos de pasarela. */
body.mns .mns-paylogos{ display: flex; align-items: center; justify-content: center; gap: .625rem; flex-wrap: wrap; margin-top: 1rem; }
body.mns .mns-paylogos img,
body.mns .mns-paylogos span{
	display: grid; place-items: center;
	height: 30px; min-width: 52px; padding-inline: .5rem;
	background: var(--mns-cream-50);
	border: 1px solid var(--mns-line);
	border-radius: 6px;
	font-size: .6875rem; font-weight: 700; letter-spacing: .02em;
	color: var(--mns-ink-600);
}

/* Miniaturas del resumen en checkout. */
body.mns .mns-summary__items{ display: grid; gap: 1rem; margin-bottom: 1.25rem; }
body.mns .mns-summary__item{ display: flex; align-items: center; gap: .875rem; }
body.mns .mns-summary__item img{ width: 56px; height: 56px; object-fit: cover; border-radius: var(--mns-radius-sm); background: var(--mns-cream-200); flex: 0 0 auto; }
body.mns .mns-summary__item-body{ flex: 1 1 auto; min-width: 0; }
body.mns .mns-summary__item-name{ font-size: var(--mns-fs-small); font-weight: 500; color: var(--mns-ink-900); display: block; }
body.mns .mns-summary__item-qty{ font-size: .75rem; color: var(--mns-ink-400); }
body.mns .mns-summary__item-price{ font-size: var(--mns-fs-small); font-weight: 600; color: var(--mns-ink-900); white-space: nowrap; }

/* ------------------------------------------------------------------
   5. CHECKOUT
------------------------------------------------------------------ */
body.mns .mns-checkout{ display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 2.5rem; align-items: start; }

body.mns .mns-checkout__form{
	background: var(--mns-cream-50);
	border: 1px solid var(--mns-line);
	border-radius: var(--mns-radius-lg);
	box-shadow: var(--mns-shadow-sm);
	overflow: hidden;
}
body.mns .mns-checkout__block{ padding: 1.75rem; }
body.mns .mns-checkout__block + .mns-checkout__block{ border-top: 1px solid var(--mns-line); }
body.mns .mns-checkout__block h2{ font-size: 1.125rem; margin-bottom: 1.25rem; }

/* Rejilla de campos: dos columnas por defecto, uno a ancho completo con .is-wide */
body.mns .mns-fields{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
body.mns .mns-fields .is-wide{ grid-column: 1 / -1; }

/* Teléfono con selector de país. */
body.mns .mns-phone{ display: flex; gap: .625rem; }
body.mns .mns-phone__code{
	display: flex; align-items: center; gap: .4rem;
	flex: 0 0 auto; width: 104px;
	padding-inline: .75rem;
	background: var(--mns-cream-50);
	border: 1px solid var(--mns-line);
	border-radius: var(--mns-radius-sm);
	font-size: var(--mns-fs-body);
}
body.mns .mns-phone__flag{ font-size: 1.125rem; line-height: 1; }
body.mns .mns-phone__code select{ border: 0; background: none; min-height: auto; padding: 0 1.1rem 0 0; background-position: right center; }
body.mns .mns-phone__code select:focus{ box-shadow: none; }

body.mns .mns-checkout__nav{ display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.5rem 1.75rem; border-top: 1px solid var(--mns-line); }

/* El stepper de 4 pasos vive en el widget mns-checkout-steps (assets/css/steps.css)
   para no duplicar reglas ni cargarlas donde no hay stepper. */

/* Woo pinta sus propios wrappers; los neutralizamos para usar los nuestros. */
body.mns .woocommerce-checkout .col2-set,
body.mns .woocommerce-checkout .col2-set .col-1,
body.mns .woocommerce-checkout .col2-set .col-2{ width: 100%; float: none; margin: 0; }
body.mns .woocommerce form .form-row{ padding: 0; margin: 0; }
body.mns .woocommerce form .form-row label{ line-height: 1.4; }

/* ------------------------------------------------------------------
   6. NOTICES Y MINI-CART
------------------------------------------------------------------ */
body.mns .woocommerce-message,
body.mns .woocommerce-info,
body.mns .woocommerce-error{
	background: var(--mns-cream-200);
	border-top: 0;
	border-left: 3px solid var(--mns-green-800);
	border-radius: var(--mns-radius-sm);
	color: var(--mns-ink-600);
	font-size: var(--mns-fs-body);
	padding: 1rem 1.25rem;
	list-style: none;
}
body.mns .woocommerce-error{ border-left-color: #b3261e; }
body.mns .woocommerce-message::before,
body.mns .woocommerce-info::before,
body.mns .woocommerce-error::before{ display: none; }

/* Región viva para anuncios de añadir al carrito (lectores de pantalla). */
body.mns .mns-live{ position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }

/* ------------------------------------------------------------------
   7. RESPONSIVE
------------------------------------------------------------------ */
@media (max-width: 1200px) {
	body.mns .mns-single-product{ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	body.mns .mns-single-product > :nth-child(3){ grid-column: 1 / -1; }
	body.mns .mns-single-product > :nth-child(3) > *{ max-width: none; }
	body.mns .mns-cart{ grid-template-columns: minmax(0, 1fr) 300px; }
	body.mns .mns-checkout{ grid-template-columns: minmax(0, 1fr) 330px; }
}

/* Entre 1024 y 1150 el resumen sigue al lado pero la fila ya no cabe cómoda:
   se apila antes que en el breakpoint general. */
@media (max-width: 1150px) and (min-width: 1025px) {
	body.mns .mns-cart{ grid-template-columns: minmax(0, 1fr) 300px; }
	body.mns .mns-cart__head{ display: none; }
	body.mns .mns-cart-item{
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"product remove"
			"qty     subtotal";
		row-gap: 1rem;
	}
	body.mns .mns-cart-item__product{ grid-area: product; }
	body.mns .mns-cart-item__remove{ grid-area: remove; margin: 0; }
	body.mns .mns-cart-item__qty{ grid-area: qty; justify-content: flex-start; }
	body.mns .mns-cart-item__subtotal{ grid-area: subtotal; text-align: right; }
	body.mns .mns-cart-item__price{ display: none; }
}

@media (max-width: 1024px) {
	body.mns .mns-products{ --mns-products-cols: 3; }
	body.mns .mns-cart, body.mns .mns-checkout{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-summary{ position: static; }
	body.mns .mns-guarantees{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.mns .mns-guarantees > :nth-child(odd){ border-left: 0; }
	body.mns .mns-guarantees > :nth-child(n+3){ border-top: 1px solid var(--mns-line); }
}

@media (max-width: 767px) {
	body.mns .mns-products{ --mns-products-cols: 2; }
	body.mns .mns-single-product{ grid-template-columns: minmax(0, 1fr); }

	/* Galería: miniaturas pasan a fila horizontal bajo la imagen. */
	body.mns .mns-gallery{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-gallery__thumbs{ grid-auto-flow: column; grid-auto-columns: 68px; overflow-x: auto; order: 2; padding-bottom: .25rem; }
	body.mns .mns-gallery__stage{ order: 1; }

	body.mns .mns-add-row{ flex-wrap: wrap; }
	body.mns .mns-add-row .mns-btn--primary{ min-width: 0; flex: 1 1 200px; }

	/* La cabecera de tabla no tiene sentido en móvil: cada línea se apila. */
	body.mns .mns-cart__head{ display: none; }
	body.mns .mns-cart-item{
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"product remove"
			"qty     subtotal";
		row-gap: 1rem;
	}
	body.mns .mns-cart-item__product{ grid-area: product; }
	body.mns .mns-cart-item__remove{ grid-area: remove; margin: 0; }
	body.mns .mns-cart-item__qty{ grid-area: qty; justify-content: flex-start; }
	body.mns .mns-cart-item__subtotal{ grid-area: subtotal; text-align: right; }
	body.mns .mns-cart-item__price{ display: none; } /* Redundante con el subtotal en móvil. */
	body.mns .mns-cart-item__media{ width: 72px; height: 72px; }

	body.mns .mns-cart__actions{ flex-direction: column; align-items: stretch; }
	body.mns .mns-cart__actions > *{ width: 100%; }

	body.mns .mns-fields{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-checkout__block{ padding: 1.25rem; }
	body.mns .mns-checkout__nav{ flex-direction: column-reverse; align-items: stretch; padding: 1.25rem; }
}

@media (max-width: 430px) {
	body.mns .mns-products{ --mns-products-cols: 1; }
	body.mns .mns-guarantees{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-guarantees > * + *{ border-left: 0; border-top: 1px solid var(--mns-line); }
}

/* ------------------------------------------------------------------
   8. AJUSTES DE LAS PLANTILLAS SOBRESCRITAS
------------------------------------------------------------------ */

/* Divisa en segunda línea (filtro MNS_Woo::price_html). */
body.mns .mns-price-cur{
	display: block;
	font-size: var(--mns-fs-small);
	font-weight: 400;
	color: var(--mns-ink-400);
}
/* Dentro de la card de producto el precio es una sola línea. */
body.mns .mns-product__price .mns-price-cur{ display: inline; margin-left: .25rem; }

/* El input nativo de cantidad de Woo dentro de nuestro stepper. */
body.mns .mns-qty .quantity{ display: contents; }
body.mns .mns-qty .qty{ width: 42px; }

/* Botón de finalizar compra: ancho completo dentro del resumen. */
body.mns .mns-summary .wc-proceed-to-checkout{ margin-top: 1.25rem; padding: 0; }
body.mns .mns-summary .wc-proceed-to-checkout a.checkout-button{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	width: 100%;
	margin: 0;
	font-size: var(--mns-fs-body);
}

/* Enlace "Editar carrito" en la cabecera del resumen del checkout. */
/* flex-wrap es imprescindible: sin él el filete (::after, flex-basis 100%) se
   queda en la misma línea y estruja el título. */
body.mns .mns-summary h2{ display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 1rem; }
body.mns .mns-summary h2::after{ order: 3; flex-basis: 100%; }
body.mns .mns-summary__edit{ flex: 0 0 auto; font-size: var(--mns-fs-small); }

/* Cupón del carrito. */
body.mns .mns-cart__coupon{ display: flex; gap: .5rem; flex: 1 1 240px; }
body.mns .mns-cart__coupon input{ max-width: 220px; }

body.mns .mns-checkout__nav-hint{ text-align: right; }

/* Woo imprime <h3> propios dentro de los bloques de facturación/envío. */
body.mns .woocommerce-billing-fields > h3,
body.mns .woocommerce-shipping-fields > h3,
body.mns .woocommerce-additional-fields > h3{
	font-size: 1.125rem;
	margin-bottom: 1.25rem;
}

/* Rejilla de campos: Woo añade form-row-first / form-row-last. */
body.mns .woocommerce-billing-fields__field-wrapper,
body.mns .woocommerce-shipping-fields__field-wrapper{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 1.25rem;
}
body.mns .form-row-wide,
body.mns .form-row.is-wide,
body.mns #billing_email_field,
body.mns #billing_address_1_field,
body.mns #billing_country_field,
body.mns #billing_phone_field{ grid-column: 1 / -1; }

@media (max-width: 767px) {
	body.mns .woocommerce-billing-fields__field-wrapper,
	body.mns .woocommerce-shipping-fields__field-wrapper{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-checkout__nav-hint{ text-align: left; }
	body.mns .mns-cart__coupon{ flex-direction: column; }
	body.mns .mns-cart__coupon input{ max-width: none; }
}


/* ######################################################################
   Hero con onda
   ###################################################################### */
/* =====================================================================
   Widget: Hero con onda  (mns-hero-wave)
   La onda es una capa SVG rellena con el color de fondo que "recorta" la
   imagen por abajo y continúa hasta el borde izquierdo. El trazo dorado es
   una segunda capa sólo con stroke, ligeramente desfasada.
   ===================================================================== */

body.mns .mns-hero{
	--mns-hero-min-h: 500px;
	--mns-hero-media-w: 56%;
	--mns-hero-wave-h: clamp(90px, 16%, 190px);

	position: relative;
	display: flex;
	align-items: center;
	min-height: var(--mns-hero-min-h);
	background-color: var(--mns-cream-100);
	overflow: hidden;
	isolation: isolate;
}

/* ---------- Imagen ---------- */
body.mns .mns-hero__media{
	position: absolute;
	inset: 0 0 0 auto;
	width: var(--mns-hero-media-w);
	z-index: 1;
}
body.mns .mns-hero__img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* ---------- Onda ---------- */
body.mns .mns-hero__wave{
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px; /* evita la línea de subpíxel en algunos navegadores */
	height: var(--mns-hero-wave-h);
	z-index: 2;
	pointer-events: none;
}
body.mns .mns-hero__wave svg{
	width: 100%;
	height: 100%;
	fill: var(--mns-cream-100);
}

body.mns .mns-hero__wave-stroke{
	position: absolute;
	left: 0;
	right: 0;
	bottom: calc(var(--mns-hero-wave-h) - 14px);
	height: var(--mns-hero-wave-h);
	z-index: 3;
	color: var(--mns-gold-500);
	pointer-events: none;
}

/* ---------- Contenido ---------- */
body.mns .mns-hero__content{
	position: relative;
	z-index: 4;
	width: 100%;
	max-width: var(--mns-content);
	margin-inline: auto;
	padding: clamp(2rem, 1rem + 3vw, 3.5rem) clamp(1rem, .5rem + 2vw, 2.5rem);
}
body.mns .mns-hero__content > *{ max-width: min(46%, 620px); }

body.mns .mns-hero__title{ margin-bottom: 1rem; }
body.mns .mns-hero__lead{ color: var(--mns-ink-600); margin-bottom: 1.75rem; }

/* ---------- Bloque de cita verde (Inicio, Programas, Dona) ---------- */
body.mns .mns-hero__quote{
	position: absolute;
	right: 0;
	bottom: clamp(60px, 12%, 140px);
	z-index: 3;
	width: min(340px, 62%);
	padding: 1.75rem 2rem;
	background: var(--mns-green-800);
	color: var(--mns-cream-50);
	border-radius: var(--mns-radius-lg) 0 0 var(--mns-radius-lg);
	box-shadow: var(--mns-shadow);
}
body.mns .mns-hero__quote p{
	font-family: var(--mns-font-display);
	font-size: 1.0625rem;
	line-height: 1.5;
	margin: 0;
}
body.mns .mns-hero__quote-mark{ width: 30px; height: 30px; color: var(--mns-gold-300); margin-bottom: .5rem; }
/* Filete dorado inferior, presente en la referencia de Programas y Dona. */
body.mns .mns-hero__quote::after{
	content: "";
	display: block;
	width: 36px;
	height: 2px;
	margin-top: 1rem;
	background: var(--mns-gold-500);
}

/* ---------- Badge circular flotante (Contacto) ---------- */
body.mns .mns-hero__badge{
	position: absolute;
	left: 50%;
	bottom: calc(var(--mns-hero-wave-h) - 40px);
	transform: translateX(-50%);
	z-index: 5;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: .5rem;
	width: 132px;
	height: 132px;
	padding: 1rem;
	border-radius: 50%;
	background: var(--mns-green-800);
	color: var(--mns-cream-50);
	text-align: center;
	box-shadow: var(--mns-shadow-lg);
}
body.mns .mns-hero__badge svg{ width: 22px; height: 22px; color: var(--mns-gold-300); }
body.mns .mns-hero__badge span{ font-size: .75rem; line-height: 1.35; }

/* ---------- Hojas ---------- */
body.mns .mns-hero__leaf{ z-index: 1; }
body.mns .mns-hero__leaf--tl{ --mns-leaf-top: -20px;  --mns-leaf-left: -30px;  --mns-leaf-size: 220px; --mns-leaf-opacity: .30; }
body.mns .mns-hero__leaf--br{ --mns-leaf-bottom: 20px; --mns-leaf-right: 24px; --mns-leaf-size: 150px; --mns-leaf-opacity: .22; --mns-leaf-rotate: 160deg; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */

/* Tablet grande: la imagen ocupa menos y el texto respira. */
@media (max-width: 1200px) {
	body.mns .mns-hero{ --mns-hero-media-w: 52%; }
	body.mns .mns-hero__content > *{ max-width: min(50%, 560px); }
	body.mns .mns-hero__quote{ width: min(300px, 70%); padding: 1.375rem 1.5rem; }
}

/* Tablet / móvil: se apila. Texto arriba, imagen debajo a sangre con la onda
   en el borde inferior de la imagen. */
@media (max-width: 1024px) {
	/* Al apilar, el orden del DOM pondría la imagen primero (en escritorio va
	   posicionada en absoluto, así que el orden no importaba). Con flex column
	   se fuerza el orden de lectura correcto: texto y luego imagen. */
	body.mns .mns-hero{
		display: flex;
		flex-direction: column;
		min-height: 0;
		--mns-hero-wave-h: clamp(60px, 12vw, 110px);
	}
	body.mns .mns-hero__content{ order: 1; padding-block: clamp(2rem, 1rem + 4vw, 3rem) 1.5rem; }
	body.mns .mns-hero__media{ order: 2; }
	body.mns .mns-hero__wave,
	body.mns .mns-hero__wave-stroke,
	body.mns .mns-hero__badge{ order: 3; }
	body.mns .mns-hero__content > *{ max-width: none; }

	body.mns .mns-hero__media{
		position: relative;
		inset: auto;
		width: 100%;
		height: clamp(240px, 42vw, 380px);
	}
	/* El desfase vertical del trazo se calcula para la maqueta de escritorio; al
	   apilar caería sobre el texto, así que se pega al borde de la onda. */
	body.mns .mns-hero__wave{ bottom: -1px; }
	body.mns .mns-hero__wave-stroke{ bottom: 4px; }
	/* Sobre el bloque de cita verde el trazo estorba: se retira. */
	body.mns .mns-hero--extra-quote .mns-hero__wave-stroke{ display: none; }

	body.mns .mns-hero__media{ display: flex; flex-direction: column; }
	body.mns .mns-hero__quote{
		position: static;
		width: auto;
		margin: 0;
		border-radius: 0;
	}
	/* Al apilar, la cita pasa a ser una banda bajo la imagen. */
	body.mns .mns-hero--extra-quote .mns-hero__media{ height: auto; }
	body.mns .mns-hero--extra-quote .mns-hero__img{ height: clamp(240px, 42vw, 380px); }

	body.mns .mns-hero__badge{
		width: 108px; height: 108px;
		bottom: auto; top: calc(100% - 54px);
	}
	body.mns .mns-hero--extra-badge{ padding-bottom: 60px; }

	body.mns .mns-hero__leaf--tl{ --mns-leaf-size: 150px; --mns-leaf-opacity: .22; }
	body.mns .mns-hero__leaf--br{ display: none; }
}

@media (max-width: 767px) {
	body.mns .mns-hero__media{ height: clamp(200px, 55vw, 280px); }
	body.mns .mns-hero--extra-quote .mns-hero__img{ height: clamp(200px, 55vw, 280px); }
	body.mns .mns-hero__quote{ padding: 1.25rem; }
	body.mns .mns-hero__quote p{ font-size: 1rem; }
	body.mns .mns-hero .mns-btn{ width: 100%; }
	body.mns .mns-hero__leaf--tl{ display: none; }
}


/* ######################################################################
   Estadísticas
   ###################################################################### */
/* =====================================================================
   Widget: Franja de estadísticas (mns-stats-bar)
   ===================================================================== */

body.mns .mns-stats{
	--mns-stats-cols: 4;
	--mns-stats-divider: rgba(247, 243, 240, .18);
	background: var(--mns-green-800);
	padding: 40px 24px;
}

body.mns .mns-stats__inner{
	display: grid;
	grid-template-columns: repeat(var(--mns-stats-cols), minmax(0, 1fr));
	max-width: var(--mns-content);
	margin-inline: auto;
}

body.mns .mns-stat{
	display: grid;
	justify-items: center;
	align-content: start;
	gap: .5rem;
	padding: .5rem 1rem;
	text-align: center;
}
/* Separador vertical entre columnas, no en la primera de cada fila. */
body.mns .mns-stat + .mns-stat{ border-left: 1px solid var(--mns-stats-divider); }

body.mns .mns-stat__icon{ color: var(--mns-gold-300); }
body.mns .mns-stat__icon svg{ width: 28px; height: 28px; stroke-width: 1.4; }

body.mns .mns-stat__value{
	font-family: var(--mns-font-display);
	font-size: clamp(1.75rem, 1.35rem + 1.6vw, 2.375rem);
	font-weight: 600;
	line-height: 1.05;
	color: var(--mns-gold-300);
	font-variant-numeric: tabular-nums;
}

body.mns .mns-stat__label{
	font-size: var(--mns-fs-small);
	line-height: 1.35;
	color: rgba(247, 243, 240, .78);
}

@media (max-width: 1024px) {
	/* En dos o tres columnas los separadores de la primera celda de cada fila
	   estorban; se sustituyen por separación con padding. */
	body.mns .mns-stat + .mns-stat{ border-left: 0; }
	body.mns .mns-stats__inner{ gap: 1.75rem 0; }
}

@media (max-width: 480px) {
	body.mns .mns-stats{ padding: 32px 16px; }
	body.mns .mns-stat{ padding-inline: .5rem; }
}


/* ######################################################################
   Valores
   ###################################################################### */
/* =====================================================================
   Widget: Fila de valores (mns-value-row)
   ===================================================================== */

body.mns .mns-values{
	--mns-values-cols: 5;
	background: var(--mns-cream-200);
	padding: 64px 24px;
}

body.mns .mns-values__grid{
	display: grid;
	grid-template-columns: repeat(var(--mns-values-cols), minmax(0, 1fr));
	gap: 0;
	max-width: var(--mns-content);
	margin-inline: auto;
}
body.mns .mns-values__grid--divided > * + *{ border-left: 1px solid var(--mns-line); }

/* Celda de texto inicial ("Lo que nos mueve") — algo más ancha. */
body.mns .mns-values__intro{ padding: .5rem 2rem .5rem 0; }
body.mns .mns-values__intro h2,
body.mns .mns-values__intro h3{ margin-bottom: .75rem; }
body.mns .mns-values__intro p{ font-size: var(--mns-fs-small); color: var(--mns-ink-600); margin: 1.25rem 0 0; }

body.mns .mns-value{
	display: grid;
	justify-items: center;
	align-content: start;
	gap: .625rem;
	padding: .5rem 1.25rem;
	text-align: center;
}
body.mns .mns-value__icon{ color: var(--mns-gold-500); }
body.mns .mns-value__icon svg{ width: 28px; height: 28px; stroke-width: 1.4; }

body.mns .mns-value__title{
	font-family: var(--mns-font-ui);
	font-size: .8125rem;
	font-weight: 600;
	color: var(--mns-ink-900);
	margin: .25rem 0 0;
}
body.mns .mns-value__text{
	font-size: .8125rem;
	line-height: 1.5;
	color: var(--mns-ink-600);
	margin: 0;
}

/* Variante con icono dentro de círculo (Nosotros). */
body.mns .mns-values--circle .mns-value__icon{ color: var(--mns-green-800); }
body.mns .mns-values--circle .mns-value__title{
	font-family: var(--mns-font-ui);
	font-size: .9375rem;
	text-transform: none;
	letter-spacing: 0;
}

@media (max-width: 1024px) {
	body.mns .mns-values__grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 0; }
	body.mns .mns-values__grid--divided > * + *{ border-left: 0; }
	body.mns .mns-values__intro{ grid-column: 1 / -1; padding: 0 0 .5rem; text-align: center; }
	body.mns .mns-values__intro .mns-rule::after{ margin-inline: auto; }
}

@media (max-width: 600px) {
	body.mns .mns-values{ padding: 48px 16px; }
	body.mns .mns-values__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 380px) {
	body.mns .mns-values__grid{ grid-template-columns: minmax(0, 1fr); }
}


/* ######################################################################
   Tarjetas de programa
   ###################################################################### */
/* =====================================================================
   Widget: Tarjetas de programa (mns-program-cards)
   El círculo de icono solapa la imagen a media altura, como en la referencia.
   ===================================================================== */

body.mns .mns-cards{
	--mns-cards-cols: 4;
	display: grid;
	grid-template-columns: repeat(var(--mns-cards-cols), minmax(0, 1fr));
	gap: 24px;
}

body.mns .mns-card-prog{
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--mns-cream-50);
	border: 1px solid var(--mns-line);
	border-radius: 14px;
	box-shadow: var(--mns-shadow-sm);
	overflow: visible; /* el icono sobresale de la caja */
	transition: transform var(--mns-dur) var(--mns-ease), box-shadow var(--mns-dur) var(--mns-ease);
}

body.mns .mns-card-prog__media{
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 14px 14px 0 0;
	overflow: hidden;
	background: var(--mns-cream-200);
}
body.mns .mns-card-prog__media img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .55s var(--mns-ease);
}

/* Círculo de icono a caballo entre imagen y cuerpo.
   Se ancla al borde superior de __body (no a la tarjeta), de modo que queda
   siempre centrado sobre la línea imagen/cuerpo sea cual sea la proporción. */
body.mns .mns-card-prog__icon{
	position: absolute;
	left: 24px;
	top: 0;
	transform: translateY(-50%);
	z-index: 2;
	box-shadow: 0 2px 10px rgba(59, 47, 31, .18);
	border: 3px solid var(--mns-cream-50);
}

body.mns .mns-card-prog__body{
	position: relative;
	padding: 2.25rem 1.5rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	flex: 1 1 auto;
}

body.mns .mns-card-prog__title{
	font-size: var(--mns-fs-h3);
	margin: 0;
}
body.mns .mns-card-prog__title a{ color: inherit; text-decoration: none; }
/* Enlace expandido: toda la tarjeta es clicable con un único enlace real. */
body.mns .mns-card-prog__title a::after{
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	border-radius: inherit;
}

body.mns .mns-card-prog__text{
	font-size: var(--mns-fs-body);
	line-height: 1.6;
	color: var(--mns-ink-600);
	margin: 0;
	flex: 1 1 auto;
}

body.mns .mns-card-prog__cta{ margin-top: .5rem; }

/* Hover */
body.mns .mns-cards--lift .mns-card-prog:hover{ transform: translateY(-4px); box-shadow: var(--mns-shadow); }
body.mns .mns-card-prog:hover .mns-card-prog__media img{ transform: scale(1.05); }
body.mns .mns-card-prog:hover .mns-card-prog__cta svg{ transform: translateX(3px); }
body.mns .mns-card-prog:focus-within{ box-shadow: 0 0 0 3px rgba(75, 107, 58, .25); }

@media (max-width: 1024px) {
	body.mns .mns-cards{ --mns-cards-cols: 2; }
}
@media (max-width: 600px) {
	body.mns .mns-cards{ --mns-cards-cols: 1; }
	body.mns .mns-card-prog__body{ padding: 2rem 1.25rem 1.25rem; }
}


/* ######################################################################
   Testimonios
   ###################################################################### */
/* =====================================================================
   Widget: Testimonios (mns-testimonials)
   ===================================================================== */

body.mns .mns-testi{ position: relative; }

body.mns .mns-testi__viewport{ display: grid; }
/* Todos los slides ocupan la misma celda: el alto lo marca el más alto y no
   hay salto al cambiar. */
body.mns .mns-testi__slide{
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	transition: opacity .45s var(--mns-ease), visibility .45s;
}
body.mns .mns-testi__slide.is-active{ opacity: 1; visibility: visible; }

/* Disposición "side": cita + retrato. */
body.mns .mns-testi--side .mns-testi__slide{
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 2rem;
	align-items: center;
}

body.mns .mns-testi__card{
	position: relative;
	margin: 0;
	padding: 2rem 2.25rem;
	background: var(--mns-cream-200);
	border-radius: var(--mns-radius-lg);
	overflow: hidden;
}
body.mns .mns-testi__mark{
	width: 34px; height: 34px;
	color: var(--mns-gold-500);
	margin-bottom: .875rem;
}
body.mns .mns-testi__card blockquote{ margin: 0; }
body.mns .mns-testi__card blockquote p{
	font-family: var(--mns-font-display);
	font-style: italic;
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--mns-heading);
	margin: 0;
}
body.mns .mns-testi__author{ margin-top: 1.25rem; line-height: 1.45; }
body.mns .mns-testi__author strong{ display: block; font-size: var(--mns-fs-small); font-weight: 600; color: var(--mns-ink-900); }
body.mns .mns-testi__author span{ font-size: var(--mns-fs-small); color: var(--mns-ink-400); }

body.mns .mns-testi__photo{ border-radius: var(--mns-radius-lg); overflow: hidden; aspect-ratio: 4 / 3.4; }
body.mns .mns-testi__photo img{ width: 100%; height: 100%; object-fit: cover; }

/* Puntos de paginación: el activo se alarga, como en la referencia. */
body.mns .mns-testi__dots{ display: flex; gap: .5rem; margin-top: 1.5rem; }
body.mns .mns-testi__dot{
	all: unset;
	width: 8px; height: 8px;
	border-radius: var(--mns-radius-pill);
	background: var(--mns-cream-300);
	cursor: pointer;
	transition: width var(--mns-dur) var(--mns-ease), background-color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-testi__dot:hover{ background: var(--mns-gold-300); }
body.mns .mns-testi__dot.is-active{ width: 22px; background: var(--mns-gold-500); }
body.mns .mns-testi__dot:focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: 3px; }

@media (max-width: 900px) {
	body.mns .mns-testi--side .mns-testi__slide{ grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
	body.mns .mns-testi__photo{ aspect-ratio: 16 / 9; }
}
@media (max-width: 600px) {
	body.mns .mns-testi__card{ padding: 1.5rem 1.25rem; }
	body.mns .mns-testi__card blockquote p{ font-size: 1rem; }
}


/* ######################################################################
   Noticias
   ###################################################################### */
/* =====================================================================
   Widget: Noticias con filtro (mns-news-filter)
   ===================================================================== */

body.mns .mns-news{ --mns-news-accent: var(--mns-gold-500); position: relative; }

/* ---------- Barra de filtros ---------- */
body.mns .mns-news__bar{
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-bottom: 2rem;
}
body.mns .mns-news__filters{ display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
body.mns .mns-news__filters-label{ font-size: var(--mns-fs-small); color: var(--mns-ink-400); white-space: nowrap; }

body.mns .mns-news__tabs{ display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
body.mns .mns-news__tab{
	all: unset;
	position: relative;
	padding-block: .375rem;
	font-size: var(--mns-fs-body);
	font-weight: 500;
	color: var(--mns-ink-600);
	cursor: pointer;
	white-space: nowrap;
	transition: color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-news__tab::after{
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 2px;
	background: var(--mns-news-accent);
	border-radius: 2px;
	transform: scaleX(0);
	transition: transform var(--mns-dur) var(--mns-ease);
}
body.mns .mns-news__tab:hover{ color: var(--mns-ink-900); }
body.mns .mns-news__tab.is-active{ color: var(--mns-ink-900); }
body.mns .mns-news__tab.is-active::after, body.mns .mns-news__tab:hover::after{ transform: scaleX(1); }
body.mns .mns-news__tab:focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: 3px; border-radius: 3px; }

body.mns .mns-news__search{ position: relative; margin-left: auto; min-width: 260px; }
body.mns .mns-news__search-input{ padding-right: 3rem; }
body.mns .mns-news__search{ margin: 0; }
body.mns .mns-news__search-icon{
	position: absolute;
	right: .5rem; top: 50%;
	transform: translateY(-50%);
	display: grid;
	place-items: center;
	width: 34px; height: 34px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--mns-ink-400);
	cursor: pointer;
	transition: background-color var(--mns-dur) var(--mns-ease), color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-news__search-icon:hover{ background: var(--mns-cream-200); color: var(--mns-green-800); }
body.mns .mns-news__search-icon svg{ width: 18px; height: 18px; }

/* ---------- Rejilla ---------- */
body.mns .mns-news__grid{
	--mns-news-cols: 4;
	display: grid;
	grid-template-columns: repeat(var(--mns-news-cols), minmax(0, 1fr));
	gap: 24px;
}

body.mns .mns-news__results{ transition: opacity var(--mns-dur) var(--mns-ease); }
body.mns .mns-news.is-loading .mns-news__results{ opacity: .45; pointer-events: none; }

body.mns .mns-news__empty{
	grid-column: 1 / -1;
	padding: 3rem 1rem;
	text-align: center;
	color: var(--mns-ink-400);
}

/* ---------- Tarjeta ---------- */
body.mns .mns-news-card{
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--mns-cream-50);
	border: 1px solid var(--mns-line);
	border-radius: var(--mns-radius);
	overflow: hidden;
	transition: transform var(--mns-dur) var(--mns-ease), box-shadow var(--mns-dur) var(--mns-ease);
}
body.mns .mns-news-card:hover{ transform: translateY(-3px); box-shadow: var(--mns-shadow); }
body.mns .mns-news-card:focus-within{ box-shadow: 0 0 0 3px rgba(75, 107, 58, .25); }

body.mns .mns-news-card__media{ display: block; aspect-ratio: 16 / 10; background: var(--mns-cream-200); overflow: hidden; }
body.mns .mns-news-card__media img{ width: 100%; height: 100%; object-fit: cover; transition: transform .55s var(--mns-ease); }
body.mns .mns-news-card:hover .mns-news-card__media img{ transform: scale(1.05); }

body.mns .mns-news-card__body{
	display: flex;
	flex-direction: column;
	gap: .5rem;
	padding: 1.25rem;
	flex: 1 1 auto;
}
body.mns .mns-news-card__body .mns-eyebrow{ margin-bottom: 0; }

body.mns .mns-news-card__title{ font-size: 1.25rem; line-height: 1.3; margin: 0; }
body.mns .mns-news-card__title a{ color: inherit; text-decoration: none; }
/* Enlace expandido: un solo enlace real cubre la tarjeta. */
body.mns .mns-news-card__title a::after{ content: ""; position: absolute; inset: 0; z-index: 2; }

body.mns .mns-news-card__excerpt{ font-size: .875rem; line-height: 1.6; color: var(--mns-ink-600); margin: 0; flex: 1 1 auto; }

body.mns .mns-news-card__meta{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: .875rem;
	margin-top: .25rem;
	border-top: 1px solid var(--mns-line);
}
body.mns .mns-news-card__meta .mns-meta{ display: inline-flex; align-items: center; gap: .375rem; }
body.mns .mns-news-card__meta .mns-meta svg{ width: 14px; height: 14px; }
/* El "Leer más" es decorativo: el enlace real es el título. */
body.mns .mns-news-card__meta .mns-link{ position: relative; z-index: 3; }

/* ---------- Paginación ---------- */
body.mns .mns-pagination{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	margin-top: 2.5rem;
	flex-wrap: wrap;
}
body.mns .mns-pagination .page-numbers,
body.mns .mns-pagination__next{
	display: inline-grid;
	place-items: center;
	min-width: 34px;
	height: 34px;
	padding-inline: .625rem;
	border: 0;
	border-radius: var(--mns-radius-pill);
	background: transparent;
	font-size: var(--mns-fs-small);
	font-weight: 500;
	color: var(--mns-ink-600);
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--mns-dur) var(--mns-ease), color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-pagination .page-numbers:hover,
body.mns .mns-pagination__next:hover{ background: var(--mns-cream-200); color: var(--mns-green-800); }
body.mns .mns-pagination .page-numbers.current{ background: var(--mns-green-800); color: var(--mns-cream-50); }
body.mns .mns-pagination .page-numbers.dots{ cursor: default; background: none; }

body.mns .mns-pagination__next{ display: inline-flex; align-items: center; gap: .375rem; }
body.mns .mns-pagination__next svg{ width: 14px; height: 14px; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	body.mns .mns-news__grid{ --mns-news-cols: 2; }
	body.mns .mns-news__search{ margin-left: 0; width: 100%; }
}
@media (max-width: 600px) {
	body.mns .mns-news__grid{ --mns-news-cols: 1; }
	body.mns .mns-news__bar{ gap: 1rem; }
	body.mns .mns-news__tabs{ gap: 1rem; overflow-x: auto; flex-wrap: nowrap; padding-bottom: .25rem; }
	body.mns .mns-news__filters{ width: 100%; }
	body.mns .mns-news__filters-label{ display: none; }
}


/* ######################################################################
   Pasos del checkout
   ###################################################################### */
/* =====================================================================
   Widget: Pasos del checkout (mns-checkout-steps)
   Fuente única de verdad del stepper; woocommerce.css no lo duplica.
   ===================================================================== */

body.mns .mns-steps{ margin-bottom: 2.5rem; }

body.mns .mns-steps__list{
	display: flex;
	align-items: flex-start;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: none;
}

body.mns .mns-steps__item{ display: flex; align-items: center; gap: .75rem; flex: 0 0 auto; }
body.mns .mns-steps__link{ display: flex; align-items: center; gap: .75rem; text-decoration: none; color: inherit; }

body.mns .mns-steps__num{
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--mns-cream-200);
	color: var(--mns-ink-400);
	font-size: var(--mns-fs-small);
	font-weight: 600;
	flex: 0 0 auto;
	transition: background-color var(--mns-dur) var(--mns-ease), color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-steps__num svg{ width: 15px; height: 15px; }

body.mns .mns-steps__item.is-active .mns-steps__num,
body.mns .mns-steps__item.is-done .mns-steps__num{
	background: var(--mns-green-800);
	color: var(--mns-cream-50);
}

body.mns .mns-steps__label{ line-height: 1.3; }
body.mns .mns-steps__title{ display: block; font-size: var(--mns-fs-body); font-weight: 500; color: var(--mns-ink-400); }
body.mns .mns-steps__sub{ display: block; font-size: .75rem; color: var(--mns-ink-400); }
body.mns .mns-steps__item.is-active .mns-steps__title,
body.mns .mns-steps__item.is-done .mns-steps__title{ color: var(--mns-ink-900); }

body.mns .mns-steps__line{
	flex: 1 1 auto;
	min-width: 24px;
	height: 1px;
	margin: 17px .875rem 0;
	background: var(--mns-line);
	list-style: none;
}
body.mns .mns-steps__item.is-done + .mns-steps__line{ background: var(--mns-green-800); }

@media (max-width: 1024px) {
	body.mns .mns-steps__sub{ display: none; }
}
@media (max-width: 767px) {
	body.mns .mns-steps__label{ display: none; }
	body.mns .mns-steps__list{ justify-content: space-between; }
	body.mns .mns-steps__line{ margin-inline: .5rem; }
}


/* ######################################################################
   Donación
   ###################################################################### */
/* =====================================================================
   Widget: Bloque de donación (mns-donation-form)
   ===================================================================== */

body.mns .mns-donation{
	--mns-don-accent: var(--mns-gold-500);
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

/* ---------- Selector ---------- */
body.mns .mns-donation__picker{
	background: var(--mns-cream-50);
	border: 1px solid var(--mns-line);
	border-radius: var(--mns-radius-lg);
	padding: 1.75rem;
}
body.mns .mns-donation__title{ font-size: 1.25rem; margin-bottom: 1.25rem; }

/* Segmented control de frecuencia. */
body.mns .mns-donation__tabs{
	display: inline-flex;
	gap: .25rem;
	padding: .25rem;
	background: var(--mns-cream-200);
	border-radius: var(--mns-radius-sm);
	margin-bottom: 1.5rem;
	max-width: 100%;
	overflow-x: auto;
}
body.mns .mns-donation__tab{
	all: unset;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .625rem 1rem;
	border-radius: 6px;
	font-size: var(--mns-fs-body);
	font-weight: 500;
	color: var(--mns-ink-600);
	white-space: nowrap;
	cursor: pointer;
	transition: background-color var(--mns-dur) var(--mns-ease), color var(--mns-dur) var(--mns-ease);
}
body.mns .mns-donation__tab svg{ width: 15px; height: 15px; opacity: .7; }
body.mns .mns-donation__tab:hover{ color: var(--mns-ink-900); }
body.mns .mns-donation__tab.is-active{ background: var(--mns-green-800); color: var(--mns-cream-50); }
body.mns .mns-donation__tab:focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: 2px; }

/* Cajas de importe. */
body.mns .mns-donation__amounts{
	display: grid;
	/* La última pista es algo más ancha: aloja el campo de importe libre sin
	   recortar el marcador de posición. */
	grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(124px, 1.2fr);
	gap: .75rem;
}

/* La caja es <button> para los importes fijos y <div> para el importe libre;
   una única regla sirve a los dos neutralizando los estilos de botón. */
body.mns .mns-donation__amount{
	position: relative;
	display: grid;
	align-content: center;
	justify-items: center;
	gap: .15rem;
	box-sizing: border-box;
	width: 100%;
	min-height: 96px;
	margin: 0;
	padding: 1rem .5rem 1.75rem;
	appearance: none;
	background: var(--mns-cream-200);
	border: 1.5px solid transparent;
	border-radius: var(--mns-radius);
	font-family: var(--mns-font-ui);
	text-align: center;
	cursor: pointer;
	transition: border-color var(--mns-dur) var(--mns-ease),
	            background-color var(--mns-dur) var(--mns-ease),
	            box-shadow var(--mns-dur) var(--mns-ease);
}

body.mns .mns-donation__amount:hover{ background: var(--mns-cream-300); }
body.mns .mns-donation__amount.is-selected{
	background: var(--mns-cream-50);
	border-color: var(--mns-don-accent);
	box-shadow: 0 2px 12px rgba(216, 155, 43, .16);
}
body.mns .mns-donation__amount:focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: 2px; }

body.mns .mns-donation__amount-value{ font-size: 1.0625rem; font-weight: 600; color: var(--mns-ink-900); line-height: 1.2; }
body.mns .mns-donation__amount-cur{ font-size: .75rem; color: var(--mns-ink-400); }

/* Hoja decorativa al pie de cada caja. */
body.mns .mns-donation__amount-leaf{
	position: absolute;
	bottom: .625rem;
	left: 50%;
	transform: translateX(-50%);
	width: 16px; height: 16px;
	color: var(--mns-gold-300);
}

/* Caja de importe libre. */
body.mns .mns-donation__amount--custom{ padding: .875rem .75rem 1.75rem; }
body.mns .mns-donation__amount--custom label{
	font-size: .8125rem;
	font-weight: 500;
	color: var(--mns-ink-600);
	margin: 0 0 .375rem;
	cursor: pointer;
}
body.mns .mns-donation__custom-input{
	min-height: 34px;
	padding: .25rem .375rem;
	text-align: center;
	font-size: .75rem;
	background: var(--mns-cream-50);
}
/* El marcador debe caber en ~100px sin recortarse; el valor tecleado
   se sigue mostrando a .75rem. */
body.mns .mns-donation__custom-input::placeholder{ font-size: .625rem; letter-spacing: -.01em; }

/* Casilla de coste de transacción. */
body.mns .mns-donation__fee{ margin-top: 1.5rem; }

/* ---------- Resumen ---------- */
body.mns .mns-donation__summary{
	position: sticky;
	top: calc(var(--mns-header-h) + 24px);
	background: var(--mns-green-900);
	color: rgba(247, 243, 240, .8);
	border-radius: var(--mns-radius-lg);
	padding: 1.75rem;
}
body.mns .mns-donation__summary-title{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	font-size: 1.125rem;
	color: var(--mns-cream-50);
	margin-bottom: 1.25rem;
}
body.mns .mns-donation__summary-title svg{ width: 20px; height: 20px; color: var(--mns-gold-300); flex: 0 0 auto; }

body.mns .mns-donation__rows{ margin: 0 0 1.5rem; }
body.mns .mns-donation__row{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding-block: .5rem;
	font-size: var(--mns-fs-small);
}
body.mns .mns-donation__row dt{ margin: 0; color: rgba(247, 243, 240, .72); }
body.mns .mns-donation__row dd{ margin: 0; color: var(--mns-cream-50); font-weight: 500; white-space: nowrap; }

body.mns .mns-donation__row--total{
	border-top: 1px solid rgba(247, 243, 240, .16);
	margin-top: .5rem;
	padding-top: 1rem;
}
body.mns .mns-donation__row--total dt{ font-size: 1rem; color: var(--mns-cream-50); }
body.mns .mns-donation__row--total dd{ font-size: 1.25rem; font-weight: 700; color: var(--mns-gold-300); }

body.mns .mns-donation__submit[disabled],
body.mns .mns-donation__submit.is-disabled{ opacity: .5; cursor: not-allowed; transform: none; }

body.mns .mns-donation__error{
	margin: .75rem 0 0;
	font-size: var(--mns-fs-small);
	color: #ffb4a8;
}

body.mns .mns-donation__secure{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	margin: .875rem 0 0;
	font-size: .75rem;
	color: rgba(247, 243, 240, .6);
}
body.mns .mns-donation__secure svg{ width: 14px; height: 14px; }

body.mns .mns-donation__gateways{ margin-top: 1.25rem; }
body.mns .mns-donation__gateways-label{ display: block; font-size: .75rem; color: rgba(247, 243, 240, .6); margin-bottom: .5rem; }
body.mns .mns-donation__gateways .mns-paylogos{ justify-content: flex-start; margin-top: 0; }
body.mns .mns-donation__gateways .mns-paylogos span{
	background: rgba(247, 243, 240, .10);
	border-color: rgba(247, 243, 240, .18);
	color: var(--mns-cream-50);
}

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
	body.mns .mns-donation__amounts{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	body.mns .mns-donation__amounts{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
	body.mns .mns-donation{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-donation__summary{ position: static; }
}
@media (max-width: 600px) {
	body.mns .mns-donation__picker{ padding: 1.25rem; }
	body.mns .mns-donation__amounts{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.mns .mns-donation__tabs{ width: 100%; }
	body.mns .mns-donation__tab{ flex: 1 0 auto; justify-content: center; padding-inline: .625rem; }
}
@media (max-width: 380px) {
	body.mns .mns-donation__amounts{ grid-template-columns: minmax(0, 1fr); }
}


/* ######################################################################
   Mapa de impacto
   ###################################################################### */
/* =====================================================================
   Widget: Mapa de impacto (mns-impact-map)
   ===================================================================== */

body.mns .mns-map__title{ margin-bottom: 1.25rem; }

body.mns .mns-map__body{ display: grid; gap: 1.5rem; }

body.mns .mns-map__canvas{
	position: relative;
	background: var(--mns-cream-200);
	border-radius: var(--mns-radius);
	overflow: hidden;
	padding: 1rem;
}
body.mns .mns-map__image{ display: block; width: 100%; height: auto; }

body.mns .mns-map__points{ list-style: none; margin: 0; padding: 0; }

body.mns .mns-map__point{
	position: absolute;
	left: var(--mns-map-x, 50%);
	top: var(--mns-map-y, 50%);
	display: flex;
	align-items: center;
	gap: .5rem;
	transform: translate(-50%, -50%);
}
/* La etiqueta se coloca antes o después del punto sin mover el punto. */
body.mns .mns-map__point--left{ flex-direction: row-reverse; transform: translate(-100%, -50%); }
body.mns .mns-map__point--left .mns-map__dot{ margin-left: 0; }

body.mns .mns-map__dot{
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--mns-gold-500);
	flex: 0 0 auto;
	box-shadow: 0 0 0 3px rgba(216, 155, 43, .22);
}

body.mns .mns-map__label{
	font-size: var(--mns-fs-small);
	font-weight: 500;
	color: var(--mns-ink-900);
	white-space: nowrap;
	cursor: default;
}
body.mns .mns-map__label:focus-visible{ outline: 2px solid var(--mns-green-500); outline-offset: 2px; border-radius: 3px; }

body.mns .mns-map__tip{
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%);
	width: max-content;
	max-width: 200px;
	padding: .5rem .625rem;
	background: var(--mns-green-900);
	color: var(--mns-cream-50);
	font-size: .75rem;
	line-height: 1.4;
	border-radius: 6px;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--mns-dur) var(--mns-ease), visibility var(--mns-dur);
	z-index: 5;
	white-space: normal;
	pointer-events: none;
}
body.mns .mns-map__point:hover .mns-map__tip,
body.mns .mns-map__label:focus-visible + .mns-map__tip{ opacity: 1; visibility: visible; }

/* Pulso: anillo que se expande. Se desactiva con prefers-reduced-motion
   mediante la regla global del tema. */
body.mns .mns-map--pulse .mns-map__dot::after{
	content: "";
	position: absolute;
	inset: -6px;
	border-radius: 50%;
	border: 1px solid var(--mns-gold-500);
	animation: mns-map-pulse 2.4s var(--mns-ease) infinite;
}
body.mns .mns-map--pulse .mns-map__dot{ position: relative; }

@keyframes mns-map-pulse {
	0%   { transform: scale(.6); opacity: .9; }
	70%  { transform: scale(1.8); opacity: 0; }
	100% { transform: scale(1.8); opacity: 0; }
}

body.mns .mns-map__aside p{ font-size: var(--mns-fs-body); color: var(--mns-ink-600); margin-bottom: 1rem; }

@media (min-width: 768px) {
	body.mns .mns-map__body{ grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: center; gap: 2rem; }
}

/* En pantallas pequeñas las etiquetas se solapan; se ocultan y el mapa queda
   como imagen con su texto alternativo, más la lista textual del lateral. */
@media (max-width: 480px) {
	body.mns .mns-map__label{ display: none; }
	body.mns .mns-map__point{ transform: translate(-50%, -50%); }
}

/* Estado abierto por toque (dispositivos sin hover). Ver assets/js/map.js. */
body.mns .mns-map__point.is-open .mns-map__tip{ opacity: 1; visibility: visible; }


/* ######################################################################
   Tienda
   ###################################################################### */
/* =====================================================================
   Widget: Rejilla de productos (mns-product-grid)
   Las clases .mns-product / .mns-products / .mns-shop-filters / .mns-cat-head
   están definidas en el tema (woocommerce.css). Aquí sólo lo específico
   del widget, para no duplicar reglas.
   ===================================================================== */

body.mns .mns-shop{ position: relative; }

body.mns .mns-shop__group + .mns-shop__group{ margin-top: 2.5rem; }
body.mns .mns-shop__group[hidden]{ display: none; }

body.mns .mns-shop__empty{
	padding: 2.5rem 1rem;
	text-align: center;
	color: var(--mns-ink-400);
	background: var(--mns-cream-200);
	border-radius: var(--mns-radius);
}

/* En la tienda de la referencia las categorías se muestran en dos columnas
   de bloques (Tote bags | Gorras / Libretas | Láminas). */
@media (min-width: 1025px) {
	body.mns .mns-shop--paired{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; }
	body.mns .mns-shop--paired .mns-shop-filters{ grid-column: 1 / -1; }
	body.mns .mns-shop--paired .mns-shop__group + .mns-shop__group{ margin-top: 0; }
}


/* ######################################################################
   Componentes de Manesencia Elements
   ###################################################################### */
/* =====================================================================
   MANESENCIA ELEMENTS — componentes nuevos del plugin
   (cabecera y pie como widgets, encabezados, tarjetas, formularios,
   plantillas de noticia y producto)
   ===================================================================== */

/* ---------- Utilidades ---------- */
body.mns .mns-btn--light{ background: var(--mns-cream-50); color: var(--mns-green-800); }
body.mns .mns-btn--light:hover{ background: #fff; color: var(--mns-green-800); box-shadow: var(--mns-shadow); }
body.mns .mns-btn span{ display: inline-block; }
body.mns .mne-btn-wrap{ display: flex; }
body.mns .mne-btn-wrap--center{ justify-content: center; }
body.mns .mne-btn-wrap--right{ justify-content: flex-end; }
body.mns .mne-btn-wrap--stretch .mns-btn{ width: 100%; }
body.mns .mne-glyph{ display: inline-block; width: .72em; height: .72em; margin-left: .3em; vertical-align: .05em; color: var(--mns-gold-500); stroke-width: 1.8; }
body.mns .mne-logo-text{ font-family: var(--mns-font-display); font-size: 1.6rem; font-weight: 600; color: inherit; }
body.mns .mne-hp{ position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Cabecera como widget ---------- */
body.mns .mne-sticky{ position: sticky; top: 0; z-index: 100; }
body.admin-bar .mne-sticky { top: 32px; }
@media (max-width: 782px) { body.admin-bar .mne-sticky { top: 46px; } }
body.mns .elementor-widget-mne_header .mns-header{ position: relative; }
body.mns .mns-header__logo img{ display: block; width: auto; height: 64px; }
body.mns .mns-menu .mns-menu-cta{ display: none; }
@media (max-width: 767px) {
	body.mns .mns-menu .mns-menu-cta{ display: block; }
}

/* ---------- Pie como widget ---------- */
body.mns .mns-footer__inner{ grid-template-columns: 1.4fr repeat(var(--mne-footer-cols, 3), minmax(0, 1fr)) 1.2fr; }
body.mns .mne-footer--wave{ padding-top: clamp(40px, 5vw, 80px); }
body.mns .mne-footer__wave{ position: absolute; top: -1px; left: 0; right: 0; height: clamp(40px, 5vw, 80px); transform: scaleY(-1); z-index: 1; pointer-events: none; }
body.mns .mne-footer__wave svg{ width: 100%; height: 100%; fill: var(--mns-cream-100); }
body.mns .mne-footer__leaf{ --mns-leaf-bottom: -40px; --mns-leaf-right: -50px; --mns-leaf-size: 340px; --mns-leaf-opacity: .12; --mns-leaf-rotate: 165deg; color: var(--mns-gold-500); }
body.mns .mne-footer__brand .mne-logo-text{ color: var(--mns-cream-50); }
body.mns .mns-footer__logo img{ height: 68px; width: auto; }
@media (max-width: 1024px) { body.mns .mns-footer__inner{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { body.mns .mns-footer__inner{ grid-template-columns: minmax(0, 1fr); } }

/* ---------- Encabezado de sección ---------- */
body.mns .mne-shead{ display: flex; flex-direction: column; gap: .25rem; }
body.mns .mne-shead--center{ align-items: center; text-align: center; }
body.mns .mne-shead--center .mne-shead__sub{ margin-inline: auto; }
body.mns .mne-shead--link{ flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
body.mns .mne-shead__title{ margin: 0 0 .75rem; }
body.mns .mne-shead__title.mns-rule::after{ margin-top: .6rem; }
body.mns .mne-shead__sub{ max-width: 640px; margin: .25rem 0 0; color: var(--mns-ink-600); font-size: var(--mns-fs-body); }
body.mns .mne-shead__link{ white-space: nowrap; }

/* ---------- Encabezado de página ---------- */
body.mns .mne-phead{ padding-block: .5rem 1.5rem; }
body.mns .mne-phead__title{ font-size: var(--mns-fs-h1-page); line-height: 1.15; margin: 0 0 .5rem; }
body.mns .mne-phead__lead{ color: var(--mns-ink-600); margin: 0; }
body.mns .mne-crumbs ol{ display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0 0 1.5rem; padding: 0; font-size: .75rem; color: var(--mns-ink-400); }
body.mns .mne-crumbs li + li::before{ content: "›"; margin-right: .4rem; color: var(--mns-ink-400); }
body.mns .mne-crumbs a{ color: var(--mns-ink-400); text-decoration: none; }
body.mns .mne-crumbs a:hover{ color: var(--mns-green-800); }
body.mns .mne-crumbs [aria-current]{ color: var(--mns-ink-900); font-weight: 600; }

/* ---------- Hero: variante sin onda (Tienda) y ventajas ---------- */
body.mns .mns-hero--nowave .mns-hero__media::before{ content: ""; position: absolute; inset: 0 auto 0 0; width: 30%; background: linear-gradient(90deg, var(--mns-cream-100), transparent); z-index: 1; }
body.mns .mns-hero__actions{ display: flex; gap: .875rem; flex-wrap: wrap; }
body.mns .mne-hero-claims{ display: flex; flex-wrap: wrap; gap: 1rem 1.75rem; margin-top: 1.75rem; }
body.mns .mne-hero-claim{ display: flex; align-items: center; gap: .6rem; font-size: var(--mns-fs-small); line-height: 1.4; color: var(--mns-ink-600); flex: 1 1 0; min-width: 0; }
@media (min-width: 1025px) { body.mns .mne-hero-claims{ flex-wrap: nowrap; gap: 1rem 1.25rem; } body.mns .mne-hero-claim + .mne-hero-claim{ padding-left: 1.25rem; } }
body.mns .mne-hero-claim + .mne-hero-claim{ padding-left: 1.75rem; border-left: 1px solid var(--mns-line); }
body.mns .mne-hero-claim svg{ width: 28px; height: 28px; flex: 0 0 auto; color: var(--mns-green-800); }
body.mns .mne-hero-claim b{ color: var(--mns-ink-900); font-weight: 600; }
@media (max-width: 1024px) {
	body.mns .mns-hero--nowave .mns-hero__media::before{ display: none; }
	body.mns .mne-hero-claim + .mne-hero-claim{ padding-left: 0; border-left: 0; }
}

/* ---------- Valores ---------- */
body.mns .mne-values--upper .mns-value__title{ text-transform: uppercase; letter-spacing: .1em; }

/* ---------- Estadísticas en tarjeta ---------- */
body.mns .mne-stats--card{ background: var(--mns-cream-200); color: var(--mns-ink-600); border-radius: var(--mns-radius-lg); padding: 2rem; --mns-stats-divider: var(--mns-line); }
body.mns .mne-stats--card .mns-stats__inner{ --mns-stats-cols: 2; row-gap: 0; }
body.mns .mne-stats--card .mns-stat{ grid-template-columns: auto 1fr; justify-items: start; text-align: left; align-items: center; padding: 1.1rem 1rem; }
body.mns .mne-stats--card .mns-stat:nth-child(odd){ border-left: 0; }
body.mns .mne-stats--card .mns-stat:nth-child(n+3){ border-top: 1px solid var(--mns-line); }
body.mns .mne-stats--card .mns-stat__icon{ color: var(--mns-green-800); }
body.mns .mne-stats--card .mns-stat__icon svg{ width: 34px; height: 34px; }
body.mns .mne-stats--card .mns-stat__value{ color: var(--mns-green-800); font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
body.mns .mne-stats--card .mns-stat__label{ color: var(--mns-ink-600); }
body.mns .mne-stat__text{ display: grid; gap: .35rem; }
body.mns .mne-stats__title{ font-size: 1.25rem; text-align: center; margin-bottom: 1rem; }
@media (max-width: 1024px) { body.mns .mne-stats--card .mns-stat + .mns-stat{ border-left: 0; } }

/* ---------- Imagen + texto ---------- */
body.mns .mne-split{ --mne-split-img: 46%; display: grid; grid-template-columns: minmax(0, 1fr) var(--mne-split-img); gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: center; }
body.mns .mne-split--img-left{ grid-template-columns: var(--mne-split-img) minmax(0, 1fr); }
body.mns .mne-split--img-left .mne-split__media{ order: -1; }
body.mns .mne-split__media{ position: relative; isolation: isolate; }
body.mns .mne-split__media img{ display: block; width: 100%; height: auto; }
body.mns .mne-split__media--rounded img{ border-radius: var(--mns-radius-lg); object-fit: cover; }
body.mns .mne-split__leaf{ --mns-leaf-bottom: -30px; --mns-leaf-left: -40px; --mns-leaf-size: 170px; --mns-leaf-opacity: .5; color: var(--mns-gold-500); z-index: 2; }
body.mns .mne-split__title{ margin-bottom: 1.25rem; }
body.mns .mne-split__text{ color: var(--mns-ink-600); }
body.mns .mne-split__note{ display: flex; gap: .875rem; align-items: flex-start; margin: 1.25rem 0; font-size: var(--mns-fs-small); color: var(--mns-ink-600); }
body.mns .mne-split__note svg{ width: 34px; height: 34px; flex: 0 0 auto; color: var(--mns-green-800); }
body.mns .mne-split__note b{ display: block; color: var(--mns-ink-900); }
body.mns .mne-split .mns-btn{ margin-top: 1rem; }
body.mns .mne-split--card{ background: var(--mns-cream-200); border-radius: var(--mns-radius-lg); overflow: hidden; gap: 2rem; }
body.mns .mne-split--card .mne-split__media img{ border-radius: 0; height: 100%; object-fit: cover; }
body.mns .mne-split--card .mne-split__body{ padding: 1.75rem 2rem 1.75rem 0; }
body.mns .mne-split--card.mne-split--img-right .mne-split__body{ padding: 1.75rem 0 1.75rem 2rem; }
@media (max-width: 900px) {
	body.mns .mne-split, body.mns .mne-split--img-left{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mne-split__media{ order: -1; }
	body.mns .mne-split--card .mne-split__body, body.mns .mne-split--card.mne-split--img-right .mne-split__body{ padding: 0 1.5rem 1.5rem; }
}

/* ---------- Noticias: fecha sobre la imagen ---------- */
body.mns .mns-news-card__media{ position: relative; }
body.mns .mns-news-card__badge{ position: absolute; left: .875rem; bottom: .875rem; padding: .35rem .7rem; border-radius: var(--mns-radius-pill); background: rgba(247, 243, 240, .94); color: var(--mns-ink-900); font-size: .6875rem; font-weight: 600; }
body.mns .mns-news-card--badge .mns-news-card__title{ font-size: 1.0625rem; }
body.mns .mns-news-card--badge .mns-news-card__meta{ border-top: 0; padding-top: 0; }
body.mns .mne-news-cards .mne-btn-wrap{ margin-top: 2rem; }

/* ---------- Tarjetas laterales (categorías, relacionadas) ---------- */
body.mns .mne-side-card{ background: var(--mns-cream-200); border-radius: var(--mns-radius-lg); padding: 1.5rem; }
body.mns .mne-side-card + .mne-side-card, body.mns .mne-side-card + .mne-cta-card, body.mns .mne-sidebar > * + *{ margin-top: 1.5rem; }
body.mns .mne-side-card__title{ font-size: 1.25rem; margin-bottom: 1rem; }
body.mns .mne-cat-list{ list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; }
body.mns .mne-cat-list a{ display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: .75rem; padding: .5rem 0; color: var(--mns-ink-600); text-decoration: none; font-size: var(--mns-fs-small); transition: color var(--mns-dur) var(--mns-ease); }
body.mns .mne-cat-list a:hover{ color: var(--mns-green-800); }
body.mns .mne-cat-list svg{ width: 20px; height: 20px; color: var(--mns-green-800); }
body.mns .mne-cat-list em{ font-style: normal; color: var(--mns-ink-400); }
body.mns .mne-related{ list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
body.mns .mne-related a{ display: grid; grid-template-columns: 80px 1fr; gap: .875rem; text-decoration: none; }
body.mns .mne-related img{ width: 80px; height: 80px; object-fit: cover; border-radius: var(--mns-radius-sm); }
body.mns .mne-related span{ display: grid; gap: .2rem; align-content: start; }
body.mns .mne-related .mns-eyebrow{ margin: 0; font-size: .625rem; font-style: normal; }
body.mns .mne-related b{ font-size: var(--mns-fs-small); color: var(--mns-ink-900); line-height: 1.35; }
body.mns .mne-related small{ font-size: .75rem; color: var(--mns-ink-400); }

/* ---------- Boletín ---------- */
body.mns .mne-nl{ display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; align-items: center; gap: 1.5rem 2.5rem; padding: 1.75rem 2rem; border-radius: var(--mns-radius-lg); background: var(--mns-green-800); color: rgba(247, 243, 240, .8); }
body.mns .mne-nl__head{ display: flex; align-items: center; gap: 1.25rem; }
body.mns .mne-nl__icon{ display: grid; place-items: center; width: 64px; height: 64px; flex: 0 0 auto; border-radius: 50%; background: var(--mns-cream-200); color: var(--mns-gold-500); }
body.mns .mne-nl__icon svg{ width: 28px; height: 28px; }
body.mns .mne-nl__title{ font-size: 1.375rem; margin: 0 0 .25rem; color: var(--mns-cream-50); }
body.mns .mne-nl__text{ margin: 0; font-size: var(--mns-fs-small); }
body.mns .mne-nl__form{ position: relative; display: flex; flex-wrap: wrap; gap: 0; }
body.mns .mne-nl__form input[type="email"]{ flex: 1 1 200px; min-height: 50px; border-radius: var(--mns-radius-sm) 0 0 var(--mns-radius-sm); border: 0; }
body.mns .mne-nl__form button{ display: inline-flex; align-items: center; gap: .5rem; min-height: 50px; padding: 0 1.25rem; border: 0; border-radius: 0 var(--mns-radius-sm) var(--mns-radius-sm) 0; background: var(--mns-gold-500); color: #fff; font-family: var(--mns-font-ui); font-weight: 600; cursor: pointer; transition: background-color var(--mns-dur) var(--mns-ease); }
body.mns .mne-nl__form button:hover{ background: var(--mns-gold-600); }
body.mns .mne-nl__form button svg{ width: 18px; height: 18px; }
body.mns .mne-nl__form .mne-form-notice{ flex-basis: 100%; }
body.mns .mne-nl__social{ display: grid; gap: .625rem; justify-items: start; font-size: var(--mns-fs-small); color: var(--mns-cream-50); }
body.mns .mne-nl__social .mns-social{ margin: 0; }
body.mns .mne-nl--light{ background: var(--mns-cream-200); color: var(--mns-ink-600); }
body.mns .mne-nl--light .mne-nl__title{ color: var(--mns-ink-900); }
body.mns .mne-nl--light .mne-nl__icon{ background: var(--mns-cream-50); }
body.mns .mne-nl--light .mne-nl__form input[type="email"]{ border: 1px solid var(--mns-line); border-right: 0; }
body.mns .mne-nl--light .mne-nl__form button{ background: var(--mns-green-800); }
body.mns .mne-nl--card{ grid-template-columns: minmax(0, 1fr); background: var(--mns-cream-200); color: var(--mns-ink-600); padding: 1.5rem; }
body.mns .mne-nl--card .mne-nl__head{ align-items: flex-start; }
body.mns .mne-nl--card .mne-nl__icon{ width: 48px; height: 48px; background: var(--mns-green-800); color: var(--mns-cream-50); }
body.mns .mne-nl--card .mne-nl__icon svg{ width: 22px; height: 22px; }
body.mns .mne-nl--card .mne-nl__title{ color: var(--mns-ink-900); font-size: 1.125rem; }
body.mns .mne-nl--card .mne-nl__form button{ background: var(--mns-green-800); }
body.mns .mne-nl--card .mne-nl__form input[type="email"]{ border: 1px solid var(--mns-line); border-right: 0; }
@media (max-width: 1024px) { body.mns .mne-nl{ grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
	/* Cuando el botón baja de línea, campo y botón llevan sus cuatro esquinas redondeadas. */
	body.mns .mne-nl{ padding: 1.5rem 1.25rem; }
	body.mns .mne-nl__form{ gap: .5rem; }
	body.mns .mne-nl__form input[type="email"], body.mns .mne-nl--light .mne-nl__form input[type="email"], body.mns .mne-nl--card .mne-nl__form input[type="email"]{ flex-basis: 100%; border-radius: var(--mns-radius-sm); }
	body.mns .mne-nl--light .mne-nl__form input[type="email"], body.mns .mne-nl--card .mne-nl__form input[type="email"]{ border-right: 1px solid var(--mns-line); }
	body.mns .mne-nl__form button{ width: 100%; justify-content: center; border-radius: var(--mns-radius-sm); }
}

/* ---------- Avisos de formularios ---------- */
body.mns .mne-form-notice{ margin: .75rem 0 0; padding: .625rem .875rem; border-radius: var(--mns-radius-sm); font-size: var(--mns-fs-small); background: var(--mns-cream-50); color: var(--mns-green-800); border-left: 3px solid var(--mns-green-500); }
body.mns .mne-form-notice.is-error{ color: #8a1f17; border-left-color: #b3261e; }

/* ---------- Banda CTA ---------- */
body.mns .mne-cta-band{ position: relative; display: grid; grid-template-columns: auto minmax(0, 1.2fr) minmax(0, 1fr) auto; align-items: center; gap: 1.5rem 2rem; padding: 1.75rem 2.25rem; border-radius: var(--mns-radius-lg); background: var(--mns-green-800); color: rgba(247, 243, 240, .82); overflow: hidden; }
body.mns .mne-cta-band__icon{ display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; border: 1px solid rgba(216, 155, 43, .55); color: var(--mns-gold-500); }
body.mns .mne-cta-band__icon > svg{ width: 28px; height: 28px; }
body.mns .mne-cta-band__title{ font-size: clamp(1.25rem, 1rem + .9vw, 1.625rem); line-height: 1.3; margin: 0; color: var(--mns-cream-50); }
body.mns .mne-cta-band__text{ margin: .35rem 0 0; color: var(--mns-gold-500); font-size: var(--mns-fs-small); }
body.mns .mne-cta-band__aside{ margin: 0; padding-left: 2rem; border-left: 1px solid rgba(247, 243, 240, .18); font-size: var(--mns-fs-small); line-height: 1.6; }
@media (max-width: 1024px) {
	body.mns .mne-cta-band{ grid-template-columns: auto minmax(0, 1fr); }
	body.mns .mne-cta-band__aside{ grid-column: 1 / -1; padding-left: 0; border-left: 0; }
	body.mns .mne-cta-band .mns-btn{ grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 600px) { body.mns .mne-cta-band{ grid-template-columns: minmax(0, 1fr); padding: 1.5rem; } }

/* ---------- Tarjeta CTA ---------- */
body.mns .mne-cta-card{ position: relative; display: flex; gap: 1.25rem; align-items: flex-start; padding: 1.75rem; border-radius: var(--mns-radius-lg); overflow: hidden; isolation: isolate; }
body.mns .mne-cta-card__body{ position: relative; z-index: 1; display: grid; gap: .75rem; justify-items: start; flex: 1 1 auto; min-width: 0; }
body.mns .mne-cta-card__title{ font-size: 1.375rem; line-height: 1.3; margin: 0; }
body.mns .mne-cta-card__text{ margin: 0; font-size: var(--mns-fs-small); line-height: 1.6; }
body.mns .mne-cta-card__icon{ display: grid; place-items: center; width: 56px; height: 56px; flex: 0 0 auto; border-radius: 50%; }
body.mns .mne-cta-card__icon svg{ width: 26px; height: 26px; }
body.mns .mne-cta-card__leaf{ --mns-leaf-bottom: -30px; --mns-leaf-right: -30px; --mns-leaf-size: 180px; --mns-leaf-opacity: .22; --mns-leaf-rotate: 20deg; }
body.mns .mne-cta-card--green{ background: var(--mns-green-900); color: rgba(247, 243, 240, .8); flex-direction: column; }
body.mns .mne-cta-card--green .mne-cta-card__title{ color: var(--mns-cream-50); }
body.mns .mne-cta-card--green .mne-cta-card__icon{ border: 1px solid rgba(216, 155, 43, .55); color: var(--mns-gold-500); }
body.mns .mne-cta-card--green .mne-cta-card__leaf{ color: var(--mns-gold-500); }
body.mns .mne-cta-card--cream{ background: var(--mns-cream-200); color: var(--mns-ink-600); align-items: center; }
body.mns .mne-cta-card--cream .mne-cta-card__icon{ background: var(--mns-cream-50); color: var(--mns-green-800); }
body.mns .mne-cta-card--cream .mne-cta-card__title{ color: var(--mns-ink-900); font-size: 1.1875rem; }
body.mns .mne-cta-card--cream .mne-cta-card__leaf{ color: var(--mns-gold-500); --mns-leaf-opacity: .14; }
body.mns .mne-cta-card--whatsapp{ background: var(--mns-cream-300); color: var(--mns-ink-600); align-items: center; justify-content: space-between; padding: 1.25rem 1.5rem; }
body.mns .mne-cta-card--whatsapp .mne-cta-card__title{ font-size: 1.0625rem; color: var(--mns-ink-900); }
body.mns .mne-cta-card--whatsapp .mne-cta-card__leaf{ display: none; }
body.mns .mne-cta-card__phone{ display: inline-flex; align-items: center; gap: .5rem; color: var(--mns-ink-900); font-weight: 600; text-decoration: none; }
body.mns .mne-cta-card__phone svg{ width: 20px; height: 20px; color: var(--mns-green-800); }
body.mns .mne-cta-card__wa{ color: var(--mns-green-800); flex: 0 0 auto; }
body.mns .mne-cta-card__wa svg{ width: 52px; height: 52px; stroke-width: 1.2; }
@media (max-width: 600px) {
	/* En móvil el icono va encima: al lado estrechaba el título a 3–4 líneas. */
	body.mns .mne-cta-card--cream{ flex-direction: column; align-items: flex-start; }
	body.mns .mne-cta-card__title{ font-size: 1.1875rem; }
}

/* ---------- Panel de enfoque ---------- */
body.mns .mne-panel{ position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 2fr); gap: 2rem; padding: 2rem 2.25rem; border-radius: var(--mns-radius-lg); background: var(--mns-green-800); color: rgba(247, 243, 240, .8); overflow: hidden; isolation: isolate; }
body.mns .mne-panel__leaf{ --mns-leaf-bottom: -40px; --mns-leaf-left: 26%; --mns-leaf-size: 220px; --mns-leaf-opacity: .1; color: var(--mns-gold-500); }
body.mns .mne-panel__title{ color: var(--mns-cream-50); font-size: 1.5rem; margin-bottom: 1rem; }
body.mns .mne-panel__intro p{ font-size: var(--mns-fs-small); margin: 0; }
body.mns .mne-panel__items{ display: grid; grid-template-columns: repeat(var(--mne-panel-cols, 4), minmax(0, 1fr)); }
body.mns .mne-panel__item{ display: grid; justify-items: center; align-content: start; gap: .5rem; padding: .25rem 1rem; text-align: center; }
body.mns .mne-panel__item + .mne-panel__item{ border-left: 1px solid rgba(247, 243, 240, .18); }
body.mns .mne-panel__icon{ color: var(--mns-gold-500); }
body.mns .mne-panel__icon svg{ width: 36px; height: 36px; stroke-width: 1.3; }
body.mns .mne-panel__item b{ color: var(--mns-cream-50); font-size: var(--mns-fs-small); }
body.mns .mne-panel__item span{ font-size: .75rem; line-height: 1.5; }
@media (max-width: 1024px) {
	body.mns .mne-panel{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mne-panel__item + .mne-panel__item{ border-left: 0; }
	body.mns .mne-panel__items{ gap: 1.5rem 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Lista de iconos ---------- */
body.mns .mne-ilist{ --mne-ilist-cols: 4; --mne-ilist-line: var(--mns-line); display: grid; }
body.mns .mne-ilist__head{ grid-column: 1 / -1; font-size: 1.25rem; margin-bottom: 1rem; }
body.mns .mne-ilist__item{ display: flex; align-items: flex-start; gap: .875rem; padding: .875rem 1.25rem; color: inherit; text-decoration: none; }
body.mns a.mne-ilist__item:hover .mne-ilist__title{ color: var(--mns-green-800); }
body.mns .mne-ilist__icon{ display: grid; place-items: center; flex: 0 0 auto; color: var(--mns-green-800); }
body.mns .mne-ilist__icon svg{ width: 30px; height: 30px; height: auto; stroke-width: 1.4; }
body.mns .mne-ilist__txt{ display: grid; gap: .2rem; }
body.mns .mne-ilist__title{ font-size: var(--mns-fs-small); font-weight: 600; color: var(--mns-ink-900); transition: color var(--mns-dur) var(--mns-ease); }
body.mns .mne-ilist__text{ font-size: .75rem; line-height: 1.5; color: var(--mns-ink-600); }
body.mns .mne-ilist--row{ grid-template-columns: repeat(var(--mne-ilist-cols), minmax(0, 1fr)); }
body.mns .mne-ilist--row.mne-ilist--divided .mne-ilist__item + .mne-ilist__item{ border-left: 1px solid var(--mne-ilist-line); }
body.mns .mne-ilist--column{ grid-template-columns: minmax(0, 1fr); }
body.mns .mne-ilist--column .mne-ilist__item{ padding: 1rem 0; }
body.mns .mne-ilist--column.mne-ilist--divided .mne-ilist__item + .mne-ilist__item{ border-top: 1px solid var(--mne-ilist-line); }
body.mns .mne-ilist--card{ background: var(--mns-cream-200); border-radius: var(--mns-radius-lg); padding: .75rem 1.5rem; }
body.mns .mne-ilist--row.mne-ilist--card{ padding: 1rem .5rem; }
body.mns .mne-ilist--circle .mne-ilist__icon{ width: 52px; height: 52px; border-radius: 50%; background: var(--mns-cream-200); }
body.mns .mne-ilist--circle .mne-ilist__icon svg{ width: 24px; }
body.mns .mne-ilist--circle.mne-ilist--card .mne-ilist__icon{ background: var(--mns-cream-50); }
body.mns .mne-ilist--circle .mne-ilist__item{ align-items: center; }
@media (max-width: 1024px) {
	body.mns .mne-ilist--row{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.mns .mne-ilist--row.mne-ilist--divided .mne-ilist__item + .mne-ilist__item{ border-left: 0; }
}
@media (max-width: 600px) { body.mns .mne-ilist--row{ grid-template-columns: minmax(0, 1fr); } }

/* ---------- Formulario de contacto ---------- */
body.mns .mne-cform__title{ font-size: 1.5rem; margin-bottom: 1.25rem; }
body.mns .mne-cform form{ display: grid; gap: .875rem; }
body.mns .mne-cform__row{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .875rem; }
body.mns .mne-cform textarea{ min-height: 150px; }
body.mns .mne-cform .mns-btn{ justify-self: start; margin-top: .25rem; }
@media (max-width: 600px) { body.mns .mne-cform__row{ grid-template-columns: minmax(0, 1fr); } }

/* ---------- Mapa de ubicación ---------- */
body.mns .mne-mapcard__title{ font-size: 1.5rem; margin-bottom: 1.25rem; }
body.mns .mne-mapcard__map{ position: relative; height: 380px; border-radius: var(--mns-radius-lg); overflow: hidden; background: var(--mns-cream-200); }
/* Solo la imagen o el iframe del mapa, no el logo de la tarjeta flotante. */
body.mns .mne-mapcard__map > img, body.mns .mne-mapcard__map > iframe{ width: 100%; height: 100%; object-fit: cover; border: 0; display: block; }
body.mns .mne-mapcard__pin{ position: absolute; top: 28%; left: 52%; transform: translate(-50%, -100%); color: var(--mns-green-800); filter: drop-shadow(0 4px 6px rgba(59, 47, 31, .25)); }
body.mns .mne-mapcard__pin svg{ width: 44px; height: 44px; fill: var(--mns-green-800); stroke: var(--mns-cream-50); }
body.mns .mne-mapcard__card{ position: absolute; left: 1.25rem; bottom: 1.25rem; max-width: 260px; display: flex; gap: .75rem; padding: 1rem 1.1rem; border-radius: var(--mns-radius); background: var(--mns-cream-50); box-shadow: var(--mns-shadow); font-size: .75rem; line-height: 1.45; color: var(--mns-ink-600); }
body.mns .mne-mapcard__logo{ width: 40px; height: 40px; object-fit: contain; flex: 0 0 auto; }
body.mns .mne-mapcard__card div{ display: grid; gap: .15rem; }
body.mns .mne-mapcard__card b{ font-family: var(--mns-font-display); font-size: .9375rem; color: var(--mns-ink-900); }
body.mns .mne-mapcard__card em{ margin-top: .35rem; font-style: italic; }

/* ---------- Hoja decorativa (widget) ---------- */
body.mns .mne-leaf{ display: inline-block; width: 180px; color: var(--mns-gold-500); opacity: .35; pointer-events: none; }
body.mns .mne-leaf svg{ width: 100%; height: auto; }

/* ---------- Plantilla: noticia individual ---------- */
body.mns .mne-single__inner, body.mns .mne-product__inner{ max-width: var(--mns-content); margin-inline: auto; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem) clamp(1rem, .5rem + 2vw, 2.5rem) var(--mns-section-y); }
body.mns .mne-single__inner{ display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: start; }
body.mns .mne-article__cat{ display: inline-flex; align-items: center; gap: .4rem; margin-bottom: 1rem; }
body.mns .mne-article__cat svg{ width: 14px; height: 14px; }
body.mns .mne-article__title{ font-size: var(--mns-fs-h1-page); line-height: 1.15; margin-bottom: 1rem; }
body.mns .mne-article__lead{ font-size: var(--mns-fs-lead); color: var(--mns-ink-600); }
body.mns .mne-article__meta{ display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; margin: 1.25rem 0 1.75rem; font-size: .75rem; color: var(--mns-ink-600); }
body.mns .mne-article__meta > span{ display: inline-flex; align-items: center; gap: .45rem; }
body.mns .mne-article__meta > span + span{ padding-left: 1.5rem; border-left: 1px solid var(--mns-line); }
body.mns .mne-article__meta svg{ width: 16px; height: 16px; }
body.mns .mne-article__author img{ width: 32px; height: 32px; border-radius: 50%; object-fit: contain; background: var(--mns-cream-200); }
body.mns .mne-article__media{ position: relative; margin: 0 0 2rem; }
body.mns .mne-article__media img{ display: block; width: 100%; height: auto; border-radius: var(--mns-radius-lg); }
body.mns .mne-article__leaf{ --mns-leaf-bottom: -34px; --mns-leaf-right: -30px; --mns-leaf-size: 130px; --mns-leaf-opacity: .9; color: var(--mns-green-800); }
body.mns .mne-article__content{ color: var(--mns-ink-600); }
body.mns .mne-article__content h2{ font-size: 1.375rem; margin: 2rem 0 .75rem; }
body.mns .mne-article__content ul{ padding-left: 1.2rem; }
body.mns .mne-article__content li{ margin-bottom: .35rem; }
body.mns .mne-article__content a{ color: var(--mns-sea); }
body.mns .mne-article__content blockquote{ position: relative; margin: 2rem 0; padding: 1.75rem 2rem 1.75rem 4rem; border-radius: var(--mns-radius); background: var(--mns-cream-200); }
body.mns .mne-article__content blockquote::before{ content: "\201C"; position: absolute; top: .9rem; left: 1.2rem; font-family: var(--mns-font-display); font-size: 3.75rem; line-height: 1; color: var(--mns-gold-500); }
body.mns .mne-article__content blockquote p{ font-family: var(--mns-font-display); font-size: 1.1875rem; color: var(--mns-ink-900); margin: 0; }
body.mns .mne-article__content blockquote cite{ display: block; margin-top: .75rem; font-size: .75rem; font-style: normal; font-weight: 600; color: var(--mns-ink-600); }
body.mns .mne-share{ display: flex; align-items: center; gap: .625rem; margin: 2rem 0; font-size: .75rem; color: var(--mns-ink-600); }
body.mns .mne-share span{ margin-right: .5rem; }
body.mns .mne-share a, body.mns .mne-share button{ display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--mns-cream-200); color: var(--mns-ink-900); cursor: pointer; transition: background-color var(--mns-dur) var(--mns-ease), color var(--mns-dur) var(--mns-ease); }
body.mns .mne-share a:hover, body.mns .mne-share button:hover, body.mns .mne-share button.is-done{ background: var(--mns-green-800); color: var(--mns-cream-50); }
body.mns .mne-share svg{ width: 16px; height: 16px; }
body.mns .mne-authorbox{ display: flex; gap: 1.25rem; align-items: flex-start; padding: 1.5rem; border-radius: var(--mns-radius-lg); background: var(--mns-cream-200); }
body.mns .mne-authorbox img{ width: 72px; height: 72px; object-fit: contain; flex: 0 0 auto; }
body.mns .mne-authorbox b{ font-family: var(--mns-font-display); font-size: 1.125rem; color: var(--mns-ink-900); }
body.mns .mne-authorbox p{ margin: .35rem 0 .5rem; font-size: var(--mns-fs-small); }
body.mns .mne-sidebar{ position: sticky; top: calc(var(--mns-header-h) + 24px); }
@media (max-width: 1024px) {
	body.mns .mne-single__inner{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mne-sidebar{ position: static; }
}

/* ---------- Plantilla: producto individual ---------- */
body.mns .mne-product .mns-single-product{ margin-top: .5rem; }
body.mns .mne-product__title{ font-size: var(--mns-fs-h1-page); line-height: 1.15; margin: .25rem 0 .5rem; }
body.mns .mne-product__desc{ color: var(--mns-ink-600); }
body.mns .mne-gallery__main{ width: 100%; height: 100%; object-fit: cover; }
body.mns .mne-product__buy form.cart{ display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 1.5rem 0 0; }
body.mns .mne-product__buy .quantity .qty{ width: 80px; min-height: 48px; text-align: center; }
body.mns .mne-product__buy .single_add_to_cart_button{ flex: 1 1 220px; min-height: 50px; padding: 0 1.5rem !important; border: 0; border-radius: var(--mns-radius-sm) !important; background: var(--mns-green-800) !important; color: var(--mns-cream-50) !important; font-family: var(--mns-font-ui); font-weight: 600; cursor: pointer; }
body.mns .mne-product__buy .single_add_to_cart_button:hover{ background: var(--mns-green-700) !important; }
body.mns .mne-product__buy .variations{ width: 100%; margin-bottom: .5rem; }
body.mns .mne-product__aside{ display: grid; gap: 1.25rem; }
body.mns .mne-product .mne-ilist--row:not(.mne-ilist--card){ margin: 2.5rem 0; border-block: 1px solid var(--mns-line); }
body.mns .mne-related-products{ display: grid; grid-template-columns: minmax(0, 3fr) minmax(220px, 1fr); gap: 1.5rem; align-items: stretch; }
body.mns .mne-related-products__title{ font-size: 1.375rem; margin-bottom: 1.25rem; }
@media (max-width: 1024px) { body.mns .mne-related-products{ grid-template-columns: minmax(0, 1fr); } body.mns .mne-related-products .mns-products{ --mns-products-cols: 2 !important; } }

/* ######################################################################
   Ajustes de fidelidad con la referencia (1.0.1)
   ###################################################################### */

/* ---------- Hero: la foto se funde con el fondo por la izquierda ---------- */
body.mns .mns-hero__media{ z-index: auto; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24%); mask-image: linear-gradient(90deg, transparent 0, #000 24%); }
body.mns .mns-hero__img{ position: relative; z-index: 1; }
body.mns .mns-hero__content > *{ max-width: min(42%, 560px); }
body.mns .mne-gold{ color: var(--mns-gold-500); font-style: normal; }

/* ---------- Hero: la cita es un panel verde curvo por encima de la onda ---------- */
body.mns .mns-hero__quote{ right: 0; bottom: 0; z-index: 5; width: min(46%, 560px); min-height: 60%; display: flex; flex-direction: column; justify-content: center; padding: 4.5rem clamp(1.5rem, 3vw, 3.5rem) 2.5rem clamp(3.5rem, 7vw, 7rem); border-radius: 100% 0 0 0 / 58% 0 0 0; border-top: 2px solid var(--mns-gold-500); border-left: 2px solid var(--mns-gold-500); box-shadow: none; }
body.mns .mns-hero__quote p{ font-size: clamp(1.25rem, 1rem + .9vw, 1.75rem); line-height: 1.3; }
body.mns .mns-hero__quote-mark{ width: 26px; height: 26px; }
@media (max-width: 1200px) { body.mns .mns-hero__quote{ width: min(52%, 480px); padding-left: clamp(3rem, 6vw, 5rem); } }
@media (max-width: 1024px) {
	body.mns .mns-hero__media{ -webkit-mask-image: none; mask-image: none; }
	body.mns .mns-hero__quote{ width: auto; min-height: 0; padding: 1.5rem 1.25rem; border-radius: 0; border-left: 0; }
}

/* ---------- Imagen y texto: imagen a la derecha cuando se elige derecha ---------- */
body.mns .mne-split--img-right .mne-split__media{ order: 2; }
@media (max-width: 900px) { body.mns .mne-split .mne-split__media{ order: -1; } }

/* ---------- Recorte curvo como en la referencia: gran arco a la izquierda ---------- */
body.mns .mns-curved-media img{ aspect-ratio: 1 / 1.02; object-fit: cover; border-radius: 55% 18px 18px 40% / 48% 18px 18px 36%; }
body.mns .mns-curved-media::after{ inset: -16px 16px 16px -16px; border-radius: 55% 18px 18px 40% / 48% 18px 18px 36%; border-color: var(--mns-gold-500); border-right-color: transparent; border-bottom-color: transparent; opacity: .8; }
body.mns .mne-split__leaf{ --mns-leaf-bottom: -50px; --mns-leaf-left: -80px; --mns-leaf-size: 230px; --mns-leaf-opacity: .85; }
@media (max-width: 767px) { body.mns .mns-curved-media img, body.mns .mns-curved-media::after{ border-radius: 40% 16px 16px 16px / 30% 16px 16px 16px; } }

/* ---------- Tarjetas de programa: estilo sencillo (Inicio) ---------- */
body.mns .mns-cards--simple .mns-card-prog{ background: transparent; border: 0; box-shadow: none; border-radius: 0; }
body.mns .mns-cards--simple .mns-card-prog__media{ border-radius: var(--mns-radius); }
body.mns .mns-cards--simple .mns-card-prog__icon{ display: none; }
body.mns .mns-cards--simple .mns-card-prog__body{ padding: 1rem 0 0; gap: .4rem; }
body.mns .mns-cards--simple .mns-card-prog__title{ font-family: var(--mns-font-ui); font-size: .9375rem; font-weight: 600; }
body.mns .mns-cards--simple .mns-card-prog__text{ font-size: .8125rem; }
body.mns .mns-cards--simple.mns-cards--lift .mns-card-prog:hover{ transform: none; box-shadow: none; }

/* ---------- Encabezado con filete a la derecha del título ---------- */
body.mns .mne-shead--rule-inline .mne-shead__title{ display: inline-flex; align-items: center; gap: .9rem; }
body.mns .mne-shead--rule-inline .mne-shead__title::after{ content: ""; flex: 0 0 auto; width: 36px; height: 2px; background: var(--mns-gold-500); border-radius: 2px; }

/* ---------- Estadísticas: números en crema sobre la banda verde ---------- */
body.mns .mns-stats:not(.mne-stats--card) .mns-stat__value{ color: var(--mns-cream-50); }

/* ---------- Valores: iconos más grandes, en verde ---------- */
body.mns .mns-values--plain .mns-value__icon{ color: var(--mns-green-800); }
body.mns .mns-value__icon svg{ width: 40px; height: 40px; stroke-width: 1.3; }

/* ---------- Boletín sin caja («Mantente conectado») ---------- */
body.mns .mne-nl--minimal{ grid-template-columns: minmax(0, 560px); background: transparent; color: var(--mns-ink-600); padding: 0; gap: 1.25rem; }
body.mns .mne-nl--minimal .mne-nl__icon{ display: none; }
body.mns .mne-nl--minimal .mne-nl__title{ color: var(--mns-ink-900); font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); }
body.mns .mne-nl--minimal .mne-nl__form input[type="email"]{ border: 1px solid var(--mns-line); border-right: 0; background: var(--mns-cream-50); }
body.mns .mne-nl--minimal .mne-nl__form button{ background: var(--mns-green-800); }
body.mns .mne-nl--minimal .mne-nl__form button:hover{ background: var(--mns-green-700); }

/* ---------- 1.0.1: ajustes finales tras revisar el Inicio contra la referencia ---------- */
/* Todas las reglas nuevas llevan body.mns delante, como el resto de la hoja. */
body.mns .mns-header__logo img { height: 72px; }
body.mns .mns-hero__quote { min-height: 70%; padding-top: 3.25rem; padding-bottom: 2rem; }
body.mns .mns-hero__quote p { font-size: clamp(1.125rem, .85rem + .85vw, 1.5rem); line-height: 1.28; }
body.mns .mns-hero__quote-mark { width: 22px; height: 22px; margin-bottom: .35rem; }
body.mns .mns-hero__quote::after { margin-top: .75rem; }
@media (max-width: 1024px) {
	body.mns .mns-header__logo img { height: 52px; }
	body.mns .mns-hero__quote { min-height: 0; padding: 1.5rem 1.25rem; }
}
@media (max-width: 1024px) {
	/* El ancho de texto del escritorio (42 %) no aplica cuando el hero se apila. */
	body.mns .mns-hero__content > * { max-width: none; }
}

/* ######################################################################
   1.0.2 — fidelidad con la referencia del Inicio
   ###################################################################### */

/* Hero con cita: el panel verde va abajo a la derecha, sin la onda crema encima. */
body.mns .mns-hero--extra-quote .mns-hero__wave,
body.mns .mns-hero--extra-quote .mns-hero__wave-stroke { display: none; }
body.mns .mns-hero--extra-quote .mns-hero__quote { position: absolute; right: 0; bottom: 0; z-index: 5; width: min(62%, 980px); height: 54%; min-height: 0; padding: 2rem clamp(1.5rem, 4.5vw, 5.5rem) 1.75rem 0; justify-content: center; align-items: flex-end; border-radius: 100% 0 0 0 / 100% 0 0 0; }
body.mns .mns-hero--extra-quote .mns-hero__quote > * { width: min(300px, 44%); }
body.mns .mns-hero--extra-quote .mns-hero__quote::after { align-self: flex-end; width: 36px; margin-right: calc(min(300px, 44%) - 36px); }
@media (max-width: 1024px) {
	body.mns .mns-hero--extra-quote .mns-hero__quote { position: static; order: 3; width: auto; height: auto; padding: 1.5rem 1.25rem; border-radius: 0; border-left: 0; align-items: flex-start; }
	body.mns .mns-hero--extra-quote .mns-hero__quote > * { width: auto; }
	body.mns .mns-hero--extra-quote .mns-hero__quote::after { align-self: flex-start; margin-right: 0; }
}

/* Noticias: fecha en píldora oscura sobre la foto, como la referencia. */
body.mns .mns-news-card__badge { left: .75rem; bottom: .75rem; padding: .3rem .6rem; border-radius: 4px; background: rgba(34, 32, 26, .72); color: #fff; font-size: .625rem; font-weight: 600; letter-spacing: .06em; }

/* Boletín sin caja: rama decorativa a la derecha. */
body.mns .mne-nl--minimal { position: relative; overflow: visible; }
body.mns .mne-nl__leaf { --mns-leaf-top: -40px; --mns-leaf-right: 0; --mns-leaf-size: 210px; --mns-leaf-opacity: .3; --mns-leaf-rotate: 20deg; color: var(--mns-gold-500); }
/* El panel deja ver la cara de la foto, como en la referencia. */
body.mns .mns-hero--extra-quote .mns-hero__quote { height: 46%; width: min(58%, 920px); }
@media (max-width: 1024px) {
	/* El hero apilado centra a sus hijos: la cita debe ocupar todo el ancho. */
	body.mns .mns-hero--extra-quote .mns-hero__quote { align-self: stretch; height: auto; width: auto; }
}

/* ######################################################################
   1.0.3 — Franja verde del hero, imagen hasta el borde, franja CTA
   ###################################################################### */

/* ---------- Hero: franja verde en onda a todo lo ancho ---------- */
body.mns .mns-hero--extra-quote .mns-hero__leaf--br { display: none; }
body.mns .mns-hero__band { position: absolute; left: 0; right: 0; bottom: -1px; height: 38%; z-index: 5; pointer-events: none; }
body.mns .mns-hero__band-shape { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
body.mns .mns-hero__band-fill { fill: var(--mns-green-800); }
body.mns .mns-hero__band-line { stroke: var(--mns-gold-500); stroke-width: 2.5; }
body.mns .mns-hero__band-leaf { --mns-leaf-top: auto; --mns-leaf-right: -34px; --mns-leaf-bottom: 22%; --mns-leaf-size: clamp(120px, 14vw, 220px); --mns-leaf-opacity: 1; --mns-leaf-rotate: -20deg; color: #5E8A45; z-index: 1; }
body.mns .mns-hero__band-leaf path { opacity: .8; }
body.mns .mns-hero__band .mns-hero__quote { position: absolute; top: auto; left: auto; right: clamp(2rem, 8vw, 9rem); bottom: 16%; z-index: 2; display: block; width: min(320px, 28%); height: auto; min-height: 0; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; pointer-events: auto; }
body.mns .mns-hero__band .mns-hero__quote-mark { display: none; }
body.mns .mns-hero__band .mns-hero__quote > * { width: auto; }
body.mns .mns-hero__band .mns-hero__quote p { color: var(--mns-cream-50); font-size: clamp(1.125rem, .75rem + 1.05vw, 1.75rem); line-height: 1.3; }
body.mns .mns-hero__band .mns-hero__quote::after { align-self: auto; margin: 1rem 0 0; }
@media (max-width: 1024px) {
	/* Al apilar: bloque verde bajo la foto con la onda (y su línea dorada) montada sobre ella. */
	body.mns .mns-hero__band { position: relative; order: 3; align-self: stretch; bottom: auto; height: auto; padding: .25rem clamp(1.25rem, 5vw, 2.5rem) 2rem; background: var(--mne-band, var(--mns-green-800)); pointer-events: auto; }
	body.mns .mns-hero__band-shape { top: auto; bottom: calc(100% - 3px); height: clamp(58px, 14vw, 112px); }
	body.mns .mns-hero__band .mns-hero__quote { position: static; width: fit-content; max-width: 75%; margin: 0 0 0 auto; padding: 0; }
}

/* ---------- Imagen y texto: imagen hasta el borde de la pantalla ---------- */
body.mns { overflow-x: clip; }
body.mns .mne-split--bleed { align-items: stretch; }
body.mns .mne-split--bleed .mne-split__body { align-self: center; padding-block: clamp(3rem, 6vw, 5.5rem); }
body.mns .mne-split--bleed.mne-split--img-right .mne-split__media { margin-right: calc(-1 * var(--mne-bleed, 0px)); }
body.mns .mne-split--bleed.mne-split--img-left .mne-split__media { margin-left: calc(-1 * var(--mne-bleed, 0px)); }
body.mns .mne-split--bleed .mne-split__media img { height: 100%; min-height: clamp(460px, 44vw, 700px); aspect-ratio: auto; object-fit: cover; }
/* Arco grande arriba hacia el texto; al ras arriba, abajo y en el borde de la ventana. */
body.mns .mne-split--bleed.mne-split--img-right .mns-curved-media img { border-radius: 58% 0 0 0 / 52% 0 0 0; }
body.mns .mne-split--bleed.mne-split--img-right .mns-curved-media::after { inset: -2px 0 0 -18px; border: 2px solid var(--mns-gold-300); border-right: 0; border-bottom: 0; border-radius: 58% 0 0 0 / 52% 0 0 0; }
body.mns .mne-split--bleed.mne-split--img-left .mns-curved-media img { border-radius: 0 58% 0 0 / 0 52% 0 0; }
body.mns .mne-split--bleed.mne-split--img-left .mns-curved-media::after { inset: -2px -18px 0 0; border: 2px solid var(--mns-gold-300); border-left: 0; border-bottom: 0; border-radius: 0 58% 0 0 / 0 52% 0 0; }
body.mns .mne-split--bleed .mne-split__leaf { --mns-leaf-bottom: 0; --mns-leaf-left: -70px; }
@media (max-width: 900px) {
	body.mns .mne-split--bleed.mne-split--img-right .mne-split__media,
	body.mns .mne-split--bleed.mne-split--img-left .mne-split__media { margin: 0; }
	body.mns .mne-split--bleed .mne-split__media img { min-height: 0; height: auto; aspect-ratio: 1 / 1.02; }
	body.mns .mne-split--bleed.mne-split--img-right .mns-curved-media img,
	body.mns .mne-split--bleed.mne-split--img-left .mns-curved-media img { border-radius: 40% 16px 16px 16px / 30% 16px 16px 16px; }
	body.mns .mne-split--bleed .mne-split__body { padding-block: 0; }
	body.mns .mne-split--bleed.mne-split--img-right .mns-curved-media::after,
	body.mns .mne-split--bleed.mne-split--img-left .mns-curved-media::after { inset: -10px 10px 10px -10px; border: 2px solid var(--mns-gold-300); border-radius: 40% 16px 16px 16px / 30% 16px 16px 16px; }
	body.mns .mne-split--bleed .mne-split__leaf { --mns-leaf-bottom: -24px; --mns-leaf-left: -28px; --mns-leaf-size: 130px; }
}

/* ---------- Banda CTA a todo lo ancho («Tú también puedes ser parte del cambio») ---------- */
body.mns .mne-cta-band--full { border-radius: 0; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "icon main" "icon btn"; align-items: center; column-gap: clamp(1.5rem, 3vw, 3rem); row-gap: 1.25rem; padding: clamp(3rem, 5vw, 4.5rem) max(1.5rem, calc((100% - 1200px) / 2)); }
body.mns .mne-cta-band--full .mne-cta-band__icon { grid-area: icon; width: auto; height: auto; border: 0; border-radius: 0; }
body.mns .mne-cta-band--full .mne-cta-band__icon > svg { width: clamp(64px, 7vw, 100px); height: auto; stroke-width: .9; }
body.mns .mne-cta-band--full .mne-cta-band__main { grid-area: main; align-self: end; }
body.mns .mne-cta-band--full .mne-cta-band__title { font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.125rem); }
body.mns .mne-cta-band--full .mne-cta-band__text { margin-top: .5rem; color: rgba(247, 243, 240, .78); font-size: var(--mns-fs-body); }
body.mns .mne-cta-band--full > .mns-btn { grid-area: btn; justify-self: start; align-self: start; }
body.mns .mne-cta-band--full .mne-cta-band__aside { grid-column: 2; padding: 0; border: 0; }
@media (max-width: 600px) {
	body.mns .mne-cta-band--full { grid-template-columns: minmax(0, 1fr); grid-template-areas: "icon" "main" "btn"; }
	body.mns .mne-cta-band--full .mne-cta-band__icon { justify-self: start; }
}

/* ---------- Boletín: rama de línea ---------- */
body.mns .mne-nl__leaf { --mns-leaf-opacity: .6; --mns-leaf-size: 230px; --mns-leaf-top: -60px; color: var(--mns-gold-300); }
body.mns .mne-footer--light .mns-footer__logo img { height: 84px; }

/* ---------- Pie en crema (opción del widget) ---------- */
body.mns .mne-footer--light { background: var(--mns-cream-200); color: var(--mns-ink-600); }
body.mns .mne-footer--light a { color: var(--mns-ink-600); }
body.mns .mne-footer--light a:hover { color: var(--mns-green-800); }
body.mns .mne-footer--light h4, body.mns .mne-footer--light .mne-logo-text { color: var(--mns-ink-900); }
body.mns .mne-footer--light .mns-footer__tagline { color: var(--mns-ink-600); }
body.mns .mne-footer--light .mns-social a { background: var(--mns-green-800); color: var(--mns-cream-50); }
body.mns .mne-footer--light .mns-footer__contact svg { color: var(--mns-green-800); }
body.mns .mne-footer--light .mns-footer__bottom { border-top-color: var(--mns-line); color: var(--mns-ink-400); }
body.mns .mne-footer--light .mne-footer__leaf { color: var(--mns-green-500); --mns-leaf-opacity: .15; }
body.mns .mne-footer--light .mns-social a:hover { background: var(--mns-gold-500); color: #fff; }
body.mns .mne-footer--light .mns-footer__inner { padding-bottom: 1.5rem; }
body.mns .mne-footer--light .mns-footer__bottom { max-width: var(--mns-content); margin-inline: auto; padding: 0 clamp(1rem, .5rem + 2vw, 2.5rem) 2rem; border-top: 0; text-align: left; }

/* ######################################################################
   1.0.4 — Hojas decorativas editables (MNE_Decor)
   ###################################################################### */
body.mns .mne-decor { line-height: 0; }
body.mns .mne-decor__motion, body.mns .mne-decor__in { display: block; transform-origin: 50% 50%; }
body.mns .mne-decor__img { display: block; width: 100%; max-width: none; height: auto; }
body.mns .mne-decor__mask { display: block; width: 100%; height: 0; background-color: currentColor; -webkit-mask: var(--mne-mask) center / contain no-repeat; mask: var(--mne-mask) center / contain no-repeat; }
body.mns .mne-decor--icon i { display: block; font-size: var(--mne-icon-fs, 120px); line-height: 1; color: inherit; }
body.mns .mne-decor--icon svg { display: block; width: 100%; height: auto; fill: currentColor; }
body.mns .mne-decor--static { position: relative; inset: auto; display: inline-block; vertical-align: middle; }
body.mns .mne-decor--fill { display: block; width: 100%; }
body.mns .mns-leaf__vein { stroke: var(--mne-leaf-accent, currentColor); }
body.mns .mns-leaf__svg--solid .mns-leaf__vein, body.mns .mns-leaf__svg--pair .mns-leaf__vein { stroke: var(--mne-leaf-accent, rgba(255, 255, 255, .5)); }
body.mns .mns-leaf__svg--line path { stroke-width: var(--mne-leaf-stroke, 1.6); }
@keyframes mne-decor-sway { from { transform: rotate(calc(var(--mne-amp, 6) * -1deg)); } to { transform: rotate(calc(var(--mne-amp, 6) * 1deg)); } }
@keyframes mne-decor-float { from { transform: translateY(calc(var(--mne-amp, 6) * -1px)); } to { transform: translateY(calc(var(--mne-amp, 6) * 1px)); } }
@keyframes mne-decor-breeze { from { transform: translateY(calc(var(--mne-amp, 6) * -.6px)) rotate(calc(var(--mne-amp, 6) * -1deg)); } to { transform: translateY(calc(var(--mne-amp, 6) * .6px)) rotate(calc(var(--mne-amp, 6) * 1deg)); } }
@keyframes mne-decor-pulse { from { transform: scale(1); } to { transform: scale(calc(1 + var(--mne-amp, 6) / 100)); } }
@keyframes mne-decor-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { body.mns .mne-decor__motion { animation: none !important; } }
body.mns .mne-nl { position: relative; }
body.mns :where(.mne-cta-band__icon) .mne-decor { --mns-leaf-opacity: 1; width: clamp(56px, 6vw, 84px); color: var(--mns-gold-500); }
body.mns :where(.mne-cta-band--full .mne-cta-band__icon) .mne-decor { --mne-leaf-stroke: .9; }
/* El dibujo llena siempre la caja de la hoja, aunque el contexto tenga reglas para sus iconos. */
body.mns .mne-decor .mns-leaf__svg, body.mns .mne-decor .mne-decor__mask { width: 100%; height: auto; max-width: none; }
body.mns :where(.mne-cta-band:not(.mne-cta-band--full) .mne-cta-band__icon) .mne-decor { width: 34px; }
/* Widget «MN · Hoja decorativa» flotante: no ocupa espacio y se coloca sobre su contenedor. */
body.mns .elementor-widget.mne-leaf-mode-float { position: absolute; top: 0; right: 0; width: 180px; margin: 0; pointer-events: none; z-index: 0; }
body.mns :is(.e-con, .e-con-inner, .elementor-widget-wrap):has(> .mne-leaf-mode-float) { position: relative; }
body.mns.elementor-editor-active .elementor-widget.mne-leaf-mode-float { pointer-events: auto; }

/* ######################################################################
   1.0.6 — «Sobre Manesencia»: foto redondeada y lista con iconos
   ###################################################################### */
body.mns .mne-split--features { --mne-split-img: 40%; width: 100%; max-width: 1040px; margin-inline: auto; gap: clamp(2rem, 1rem + 4.5vw, 5.5rem); }
body.mns .mne-split--features .mne-split__media--rounded img { aspect-ratio: 2 / 3; height: auto; border-radius: 20px; object-fit: cover; }
body.mns .mne-split__features { --mne-feat-size: 88px; display: grid; gap: clamp(2rem, 1rem + 2.4vw, 3.5rem); }
body.mns .mne-split__features .mne-ilist__item { align-items: center; gap: clamp(1rem, .5rem + 1.2vw, 1.75rem); padding: 0; }
body.mns .mne-split__features .mne-ilist__icon { width: var(--mne-feat-size); height: var(--mne-feat-size); background: #ECE3D3; color: var(--mns-gold-600); }
body.mns .mne-split__features .mne-ilist__icon svg { width: calc(var(--mne-feat-size) * .46); height: auto; stroke-width: 1.3; }
body.mns .mne-split__features .mne-ilist__txt { gap: .45rem; }
body.mns .mne-split__features .mne-ilist__title { font-size: clamp(1.0625rem, .95rem + .4vw, 1.25rem); font-weight: 600; color: var(--mns-ink-900); }
body.mns .mne-split__features .mne-ilist__text { font-size: clamp(.875rem, .82rem + .2vw, .9375rem); line-height: 1.65; color: var(--mns-ink-600); }
@media (max-width: 900px) {
	body.mns .mne-split--features .mne-split__media--rounded img { aspect-ratio: 4 / 3; }
	body.mns .mne-split--features .mne-split__media { width: 100%; max-width: 520px; }
	body.mns .mne-split__features { --mne-feat-size: 60px; }
}
/* Los saltos de línea de los subtítulos solo se respetan donde caben. */
@media (max-width: 767px) { body.mns .mne-shead__sub br { display: none; } }


/* ######################################################################
   1.0.8 — Inicio en tablet (≤1024px) y móvil (≤767px)
   ###################################################################### */

/* ---------- Portada con cita: foto alta a la derecha, fundida hacia el texto ---------- */
@media (max-width: 1024px) {
	body.mns .mns-hero--extra-quote .mns-hero__media { align-self: flex-end; width: min(100%, 720px); margin-top: -1.5rem; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 32%); mask-image: linear-gradient(90deg, transparent 0, #000 32%); }
	body.mns .mns-hero--extra-quote .mns-hero__img { height: clamp(340px, 52vw, 480px); object-position: 70% top; }
	body.mns .mns-hero--extra-quote .mns-hero__content { padding-bottom: 0; }
}
@media (max-width: 767px) {
	body.mns .mns-hero .mns-btn { width: auto; }
	body.mns .mns-hero--extra-quote .mns-hero__media { width: 88%; margin-top: -2.25rem; }
	body.mns .mns-hero--extra-quote .mns-hero__img { height: clamp(300px, 92vw, 400px); }
	body.mns .mns-hero__band .mns-hero__quote { max-width: 68%; }
	body.mns .mns-hero__band .mns-hero__quote p { font-size: clamp(1.125rem, 1rem + 1.2vw, 1.3125rem); }
}

/* ---------- Valores: filas centradas (5 valores → 3 + 2 en tablet, 2 + 2 + 1 en móvil) ---------- */
@media (max-width: 1024px) {
	body.mns .mns-values__grid { display: flex; flex-wrap: wrap; justify-content: center; }
	body.mns .mns-values__grid > * { flex: 0 0 33.333%; }
	body.mns .mns-values__grid > .mns-values__intro { flex-basis: 100%; }
}
@media (max-width: 767px) {
	body.mns .mns-values__grid > * { flex-basis: 50%; }
}
@media (max-width: 380px) {
	body.mns .mns-values__grid > * { flex-basis: 100%; }
}

/* ---------- Títulos de sección: a la izquierda en móvil, como la referencia ---------- */
@media (max-width: 767px) {
	body.mns .mne-shead--center { align-items: flex-start; text-align: left; }
	body.mns .mne-shead--center .mne-shead__sub { margin-inline: 0; }
}

/* ---------- Programas: tarjetas legibles en móvil ---------- */
@media (max-width: 767px) {
	body.mns .mns-cards--simple .mns-card-prog__title { font-size: 1.0625rem; }
	body.mns .mns-cards--simple .mns-card-prog__text { font-size: .875rem; line-height: 1.6; }
	body.mns .mns-cards--simple .mns-card-prog__cta { font-size: .875rem; }
}

/* ---------- Historias: la foto no corta la cara ---------- */
@media (max-width: 900px) {
	body.mns .mns-testi__photo img { object-position: center 22%; }
}
@media (max-width: 767px) {
	body.mns .mns-testi__photo { aspect-ratio: 4 / 3; }
}

/* ---------- Boletín: campo y botón apilados con sus bordes completos ---------- */
@media (max-width: 600px) {
	body.mns .mne-nl--minimal .mne-nl__form input[type="email"] { border-right: 1px solid var(--mns-line); border-radius: var(--mns-radius-sm); }
}

/* ---------- Pie: enlaces en dos columnas en móvil ---------- */
@media (max-width: 767px) {
	body.mns .mns-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; row-gap: 2rem; }
	body.mns .mns-footer__inner > :first-child,
	body.mns .mns-footer__inner > :last-child { grid-column: 1 / -1; }
}

/* ---------- Cabecera en tablet y móvil: acciones a la derecha y logo legible ---------- */
@media (max-width: 1024px) {
	body.mns .mns-header__actions { margin-left: auto; }
	body.mns .mns-header__logo img { height: 60px; }
}
@media (max-width: 767px) {
	body.mns .mns-header__inner { gap: 1rem; }
	body.mns .mns-header__logo img { height: 52px; }
}

/* ---------- Portada en tablet: cita con más presencia ---------- */
@media (min-width: 768px) and (max-width: 1024px) {
	body.mns .mns-hero__band .mns-hero__quote { max-width: 46%; }
	body.mns .mns-hero__band .mns-hero__quote p { font-size: 1.375rem; }
}

/* ---------- Tablet estrecha (768–900px): foto apaisada e historias lado a lado ---------- */
@media (min-width: 768px) and (max-width: 900px) {
	body.mns .mne-split--bleed .mne-split__media img { aspect-ratio: 16 / 10; }
	body.mns .mns-testi--side .mns-testi__slide { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 1.5rem; align-items: center; }
	body.mns .mns-testi--side .mns-testi__photo { aspect-ratio: 4 / 4.2; }
}

/* ---------- Boletín: la rama girada no ensancha la página ---------- */
body.mns .mne-nl--minimal { overflow-x: clip; }

/* ######################################################################
   1.0.9 — Nosotros fiel a la referencia (y títulos en marrón tierra)
   ###################################################################### */
body.mns { --mns-heading: var(--mns-ink-900); }

/* Antetítulos: marrón, espaciados; filete dorado debajo (hero) o al lado (secciones) */
body.mns .mns-hero .mns-eyebrow,
body.mns .mne-split__body > .mns-eyebrow { color: var(--mns-ink-900); font-size: .8125rem; font-weight: 500; letter-spacing: .32em; }
body.mns .mns-hero .mns-eyebrow { display: block; margin-bottom: 1.5rem; }
body.mns .mns-hero .mns-eyebrow::after { content: ""; display: block; width: 32px; height: 2px; margin-top: .9rem; background: var(--mns-gold-500); border-radius: 2px; }
body.mns .mne-split__body > .mns-eyebrow { display: inline-flex; align-items: center; gap: .9rem; margin-bottom: 1rem; }
body.mns .mne-split__body > .mns-eyebrow::after { content: ""; width: 32px; height: 1.5px; background: var(--mns-gold-500); }

/* Onda «joroba»: el trazo sigue exactamente el borde del relleno */
body.mns .mns-hero--wave-hump .mns-hero__wave-stroke { bottom: -1px; }

/* Valores en círculo */
body.mns .mns-values--circle .mns-value__icon { display: grid; place-items: center; width: 64px; height: 64px; margin-inline: auto; border-radius: 50%; background: #E5E2D4; color: var(--mns-green-800); }
body.mns .mns-values--circle .mns-value__icon svg { width: 30px; height: 30px; stroke-width: 1.35; }
body.mns .mns-values--circle .mns-value__title { font-family: var(--mns-font-ui); font-size: .9375rem; font-weight: 600; color: var(--mns-ink-900); text-transform: none; letter-spacing: 0; }
body.mns .mns-values--circle .mns-value__text { font-size: .8125rem; line-height: 1.55; }
body.mns .mns-values__intro h2 { font-size: clamp(1.625rem, 1.3rem + 1vw, 2rem); line-height: 1.15; }

/* Tarjeta «Nuestro impacto hasta hoy» */
body.mns .mne-stats--card { background: #E8E5D8; padding: 1.75rem 1.5rem; }
body.mns .mne-stats__title { font-family: var(--mns-font-ui); font-size: 1.0625rem; font-weight: 500; color: var(--mns-ink-900); text-align: center; margin-bottom: 1.25rem; }
body.mns .mne-stats--card .mns-stat__value { font-family: var(--mns-font-ui); font-weight: 500; font-size: clamp(1.5rem, 1.25rem + .8vw, 1.875rem); color: var(--mns-green-800); }
body.mns .mne-stats--card .mns-stat__label { font-size: .8125rem; line-height: 1.45; }
body.mns .mne-stats--card .mns-stat__icon svg { width: 36px; height: 36px; stroke-width: 1.25; }
/* El trazo de la onda es un SVG: sin ancho explícito no llega al borde derecho. */
body.mns .mns-hero__wave-stroke { width: 100%; }
/* Tarjeta de impacto compacta, como la referencia */
body.mns .mne-stats--card .mns-stat { gap: .5rem .9rem; padding: 1rem .85rem; }
body.mns .mne-stats--card .mne-stat__text { gap: .2rem; }

/* ######################################################################
   1.0.10 — Programas fiel a la referencia
   ###################################################################### */
/* Migas de pan en el hero */
body.mns .mns-hero__crumbs ol { margin-bottom: 1.75rem; font-size: .875rem; color: var(--mns-ink-900); }
body.mns .mns-hero__crumbs a, body.mns .mns-hero__crumbs li + li::before { color: var(--mns-ink-900); }
body.mns .mns-hero__crumbs li + li::before { content: ">"; margin: 0 .5rem 0 .2rem; }
body.mns .mns-hero__crumbs [aria-current] { font-weight: 400; }
body.mns .mns-hero__title.mns-rule::after { margin-top: 1.25rem; width: 36px; }
body.mns .mns-hero__title.mns-rule { margin-bottom: 1.5rem; }

/* Franja «esquina curva» (Programas) */
body.mns .mns-hero__band--corner { height: 74%; }
body.mns .mns-hero__band-cream { fill: var(--mns-cream-100); }
body.mns .mns-hero__band--corner .mns-hero__quote { right: clamp(1.25rem, 3vw, 3.5rem); bottom: 9%; width: min(260px, 19%); }
body.mns .mns-hero__band--corner .mns-hero__quote-mark { display: block; width: 36px; height: 36px; margin-bottom: .75rem; color: var(--mns-gold-500); }
body.mns .mns-hero__band--corner .mns-hero__quote p { font-size: clamp(1rem, .8rem + .5vw, 1.25rem); line-height: 1.4; }
@media (max-width: 1024px) {
	body.mns .mns-hero__band--corner { padding-top: 1.75rem; border-top-left-radius: 90px 70px; margin-top: -40px; border-top: 2px solid var(--mns-gold-500); }
	body.mns .mns-hero__band--corner .mns-hero__band-shape { display: none; }
	body.mns .mns-hero__band--corner .mns-hero__quote { width: fit-content; max-width: 80%; }
	body.mns .mns-hero__band--corner .mns-hero__quote-mark { margin-inline: 0 auto; }
}

/* Tarjetas de programas: blancas, «Ver más» en marrón, hojas decorativas */
body.mns .mns-cards { position: relative; }
body.mns .mns-cards:not(.mns-cards--simple) .mns-card-prog { background: #fff; }
body.mns .mns-card-prog__cta { color: var(--mns-ink-900); font-weight: 600; }
body.mns .mns-card-prog__cta svg { color: var(--mns-ink-900); }
body.mns .mns-cards__leaf { color: var(--mns-gold-300); z-index: 0; }

/* Tarjeta CTA crema: filete dorado bajo el título */
body.mns .mne-cta-card--cream .mne-cta-card__title::after { content: ""; display: block; width: 32px; height: 2px; margin-top: .85rem; background: var(--mns-gold-500); border-radius: 2px; }
/* La curva de la esquina queda bajo el texto del hero (nunca tapa el botón). */
body.mns .mns-hero__band--corner { z-index: 3; }
@media (min-width: 1025px) { body.mns .mns-hero__band--corner .mns-hero__quote { right: clamp(1.25rem, 2.6vw, 3rem); width: min(250px, 17%); } }
@media (max-width: 767px) { body.mns .mns-hero__lead br { display: none; } }
/* Color de la línea degradada de la esquina curva (sigue al control «Línea dorada de la franja»). */
body.mns .mns-hero__band--corner .mns-hero__band-shape { color: var(--mns-gold-500); }
/* Hero con esquina curva apilado: encuadre centrado en las personas de la foto. */
@media (max-width: 1024px) { body.mns .mns-hero:has(.mns-hero__band--corner) .mns-hero__img { object-position: 32% 60%; } }

/* ######################################################################
   1.0.13 — Impacto fiel a la referencia
   ###################################################################### */
/* Divisor con hoja bajo el título del hero */
body.mns .mns-hero__divider { display: flex; align-items: center; gap: .9rem; width: min(240px, 100%); margin: -.25rem 0 1.75rem 4.5rem; color: #8C9A84; }
body.mns .mns-hero__divider > span { flex: 1 1 auto; height: 1px; background: currentColor; opacity: .55; }
body.mns .mns-hero__divider svg { width: 24px; height: 24px; flex: 0 0 auto; stroke-width: 1.3; }
@media (max-width: 767px) { body.mns .mns-hero__divider { margin-left: 2rem; } }

/* Cifras en tarjetas sueltas con descripción */
body.mns .mne-stats--tiles { background: transparent; padding: 0; color: var(--mns-ink-600); }
body.mns .mne-stats--tiles .mns-stats__inner { gap: 14px; }
body.mns .mne-stats--tiles .mns-stat { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .9rem; padding: 1.5rem 1rem 1.75rem; border: 1px solid #E6E1D6; border-radius: 14px; background: #FBF9F5; }
body.mns .mne-stats--tiles .mns-stat + .mns-stat { border-left: 1px solid #E6E1D6; }
body.mns .mne-stats--tiles .mns-stat__icon { display: grid; place-items: center; width: 68px; height: 68px; border-radius: 50%; background: #E6EBE0; color: var(--mns-green-800); }
body.mns .mne-stats--tiles .mns-stat__icon svg { width: 32px; height: 32px; stroke-width: 1.4; }
body.mns .mne-stats--tiles .mne-stat__text { display: grid; gap: .45rem; justify-items: center; }
body.mns .mne-stats--tiles .mns-stat__value { font-family: var(--mns-font-display); font-weight: 600; font-size: clamp(1.875rem, 1.5rem + 1vw, 2.375rem); color: var(--mns-green-800); }
body.mns .mne-stats--tiles .mns-stat__label { font-family: var(--mns-font-ui); font-size: .9375rem; font-weight: 500; color: var(--mns-green-800); }
body.mns .mne-stat__desc { margin-top: .35rem; font-size: .875rem; line-height: 1.55; color: var(--mns-ink-600); }

/* Deslizador de historias */
body.mns .mne-story { --mne-story-img: 52%; position: relative; border: 1px solid #E6E1D6; border-radius: 16px; background: #FBF9F5; overflow: hidden; }
body.mns .mne-story .mns-testi__slide { display: grid; grid-template-columns: minmax(0, 1fr) var(--mne-story-img); align-items: stretch; }
body.mns .mne-story__body { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 2.75rem 2.5rem 4.5rem; }
body.mns .mne-story__eyebrow { font-family: var(--mns-font-ui); font-size: .8125rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--mns-green-800); margin-bottom: .9rem; }
body.mns .mne-story__title { font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); line-height: 1.15; color: var(--mns-green-800); margin: 0 0 1rem; }
body.mns .mne-story__text { font-size: 1rem; line-height: 1.6; color: var(--mns-ink-600); margin: 0 0 1.5rem; }
body.mns .mne-story__media { position: relative; }
body.mns .mne-story__img { display: block; width: 100%; height: 100%; min-height: 100%; aspect-ratio: 488 / 345; object-fit: cover; }
body.mns .mne-story__play { position: absolute; left: 15.8%; top: 47%; width: 13.3%; aspect-ratio: 1; min-width: 48px; transform: translate(-50%, -50%); display: grid; place-items: center; border-radius: 50%; background: #fff; color: #111; box-shadow: 0 6px 20px rgba(0, 0, 0, .18); transition: transform var(--mns-dur) var(--mns-ease); }
body.mns .mne-story__play:hover { transform: translate(-50%, -50%) scale(1.06); }
body.mns .mne-story__play svg { width: 42%; height: 42%; margin-left: 6%; }
body.mns .mne-story .mns-testi__dots { position: absolute; left: 2.5rem; bottom: 2rem; margin: 0; }
body.mns .mne-story .mns-testi__dot { background: #D5D9CF; }
body.mns .mne-story .mns-testi__dot.is-active { background: var(--mns-green-800); }
body.mns .mne-story .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 767px) {
	body.mns .mne-story .mns-testi__slide { grid-template-columns: minmax(0, 1fr); }
	body.mns .mne-story__media { order: -1; }
	body.mns .mne-story__body { padding: 1.5rem 1.25rem 3.75rem; }
	body.mns .mne-story .mns-testi__dots { left: 1.25rem; bottom: 1.5rem; }
	body.mns .mne-story__text br { display: none; }
}

/* Franja «Sé parte del cambio» con icono en círculo crema grande */
body.mns .mne-cta-band--icon-filled { grid-template-columns: auto minmax(0, 1fr) auto; padding: 1.75rem 2.5rem; gap: 1.5rem 1.75rem; border-radius: 16px; }
body.mns .mne-cta-band--icon-filled .mne-cta-band__icon { width: 96px; height: 96px; border: 0; background: var(--mns-cream-100); color: var(--mns-green-800); }
body.mns .mne-cta-band--icon-filled .mne-cta-band__icon svg { width: 50px; height: 50px; stroke-width: 1.3; }
body.mns .mne-cta-band--icon-filled .mne-cta-band__title { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
body.mns .mne-cta-band--icon-filled .mne-cta-band__text { margin-top: .5rem; font-family: var(--mns-font-ui); font-size: 1rem; line-height: 1.55; }
body.mns .mne-cta-band--icon-filled > .mns-btn { padding-inline: 1.75rem 1.5rem; min-width: 220px; justify-content: space-between; }
@media (max-width: 767px) {
	body.mns .mne-cta-band--icon-filled { grid-template-columns: minmax(0, 1fr); padding: 1.75rem 1.5rem; }
	body.mns .mne-cta-band--icon-filled .mne-cta-band__icon { width: 76px; height: 76px; }
	body.mns .mne-cta-band--icon-filled .mne-cta-band__text br { display: none; }
}

/* Barra de garantías (lista con iconos en fila, sin círculo) */
body.mns .mne-ilist--row:not(.mne-ilist--circle):not(.mne-ilist--card) { padding-top: .75rem; }
body.mns .mne-ilist--row:not(.mne-ilist--circle):not(.mne-ilist--card) .mne-ilist__icon { color: var(--mns-ink-900); }
body.mns .mne-ilist--row:not(.mne-ilist--circle):not(.mne-ilist--card) .mne-ilist__icon svg { width: 36px; height: 36px; stroke-width: 1.3; }
body.mns .mns-stats.mne-stats--tiles .mns-stat__value { color: var(--mns-green-800); }
body.mns .mns-stats.mne-stats--tiles .mns-stat__icon { color: var(--mns-green-800); }
@media (max-width: 767px) {
	body.mns .mne-stats--tiles .mns-stats__inner { gap: 10px; }
	body.mns .mne-stats--tiles .mns-stat { padding: 1.1rem .6rem 1.25rem; gap: .6rem; }
	body.mns .mne-stats--tiles .mns-stat__icon { width: 54px; height: 54px; }
	body.mns .mne-stats--tiles .mns-stat__icon svg { width: 26px; height: 26px; }
	body.mns .mne-stat__desc { font-size: .8125rem; }
}

/* ######################################################################
   1.0.14 — Noticias fiel a la referencia
   ###################################################################### */
body.mns .mns-hero--wave-hump-left .mns-hero__wave-stroke { bottom: -1px; }

/* Barra de filtros: etiqueta en línea; buscador sobre la columna lateral */
body.mns .mns-news__filters-label { font-size: .8125rem; color: var(--mns-ink-600); margin-right: .75rem; }
body.mns .mns-news__tab { font-size: .8125rem; }
@media (min-width: 1025px) {
	body.mns .mns-news--search-side { position: relative; }
	body.mns .mns-news--search-side .mns-news__search { position: absolute; top: -2px; right: calc(-1 * (var(--mne-side-w, 31%) + var(--mne-side-gap, 18px))); width: var(--mne-side-w, 31%); min-width: 0; margin: 0; }
	body.mns .mns-news--search-side .mns-news__search-input { width: 100%; height: 40px; border: 1px solid #E6E1D6; border-radius: 10px; background: #fff; padding: 0 2.5rem 0 1rem; font-size: .8125rem; }
}

/* Tarjetas de noticias: blancas; fecha y «Leer más» en la misma línea */
body.mns .mns-news-card--list { background: #fff; }
body.mns .mns-news-card--list .mns-news-card__meta { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: nowrap; }
body.mns .mns-news-card--list .mns-news-card__meta .mns-meta { display: inline-flex; align-items: center; gap: .4rem; font-size: .75rem; color: var(--mns-ink-600); white-space: nowrap; }
body.mns .mns-news-card--list .mns-link { color: var(--mns-ink-900); font-weight: 600; font-size: .75rem; white-space: nowrap; }

/* Boletín en tarjeta: verde claro, campo y botón en la misma línea */
body.mns .mne-nl--card { background: #E8EADF; border-radius: 14px; padding: 1.5rem 1.4rem; }
body.mns .mne-nl--card .mne-nl__icon { width: 44px; height: 44px; background: #4F6B43; color: #fff; }
body.mns .mne-nl--card .mne-nl__title { font-family: var(--mns-font-display); font-size: 1.1875rem; }
body.mns .mne-nl--card .mne-nl__text { font-size: .8125rem; line-height: 1.5; }
body.mns .mne-nl--card .mne-nl__form { flex-wrap: nowrap; }
body.mns .mne-nl--card .mne-nl__form input[type="email"] { background: #fff; min-width: 0; font-size: .8125rem; }
body.mns .mne-nl--card .mne-nl__form button { white-space: nowrap; font-size: .8125rem; }

/* Banda CTA con línea separadora antes del botón */
body.mns .mne-cta-band--divider > .mns-btn { position: relative; margin-left: 1.5rem; }
body.mns .mne-cta-band--divider > .mns-btn::before { content: ""; position: absolute; left: -1.75rem; top: -.7rem; bottom: -.7rem; width: 1px; background: rgba(247, 243, 240, .22); }
@media (max-width: 767px) { body.mns .mne-cta-band--divider > .mns-btn { margin-left: 0; } body.mns .mne-cta-band--divider > .mns-btn::before { display: none; } }

/* Valores en círculo compactos (fila de 4 junto a la banda) */
body.mns .mne-ilist--row.mne-ilist--circle .mne-ilist__item { padding: .5rem .85rem; gap: .75rem; }
body.mns .mne-ilist--row.mne-ilist--circle .mne-ilist__icon { width: 46px; height: 46px; background: #ECE9DE; }
body.mns .mne-ilist--row.mne-ilist--circle .mne-ilist__title { font-size: .75rem; }
body.mns .mne-ilist--row.mne-ilist--circle .mne-ilist__text { font-size: .6875rem; }
body.mns .mne-cats__leaf { color: var(--mns-gold-300); }
@media (min-width: 1025px) {
	body.mns .mne-cta-band--divider { padding: 1.35rem 1.75rem; gap: 1rem 1.25rem; }
	body.mns .mne-cta-band--divider .mne-cta-band__icon { width: 52px; height: 52px; }
	body.mns .mne-cta-band--divider .mne-cta-band__icon svg { width: 24px; height: 24px; }
	body.mns .mne-cta-band--divider .mne-cta-band__text { font-size: .8125rem; margin-top: .35rem; }
	body.mns .mne-cta-band--divider > .mns-btn { padding: .75rem 1.25rem; }
}

/* ######################################################################
   1.0.15 — Dona ahora fiel a la referencia
   ###################################################################### */
/* Antetítulo con icono */
body.mns .mns-hero__eyebrow--icon { display: inline-flex; align-items: center; gap: .55rem; color: var(--mns-green-800); font-weight: 600; }
body.mns .mns-hero .mns-hero__eyebrow--icon::after { display: none; }
body.mns .mns-hero__eyebrow--icon svg { width: 20px; height: 20px; color: #9DA387; stroke-width: 1.4; }
/* Esquina curva sin curva crema ni línea */
body.mns .mns-hero__band--no-curve .mns-hero__band-cream, body.mns .mns-hero__band--no-curve .mns-hero__band-line { display: none; }
/* Ventajas del hero en círculo */
body.mns .mne-hero-claim { gap: .75rem; font-size: .8125rem; }
body.mns .mne-hero-claim svg { box-sizing: content-box; width: 22px; height: 22px; padding: 10px; border-radius: 50%; background: #ECE6D9; color: var(--mns-gold-600); stroke-width: 1.4; }
body.mns .mne-hero-claim b { display: block; font-size: .8125rem; }
body.mns .mne-hero-claims { border: 0; }
body.mns .mne-hero-claim + .mne-hero-claim { border-left: 0; }

/* Bloque de donación con columna «Tu impacto» */
body.mns .mns-donation--impact { grid-template-columns: minmax(0, 1fr) 300px; gap: 14px; align-items: stretch; }
body.mns .mns-donation__main { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); background: #fff; border: 1px solid #E6E1D6; border-radius: 16px; box-shadow: 0 4px 18px rgba(59, 47, 31, .05); }
body.mns .mns-donation--impact .mns-donation__picker { background: transparent; border: 0; border-radius: 0; padding: 1.5rem 1.5rem 1.25rem; }
body.mns .mns-donation__impact { padding: 1.5rem 1.5rem 1.25rem; border-left: 1px solid #E6E1D6; }
body.mns .mns-donation__impact-title { font-size: 1.1875rem; margin: 0 0 1rem; }
body.mns .mns-donation__impact-list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .9rem; }
body.mns .mns-donation__impact-list li { display: flex; align-items: center; gap: .9rem; font-size: .8125rem; line-height: 1.45; color: var(--mns-ink-600); }
body.mns .mns-donation__impact-icon { display: grid; place-items: center; flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: #F1ECE2; color: var(--mns-ink-600); }
body.mns .mns-donation__impact-icon svg { width: 20px; height: 20px; stroke-width: 1.3; }
body.mns .mns-donation__trust { display: flex; gap: .9rem; align-items: flex-start; padding: .9rem 1rem; border-radius: 10px; background: #EFEBE0; font-size: .75rem; line-height: 1.45; color: var(--mns-ink-600); }
body.mns .mns-donation__trust > svg { width: 30px; height: 30px; flex: 0 0 auto; color: var(--mns-ink-600); stroke-width: 1.3; }
body.mns .mns-donation__trust b { display: block; color: var(--mns-ink-900); font-size: .8125rem; margin-bottom: .15rem; }
body.mns .mns-donation--impact .mns-donation__amounts { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
body.mns .mns-donation--impact .mns-donation__amount { padding: .9rem .4rem 2.1rem; }
body.mns .mns-donation--impact .mns-donation__amount-leaf { width: 24px; height: 24px; }
body.mns .mns-donation--impact .mns-donation__tabs { width: fit-content; }
body.mns .mns-donation--impact .mns-donation__summary { border-radius: 16px; }
@media (max-width: 1024px) {
	body.mns .mns-donation--impact { grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-donation__main { grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-donation__impact { border-left: 0; border-top: 1px solid #E6E1D6; }
	body.mns .mns-donation--impact .mns-donation__amounts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) { body.mns .mns-donation--impact .mns-donation__amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Tarjetas CTA en fila y con enlace */
body.mns .mne-cta-card--row { align-items: center; }
body.mns .mne-cta-card--row .mne-cta-card__body { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 1.5rem; width: 100%; }
body.mns .mne-cta-card--row .mne-cta-card__body > .mns-btn { grid-column: 2; grid-row: 1 / span 2; }
body.mns .mne-cta-card--cream .mns-btn--outline { background: #fff; border: 1px solid var(--mns-ink-900); color: var(--mns-ink-900); }
body.mns .mne-cta-card__link { font-size: .8125rem; font-weight: 600; color: var(--mns-ink-900); }
body.mns .mne-cta-card--row .mne-cta-card__title::after { display: none; }
@media (max-width: 767px) { body.mns .mne-cta-card--row .mne-cta-card__body { grid-template-columns: minmax(0, 1fr); row-gap: .75rem; } body.mns .mne-cta-card--row .mne-cta-card__body > .mns-btn { grid-column: 1; grid-row: auto; justify-self: start; } }
body.mns .mne-cta-card--norule .mne-cta-card__title::after { display: none; }
body.mns .mns-donation__main { grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); }
body.mns .mns-donation--impact .mns-donation__tabs { overflow: visible; flex-wrap: nowrap; scrollbar-width: none; }
body.mns .mns-donation--impact .mns-donation__tab { font-size: .8125rem; padding: .6rem 1.1rem; white-space: nowrap; }
body.mns .mns-donation--impact .mns-donation__amount--custom label { font-size: .75rem; }
@media (max-width: 1024px) { body.mns .mns-donation__main { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { body.mns .mns-donation--impact .mns-donation__tabs { flex-wrap: wrap; } }
@media (max-width: 1024px) { body.mns .mns-hero__content:has(.mne-hero-claims) { padding-bottom: 3rem; } }

/* ==========================================================================
   1.0.16 · Noticia individual y categorías como plantillas de Elementor
   ========================================================================== */
body.mns .mne-single-tpl .mne-article__media{ margin: 0; }
body.mns .mne-single-tpl .mne-share{ margin: 0; }
body.mns .mne-single-tpl .mne-article__meta{ margin-bottom: 0; }
body.mns .mne-single-tpl .mne-article__title{ margin-bottom: .75rem; }
body.mns .mne-article__title .mne-glyph{ display: inline-block; width: .62em; height: .62em; margin-left: .3em; vertical-align: .05em; color: var(--mns-green-700, #3E6A33); }
body.mns .mne-article__content > :first-child{ margin-top: 0; }
body.mns .mne-article__content > :last-child{ margin-bottom: 0; }
body.mns .mne-article__content a.mns-btn, body.mns .mne-article__content a.mns-btn:hover{ color: var(--mns-cream-50); text-decoration: none; }
body.mns .mne-article__content blockquote{ overflow: hidden; }
body.mns .mne-article__content blockquote::after{ content: ""; position: absolute; right: 1.25rem; bottom: -.5rem; width: 84px; height: 84px; opacity: .16; pointer-events: none; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%237A6A3A' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M14 60C24 44 34 30 52 8'/%3E%3Cpath d='M30 36c-8-1-13-7-13-15 8 1 13 7 13 15z'/%3E%3Cpath d='M37 27c1-9 7-14 15-14-1 9-7 14-15 14z'/%3E%3Cpath d='M22 48c-8 1-14-3-16-10 8-1 14 3 16 10z'/%3E%3C/svg%3E"); }
body.mns .mne-article__content blockquote > *{ position: relative; z-index: 1; }
body.mns .mne-cat-list li.is-active a{ color: var(--mns-green-800); font-weight: 600; }
body.mns .mne-cat-list li.is-active em{ color: var(--mns-green-800); }
body.mns .mne-related a{ grid-template-columns: 96px 1fr; }
body.mns .mne-related img{ width: 96px; height: 88px; }
body.mns .mne-related a:hover b{ color: var(--mns-green-800); }
body.mns .mne-cta-card__title .mne-glyph{ display: inline-block; width: .8em; height: .8em; margin-left: .35em; vertical-align: -.05em; color: var(--mns-gold-500); }
body.mns .mne-cta-card__note{ display: flex; align-items: center; gap: .875rem; margin-top: 1.75rem; }
body.mns .mne-cta-card__note-icon{ display: grid; place-items: center; flex: 0 0 auto; width: 50px; height: 50px; border-radius: 50%; background: rgba(255, 255, 255, .08); color: var(--mns-cream-50); }
body.mns .mne-cta-card__note-icon svg{ width: 26px; height: 26px; }
body.mns .mne-cta-card__note p{ margin: 0; font-size: .75rem; line-height: 1.5; color: rgba(239, 233, 223, .85); }
body.mns .mne-cta-card__note b, body.mns .mne-cta-card__note strong{ color: var(--mns-cream-50); font-weight: 600; }
body.mns .mne-cta-card--cream .mne-cta-card__note-icon{ background: var(--mns-cream-50); color: var(--mns-green-800); }
body.mns .mne-cta-card--cream .mne-cta-card__note p{ color: var(--mns-ink-600); }
body.mns .mne-cta-card--cream .mne-cta-card__note b{ color: var(--mns-ink-900); }
@media (max-width: 767px) {
	body.mns .mne-single-tpl .mne-article__meta > span + span{ padding-left: 0; border-left: 0; }
	body.mns .mne-share{ flex-wrap: wrap; }
	body.mns .mne-authorbox{ flex-direction: column; }
	body.mns .mne-article__content blockquote{ padding: 1.5rem 1.25rem 1.5rem 3.25rem; }
}
/* Producto individual como plantilla de Elementor */
body.mns .mns-gallery{ grid-template-columns: var(--mne-thumb-w, 84px) minmax(0, 1fr); }
body.mns .mns-gallery--bottom, body.mns .mns-gallery--none{ grid-template-columns: minmax(0, 1fr); }
body.mns .mns-gallery--bottom .mns-gallery__thumbs{ order: 2; grid-auto-flow: column; grid-auto-columns: var(--mne-thumb-w, 84px); }
body.mns .mns-gallery--bottom .mns-gallery__stage{ order: 1; }
body.mns .mne-product-tpl .mns-gallery__stage{ aspect-ratio: auto; height: 430px; }
body.mns .mne-product-tpl .mns-gallery__thumb{ aspect-ratio: 84 / 88; }
body.mns .mne-psum__cat{ margin: .35rem 0 .5rem; color: var(--mns-ink-900); letter-spacing: .12em; }
body.mns .mne-psum .mne-product__title{ margin: 0 0 .9rem; }
body.mns .mne-product__title .mne-glyph{ display: inline-block; width: .7em; height: .7em; margin-left: .3em; vertical-align: -.02em; color: var(--mns-green-800); }
body.mns .mne-psum .mns-product-info__price{ font-size: 1.1875rem; color: var(--mns-ink-900); margin-bottom: 1.1rem; }
body.mns .mne-psum .mne-product__desc{ font-size: var(--mns-fs-small); line-height: 1.75; }
body.mns .mne-psum .mns-attrs{ gap: .7rem; font-size: var(--mns-fs-small); }
body.mns .mne-psum .mns-attrs li{ font-size: var(--mns-fs-small); color: var(--mns-ink-900); }
body.mns .mne-psum .mns-attrs strong{ font-weight: 600; }
body.mns .mns-attrs__heart{ display: inline-block; width: 13px !important; height: 13px !important; margin-left: .25rem; vertical-align: -2px; }
body.mns .mne-psum__form{ display: grid; gap: 1rem; margin-top: 1.5rem; }
body.mns .mne-psum__qty{ display: flex; align-items: center; gap: 1.25rem; font-size: var(--mns-fs-small); color: var(--mns-ink-600); }
body.mns .mne-psum__qty label{ margin: 0; font-weight: 400; }
body.mns .mne-psum__actions{ display: flex; align-items: center; gap: .875rem; }
body.mns .mne-psum .single_add_to_cart_button{ display: inline-flex; align-items: center; justify-content: center; gap: .6rem; flex: 1 1 auto; min-height: 50px; padding: 0 1.5rem; border: 0; border-radius: var(--mns-radius-sm); background: var(--mns-green-900); color: var(--mns-cream-50); font-family: var(--mns-font-ui); font-weight: 600; cursor: pointer; transition: background-color var(--mns-dur) var(--mns-ease); }
body.mns .mne-psum .single_add_to_cart_button:hover{ background: var(--mns-green-700); }
body.mns .mne-psum .single_add_to_cart_button svg{ width: 20px; height: 20px; }
body.mns .mne-psum__wish{ display: grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; border: 1px solid var(--mns-line); border-radius: 50%; background: transparent; color: var(--mns-ink-900); cursor: pointer; transition: color var(--mns-dur) var(--mns-ease), border-color var(--mns-dur) var(--mns-ease); }
body.mns .mne-psum__wish svg{ width: 20px; height: 20px; }
body.mns .mne-psum__wish:hover, body.mns .mne-psum__wish[aria-pressed="true"]{ color: var(--mns-gold-600); border-color: var(--mns-gold-500); }
body.mns .mne-psum__wish[aria-pressed="true"] svg{ fill: currentColor; }
body.mns .mne-trustbar .mne-ilist{ border-top: 1px solid var(--mns-line); border-bottom: 1px solid var(--mns-line); padding: .5rem 0; }
body.mns .mne-trustbar .mne-ilist__item{ justify-content: center; }
body.mns .mne-product-tpl .mne-related-products__title .mne-glyph{ display: inline-block; width: .9em; height: .9em; margin-left: .35em; vertical-align: -.1em; color: var(--mns-gold-500); }
body.mns .mne-product-tpl .mne-cta-card{ height: 100%; }
body.mns .mne-cta-card--icon-bottom .mne-cta-card__body{ flex: 1 1 auto; }
body.mns .mne-cta-card--icon-bottom .mne-cta-card__text::after{ content: ""; display: block; width: 32px; height: 2px; margin-top: 1.25rem; background: var(--mns-gold-500); border-radius: 2px; }
body.mns .mne-cta-card__icon--bottom{ justify-self: center; align-self: center; width: auto; height: auto; margin-top: .5rem; border: 0 !important; color: var(--mns-cream-50) !important; }
body.mns .mne-cta-card__icon--bottom svg{ width: 34px; height: 34px; stroke-width: 1.3; }
@media (max-width: 1024px) {
	body.mns .mne-product-tpl .mns-gallery__stage{ height: 380px; }
}
@media (max-width: 767px) {
	body.mns .mns-gallery{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-gallery__thumbs{ order: 2; grid-auto-flow: column; grid-auto-columns: 68px; overflow-x: auto; }
	body.mns .mns-gallery__stage{ order: 1; }
	body.mns .mne-product-tpl .mns-gallery__stage{ height: auto; aspect-ratio: 1 / 1; }
	body.mns .mne-trustbar .mne-ilist__item{ justify-content: flex-start; }
}
/* Tienda: barra de filtros con iconos, orden y columnas 2×2 */
body.mns .mns-shop-filters{ justify-content: space-between; gap: .75rem 1.25rem; padding-block: .75rem 1rem; border-bottom: 0; margin-bottom: 1.25rem; }
body.mns .mns-shop-filters__pills{ display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1.75rem; }
body.mns .mns-shop-filters__pill{ padding: .7rem 1rem; font-size: .8125rem; color: var(--mns-ink-900); }
body.mns .mns-shop-filters__pill svg{ width: 20px; height: 20px; stroke-width: 1.4; }
body.mns .mns-shop-filters__pill.is-active{ background: var(--mns-green-900); padding-inline: 1rem; }
body.mns .mns-shop-filters__sort{ margin-left: auto; font-size: .75rem; color: var(--mns-ink-900); }
body.mns .mns-shop-filters__sort label{ color: var(--mns-ink-900); font-size: .75rem; }
body.mns .mns-shop-filters__sort select{ min-width: 118px; min-height: 40px; padding: 0 2.25rem 0 .75rem; border: 1px solid var(--mns-line); border-radius: 8px; background-color: #fff; font-size: .75rem; }
@media (min-width: 1025px) {
	body.mns .mns-shop--bar-wide .mns-shop-filters{ width: calc(100% + var(--mne-side-w, 31.6%) + var(--mne-side-gap, 40px)); max-width: none; }
	body.mns .mns-shop--paired{ column-gap: 3.25rem; row-gap: 1.75rem; }
	body.mns .mns-shop--divided{ background: linear-gradient(var(--mns-line), var(--mns-line)) no-repeat 50% 5.25rem / 1px calc(100% - 5.25rem); }
	body.mns .mns-shop--divided:not(:has(.mns-shop-filters)){ background-position: 50% 0; background-size: 1px 100%; }
}
body.mns .mns-shop .mns-cat-head{ justify-content: space-between; }
body.mns .mns-shop .mns-cat-head .mns-link{ font-size: .6875rem; color: var(--mns-ink-400); opacity: .7; }
body.mns .mns-shop .mns-cat-head__title{ font-size: .875rem; }
body.mns .mns-shop .mns-products{ gap: .5rem; }
body.mns .mne-cta-card--wa-dark{ background: var(--mns-green-900); color: rgba(247, 243, 240, .78); padding: 1.5rem 1.25rem; }
body.mns .mne-cta-card--wa-dark .mne-cta-card__title{ color: var(--mns-cream-50); font-family: var(--mns-font-ui); font-size: .875rem; font-weight: 500; }
body.mns .mne-cta-card--wa-dark .mne-cta-card__text{ font-size: .6875rem; margin-top: -.35rem; }
body.mns .mne-cta-card--wa-dark .mne-cta-card__phone{ color: var(--mns-cream-50); font-size: .8125rem; font-weight: 500; }
body.mns .mne-cta-card--wa-dark .mne-cta-card__phone svg{ color: var(--mns-cream-50); }
body.mns .mne-cta-card--wa-dark .mne-cta-card__wa{ display: none; }
@media (max-width: 767px) {
	body.mns .mns-shop-filters__pills{ flex-wrap: nowrap; overflow-x: auto; gap: .25rem; width: 100%; padding-bottom: .25rem; }
	body.mns .mns-shop-filters__pill{ white-space: nowrap; }
	body.mns .mns-shop-filters__sort{ margin-left: 0; }
}
/* Carrito en dos widgets (productos | resumen) */
body.mns .mns-cart--split{ display: block; }
body.mns .mne-cart-part > .woocommerce-notices-wrapper:empty{ display: none; }
body.mns .mns-cart--split .mns-cart__head{ padding: 0 0 .75rem; border-bottom: 0; font-size: .8125rem; font-weight: 600; color: var(--mns-ink-900); }
body.mns .mns-cart--split .mns-cart__head span:first-child{ padding-left: 0; }
body.mns .mns-cart--split .mns-cart-item{ margin-top: .5rem; padding: .75rem 1.5rem .75rem .75rem; background: #fff; border-color: #EDE7DD; box-shadow: 0 1px 2px rgba(30, 58, 40, .04); }
body.mns .mns-cart--split .mns-cart-item__media{ width: 120px; height: 104px; background: transparent; }
body.mns .mns-cart--split .mns-cart-item__media img{ object-fit: contain; }
body.mns .mns-cart--split .mns-cart-item__name{ font-size: 1.125rem; font-weight: 500; margin-bottom: .5rem; }
body.mns .mns-cart--split .mns-cart-item__attrs{ gap: .3rem; font-size: .75rem; color: var(--mns-ink-600); }
body.mns .mns-cart--split .mns-cart-item__attrs strong{ font-weight: 400; color: var(--mns-ink-600); }
body.mns .mns-cart--split .mns-money{ text-align: left; }
body.mns .mns-cart--split .mns-money__value{ font-size: .9375rem; }
body.mns .mns-cart--split .mns-money__cur{ font-size: .8125rem; color: var(--mns-ink-600); }
body.mns .mns-cart--split .mns-cart__actions{ margin-top: 1rem; }
body.mns .mns-cart__back{ display: inline-flex; align-items: center; gap: .9rem; padding: .5rem 0; font-size: .8125rem; font-weight: 600; color: var(--mns-ink-900); text-decoration: none; }
body.mns .mns-cart__back svg{ width: 18px; height: 18px; }
body.mns .mns-cart__back:hover{ color: var(--mns-green-800); }
body.mns .mns-cart--split .mns-cart__actions button[name="update_cart"]{ min-height: 38px; padding: 0 1.25rem; background: #fff; font-size: .8125rem; font-weight: 500; border-color: var(--mns-line); color: var(--mns-ink-900); }
body.mns .mns-cart--split .mns-cart__actions button[name="update_cart"] svg{ width: 16px; height: 16px; }
body.mns .mne-cart-part .mns-summary, body.mns .mne-cart-sample.mns-summary{ position: static; background: var(--mns-cream-200); border: 0; box-shadow: none; padding: 2rem 1.75rem 1.5rem; }
body.mns .mne-cart-part .mns-summary h2, body.mns .mne-cart-sample.mns-summary h2{ font-size: 1.25rem; margin-bottom: 1.5rem; }
body.mns .mns-summary__note{ background: var(--mns-cream-300, #E9E2D3); align-items: center; padding: 1.1rem 1.25rem; font-size: .75rem; }
body.mns .mns-summary__note svg{ width: 30px; height: 30px; stroke-width: 1.3; }
body.mns .mns-summary__checkout{ display: flex !important; align-items: center; justify-content: center; gap: .6rem; width: 100%; min-height: 42px; border-radius: var(--mns-radius-sm) !important; background: var(--mns-green-900) !important; color: var(--mns-cream-50) !important; font-family: var(--mns-font-ui); font-weight: 600; font-size: .875rem; text-decoration: none; }
body.mns .mns-summary__checkout:hover{ background: var(--mns-green-700) !important; }
body.mns .mns-summary__checkout svg{ width: 20px; height: 20px; }
body.mns .mns-paylogos .mns-paylogo{ display: inline-flex; align-items: center; justify-content: center; gap: .2rem; height: 26px; min-width: 46px; padding: 0 .5rem; background: #fff; border: 0; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); font-family: Arial, Helvetica, sans-serif; font-size: .75rem; font-weight: 800; font-style: italic; letter-spacing: 0; }
body.mns .mns-paylogo--visa{ color: #1A1F71; }
body.mns .mns-paylogo--amex{ color: #2E77BC; font-style: normal !important; }
body.mns .mns-paylogo--mc svg{ width: 30px; height: 20px; }
body.mns .mns-paylogo--pse{ color: #1D4F91; font-style: normal !important; }
body.mns .mns-paylogo--pse svg{ width: 16px; height: 16px; }
body.mns .mns-paylogo--pse em{ font-style: italic; font-weight: 600; font-size: .6875rem; }
body.mns .mns-paylogo--nequi{ color: #200020; font-style: normal !important; }
body.mns .mne-editor-note{ margin: .75rem 0 0; font-size: .75rem; color: var(--mns-ink-400); }

/* Finalizar compra en 4 pasos */
body.mns .mns-co{ --mns-co-aside: 392px; display: grid; grid-template-columns: minmax(0, 1fr) var(--mns-co-aside); gap: 2.25rem; align-items: start; }
body.mns .mns-co .mns-checkout{ display: block; }
body.mns .mns-co__steps{ margin-bottom: 1.75rem; }
body.mns .mns-co__steps .mns-steps__list{ justify-content: space-between; }
body.mns .mns-co__steps .mns-steps__line{ flex: 1 1 auto; height: 1px; margin: 17px .75rem 0; background: var(--mns-line); list-style: none; }
body.mns .mns-co__steps .mns-steps__item.is-done{ cursor: pointer; }
body.mns .mns-co__steps .mns-steps__item:not(.is-active):not(.is-done) .mns-steps__num{ background: #EFE6D6; color: var(--mns-ink-900); }
body.mns .mns-co__steps .mns-steps__title{ color: var(--mns-ink-900); font-size: .8125rem; font-weight: 600; }
body.mns .mns-co__steps .mns-steps__sub{ color: var(--mns-ink-600); font-size: .6875rem; }
body.mns .mns-co .mns-checkout__form{ background: #fff; border-color: #EDE7DD; box-shadow: none; }
body.mns .mns-co .mns-checkout__block{ padding: 1.4rem 1.25rem 1.5rem; }
body.mns .mns-co .mns-checkout__block h2{ font-size: 1rem; margin-bottom: 1rem; }
body.mns .mns-co .form-row{ margin: 0 0 .9rem; }
body.mns .mns-co .form-row label{ font-size: .75rem; font-weight: 500; color: var(--mns-ink-900); margin-bottom: .45rem; }
body.mns .mns-co .form-row .optional{ font-weight: 500; }
body.mns .mns-co .form-row .input-text, body.mns .mns-co .form-row select, body.mns .mns-co .select2-container .select2-selection--single{ min-height: 40px; border: 1px solid #E3DDD2; border-radius: 6px; background: #fff; font-size: .8125rem; }
body.mns .mns-co .woocommerce-billing-fields__field-wrapper{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; }
body.mns .mns-co .woocommerce-billing-fields__field-wrapper > .form-row{ grid-column: 1 / -1; width: auto; float: none; }
body.mns .mns-co .woocommerce-billing-fields__field-wrapper > #billing_first_name_field,
body.mns .mns-co .woocommerce-billing-fields__field-wrapper > #billing_last_name_field,
body.mns .mns-co .woocommerce-billing-fields__field-wrapper > #billing_phone_field,
body.mns .mns-co .woocommerce-billing-fields__field-wrapper > #billing_state_field,
body.mns .mns-co .woocommerce-billing-fields__field-wrapper > #billing_city_field,
body.mns .mns-co .woocommerce-billing-fields__field-wrapper > #billing_address_2_field,
body.mns .mns-co .woocommerce-billing-fields__field-wrapper > #billing_postcode_field{ grid-column: auto; }
body.mns .mns-co #billing_phone_field{ grid-column: 1 / 2; }
body.mns .mns-co #billing_phone_field .woocommerce-input-wrapper{ display: flex; }
body.mns .mns-phone__cc{ display: inline-flex; align-items: center; gap: .45rem; flex: 0 0 auto; padding: 0 1rem 0 .75rem; border: 1px solid #E3DDD2; border-right: 0; border-radius: 6px 0 0 6px; background: #fff; font-size: .8125rem; color: var(--mns-ink-900); }
body.mns .mns-phone__cc svg{ width: 18px; height: 12px; border-radius: 2px; }
body.mns .mns-co #billing_phone_field .input-text{ border-radius: 0 6px 6px 0; }
body.mns .mns-co__account{ display: grid; gap: .2rem; margin: .25rem 0 0; }
body.mns .mns-co__account label{ display: inline-flex !important; align-items: center; gap: .6rem; font-size: .75rem !important; font-weight: 400 !important; }
body.mns .mns-co__account input{ width: 16px; height: 16px; accent-color: var(--mns-green-800); }
body.mns .mns-co__account-help{ padding-left: 1.6rem; font-size: .6875rem; color: var(--mns-ink-600); }
body.mns .mns-co__hint{ margin: -.25rem 0 1rem; font-size: .8125rem; color: var(--mns-ink-600); }
body.mns .mns-co .mns-checkout__nav{ padding: 1rem 1.25rem 1.25rem; border-top: 0; }
body.mns .mns-co__back{ all: unset; display: inline-flex; align-items: center; gap: .9rem; font-size: .8125rem; font-weight: 600; color: var(--mns-ink-900); cursor: pointer; text-decoration: none; }
body.mns .mns-co__back svg{ width: 18px; height: 18px; }
body.mns .mns-co__back[hidden], body.mns .mns-co__next[hidden]{ display: none !important; }
body.mns .mns-co__next{ margin-left: auto; min-height: 36px; padding: 0 1.4rem; background: var(--mns-green-900); font-size: .8125rem; }
body.mns .mns-co__review-title{ display: none; }
body.mns .mns-co:not(.is-stepped) .mns-co__review-title[data-for="4"]{ display: block; }
body.mns .mns-co:not(.is-stepped) .mns-co__next, body.mns .mns-co:not(.is-stepped) .mns-co__back--step{ display: none !important; }
body.mns .mns-co.is-stepped[data-current="1"] [data-steps]:not([data-steps~="1"]),
body.mns .mns-co.is-stepped[data-current="2"] [data-steps]:not([data-steps~="2"]),
body.mns .mns-co.is-stepped[data-current="3"] [data-steps]:not([data-steps~="3"]),
body.mns .mns-co.is-stepped[data-current="4"] [data-steps]:not([data-steps~="4"]){ display: none; }
body.mns .mns-co.is-stepped[data-current="2"] .mns-co__review-title[data-for="2"],
body.mns .mns-co.is-stepped[data-current="3"] .mns-co__review-title[data-for="3"],
body.mns .mns-co.is-stepped[data-current="4"] .mns-co__review-title[data-for="4"]{ display: block; }
body.mns .mns-co.is-stepped[data-current="2"] #payment{ display: none; }
body.mns .mns-co.is-stepped[data-current="3"] .woocommerce-checkout-review-order-table{ display: none; }
body.mns .mns-co.is-stepped[data-current="3"] #payment .place-order{ display: none; }
body.mns .mns-co.is-stepped[data-current="4"] #payment .wc_payment_methods{ display: none; }
body.mns .mns-co #payment{ background: transparent; border-radius: 0; }
body.mns .mns-co #place_order{ width: 100%; min-height: 44px; border: 0; border-radius: var(--mns-radius-sm); background: var(--mns-green-900); color: var(--mns-cream-50); font-weight: 600; cursor: pointer; }
body.mns .mns-co__aside{ display: grid; gap: .6rem; }
body.mns .mns-co__summary{ position: static; background: var(--mns-cream-200); border: 0; box-shadow: none; padding: 1.4rem 1.4rem 1.1rem; }
body.mns .mns-co__summary-head{ display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
body.mns .mns-co__summary-head h2{ margin: 0; font-size: 1.0625rem; }
body.mns .mns-co__summary-head h2::after{ display: none; }
body.mns .mns-co__summary-head small{ font-family: var(--mns-font-ui); font-size: .75rem; font-weight: 400; color: var(--mns-ink-600); }
body.mns .mns-summary__edit{ display: inline-flex; align-items: center; gap: .35rem; font-size: .6875rem; font-weight: 600; color: var(--mns-ink-900); text-decoration: none; white-space: nowrap; }
body.mns .mns-summary__edit svg{ width: 13px; height: 13px; }
body.mns .mns-co__summary .mns-summary__items{ padding-bottom: 1rem; border-bottom: 1px solid var(--mns-line); }
body.mns .mns-co__summary .mns-summary__item img{ width: 54px; height: 54px; }
body.mns .mns-co__ship-value{ font-weight: 400 !important; font-size: .75rem; }
body.mns .mns-co__card{ display: flex; align-items: center; gap: 1rem; padding: .9rem 1.4rem; border-radius: var(--mns-radius); background: var(--mns-cream-200); font-size: .6875rem; line-height: 1.5; color: var(--mns-ink-600); }
body.mns .mns-co__card b{ display: block; margin-bottom: .15rem; font-size: .75rem; color: var(--mns-ink-900); }
body.mns .mns-co__card-icon{ flex: 0 0 auto; color: var(--mns-green-800); }
body.mns .mns-co__card-icon svg{ width: 28px; height: 28px; stroke-width: 1.3; }
body.mns .mns-co__card--impact{ background: #E8E4D6; }
body.mns .mns-co__aside .mne-cta-card--whatsapp{ margin-top: .35rem; }
@media (max-width: 1024px) {
	body.mns .mns-co{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-cart--split .mns-cart-item__media{ width: 88px; height: 88px; }
}
@media (max-width: 767px) {
	body.mns .mns-co .woocommerce-billing-fields__field-wrapper{ grid-template-columns: minmax(0, 1fr); }
	body.mns .mns-co .woocommerce-billing-fields__field-wrapper > .form-row{ grid-column: 1 / -1 !important; }
	body.mns .mns-co__steps .mns-steps__sub, body.mns .mns-co__steps .mns-steps__line{ display: none; }
	body.mns .mns-co__steps .mns-steps__item:not(.is-active) .mns-steps__label{ display: none; }
	body.mns .mns-co .mns-checkout__nav{ flex-direction: column-reverse; align-items: stretch; }
	body.mns .mns-co__next{ margin-left: 0; justify-content: center; }
	body.mns .mns-cart--split .mns-cart-item{ padding: .75rem; }
}
body.mns .mne-ilist--decor{ position: relative; overflow: hidden; }
body.mns .mne-ilist--decor > .mne-ilist__item{ position: relative; z-index: 1; }
body.mns .mne-split__title .mne-glyph{ display: inline-block; width: .8em; height: .8em; margin-left: .3em; vertical-align: -.05em; color: var(--mns-gold-500); }
body.mns .mne-hero-claims--plain .mne-hero-claim{ flex: 0 0 auto; font-size: .8125rem; }
body.mns .mne-hero-claims--plain .mne-hero-claim svg{ box-sizing: border-box; width: 30px; height: 30px; padding: 0; background: none; border-radius: 0; color: var(--mns-ink-900); stroke-width: 1.3; }
body.mns .mne-hero-claims--plain .mne-hero-claim b{ font-weight: 600; white-space: nowrap; }
body.mns .mne-hero-claims--plain .mne-hero-claim span{ white-space: nowrap; color: var(--mns-ink-900); }
body.mns .mne-hero-claims--plain .mne-hero-claim + .mne-hero-claim{ padding-left: 1.25rem; border-left: 1px solid var(--mns-line); }
body.mns .mns-shop .mns-product__title{ font-size: .75rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.mns .mns-shop .mns-product__price{ font-size: .75rem; }
@media (max-width: 767px) {
	body.mns .mne-hero-claims--plain .mne-hero-claim span{ white-space: normal; }
	body.mns .mne-hero-claims--plain .mne-hero-claim + .mne-hero-claim{ padding-left: 0; border-left: 0; }
}
body.mns .mns-shop .mns-product__title, body.mns .mns-shop .mns-product__price, body.mns .mne-related-products__main .mns-product__title, body.mns .mne-related-products__main .mns-product__price{ padding-right: 40px; }
body.mns .mns-shop .mns-product__add{ right: .25rem; bottom: .35rem; width: 28px; height: 28px; }
body.mns .mns-shop .mns-product__title{ font-size: .6875rem; padding-right: 30px; }
body.mns .mns-shop .mns-product__price{ font-size: .6875rem; padding-right: 30px; }
body.mns .screen-reader-text:not(:focus){ position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
/* Impacto · versión 2: bloque compacto de tarjetas, mapa y testimonios */
body.mns .mne-impacto2 .mne-shead__title{ font-size: 1.375rem; }
body.mns .mne-impacto2 .mns-cards{ gap: .75rem; }
body.mns .mne-impacto2 .mns-card-prog__body{ padding: 1.4rem .9rem 1rem; }
body.mns .mne-impacto2 .mns-card-prog__title{ font-size: 1rem; margin-bottom: .5rem; }
body.mns .mne-impacto2 .mns-card-prog__text{ font-size: .6875rem; line-height: 1.6; }
body.mns .mne-impacto2 .mns-card-prog__cta{ font-size: .6875rem; }
body.mns .mne-impacto2 .mns-card-prog__icon{ width: 40px; height: 40px; }
body.mns .mne-impacto2 .mns-map__title{ font-size: 1.375rem; }
body.mns .mne-impacto2 .mns-map__body{ grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: .9rem; }
body.mns .mne-impacto2 .mns-map__aside p{ font-size: .625rem; line-height: 1.7; }
body.mns .mne-impacto2 .mns-map__aside .mns-link{ font-size: .625rem; }
body.mns .mne-impacto2 .mns-map__canvas{ overflow: visible; }
body.mns .mne-impacto2 .mns-map__label{ font-size: .625rem; }
body.mns .mne-impacto2 .mns-testi__card{ padding: 1.4rem 1.25rem; }
body.mns .mne-impacto2 .mns-testi--stack blockquote, body.mns .mne-impacto2 .mns-testi--stack .mns-testi__quote{ font-family: var(--mns-font-ui); font-style: normal; font-size: .75rem; line-height: 1.7; color: var(--mns-ink-900); }
body.mns .mne-impacto2 .mns-testi__author{ font-size: .6875rem; }
body.mns .mne-impacto2 .mne-cta-band{ padding: 1.4rem 2rem; gap: 1.5rem; }
body.mns .mne-impacto2 .mne-cta-band__title{ font-size: 1.25rem; line-height: 1.3; }
body.mns .mne-impacto2 .mne-cta-band__aside{ font-size: .6875rem; line-height: 1.6; }
body.mns .mne-impacto2 .mne-ilist--card{ height: 100%; align-content: center; }
body.mns .mne-impacto2 .mne-ilist__text{ font-size: .6875rem; color: var(--mns-ink-900); }
@media (max-width: 1024px) {
	body.mns .mne-impacto2 .mns-map__body{ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
body.mns .mne-footer__col--split ul{ display: grid; grid-template-columns: repeat(2, auto); grid-auto-flow: column; grid-template-rows: repeat(4, auto); column-gap: 2.5rem; justify-content: start; }
/* Tienda 1.0.19: precio con moneda, nombres completos y encabezados de categoría */
body.mns .mns-price-cur{ margin-left: .3em; font-size: .85em; font-weight: 500; color: var(--mns-ink-600); }
body.mns .mns-summary__row--total .mns-price-cur, body.mns .mns-co__total .mns-price-cur{ color: inherit; }
body.mns .mns-cart--split .mns-money__value .mns-price-cur{ display: block; margin: .1rem 0 0; font-size: .8125rem; color: var(--mns-ink-600); }
body.mns .mns-shop .mns-product{ gap: .35rem; }
body.mns .mns-shop .mns-product__title{ font-size: .75rem; font-weight: 600; line-height: 1.35; white-space: normal; overflow: visible; text-overflow: clip; padding-right: 36px; margin-top: .45rem; }
body.mns .mns-shop .mns-product__price{ font-size: .75rem; padding-right: 36px; }
body.mns .mns-shop .mns-product__price .mns-price-cur{ color: var(--mns-gold-600); font-size: .9em; }
body.mns .mns-shop .mns-product__add{ width: 26px; height: 26px; right: 2px; bottom: 6px; background: var(--mns-green-800); box-shadow: none; }
body.mns .mns-shop .mns-product__add svg{ width: 13px; height: 13px; }
body.mns .mns-shop .mns-cat-head{ align-items: flex-end; margin-bottom: .9rem; }
body.mns .mns-shop .mns-cat-head .mns-link{ margin-left: auto; font-size: .625rem; font-weight: 400; color: var(--mns-ink-400); }
body.mns .mns-shop .mns-cat-head .mns-link svg{ width: 12px; height: 12px; }
body.mns .mns-shop .mns-cat-head__title{ font-size: .8125rem; letter-spacing: .12em; padding-bottom: .5rem; }
body.mns .mns-shop .mns-cat-head__title::after{ width: 22px; height: 1.5px; }
body.mns .mns-shop .mns-product__media{ background: #F3EEE6; }
body.mns .mns-shop .mns-product__title{ font-size: .6875rem; }
body.mns .mns-shop .mns-product__price{ font-size: .6875rem; }
@media (min-width: 1025px) {
	body.mns .mns-footer__inner{ grid-template-columns: 1.4fr repeat(var(--mne-footer-cols, 4), minmax(0, 1fr)); }
}
body.mns .mne-footer__col--social .mns-social{ margin-top: .25rem; }
/* Carrito: precios en tinta oscura como el diseño */
body.mns .mns-cart--split .mns-cart-item__price .amount,
body.mns .mns-cart--split .mns-cart-item__price .mns-money__value,
body.mns .mns-cart--split .mns-cart-item__subtotal .amount,
body.mns .mns-cart--split .mns-cart-item__subtotal .mns-money__value{ color: var(--mns-ink-900); }
body.mns .mns-cart--split .mns-cart__head{ color: var(--mns-ink-900); }
body.mns .mns-summary__row:not(.mns-summary__row--total) dd,
body.mns .mns-summary__row:not(.mns-summary__row--total) dd span.amount{ color: var(--mns-ink-900); }
body.mns .mns-summary__item-price span.amount{ color: var(--mns-ink-900); }
/* Columnas laterales (resumen del carrito, garantías de la tienda): ancho fijo
   para que no se estrechen aunque el contenido de al lado empuje. */
@media (min-width: 1025px) {
	body.mns .mne-col-aside{ --mne-aside-w: 344px; width: var(--mne-aside-w) !important; flex: 0 0 var(--mne-aside-w) !important; max-width: 100%; }
	body.mns .mne-col-aside--shop{ --mne-aside-w: 300px; }
	body.mns .mne-col-main{ flex: 1 1 auto !important; min-width: 0; }
}
body.mns .mne-col-aside .mns-summary h2{ white-space: nowrap; }
body.mns .mns-summary__row dt{ min-width: 0; }
@media (min-width: 1025px) {
	body.mns .mne-col-aside--news{ --mne-aside-w: 320px; }
	body.mns .mne-col-aside--post{ --mne-aside-w: 340px; }
}
/* Ancho mínimo de las piezas laterales: aunque el diseño de la página venga de
   una versión anterior (o Elementor reparta el espacio a su manera), la columna
   no puede encogerse por debajo de lo que necesitan estas tarjetas. */
@media (min-width: 1025px) {
	body.mns .elementor-widget-mne_cart_summary{ min-width: 320px; }
	body.mns .elementor-widget-mne_cart_summary .mns-summary{ min-width: 320px; }
	body.mns .mne-side-card{ min-width: 260px; }
	body.mns .mne-ilist--column.mne-ilist--card{ min-width: 240px; }
	body.mns .mne-col-aside .mne-cta-card{ min-width: 240px; }
	body.mns .mns-summary__row{ flex-wrap: nowrap; }
	body.mns .mns-summary__row dd{ white-space: nowrap; }
}
/* Y si la página viene de una versión anterior (sin las clases de columna), se
   reconoce la columna por el widget que lleva dentro. */
@media (min-width: 1025px) {
	body.mns .e-con:has(> .elementor-widget-mne_cart_summary){ flex: 0 0 344px !important; width: 344px !important; max-width: 100%; }
	body.mns .e-con:has(> .elementor-widget-mne_categories){ flex: 0 0 320px !important; width: 320px !important; max-width: 100%; }
}
/* Contacto: tarjeta verde con la rama dorada a la izquierda del texto */
body.mns .mne-cta-leafleft .mne-cta-card{ min-height: 116px; }
body.mns .mne-cta-leafleft .mne-cta-card__title{ font-size: 1.0625rem; }
body.mns .mne-cta-leafleft .mne-cta-card__text{ font-size: .75rem; }
body.mns .mne-cta-leafleft .mne-cta-card__leaf{ --mns-leaf-opacity: 1; }
body.mns .mne-contact-band .mne-ilist__text{ font-size: .6875rem; }
body.mns .mne-contact-band .mne-ilist__title{ font-size: .8125rem; }
@media (max-width: 767px) {
	body.mns .mne-cta-leafleft .mne-cta-card{ padding-left: 1.75rem; }
}

body.mns .mne-cta-card--icon-left{ flex-direction: row; align-items: center; gap: 1.5rem; }
body.mns .mne-cta-card--icon-left .mne-cta-card__icon{ width: auto; height: auto; border: 0 !important; color: var(--mns-gold-500) !important; }
body.mns .mne-cta-card--icon-left .mne-cta-card__icon svg{ width: 58px; height: 58px; stroke-width: 1.1; }
body.mns .mne-cta-card--icon-left .mne-cta-card__body{ gap: .45rem; }
@media (max-width: 767px) { body.mns .mne-cta-card--icon-left{ flex-direction: column; align-items: flex-start; gap: .75rem; } }
body.mns .mne-cta-card--green .mns-link{ color: var(--mns-gold-500); }
body.mns .mne-cta-card--green .mns-link:hover{ color: var(--mns-gold-300); }
body.mns .mne-cta-card__icon--art{ width: auto; height: auto; border: 0 !important; color: var(--mns-gold-500) !important; }
body.mns .mne-cta-card__icon--art svg{ width: 64px; height: 72px; }
/* Barra inferior del pie: copyright y crédito */
body.mns .mns-footer__bottom{ display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .35rem 1.25rem; }
body.mns .mns-footer__credit a{ color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 1px; transition: color var(--mns-dur) var(--mns-ease); }
body.mns .mns-footer__credit a:hover{ color: var(--mns-gold-500); }
@media (min-width: 768px) {
	body.mns .mns-footer__bottom{ justify-content: space-between; text-align: left; }
}
