/*
 * Ficha pública de biomarcador — Nivel Vital
 * Paleta y tipografía: Decisión D4 (documento de arranque, sección 3).
 * El morado (#904af2) se reserva a propósito para un único uso —el color de
 * enlace activo— para no convertirlo en ruido visual, tal como pide D4.
 */

.nv-ficha,
.nv-biblioteca,
.nv-portada,
.nv-quiz {
	--nv-verde-oscuro: #263b21;
	--nv-verde-azulado: #2a5c4c;
	--nv-morado: #904af2;
	--nv-blanco: #ffffff;
	--nv-casi-blanco: #fafafa;
	--nv-texto: #1f2a1d;
	--nv-texto-suave: #4b5a47;
	--nv-borde: #e2e6df;
	--nv-ambar: #92400e;
	--nv-ambar-fondo: #fdf3e6;

	color: var(--nv-texto);
	font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 1.0625rem;
	line-height: 1.7;
}

/* La ficha y el artículo son de lectura larga, columna angosta; el listado de
   la Biblioteca necesita más ancho para la cuadrícula de tarjetas — cada uno
   define su propio max-width/padding en vez de compartirlo con las variables. */
.nv-ficha {
	max-width: 760px;
	margin: 0 auto;
	padding: 2rem 1.25rem 5rem;
}

.nv-ficha h1,
.nv-ficha h2,
.nv-ficha h3 {
	font-family: 'Montserrat', 'Open Sans', sans-serif;
	color: var(--nv-verde-oscuro);
	line-height: 1.25;
}

.nv-ficha a {
	color: var(--nv-verde-azulado);
	text-decoration-color: rgba(42, 92, 76, 0.4);
}

.nv-ficha a:hover,
.nv-ficha a:focus {
	color: var(--nv-morado);
	text-decoration-color: var(--nv-morado);
}

/* ---------------------------------------------------------------- */
/* Cabecera                                                          */
/* ---------------------------------------------------------------- */

/* 28/08/2026, agrandado el mismo día tras el primer vistazo real de JC ("se ve pequeña y
   desconectada del título") — icono de Biomarcador (imagen destacada, formato 1:1) junto a la
   cabecera de texto, ahora con presencia real (~200px) y centrado verticalmente con el bloque
   de texto en vez de alineado arriba, para que se lea como una sola composición y no como un
   icono suelto en la esquina. Se descartó a propósito llevarlo a banner ancho: la imagen es
   1:1, no 16:9 (ese tratamiento es el de Artículo) — estirarla a todo el ancho de la columna
   la recortaría de forma agresiva o forzaría un cuadrado de ~760px empujando el contenido útil
   fuera de la pantalla. Fila flexible: en pantallas estrechas el icono se apila encima del
   texto en vez de al lado — por debajo de ~560px ya no cabían los dos a un tamaño legible. */
.nv-ficha__cabecera-fila {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	margin-bottom: 1.75rem;
}

.nv-ficha__cabecera-fila .nv-ficha__cabecera {
	flex: 1 1 auto;
	min-width: 0;
	margin-bottom: 0;
}

.nv-ficha__icono {
	flex: 0 0 auto;
	width: clamp(140px, 22vw, 200px);
	height: clamp(140px, 22vw, 200px);
	border-radius: 20px;
	overflow: hidden;
	border: 1px solid var(--nv-borde);
	background: var(--nv-casi-blanco);
	box-shadow: 0 8px 24px rgba(38, 59, 33, 0.12);
}

.nv-ficha__icono img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 560px) {
	.nv-ficha__cabecera-fila {
		flex-direction: column;
		align-items: flex-start;
	}

	.nv-ficha__icono {
		width: 140px;
		height: 140px;
	}
}

/* Cabecera ancha (imagen destacada, formato 16:9) de un Artículo — no aplica a Biomarcador,
   que usa el icono cuadrado de arriba en su lugar. */
.nv-ficha__banner {
	margin: 0 0 1.5rem;
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid var(--nv-borde);
	background: var(--nv-casi-blanco);
}

.nv-ficha__banner img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* Pie de foto (solo Artículo) — reforma del 06/09/2026. Reutiliza el campo nativo de
   "Título" (caption) del adjunto de la imagen destacada, ver nv_bib_banner_articulo(). */
.nv-ficha__pie-foto {
	margin: 0.5rem 0 0;
	font-size: 0.82rem;
	color: var(--nv-texto-suave);
	font-style: italic;
	text-align: center;
}

/* Línea "Actualizado / Tiempo de lectura" (solo Artículo) — reforma del 06/09/2026,
   entre el gancho y el "Resumen en 30 segundos". Texto simple, sin caja, a propósito:
   es información de apoyo, no debe competir visualmente con el gancho de arriba. */
.nv-linea-lectura {
	margin: 0 0 1.5rem;
	font-size: 0.85rem;
	color: var(--nv-texto-suave);
}

.nv-linea-lectura__punto {
	margin: 0 0.35em;
	opacity: 0.6;
}

.nv-ficha__cabecera {
	margin-bottom: 1.5rem;
}

.nv-badge {
	display: inline-block;
	background: var(--nv-casi-blanco);
	border: 1px solid var(--nv-borde);
	color: var(--nv-verde-azulado);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	margin-bottom: 0.75rem;
}

.nv-ficha__titulo {
	font-size: clamp(1.9rem, 4vw, 2.6rem);
	font-weight: 800;
	margin: 0 0 0.5rem;
}

.nv-ficha__sinonimos {
	color: var(--nv-texto-suave);
	font-size: 0.95rem;
	margin: 0;
}

/* ---------------------------------------------------------------- */
/* Bloque de metadatos — componente reutilizable                     */
/* ---------------------------------------------------------------- */

.nv-metadatos {
	background: var(--nv-casi-blanco);
	border: 1px solid var(--nv-borde);
	border-radius: 12px;
	padding: 1rem 1.25rem;
	margin: 1.5rem 0;
}

.nv-metadatos__lista {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 2rem;
	margin: 0;
	padding: 0;
}

.nv-metadatos__item {
	display: flex;
	flex-direction: column;
	font-size: 0.92rem;
}

.nv-metadatos__etiqueta {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nv-texto-suave);
}

.nv-metadatos__valor {
	color: var(--nv-texto);
	font-weight: 600;
}

.nv-metadatos__item--caducado .nv-metadatos__valor {
	color: var(--nv-ambar);
}

.nv-metadatos__aviso {
	font-weight: 700;
}

.nv-metadatos__item--evidencia .nv-metadatos__valor {
	display: inline-block;
	padding: 0.1rem 0.55rem;
	border-radius: 999px;
	background: var(--nv-verde-azulado);
	color: var(--nv-blanco);
	font-size: 0.82rem;
}

.nv-metadatos__item--limitado .nv-metadatos__valor {
	background: var(--nv-ambar-fondo);
	color: var(--nv-ambar);
}

.nv-metadatos__conflictos {
	margin: 0.85rem 0 0;
	padding-top: 0.75rem;
	border-top: 1px solid var(--nv-borde);
	font-size: 0.88rem;
	color: var(--nv-texto-suave);
}

/* ---------------------------------------------------------------- */
/* Resumen en 30 segundos                                             */
/* ---------------------------------------------------------------- */

.nv-resumen-30s {
	background: var(--nv-verde-oscuro);
	color: var(--nv-blanco);
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	margin: 1.5rem 0 2rem;
}

.nv-resumen-30s__etiqueta {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #b9d6bd;
	margin-bottom: 0.4rem;
}

.nv-resumen-30s p {
	margin: 0;
	font-size: 1.05rem;
}

/* ---------------------------------------------------------------- */
/* Resumen en 30 segundos dentro del lateral — reforma del 11/09/2026 */
/* (JC, punto 1 del análisis del blog de NOVOS Labs, aprobado el      */
/* 10/09/2026). Hereda .nv-resumen-30s; solo ajusta el tamaño para la */
/* columna estrecha (280px) del lateral en vez del ancho del cuerpo.  */
/* ---------------------------------------------------------------- */

.nv-resumen-30s--lateral {
	padding: 1rem 1.1rem;
	margin: 0;
}

.nv-resumen-30s--lateral p {
	font-size: 0.92rem;
}

/* ---------------------------------------------------------------- */
/* Secciones de contenido                                             */
/* ---------------------------------------------------------------- */

.nv-seccion {
	margin: 2.5rem 0;
	scroll-margin-top: 1.5rem;
}

.nv-seccion h2 {
	font-size: 1.35rem;
	font-weight: 700;
	border-bottom: 2px solid var(--nv-borde);
	padding-bottom: 0.5rem;
	margin: 0 0 1rem;
}

.nv-seccion p {
	margin: 0 0 1rem;
}

.nv-seccion ul,
.nv-seccion ol {
	padding-left: 1.4rem;
}

.nv-seccion li {
	margin-bottom: 0.4rem;
}

/* ---------------------------------------------------------------- */
/* Fórmula                                                            */
/* ---------------------------------------------------------------- */

.nv-formula {
	background: var(--nv-casi-blanco);
	border: 1px solid var(--nv-borde);
	border-radius: 10px;
	padding: 0.9rem 1.1rem;
	margin-bottom: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.nv-formula__etiqueta {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nv-texto-suave);
}

.nv-formula code {
	font-size: 1rem;
	color: var(--nv-verde-oscuro);
	white-space: pre-line;
}

/* ---------------------------------------------------------------- */
/* Tablas de rangos                                                   */
/* ---------------------------------------------------------------- */

.nv-tabla-envoltorio {
	overflow-x: auto;
	margin-bottom: 1rem;
}

.nv-tabla {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.94rem;
}

.nv-tabla caption {
	text-align: left;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--nv-texto-suave);
	margin-bottom: 0.5rem;
}

.nv-tabla th,
.nv-tabla td {
	text-align: left;
	padding: 0.6rem 0.8rem;
	border-bottom: 1px solid var(--nv-borde);
	vertical-align: top;
}

.nv-tabla thead th {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--nv-verde-azulado);
	border-bottom: 2px solid var(--nv-verde-azulado);
}

.nv-tabla--laboratorio th[scope="row"] {
	font-weight: 700;
	color: var(--nv-verde-oscuro);
	width: 40%;
}

.nv-rangos__no-aplica {
	background: var(--nv-casi-blanco);
	border-left: 3px solid var(--nv-verde-azulado);
	padding: 0.85rem 1rem;
	border-radius: 0 8px 8px 0;
}

.nv-rangos__nota,
.nv-rangos__nota-editorial {
	color: var(--nv-texto-suave);
	font-size: 0.94rem;
}

.nv-rangos__nota-editorial :first-child {
	margin-top: 0;
}

/* ---------------------------------------------------------------- */
/* Marcadores relacionados (chips)                                    */
/* ---------------------------------------------------------------- */

.nv-chips-linea {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.92rem;
}

.nv-chips-linea__etiqueta {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--nv-texto-suave);
	margin-right: 0.25rem;
}

.nv-chip {
	display: inline-block;
	background: var(--nv-casi-blanco);
	border: 1px solid var(--nv-borde);
	border-radius: 999px;
	padding: 0.25rem 0.75rem;
	font-size: 0.86rem;
	text-decoration: none;
}

.nv-chip:hover,
.nv-chip:focus {
	border-color: var(--nv-morado);
}

/* ---------------------------------------------------------------- */
/* FAQ                                                                */
/* ---------------------------------------------------------------- */

.nv-faq__item {
	border: 1px solid var(--nv-borde);
	border-radius: 10px;
	padding: 1rem 1.25rem;
	margin-bottom: 0.9rem;
}

.nv-faq__pregunta {
	font-size: 1.02rem;
	margin: 0 0 0.5rem;
	color: var(--nv-verde-azulado);
}

.nv-faq__respuesta {
	font-size: 0.96rem;
}

.nv-faq__respuesta > :last-child {
	margin-bottom: 0;
}

/* ---------------------------------------------------------------- */
/* Bibliografía numerada                                              */
/* ---------------------------------------------------------------- */

.nv-bibliografia__lista {
	list-style: none;
	counter-reset: nv-biblio;
	padding: 0;
	margin: 0;
}

.nv-bibliografia__item {
	counter-increment: nv-biblio;
	display: flex;
	gap: 0.75rem;
	padding: 0.6rem 0;
	border-bottom: 1px solid var(--nv-borde);
	font-size: 0.92rem;
	scroll-margin-top: 1.5rem;
}

.nv-bibliografia__item::before {
	content: '[' counter(nv-biblio) ']';
	flex-shrink: 0;
	color: var(--nv-texto-suave);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.nv-bibliografia__cita {
	color: var(--nv-texto);
}

.nv-bibliografia__nota {
	display: block;
	color: var(--nv-texto-suave);
	font-size: 0.86rem;
	font-style: italic;
	margin-top: 0.15rem;
}

/* ---------------------------------------------------------------- */
/* Cuerpo de artículo — contenido nativo de WordPress (the_content), no      */
/* secciones ACF, así que necesita sus propias reglas para h2/h3/tablas/etc. */
/* ---------------------------------------------------------------- */

.nv-articulo-cuerpo {
	margin: 1.5rem 0 2.5rem;
}

.nv-articulo-cuerpo h2 {
	font-size: 1.35rem;
	font-weight: 700;
	border-bottom: 2px solid var(--nv-borde);
	padding-bottom: 0.5rem;
	margin: 2.5rem 0 1rem;
}

.nv-articulo-cuerpo h3 {
	font-size: 1.1rem;
	font-weight: 700;
	margin: 1.75rem 0 0.75rem;
}

.nv-articulo-cuerpo p {
	margin: 0 0 1rem;
}

.nv-articulo-cuerpo ul,
.nv-articulo-cuerpo ol {
	padding-left: 1.4rem;
	margin: 0 0 1rem;
}

.nv-articulo-cuerpo li {
	margin-bottom: 0.4rem;
}

.nv-articulo-cuerpo blockquote {
	margin: 1.25rem 0;
	padding: 0.25rem 0 0.25rem 1rem;
	border-left: 3px solid var(--nv-verde-azulado);
	color: var(--nv-texto-suave);
}

.nv-articulo-cuerpo table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.94rem;
	margin: 0 0 1.5rem;
}

.nv-articulo-cuerpo th,
.nv-articulo-cuerpo td {
	text-align: left;
	padding: 0.6rem 0.8rem;
	border-bottom: 1px solid var(--nv-borde);
	vertical-align: top;
}

.nv-articulo-cuerpo thead th {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--nv-verde-azulado);
	border-bottom: 2px solid var(--nv-verde-azulado);
}

.nv-articulo-cuerpo img {
	max-width: 100%;
	height: auto;
	border-radius: 10px;
}

/* ---------------------------------------------------------------- */
/* Aviso legal de cierre                                              */
/* ---------------------------------------------------------------- */

.nv-aviso-legal {
	margin-top: 2rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--nv-borde);
	color: var(--nv-texto-suave);
	font-size: 0.85rem;
	line-height: 1.6;
}

/* ---------------------------------------------------------------- */
/* Gancho de apertura (solo Artículo)                                 */
/* ---------------------------------------------------------------- */

.nv-gancho {
	font-family: 'Montserrat', 'Open Sans', sans-serif;
	font-size: 1.18rem;
	font-weight: 600;
	color: var(--nv-verde-azulado);
	line-height: 1.5;
	margin: 0 0 1.5rem;
	padding-bottom: 1.4rem;
	border-bottom: 1px solid var(--nv-borde);
}

/* ---------------------------------------------------------------- */
/* "Cómo se preparó este artículo" (solo Artículo — antiguo "Escrito */
/* por" del bloque de metadatos, movido junto a la bibliografía)     */
/* ---------------------------------------------------------------- */

.nv-como-se-escribio {
	background: var(--nv-casi-blanco);
	border: 1px solid var(--nv-borde);
	border-radius: 12px;
	padding: 0.9rem 1.15rem;
	margin: 0 0 1.5rem;
}

.nv-como-se-escribio__etiqueta {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nv-texto-suave);
	margin-bottom: 0.35rem;
}

.nv-como-se-escribio p {
	margin: 0;
	font-size: 0.88rem;
	color: var(--nv-texto-suave);
}

/* ---------------------------------------------------------------- */
/* "Conflictos de interés declarados" (solo Artículo — mismo estilo */
/* que "Cómo se preparó este artículo", va justo debajo)             */
/* ---------------------------------------------------------------- */

.nv-conflictos {
	background: var(--nv-casi-blanco);
	border: 1px solid var(--nv-borde);
	border-radius: 12px;
	padding: 0.9rem 1.15rem;
	margin: 0 0 1.5rem;
}

.nv-conflictos__etiqueta {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nv-texto-suave);
	margin-bottom: 0.35rem;
}

.nv-conflictos p {
	margin: 0;
	font-size: 0.88rem;
	color: var(--nv-texto-suave);
}

/* ---------------------------------------------------------------- */
/* Aviso de "modo desarrollo" — ficha/artículo publicado sin firmas   */
/* de revisión (ver modo-desarrollo.php). Deliberadamente llamativo,  */
/* para que nunca se confunda con contenido revisado de verdad.       */
/* ---------------------------------------------------------------- */

.nv-aviso-desarrollo {
	background: var(--nv-ambar-fondo);
	border: 1px solid var(--nv-ambar);
	border-radius: 10px;
	padding: 0.75rem 1.1rem;
	margin: 0 0 1.5rem;
	font-size: 0.88rem;
	color: var(--nv-ambar);
	line-height: 1.5;
}

.nv-aviso-desarrollo strong {
	margin-right: 0.3em;
}

/* ---------------------------------------------------------------- */
/* Sección de créditos (solo Artículo) — reforma del 06/09/2026.      */
/* Sustituye a .nv-como-se-escribio en single-nv_articulo.php.        */
/* ---------------------------------------------------------------- */

.nv-creditos {
	background: var(--nv-casi-blanco);
	border: 1px solid var(--nv-borde);
	border-radius: 12px;
	padding: 1rem 1.15rem;
	margin: 0 0 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
}

.nv-creditos__fila {
	display: flex;
	align-items: center;
	gap: 0.85rem;
}

.nv-creditos__fila + .nv-creditos__fila {
	padding-top: 0.9rem;
	border-top: 1px solid var(--nv-borde);
}

/* El SVG del logo lleva texto en blanco pensado para ir sobre fondo oscuro (ver
   nv_bib_logo_svg() y portada.css) — aquí necesita su propio fondo verde para
   seguir siendo legible sobre el fondo claro de la caja de créditos. */
.nv-creditos__logo {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: 10px;
	background: var(--nv-verde-oscuro);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	padding: 4px;
}

.nv-creditos__logo svg {
	width: 100%;
	height: 100%;
}

.nv-creditos__avatar {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--nv-verde-azulado);
	display: flex;
	align-items: center;
	justify-content: center;
}

.nv-creditos__avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nv-creditos__avatar-generico {
	color: var(--nv-blanco);
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	font-size: 1.1rem;
}

.nv-creditos__texto {
	margin: 0;
	font-size: 0.9rem;
	color: var(--nv-texto);
	line-height: 1.4;
}

.nv-creditos__rol {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nv-texto-suave);
}

.nv-creditos__fecha {
	display: block;
	font-size: 0.82rem;
	color: var(--nv-texto-suave);
}

/* ---------------------------------------------------------------- */
/* Badge de evidencia aislado (solo Artículo, arriba de la foto) —    */
/* reforma de secuencia del 06/09/2026. Reutiliza las clases de       */
/* .nv-metadatos, solo que en su propio recuadro más compacto.        */
/* ---------------------------------------------------------------- */

.nv-metadatos--evidencia-sola {
	margin-top: 0;
	padding: 0.6rem 1rem;
	display: inline-block;
}

.nv-metadatos--evidencia-sola .nv-metadatos__lista {
	gap: 0;
}

/* ---------------------------------------------------------------- */
/* Envoltorio de Artículo + lateral — reforma de secuencia del        */
/* 06/09/2026. El lateral va pegado al artículo (hueco mínimo entre   */
/* los dos, a petición explícita de JC tras ver la primera prueba con */
/* demasiado espacio de separación) en vez de centrado con un hueco   */
/* grande a cada lado.                                                */
/* ---------------------------------------------------------------- */

.nv-articulo-envoltorio {
	/* 760px (ancho fijo de .nv-ficha) + 280px (lateral) + 20px (gap) — sin hueco de
	   centrado extra, para que el lateral quede pegado al artículo (petición de JC). */
	max-width: 1060px;
	margin: 0 auto;
	padding: 0 1.25rem;
	display: flex;
	align-items: flex-start;
	gap: 1.25rem;
}

.nv-articulo-envoltorio .nv-ficha {
	flex: 1 1 auto;
	min-width: 0;
	/* El padding lateral ya lo pone el envoltorio — aquí solo el vertical. */
	padding-left: 0;
	padding-right: 0;
	margin: 0;
}

.nv-lateral {
	flex: 0 0 280px;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	position: sticky;
	top: 1.25rem;
	/* Empieza a la altura del cuerpo del artículo, no del todo arriba del
	   título — así queda visualmente pegado al texto, no a la cabecera. */
	margin-top: 2rem;
}

.nv-lateral-caja {
	border-radius: 14px;
	padding: 1.25rem 1.1rem;
	border: 1px solid var(--nv-borde);
}

.nv-lateral-caja--news {
	background: var(--nv-verde-oscuro);
	color: var(--nv-blanco);
}

.nv-lateral-caja--news h3 {
	font-family: 'Montserrat', sans-serif;
	color: var(--nv-blanco);
	font-size: 1rem;
	margin: 0 0 0.4rem;
}

.nv-lateral-caja--news p {
	font-size: 0.86rem;
	color: #cfe0cf;
	margin: 0 0 0.9rem;
}

.nv-lateral-caja--news__campo input {
	width: 100%;
	padding: 0.55rem 0.7rem;
	border-radius: 8px;
	border: none;
	margin-bottom: 0.6rem;
	font-size: 0.85rem;
	box-sizing: border-box;
	font-family: inherit;
}

.nv-lateral-caja--news__campo button {
	width: 100%;
	padding: 0.6rem 0.7rem;
	border-radius: 8px;
	border: none;
	background: var(--nv-morado);
	color: var(--nv-blanco);
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	font-size: 0.85rem;
}

.nv-lateral-caja--news__campo button:disabled,
.nv-lateral-caja--ia button:disabled {
	opacity: 0.75;
	cursor: not-allowed;
}

.nv-lateral-caja--ia {
	background: var(--nv-casi-blanco);
}

.nv-lateral-caja--ia h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.95rem;
	color: var(--nv-verde-oscuro);
	margin: 0 0 0.6rem;
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.nv-lateral-caja--ia__chip {
	background: var(--nv-morado);
	color: var(--nv-blanco);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.6rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 0.1rem 0.4rem;
	border-radius: 999px;
}

.nv-lateral-caja--ia__demo {
	background: var(--nv-blanco);
	border: 1px solid var(--nv-borde);
	border-radius: 8px;
	padding: 0.55rem 0.7rem;
	font-size: 0.82rem;
	color: var(--nv-texto-suave);
	margin: 0 0 0.75rem;
}

.nv-lateral-caja--ia button {
	width: 100%;
	padding: 0.55rem 0.7rem;
	border-radius: 8px;
	border: 1.5px solid var(--nv-verde-azulado);
	background: transparent;
	color: var(--nv-verde-azulado);
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	font-size: 0.82rem;
}

@media (max-width: 880px) {
	.nv-articulo-envoltorio {
		flex-direction: column;
	}

	.nv-lateral {
		flex: 1 1 auto;
		position: static;
		width: 100%;
		margin-top: 0;
	}
}

/* ---------------------------------------------------------------- */
/* Responsive                                                         */
/* ---------------------------------------------------------------- */

@media (max-width: 560px) {
	.nv-ficha {
		padding: 1.5rem 1rem 3.5rem;
		font-size: 1rem;
	}

	.nv-metadatos__lista {
		gap: 0.6rem 1.25rem;
	}

	.nv-articulo-envoltorio {
		padding: 0 1rem;
	}
}
