/*
 * Hoja de estilos principal del tema NVEC v4 — nuestravidaenelcampo.com
 * Esta cabecera es solo documentación interna del fichero; la cabecera
 * oficial del tema (leída por WordPress) vive en /style.css, en la raíz.
 */

/*
 * ═══════════════════════════════════════════════════════════════════
 * ÍNDICE — busca «§01», «§02»… en el editor (Ctrl+F / Cmd+F)
 * ═══════════════════════════════════════════════════════════════════
 *
 * §01 · Tokens           L  27  :root, variables de diseño
 * §02 · Base             L  81  reset, tipografía, layout, page-header
 * §03 · Componentes      L 315  header, botones, tags, cards, formulario, footer
 * §04 · Home             L1138  hero, grids, comunidad, contacto
 * §05 · Nosotros         L1522  historia, finca, stats
 * §06 · Blog archivo     L1749  filtros, listado de artículos
 * §07 · Blog entrada     L1882  artículo, .nvec-prose, navegación
 * §08 · Proyectos         L2415  archivo, ficha individual
 * §09 · Colabora          L3375  hub, páginas de detalle, formularios
 * §10 · 404               L3618  página de error global
 *
 * Un solo archivo: maqueta HTML y tema WordPress.
 * ═══════════════════════════════════════════════════════════════════
 */

/* §01 · Tokens ═══════════════════════════════════════════════════ */

:root {
	/* Colores */
	--nvec-crema: #f4efe4;
	--nvec-beige-medio: #ebe4d4;
	--nvec-beige-oscuro: #d9d0bd;
	--nvec-verde-teal: #2b987f;
	--nvec-naranja-tierra: #c34b00;
	--nvec-rojo-sangre: #8c1a1a;
	--nvec-ambar: #c27803;
	--nvec-marron-oscuro: #3d2810;
	--nvec-casi-negro: #231a0a;
	--nvec-fondo-oscuro: #1a1208;
	--nvec-marron-medio: #7a6a52;
	--nvec-verde-oliva: #26a34f;
	--nvec-crema-90: rgba(244, 239, 228, 0.9);
	--nvec-blanco: #ffffff;

	/* Tipografías */
	--nvec-font-display: "Inter", system-ui, sans-serif;
	--nvec-font-editorial: "Playfair Display", Georgia, serif;
	--nvec-font-body: "Lora", Georgia, serif;
	--nvec-font-ui: "Inter", system-ui, sans-serif;

	/* Escala tipográfica (fluida donde conviene) */
	--nvec-text-display: clamp(2.75rem, 4vw + 1.5rem, 6rem);
	--nvec-text-h1: clamp(2.5rem, 5vw + 1rem, 6.25rem);
	--nvec-text-h2: clamp(2rem, 3vw + 1rem, 4.5rem);
	--nvec-text-h3: clamp(1.75rem, 2vw + 1rem, 3.5rem);
	--nvec-text-h4: clamp(1.5rem, 1.5vw + 1rem, 3rem);
	--nvec-text-h5: 1.375rem;
	--nvec-text-kicker: 0.75rem;
	--nvec-text-tag: 0.6875rem;
	--nvec-text-body-lg: 1rem;
	--nvec-text-body: 1rem;
	--nvec-text-body-line: 1.625;
	--nvec-text-ui: 0.875rem;
	--nvec-text-caption: 0.75rem;

	/* Layout */
	--nvec-container: 75rem;
	--nvec-container-narrow: 47.5rem;
	--nvec-container-post: 50rem;
	--nvec-gutter: clamp(1rem, 4vw, 3rem);
	--nvec-section-y: clamp(3rem, 6vw, 5rem);
	--nvec-content-offset-top: clamp(0.625rem, calc(5vw - 3.125rem), 1.875rem);
	--nvec-content-offset-top-hero: clamp(0.625rem, calc(5vw - 3.125rem), 2.5rem);
	--nvec-radius: 2px;
	--nvec-radius-pill: 999px;

	/* Sombras y bordes */
	--nvec-border: 1px solid rgba(35, 26, 10, 0.12);
	--nvec-header-bg: rgba(244, 239, 228, 0.96);
	--nvec-header-offset: 4.75rem;

	/* Transiciones */
	--nvec-ease: 0.2s ease;
}

/* §02 · Base ═════════════════════════════════════════════════════ */

/* Reset mínimo */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	font-style: normal;
	font-weight: 400;
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-marron-medio);
	background-color: var(--nvec-crema);
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

[hidden] {
	display: none !important;
}

a {
	color: var(--nvec-verde-teal);
	text-decoration: none;
	transition: color var(--nvec-ease);
}

a:hover {
	color: var(--nvec-naranja-tierra);
	text-decoration: none;
}

/* Subrayado solo en prosa de párrafo (páginas y blog), nunca en titulares ni UI */
:is(.nvec-prose, .entry-content, .nosotros-prose, .proyecto-panel) :is(p, li, dd, td, blockquote, figcaption) a:not(.btn):not(.tag):not(.btn--text),
:is(.page-header__lead, .blog-post__lead, .colabora-block__prose) a:not(.btn):not(.tag):not(.btn--text) {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

:is(.nvec-prose, .entry-content, .nosotros-prose, .proyecto-panel) :is(p, li, dd, td, blockquote, figcaption) a:not(.btn):not(.tag):not(.btn--text):hover,
:is(.page-header__lead, .blog-post__lead, .colabora-block__prose) a:not(.btn):not(.tag):not(.btn--text):hover {
	text-decoration: none;
}

:is(.nvec-prose, .entry-content, .nosotros-prose, .proyecto-panel) :is(h1, h2, h3, h4, h5, h6) a,
.card-blog__title a,
.card-proyecto__title a,
.card-comunidad__link,
.card-comunidad__link:hover,
:is(.card-blog, .card-proyecto, .card-comunidad) a:not(.tag) {
	text-decoration: none;
}

:is(.card-blog, .card-proyecto, .card-comunidad) a:not(.tag):hover {
	text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
	margin: 0;
}

ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

button,
input,
textarea,
select {
	font: inherit;
}

/* Utilidades de tipografía */
.nvec-kicker {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-kicker);
	font-weight: 600;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	line-height: 1.5;
	color: var(--nvec-naranja-tierra);
	margin-bottom: 1rem;
}

.nvec-display {
	font-family: var(--nvec-font-display);
	font-size: var(--nvec-text-display);
	font-weight: 800;
	line-height: 0.92;
	letter-spacing: -0.03em;
	color: var(--nvec-marron-oscuro);
}

.nvec-display .nvec-accent {
	color: var(--nvec-verde-teal);
}

/* Home hero: «Vida» destacada */
.hero .nvec-display .nvec-accent,
.hero__grid .nvec-display .nvec-accent,
.nvec-front-content > .hero__grid .nvec-display .nvec-accent {
	display: inline-block;
	font-size: clamp(3.5rem, 14vw, 6.5rem);
	line-height: 0.88;
	letter-spacing: -0.03em;
}

@media (min-width: 640px) {
	.hero .nvec-display .nvec-accent,
	.hero__grid .nvec-display .nvec-accent,
	.nvec-front-content > .hero__grid .nvec-display .nvec-accent {
		font-size: clamp(5rem, 12vw, 8rem);
	}
}

@media (min-width: 900px) {
	.hero .nvec-display .nvec-accent,
	.hero__grid .nvec-display .nvec-accent,
	.nvec-front-content > .hero__grid .nvec-display .nvec-accent {
		font-size: 10.25rem; /* 164px */
	}
}

.nvec-h2 {
	font-family: var(--nvec-font-editorial);
	font-size: var(--nvec-text-h4);
	font-weight: 700;
	line-height: 1.1;
	color: var(--nvec-marron-oscuro);
}

.nvec-body-lg,
.nvec-body {
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	font-style: normal;
	font-weight: 400;
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-marron-medio);
}

.nvec-caption {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	line-height: 1.5;
	color: var(--nvec-marron-medio);
}

.nvec-quote {
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body-lg);
	font-style: italic;
	line-height: 1.6;
	color: var(--nvec-marron-oscuro);
}

.nvec-quote cite {
	display: block;
	margin-top: 0.75rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-style: normal;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

/* Layout */
.nvec-container {
	width: min(100% - var(--nvec-gutter) * 2, var(--nvec-container));
	margin-inline: auto;
}

.nvec-section {
	padding-block: var(--nvec-section-y);
}

/* Primer bloque bajo header sticky: anula padding superior de sección */
#contenido > .page-header.nvec-section,
.page-header.nvec-section {
	padding-block-start: var(--nvec-content-offset-top);
	padding-block-end: clamp(2rem, 4vw, 3rem);
}

#contenido.nvec-section {
	padding-top: var(--nvec-content-offset-top);
	padding-bottom: var(--nvec-section-y);
}

#contenido > .single-post {
	padding-top: 0;
	padding-bottom: var(--nvec-section-y);
}

.nvec-section__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 2rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.nvec-section__lead {
	max-width: 36rem;
	margin-top: 0.75rem;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	font-weight: 400;
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-marron-medio);
}

/* Cabecera de páginas interiores (Nosotros, Blog, etc.) */
.page-header {
	padding-top: var(--nvec-content-offset-top);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

.page-header__title {
	max-width: 11em;
	font-family: var(--nvec-font-editorial);
	font-size: clamp(2.25rem, 4vw + 1.25rem, 4.5rem);
	font-style: normal;
	font-weight: 700;
	line-height: 1.05;
	color: #3d2810;
}

.page-header__lead {
	max-width: 35rem;
	margin-top: 1.5rem;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	font-style: italic;
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-marron-medio);
}

@media (min-width: 1200px) {
	.page-header__title {
		font-size: 4.5rem;
		line-height: 4.725rem;
	}
}

.nvec-skip-link {
	position: absolute;
	top: -100%;
	left: 1rem;
	z-index: 9999;
	padding: 0.75rem 1.25rem;
	background: var(--nvec-fondo-oscuro);
	color: var(--nvec-crema);
	font-family: var(--nvec-font-ui);
	font-weight: 600;
	border-radius: var(--nvec-radius);
}

.nvec-skip-link:focus {
	top: 1rem;
}

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

/* ─── Foco visible (teclado) ─────────────────────────────────────────────── */
/* Estado de foco visible por defecto para enlaces, navegación, botones y
   campos de formulario. Nunca se elimina el foco sin sustituirlo. */
:is(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--nvec-marron-oscuro);
	outline-offset: 2px;
	border-radius: var(--nvec-radius);
}

/* Sobre fondos oscuros el anillo marrón no se ve: usamos crema */
.site-footer :is(a, button, input, textarea, select, [tabindex]):focus-visible,
.nvec-editorial :is(a, button, [tabindex]):focus-visible {
	outline-color: var(--nvec-crema);
}

/* §03 · Componentes ══════════════════════════════════════════════ */

/* ─── Header ─────────────────────────────────────────────────────────────── */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--nvec-header-bg);
	backdrop-filter: blur(8px);
	border-bottom: var(--nvec-border);
}

.site-header__inner {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	padding-block: 1rem;
}

.site-header .nvec-container {
	position: relative;
}

.site-logo {
	font-family: var(--nvec-font-ui);
	font-size: 0.875rem;
	font-weight: 700;
	font-style: normal;
	line-height: 1.4285714286;
	letter-spacing: 0.175rem;
	text-transform: uppercase;
	color: var(--nvec-casi-negro);
	text-decoration: none;
	white-space: nowrap;
}

.site-logo:hover {
	color: var(--nvec-casi-negro);
	text-decoration: none;
}

.site-nav-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	margin-left: auto;
	padding: 0;
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	background: transparent;
	color: var(--nvec-marron-oscuro);
	cursor: pointer;
}

.site-nav-toggle__bars {
	display: block;
	width: 1.125rem;
	height: 2px;
	background: currentColor;
	box-shadow: 0 -5px 0 currentColor, 0 5px 0 currentColor;
}

.site-nav {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	padding: 1rem var(--nvec-gutter) 1.5rem;
	background: var(--nvec-crema);
	border-bottom: var(--nvec-border);
}

.site-nav.is-open {
	display: block;
}

.site-nav__list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-nav__list .menu-item {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-nav__list .menu-item > a {
	display: inline-flex;
	align-items: center;
}

.site-nav__link {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 500;
	letter-spacing: 0.025em;
	color: var(--nvec-marron-oscuro);
	text-decoration: none;
}

.site-nav__link:hover {
	color: var(--nvec-naranja-tierra);
	text-decoration: none;
}

.site-nav__link[aria-current="page"] {
	color: var(--nvec-verde-teal);
	font-weight: 600;
}

.site-nav__list .menu-item.current-menu-item > a.site-nav__link,
.site-nav__list .menu-item.current_page_item > a.site-nav__link {
	color: var(--nvec-verde-teal);
	font-weight: 600;
}

.site-nav__list .menu-item.menu-item-colabora {
	margin-top: 0.25rem;
}

@media (min-width: 900px) {
	.site-nav__list .menu-item.menu-item-colabora {
		margin-top: 0;
		margin-left: 0.25rem;
	}

	.site-nav-toggle {
		display: none;
	}

	.site-nav {
		display: block;
		position: static;
		flex: 1;
		padding: 0;
		background: transparent;
		border: 0;
	}

	.site-nav__list {
		flex-direction: row;
		align-items: center;
		justify-content: flex-end;
		gap: 1.75rem;
	}

	.site-header__inner {
		flex-wrap: nowrap;
		padding-block: 1.25rem;
	}
}

/* ─── Botones ────────────────────────────────────────────────────────────── */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.875rem 1.5rem;
	border: 2px solid transparent;
	border-radius: var(--nvec-radius);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	line-height: 1.4;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--nvec-ease), border-color var(--nvec-ease), color var(--nvec-ease);
}

.btn:hover {
	text-decoration: none;
}

.btn--primary {
	background: var(--nvec-verde-teal);
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-crema);
}

.btn--primary:hover {
	background: transparent;
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-verde-teal);
}

.btn--outline {
	background: transparent;
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-verde-teal);
}

.btn--outline:hover {
	background: var(--nvec-verde-teal);
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-crema);
}

.btn--compact {
	padding: 0.625rem 1.125rem;
}

.btn--muted {
	padding: 0.625rem 1rem;
	background: var(--nvec-beige-oscuro);
	border-color: var(--nvec-beige-oscuro);
	color: var(--nvec-marron-oscuro);
}

.btn--muted:hover {
	background: var(--nvec-beige-medio);
	border-color: var(--nvec-beige-medio);
	color: var(--nvec-marron-oscuro);
}

.btn__arrow {
	display: inline-block;
	transition: transform var(--nvec-ease);
}

.btn__icon {
	display: inline-flex;
	flex-shrink: 0;
	transition: transform var(--nvec-ease);
}

.btn--primary:hover .btn__arrow,
.btn--primary:hover .btn__icon {
	transform: translateX(3px);
}

.btn--text {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0;
	border: 0;
	background: none;
	color: var(--nvec-verde-teal);
	font-weight: 600;
	text-decoration: none;
}

.btn--text:hover {
	color: var(--nvec-naranja-tierra);
	text-decoration: none;
}

.btn--text:hover .btn__arrow {
	transform: translateX(3px);
}

.btn-group {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

/* Botones del editor de bloques (portada nativa) */
.wp-block-buttons.btn-group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}

.wp-block-buttons.btn-group .wp-block-button {
	margin: 0;
}

/* El wrapper no debe heredar .btn (solo el enlace) */
:is(.nvec-front-content, #contenido) .wp-block-button.btn,
:is(.nvec-front-content, #contenido) .wp-block-button.btn--primary,
:is(.nvec-front-content, #contenido) .wp-block-button.btn--outline,
:is(.nvec-front-content, #contenido) .wp-block-button.btn--text {
	display: inline-block;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	border-radius: 0;
	box-shadow: none;
}

.wp-block-button .wp-block-button__link.btn,
.wp-block-button__link.btn.wp-element-button,
.wp-block-button.btn--primary .wp-block-button__link.wp-element-button,
.wp-block-button.btn--outline .wp-block-button__link.wp-element-button,
.wp-block-button.btn--text .wp-block-button__link.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: auto;
	padding: 0.875rem 1.5rem;
	border: 2px solid transparent;
	border-radius: var(--nvec-radius);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	line-height: 1.4;
	text-decoration: none;
	cursor: pointer;
	box-sizing: border-box;
	transition: background-color var(--nvec-ease), border-color var(--nvec-ease), color var(--nvec-ease);
}

.wp-block-button .wp-block-button__link.btn--primary,
.wp-block-button__link.btn--primary.wp-element-button,
.wp-block-button.btn--primary .wp-block-button__link.wp-element-button {
	background: var(--nvec-verde-teal);
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-crema);
}

.wp-block-button .wp-block-button__link.btn--primary:hover,
.wp-block-button__link.btn--primary.wp-element-button:hover,
.wp-block-button.btn--primary .wp-block-button__link.wp-element-button:hover {
	background: transparent;
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-verde-teal);
}

.wp-block-button .wp-block-button__link.btn--outline,
.wp-block-button__link.btn--outline.wp-element-button,
.wp-block-button.btn--outline .wp-block-button__link.wp-element-button {
	background: transparent;
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-verde-teal);
}

.wp-block-button .wp-block-button__link.btn--outline:hover,
.wp-block-button__link.btn--outline.wp-element-button:hover,
.wp-block-button.btn--outline .wp-block-button__link.wp-element-button:hover {
	background: var(--nvec-verde-teal);
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-crema);
}

.wp-block-button .wp-block-button__link.btn--text,
.wp-block-button__link.btn--text.wp-element-button,
.wp-block-button.btn--text .wp-block-button__link.wp-element-button {
	padding: 0;
	border: 0;
	background: none;
	color: var(--nvec-verde-teal);
}

.wp-block-button .wp-block-button__link.btn--text:hover,
.wp-block-button__link.btn--text.wp-element-button:hover,
.wp-block-button.btn--text .wp-block-button__link.wp-element-button:hover {
	color: var(--nvec-naranja-tierra);
	background: none;
}

.wp-block-button .wp-block-button__link.btn--primary:hover .btn__arrow,
.wp-block-button .wp-block-button__link.btn--text:hover .btn__arrow {
	transform: translateX(3px);
}

/* ─── Tags ───────────────────────────────────────────────────────────────── */

.tag {
	display: inline-block;
	padding: 0.25rem 0.5rem;
	border: 2px solid transparent;
	border-radius: var(--nvec-radius);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-tag);
	font-weight: 600;
	font-style: normal;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.2727272727;
	text-decoration: none;
	transition: background-color var(--nvec-ease), border-color var(--nvec-ease), color var(--nvec-ease);
}

a.tag,
a.tag:hover,
a.tag:focus,
a.tag:active {
	text-decoration: none;
}

.tag--animales,
.tag--huerto,
.tag--sostenibilidad,
.tag--biodiversidad {
	background: rgba(43, 152, 127, 0.12);
	border-color: transparent;
	color: var(--nvec-verde-teal);
}

.tag--infraestructura {
	background: var(--nvec-naranja-tierra);
	border-color: var(--nvec-naranja-tierra);
	color: var(--nvec-crema);
}

.tag--anecdotas {
	background: #a33e00;
	border-color: #a33e00;
	color: var(--nvec-crema);
}

a.tag--animales:hover,
a.tag--huerto:hover,
a.tag--sostenibilidad:hover,
a.tag--biodiversidad:hover {
	background: rgba(43, 152, 127, 0.2);
	border-color: transparent;
	color: var(--nvec-verde-teal);
}

/* Blog — categorías con relleno sólido */
.card-blog .tag--animales,
.card-blog .tag--huerto,
.blog-post__meta .tag--animales,
.blog-post__meta .tag--huerto {
	background: var(--nvec-verde-teal);
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-crema);
}

.card-blog a.tag--animales:hover,
.card-blog a.tag--huerto:hover,
.blog-post__meta a.tag--animales:hover,
.blog-post__meta a.tag--huerto:hover {
	background: transparent;
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-verde-teal);
}

/* Hover categorías blog — naranja y anécdotas */
a.tag--infraestructura:hover,
a.tag--anecdotas:hover {
	background: transparent;
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-verde-teal);
}

.tag--related {
	background: var(--nvec-naranja-tierra);
	border: 1.5px solid var(--nvec-naranja-tierra);
	color: var(--nvec-crema);
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: none;
	text-decoration: none;
	transition: background-color var(--nvec-ease), border-color var(--nvec-ease);
}

a.tag--related:hover {
	background: #a33e00;
	border-color: #a33e00;
	color: var(--nvec-crema);
	opacity: 1;
}

/* ─── Autor (avatar + nombre) ────────────────────────────────────────────── */

.nvec-author {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none;
}

.nvec-author:hover .nvec-author__name {
	color: var(--nvec-naranja-tierra);
}

.nvec-author__avatar {
	flex-shrink: 0;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	object-fit: cover;
	object-position: center 15%;
	background: var(--nvec-beige-oscuro);
}

.nvec-author__name {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	line-height: 1.3;
	color: var(--nvec-casi-negro);
	transition: color var(--nvec-ease);
}

/* ─── Cards blog ───────────────────────────────────────────────────────── */

.card-blog {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding-bottom: 2rem;
	border-bottom: var(--nvec-border);
}

.card-blog__body {
	display: flex;
	flex-direction: column;
	flex: 1;
}

.card-blog__media {
	display: block;
	aspect-ratio: 16 / 9;
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-oscuro);
	overflow: hidden;
	margin-bottom: 1rem;
	color: inherit;
	text-decoration: none;
}

.card-blog__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.card-blog__media:hover img {
	transform: scale(1.03);
}

.card-blog__title a {
	transition: color var(--nvec-ease);
}

.card-blog__title a:hover {
	color: var(--nvec-naranja-tierra);
}

.card-blog__cta {
	margin-top: 0.75rem;
	align-self: flex-end;
}

.card-blog__meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}

.card-blog__date {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	color: var(--nvec-marron-medio);
}

.card-blog__title {
	font-family: var(--nvec-font-editorial);
	font-size: var(--nvec-text-h5);
	font-weight: 700;
	line-height: 1.25;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 0.5rem;
}

.card-blog__excerpt {
	flex: 1;
	margin-bottom: 1rem;
}

/* ─── Cards proyecto ───────────────────────────────────────────────────── */

.card-proyecto {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	height: 100%;
	padding: 0;
	background: var(--nvec-crema);
	border-radius: var(--nvec-radius);
	border: var(--nvec-border);
	overflow: hidden;
}

.card-proyecto__media {
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: var(--nvec-beige-oscuro);
	color: inherit;
	text-decoration: none;
}

.card-proyecto__status {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.375rem 0.625rem;
	border-radius: var(--nvec-radius);
	background: var(--nvec-naranja-tierra);
	color: var(--nvec-crema);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-tag);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.3;
}

.card-proyecto__status-icon {
	display: inline-flex;
	flex-shrink: 0;
	line-height: 0;
}

.card-proyecto__status-icon svg {
	display: block;
	width: 0.75rem;
	height: 0.75rem;
}

.card-proyecto__status-label {
	line-height: 1.3;
}

.card-proyecto__status--buscando-fondos {
	background: var(--nvec-rojo-sangre);
	letter-spacing: 0.05em;
}

.card-proyecto__status--completado {
	background: var(--nvec-verde-oliva);
}

.card-proyecto__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.card-proyecto__media:hover img {
	transform: scale(1.03);
}

.card-proyecto__title a {
	transition: color var(--nvec-ease);
}

.card-proyecto__title a:hover {
	color: var(--nvec-naranja-tierra);
}

.card-proyecto .btn--text,
.card-proyecto__cta {
	margin-top: 0.875rem;
	align-self: flex-end;
}

.card-proyecto__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	flex: 1;
	padding: 1.5rem;
}

.card-proyecto__tag {
	align-self: flex-start;
	margin-bottom: 0.75rem;
}

.card-proyecto__title {
	font-family: var(--nvec-font-editorial);
	font-size: var(--nvec-text-h5);
	font-weight: 700;
	line-height: 1.25;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 0.75rem;
}

.card-proyecto__text {
	flex: 1;
	margin-bottom: 1.25rem;
}

.card-proyecto__cost {
	width: 100%;
	margin-bottom: 1rem;
	padding: 0.75rem 0.875rem;
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-medio);
}

.card-proyecto__cost--self {
	background: rgba(43, 152, 127, 0.08);
	border-color: rgba(43, 152, 127, 0.2);
}

.card-proyecto__cost-message {
	margin: 0;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-ui);
	font-weight: 500;
	line-height: 1.45;
	color: var(--nvec-marron-oscuro);
}

.card-proyecto__cost-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.5rem;
}

.card-proyecto__cost-label {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.card-proyecto__cost-value {
	font-family: var(--nvec-font-editorial);
	font-size: 1.0625rem;
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
}

.card-proyecto__cost-note,
.card-proyecto__cost-meta {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	line-height: 1.45;
	color: var(--nvec-marron-medio);
}

.card-proyecto__cost-bar {
	height: 0.375rem;
	margin-bottom: 0.5rem;
	border-radius: var(--nvec-radius-pill);
	background: var(--nvec-beige-oscuro);
	overflow: hidden;
}

.card-proyecto__cost-fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--nvec-verde-teal);
}

.card-proyecto .btn--text {
	align-self: flex-end;
}

@media (min-width: 640px) {
	.card-proyecto:not(.card-proyecto--tile) {
		flex-direction: row;
	}

	.card-proyecto:not(.card-proyecto--tile) .card-proyecto__media {
		flex: 0 0 38%;
		aspect-ratio: auto;
		min-height: 12rem;
	}
}

/* ─── Bloque firma / editorial ───────────────────────────────────────────── */

.nvec-firma {
	margin-top: 1.5rem;
	padding-left: 1rem;
	border-left: 3px solid var(--nvec-verde-teal);
}

.nvec-firma__name {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-casi-negro);
}

.nvec-firma__caption {
	font-family: var(--nvec-font-ui);
	font-size: 0.75rem;
	font-style: normal;
	font-weight: 400;
	line-height: 1.3333333333;
	color: var(--nvec-marron-medio);
}

.nvec-editorial {
	padding: 1.5rem;
	background: rgba(26, 18, 8, 0.55);
	border-radius: var(--nvec-radius);
	color: var(--nvec-crema);
}

.nvec-editorial .nvec-quote {
	color: var(--nvec-crema);
}

.nvec-editorial .nvec-quote cite {
	color: var(--nvec-beige-oscuro);
}

/* ─── Formulario ─────────────────────────────────────────────────────────── */

.form-field {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
}

.form-field label {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.form-field input,
.form-field textarea {
	width: 100%;
	padding: 0.875rem 1rem;
	border: 1.5px solid rgba(35, 26, 10, 0.15);
	border-radius: var(--nvec-radius);
	background: var(--nvec-crema);
	color: var(--nvec-casi-negro);
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	line-height: 1.5;
	transition: border-color var(--nvec-ease);
}

.form-field input:focus,
.form-field textarea:focus {
	border-color: var(--nvec-verde-teal);
}

.form-field input:focus-visible,
.form-field textarea:focus-visible {
	outline: 2px solid var(--nvec-verde-teal);
	outline-offset: 1px;
}

.form-field textarea {
	min-height: 4.5rem;
	resize: vertical;
}

.form-check {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	line-height: 1.5;
	color: var(--nvec-marron-medio);
}

.form-check input[type="checkbox"] {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin-top: 0.125rem;
	accent-color: var(--nvec-verde-teal);
}

.form-check--required {
	outline: 2px solid var(--nvec-naranja-tierra);
	outline-offset: 2px;
	border-radius: 2px;
}

.form-check a {
	color: var(--nvec-verde-teal);
}

.form-required {
	color: var(--nvec-naranja-tierra);
}

.form-legal {
	font-family: var(--nvec-font-ui);
	font-size: 0.6875rem;
	line-height: 1.5;
	color: #a09480;
	margin-top: 0.75rem;
	margin-bottom: 1rem;
}

.form-legal a {
	color: var(--nvec-verde-teal);
}

.form-legal-layer {
	margin-block: 0.5rem 1rem;
	border: 1px solid rgba(35, 26, 10, 0.1);
	border-radius: 2px;
	background: rgba(235, 228, 212, 0.55);
	overflow: hidden;
	display: block;
}

.section-contacto__form .form-legal-layer {
	display: block;
}

.section-contacto__form .form-field:has(+ .form-legal-layer) {
	margin-bottom: 0;
}

.form-legal-layer__summary {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0.875rem 1.125rem;
	list-style: none;
	cursor: pointer;
	user-select: none;
	transition: background-color var(--nvec-ease);
}

.form-legal-layer__summary::-webkit-details-marker {
	display: none;
}

.form-legal-layer__summary:hover {
	background: rgba(235, 228, 212, 0.85);
}

.form-legal-layer__summary:focus {
	outline: none;
}

.form-legal-layer__summary:focus-visible {
	outline: 2px solid var(--nvec-verde-teal);
	outline-offset: -2px;
}

.form-legal-layer__summary-icon {
	display: inline-flex;
	flex-shrink: 0;
	color: var(--nvec-verde-teal);
}

.form-legal-layer__summary-text {
	flex: 1;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--nvec-marron-oscuro);
}

.form-legal-layer__chevron {
	display: inline-flex;
	flex-shrink: 0;
	color: var(--nvec-marron-medio);
	transition: transform var(--nvec-ease);
}

.form-legal-layer[open] .form-legal-layer__chevron {
	transform: rotate(180deg);
}

.form-legal-layer__content {
	padding: 0 1.125rem 1rem;
	border-top: 1px solid rgba(35, 26, 10, 0.08);
}

.form-legal-layer__list {
	margin: 0;
	padding-top: 0.875rem;
	display: grid;
	gap: 0.625rem;
}

.form-legal-layer__list > div {
	margin: 0;
}

.form-legal-layer__list dt {
	font-family: var(--nvec-font-ui);
	font-size: 0.6875rem;
	font-weight: 600;
	color: var(--nvec-marron-oscuro);
}

.form-legal-layer__list dd {
	margin: 0.125rem 0 0;
	font-family: var(--nvec-font-ui);
	font-size: 0.6875rem;
	line-height: 1.5;
	color: var(--nvec-marron-medio);
}

.form-legal-layer__list a,
.form-legal-layer__more a {
	color: var(--nvec-verde-teal);
}

.form-legal-layer__more {
	margin: 0.75rem 0 0;
	font-family: var(--nvec-font-ui);
	font-size: 0.6875rem;
	line-height: 1.5;
	color: var(--nvec-marron-medio);
}

.form-legal-layer__accept {
	margin: 1rem 0 0;
	padding-top: 0.875rem;
	border-top: 1px solid rgba(35, 26, 10, 0.08);
}

.form-legal-layer--required {
	border-color: var(--nvec-naranja-tierra);
	box-shadow: 0 0 0 1px rgba(196, 92, 38, 0.25);
}

@keyframes nvec-legal-hint-pulse {
	0%,
	100% {
		border-color: rgba(43, 152, 127, 0.35);
		box-shadow: 0 0 0 0 rgba(43, 152, 127, 0.16);
		background: rgba(43, 152, 127, 0.07);
	}

	50% {
		border-color: rgba(43, 152, 127, 0.7);
		box-shadow: 0 0 0 4px rgba(43, 152, 127, 0.14);
		background: rgba(43, 152, 127, 0.13);
	}
}

.section-contacto__form .form-legal-layer.form-legal-layer--hint:not([open]) {
	animation: nvec-legal-hint-pulse 1.35s ease-in-out infinite;
}

.section-contacto__form .form-legal-layer.form-legal-layer--hint:not([open]) .form-legal-layer__summary {
	background: rgba(43, 152, 127, 0.1);
}

.section-contacto__form .form-legal-layer.form-legal-layer--hint:not([open]) .form-legal-layer__summary-icon,
.section-contacto__form .form-legal-layer.form-legal-layer--hint:not([open]) .form-legal-layer__summary-text {
	color: var(--nvec-verde-teal);
}

@media (prefers-reduced-motion: reduce) {
	.section-contacto__form .form-legal-layer.form-legal-layer--hint:not([open]) {
		animation: none;
		border-color: rgba(43, 152, 127, 0.55);
		box-shadow: 0 0 0 3px rgba(43, 152, 127, 0.16);
		background: rgba(43, 152, 127, 0.1);
	}
}

/* ─── Footer ─────────────────────────────────────────────────────────────── */

.site-footer {
	background: var(--nvec-fondo-oscuro);
	color: var(--nvec-beige-oscuro);
	padding-block: clamp(3rem, 6vw, 5rem) 2rem;
}

.site-footer a {
	color: inherit;
	text-decoration: none;
}

.site-footer a:not(.btn):hover {
	color: var(--nvec-naranja-tierra);
	text-decoration: none;
}

.site-footer__grid {
	display: grid;
	gap: 2.5rem;
	margin-bottom: 3rem;
}

.site-footer__label {
	font-family: var(--nvec-font-ui);
	font-size: 0.75rem;
	font-style: normal;
	font-weight: 600;
	line-height: 1rem;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: #c34b00;
	margin-bottom: 1rem;
}

.site-footer__nav li + li {
	margin-top: 0.75rem;
}

.site-footer__nav a {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
}

.site-footer__text {
	font-size: var(--nvec-text-ui);
	line-height: 1.65;
}

.site-footer__cta {
	margin-top: 1rem;
}

.site-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1rem;
}

.site-footer__social .btn {
	border-color: transparent;
	border-radius: 2px;
	background: rgba(244, 239, 228, 0.07);
}

.site-footer__social .btn.btn--outline:hover {
	border-color: var(--nvec-verde-teal);
	background: var(--nvec-verde-teal);
}

.site-footer__bar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	justify-content: space-between;
	padding-top: 2rem;
	border-top: 1px solid rgba(244, 239, 228, 0.08);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
}

.site-footer__legal ul {
	display: contents;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer__legal li {
	display: contents;
}

@media (min-width: 768px) {
	.site-footer__grid {
		grid-template-columns: 1.2fr 0.8fr 1fr;
	}
}

/* §04 · Home ═════════════════════════════════════════════════════ */

/* Gutenberg: el layout vive en __inner-container, no en el wrapper del grupo */
.wp-block-group.hero__grid > .wp-block-group__inner-container,
.wp-block-group.nvec-container.hero__grid > .wp-block-group__inner-container {
	display: grid;
	gap: 2.5rem;
	align-items: center;
}

.wp-block-group.nvec-section__head > .wp-block-group__inner-container {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 2rem;
	width: 100%;
}

.wp-block-group.nvec-section__head {
	display: block;
}

.wp-block-group.section-comunidad-cta__grid > .wp-block-group__inner-container,
.wp-block-group.nvec-container.section-comunidad-cta__grid > .wp-block-group__inner-container {
	display: grid;
	gap: 2.5rem;
	align-items: start;
}

.wp-block-group.grid-comunidad {
	display: block;
}

.wp-block-group.grid-comunidad > .wp-block-group__inner-container {
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 900px) {
	.wp-block-group.hero__grid > .wp-block-group__inner-container,
	.wp-block-group.nvec-container.hero__grid > .wp-block-group__inner-container {
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
	}

	.wp-block-group.section-comunidad-cta__grid > .wp-block-group__inner-container,
	.wp-block-group.nvec-container.section-comunidad-cta__grid > .wp-block-group__inner-container {
		grid-template-columns: 1fr 1fr;
	}

	.wp-block-group.grid-comunidad > .wp-block-group__inner-container {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Markup aplanado (migración pendiente): fondos de sección */
.nvec-front-content > .wp-block-group:has(#blog-title):not(.nvec-section),
.nvec-front-content > .wp-block-button:has(+ .grid-blog),
.nvec-front-content > .grid-blog {
	padding-inline: max(var(--nvec-gutter), calc((100% - var(--nvec-container)) / 2));
}

.nvec-front-content > .wp-block-group:has(#blog-title):not(.nvec-section) {
	padding-top: var(--nvec-section-y);
}

.nvec-front-content > .grid-blog {
	padding-bottom: var(--nvec-section-y);
}

.nvec-front-content > .wp-block-group:has(#proyectos-title):not(.nvec-section),
.nvec-front-content > .wp-block-group:has(#proyectos-title):not(.nvec-section) ~ .wp-block-button,
.nvec-front-content > .wp-block-group:has(#proyectos-title):not(.nvec-section) ~ .grid-proyectos,
.nvec-front-content > .wp-block-group:has(#proyectos-title):not(.nvec-section) ~ .section-proyectos-cta__content,
.nvec-front-content > .wp-block-group:has(#proyectos-title):not(.nvec-section) ~ .section-proyectos-cta__content ~ .wp-block-buttons {
	background: var(--nvec-beige-medio);
	padding-inline: max(var(--nvec-gutter), calc((100% - var(--nvec-container)) / 2));
}

.nvec-front-content > .wp-block-group:has(#proyectos-title):not(.nvec-section) {
	padding-top: var(--nvec-section-y);
}

.nvec-front-content > .wp-block-group:has(#proyectos-title):not(.nvec-section) ~ .section-proyectos-cta__content ~ .wp-block-buttons {
	padding-bottom: var(--nvec-section-y);
}

.nvec-front-content > .section-comunidad-cta__content,
.nvec-front-content > .section-comunidad-cta__media,
.nvec-front-content > .section-comunidad__sub,
.nvec-front-content > .wp-block-group.grid-comunidad,
.nvec-front-content .section-comunidad-cards .grid-comunidad {
	background: var(--nvec-fondo-oscuro);
	color: var(--nvec-crema);
	padding-inline: max(var(--nvec-gutter), calc((100% - var(--nvec-container)) / 2));
}

.nvec-front-content > .section-comunidad-cta__content {
	padding-top: var(--nvec-section-y);
}

.nvec-front-content > .wp-block-group.grid-comunidad {
	padding-bottom: var(--nvec-section-y);
}

.nvec-front-content .section-comunidad-cards .grid-comunidad {
	padding-bottom: var(--nvec-section-y);
}

.nvec-front-content > .section-comunidad-cta__content .section-comunidad-cta__title,
.nvec-front-content > .section-comunidad-cta__content .nvec-kicker {
	color: var(--nvec-crema);
}

.nvec-front-content > .section-comunidad-cta__content .section-comunidad-cta__text {
	color: var(--nvec-beige-oscuro);
}

/* ─── Home: Hero ─────────────────────────────────────────────────────────── */

.hero {
	padding-top: var(--nvec-content-offset-top-hero);
	padding-bottom: clamp(1rem, 2vw, 1.75rem);
}

/* Anula padding-block de .nvec-section en el hero (evita 80px de hueco bajo el menú) */
.nvec-front-content > section.hero.nvec-section,
section.hero.nvec-section {
	padding-top: var(--nvec-content-offset-top-hero);
	padding-bottom: clamp(1rem, 2vw, 1.75rem);
}

/* Fallback: markup aplanado sin section.hero */
.nvec-front-content > .wp-block-group.hero__grid,
.nvec-front-content > .hero__grid,
.nvec-front-content > .nvec-container.hero__grid {
	padding-top: var(--nvec-content-offset-top-hero);
	padding-bottom: clamp(1rem, 2vw, 1.75rem);
}

.hero + .nvec-section,
.nvec-front-content > .hero__grid + .nvec-section,
.nvec-front-content > .hero__grid + .wp-block-group.nvec-section {
	padding-top: clamp(1.25rem, 2.5vw, 2rem);
}

.nvec-front-content > .wp-block-group.nvec-section:not(.hero),
.nvec-front-content > section.nvec-section {
	padding-block: var(--nvec-section-y);
}

.hero__grid {
	display: grid;
	gap: 2.5rem;
	align-items: center;
}

.hero__content {
	display: flex;
	flex-direction: column;
}

.hero__lead {
	margin-top: 1.5rem;
	font-style: italic;
}

.nvec-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 2.5rem;
}

.nvec-section-head__text {
	max-width: 40rem;
}

.nvec-section-head__text .nvec-kicker {
	margin-bottom: 0.5rem;
}

.nvec-section-head__lead {
	margin-top: 0.75rem;
	color: var(--nvec-marron-medio);
}

.nvec-section-head__link {
	white-space: nowrap;
	flex-shrink: 0;
}

.hero__actions {
	margin-top: 1.5rem;
}

.hero__media {
	position: relative;
	min-height: 16rem;
	margin-bottom: 2rem;
	background: var(--nvec-beige-oscuro);
}

.hero__media img {
	width: 100%;
	height: 100%;
	min-height: 16rem;
	border-radius: var(--nvec-radius);
	object-fit: cover;
}

.hero__media figure,
.hero__media .wp-block-image,
.hero__media .wp-block-group__inner-container {
	margin: 0;
}

.hero__media:has(img) {
	min-height: 0;
}

.hero__media:has(img) figure,
.hero__media:has(img) .wp-block-image {
	overflow: hidden;
	border-radius: var(--nvec-radius);
}

.hero__media:has(img) img {
	height: auto;
	min-height: 0;
	display: block;
	border-radius: 0;
}

.hero__quote {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	position: absolute;
	left: -1rem;
	bottom: -1rem;
	width: min(28rem, calc(100% - 1rem));
	margin: 0;
	padding: 1rem 1.25rem;
	border: 0;
	border-radius: 2px;
	background: rgba(35, 26, 10, 0.88);
}

.hero__quote .nvec-quote {
	color: var(--nvec-crema);
}

.hero__quote cite {
	color: var(--nvec-beige-oscuro);
	font-weight: 600;
	font-size: var(--nvec-text-body);
	letter-spacing: normal;
	text-transform: none;
}

@media (min-width: 900px) {
	.hero__grid {
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
		align-items: center;
	}

	.hero__media {
		min-height: 35rem;
		margin-bottom: 2.5rem;
	}

	.hero__media img {
		min-height: 35rem;
	}

	.hero__media:has(img) {
		min-height: 0;
	}

	.hero__media:has(img) img {
		min-height: 0;
	}

	.hero__quote {
		left: -1rem;
		bottom: -1rem;
		width: 28rem;
	}
}

/* ─── Home: grids de sección ─────────────────────────────────────────────── */

.grid-blog {
	display: grid;
	gap: 2rem;
}

.section-proyectos {
	background: var(--nvec-beige-medio);
}

.grid-proyectos {
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 600px) {
	.grid-blog {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 900px) {
	.grid-blog {
		grid-template-columns: repeat(3, 1fr);
	}

	.grid-proyectos {
		grid-template-columns: repeat(2, 1fr);
	}
}

.section-proyectos-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem 2rem;
	width: min(100% - var(--nvec-gutter) * 2, var(--nvec-container));
	margin-inline: auto;
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
	margin-bottom: var(--nvec-section-y);
	padding: clamp(1.75rem, 4vw, 2.5rem);
	border-radius: var(--nvec-radius);
	background: var(--nvec-marron-oscuro);
	color: var(--nvec-crema);
}

.section-proyectos-cta__content {
	flex: 1 1 20rem;
	min-width: min(100%, 20rem);
}

/* Gutenberg: el flex vive en inner-container (markup antiguo) */
.wp-block-group.section-proyectos-cta > .wp-block-group__inner-container,
aside.section-proyectos-cta.wp-block-group > .wp-block-group__inner-container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem 2rem;
	width: 100%;
}

.section-proyectos-cta__content.wp-block-group {
	display: block;
	flex: 1 1 20rem;
	min-width: min(100%, 20rem);
}

.section-proyectos-cta__kicker {
	color: var(--nvec-naranja-tierra);
	margin-bottom: 0.5rem;
}

.section-proyectos-cta__title {
	font-family: var(--nvec-font-editorial);
	font-size: clamp(1.375rem, 2vw + 0.5rem, 1.75rem);
	font-weight: 700;
	line-height: 1.2;
	color: var(--nvec-crema);
	margin-bottom: 0.75rem;
}

.section-proyectos-cta__text {
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-beige-medio);
	max-width: 36rem;
}

.section-proyectos-cta__actions {
	flex-shrink: 0;
}

.section-proyectos-cta .btn--outline,
.section-proyectos-cta .wp-block-button__link.btn--outline {
	border-color: rgba(244, 239, 228, 0.55);
	color: var(--nvec-crema);
	background: transparent;
}

.section-proyectos-cta .btn--outline:hover,
.section-proyectos-cta .wp-block-button__link.btn--outline:hover {
	background: var(--nvec-crema);
	border-color: var(--nvec-crema);
	color: var(--nvec-marron-oscuro);
}

.section-proyectos-cta .wp-block-button__link.btn--primary:hover {
	background: transparent;
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-verde-teal);
}

/* ─── Home: Comunidad (PNG Home — fondo oscuro hasta contacto) ───────────── */

.section-comunidad {
	background: var(--nvec-fondo-oscuro);
	color: var(--nvec-crema);
}

.section-comunidad-cta__grid {
	display: grid;
	gap: 2.5rem;
	align-items: start;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.section-comunidad-cta__kicker {
	color: var(--nvec-naranja-tierra);
}

.section-comunidad-cta__title {
	font-family: var(--nvec-font-editorial);
	font-size: var(--nvec-text-h3);
	font-weight: 700;
	line-height: 1.1;
	color: var(--nvec-crema);
	margin-bottom: 1rem;
}

.section-comunidad-cta__title .nvec-accent {
	color: var(--nvec-verde-teal);
}

.section-comunidad-cta__text {
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	font-style: italic;
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-beige-oscuro);
	margin-bottom: 1.5rem;
	max-width: 34rem;
}

.section-comunidad-cta__actions {
	margin-top: 0;
}

.section-comunidad .btn--outline,
.section-comunidad .wp-block-button__link.btn--outline {
	border-color: rgba(244, 239, 228, 0.55);
	color: var(--nvec-crema);
	background: transparent;
}

.section-comunidad .btn--outline:hover,
.section-comunidad .wp-block-button__link.btn--outline:hover {
	background: var(--nvec-crema);
	border-color: var(--nvec-crema);
	color: var(--nvec-marron-oscuro);
}

.section-comunidad .wp-block-button__link.btn--primary:hover {
	background: transparent;
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-verde-teal);
}

.section-comunidad-cta__media {
	border-radius: 0.5rem;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: rgba(244, 239, 228, 0.08);
}

.section-comunidad-cta__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 42%;
	border-radius: 0.5rem;
}

@media (min-width: 900px) {
	.wp-block-group.section-comunidad-cta__grid > .wp-block-group__inner-container,
	.wp-block-group.nvec-container.section-comunidad-cta__grid > .wp-block-group__inner-container,
	.section-comunidad-cta__grid {
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
	}

	.section-comunidad-cta__media {
		aspect-ratio: 5 / 4;
		margin-top: 2.75rem;
	}

	.section-comunidad-cta__media img {
		object-position: center 38%;
	}
}

.section-comunidad-cards {
	padding-top: clamp(1.5rem, 3vw, 2.5rem);
	border-top: 1px solid rgba(244, 239, 228, 0.08);
}

.section-comunidad__sub {
	font-family: var(--nvec-font-editorial);
	font-size: clamp(1.375rem, 2.25vw, 1.625rem);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.01em;
	text-align: center;
	color: var(--nvec-crema);
	margin: 0 auto clamp(1.75rem, 3vw, 2.25rem);
	max-width: 28rem;
}

.grid-comunidad {
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 900px) {
	.grid-comunidad {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.card-comunidad {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--nvec-crema);
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	overflow: hidden;
	transition: border-color var(--nvec-ease);
	position: relative;
}

.card-comunidad > .card-comunidad__link {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
	color: inherit;
	text-decoration: none;
}

.card-comunidad:has(.card-comunidad__link:hover) {
	border-color: rgba(43, 152, 127, 0.35);
}

.card-comunidad:has(.card-comunidad__link:hover) .card-comunidad__title {
	color: var(--nvec-naranja-tierra);
}

.card-comunidad:has(.card-comunidad__link:hover) .card-comunidad__media img {
	transform: scale(1.05);
}

.card-comunidad__cta {
	margin-top: auto;
	align-self: flex-start;
	pointer-events: none;
}

.card-comunidad .btn--text.card-comunidad__cta {
	margin-top: 1rem;
}

.card-comunidad__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--nvec-beige-oscuro);
}

.card-comunidad__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s ease;
}

.card-comunidad__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1.25rem 1.25rem 1.5rem;
}

.card-comunidad__kicker {
	font-size: 0.6875rem;
	margin-bottom: 0.75rem;
	letter-spacing: 0.2em;
}

@media (min-width: 900px) {
	.card-comunidad__kicker {
		font-size: 0.9rem;
	}
}

.card-comunidad__title {
	font-family: var(--nvec-font-editorial);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 0.5rem;
	transition: color var(--nvec-ease);
}

.card-comunidad__text {
	flex: 1;
	margin: 0;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	font-weight: 400;
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-marron-medio);
}

/* ─── Home: Contacto ─────────────────────────────────────────────────────── */

.section-contacto {
	background: #ebe4d4;
	padding-block: clamp(4rem, 8vw, 6rem);
}

.section-contacto__grid {
	display: grid;
	gap: clamp(2.5rem, 5vw, 4rem);
}

.section-contacto__info .nvec-h2 {
	margin-bottom: 0;
}

.section-contacto__info .nvec-h2 + .section-contacto__lead {
	margin-top: 0.75rem;
}

.section-contacto__lead {
	max-width: 34rem;
	margin-bottom: 2rem;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	font-style: italic;
	font-weight: 400;
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-marron-medio);
}

.section-contacto__extra {
	max-width: 34rem;
	margin: 0 0 1rem;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-marron-medio);
}

.section-contacto__extra a {
	color: var(--nvec-verde-teal);
}

.section-contacto__social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.section-contacto__details {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.section-contacto__detail {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	color: #4a3b27;
}

.section-contacto__detail a {
	color: inherit;
	text-decoration: none;
}

.section-contacto__detail a:hover {
	color: var(--nvec-naranja-tierra);
	text-decoration: none;
}

.section-contacto__icon {
	display: inline-flex;
	flex-shrink: 0;
	color: var(--nvec-verde-teal);
}

.section-contacto__form {
	display: flex;
	flex-direction: column;
	padding: clamp(1.5rem, 3vw, 2rem);
	border: 1px solid rgba(35, 26, 10, 0.15);
	border-radius: 2px;
	background: #f4efe4;
}

.section-contacto__form .form-field:has(+ .form-legal-layer) {
	margin-bottom: 0.75rem;
}

.section-contacto__form .form-field input,
.section-contacto__form .form-field textarea {
	border: 1px solid rgba(35, 26, 10, 0.15);
	border-radius: 2px;
	background: #ebe4d4;
}

.section-contacto__form .form-field textarea,
.section-contacto__form .wpcf7-textarea,
.section-contacto__form .section-contacto__textarea {
	box-sizing: border-box;
	min-height: 5.5rem;
	height: 5.5rem;
	max-height: 10rem;
	resize: vertical;
}

.section-contacto__form .hidden-fields-container {
	border: 0;
	padding: 0;
	margin: 0;
	background: transparent;
}

.section-contacto__submit,
.section-contacto__form .wpcf7-submit.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: auto;
	padding: 0.875rem 1.5rem;
	border: 2px solid var(--nvec-verde-teal);
	border-radius: var(--nvec-radius);
	background: var(--nvec-verde-teal);
	color: var(--nvec-crema);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	line-height: 1.4;
	cursor: pointer;
	transition: background-color var(--nvec-ease), border-color var(--nvec-ease), color var(--nvec-ease);
}

.section-contacto__submit:hover,
.section-contacto__form .wpcf7-submit.btn:hover {
	background: transparent;
	color: var(--nvec-verde-teal);
}

.section-contacto__form .wpcf7-submit.btn:hover .btn__icon {
	transform: translateX(3px);
}

.section-contacto__submit {
	align-self: flex-start;
	margin-top: 0.25rem;
}

.section-contacto__submit:disabled,
.section-contacto__form .wpcf7-submit:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

/* Contact Form 7 */
.wpcf7:has(form.section-contacto__form) {
	display: block;
}

.wpcf7 form.section-contacto__form {
	margin: 0;
}

/* CF7: lista de errores solo para lectores de pantalla (el CSS del plugin está desactivado). */
.wpcf7:has(form.section-contacto__form) .screen-reader-response {
	position: absolute;
	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;
}

.section-contacto__form .wpcf7-form-control-wrap {
	display: block;
}

.section-contacto__form .wpcf7-form-control {
	width: 100%;
}

.section-contacto__form .wpcf7-text,
.section-contacto__form .wpcf7-textarea {
	padding: 0.75rem 1rem;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-marron-oscuro);
}

.section-contacto__form .wpcf7-acceptance,
.section-contacto__form .wpcf7-checkbox {
	display: block;
	margin-bottom: 0.75rem;
}

.section-contacto__form .wpcf7-acceptance .wpcf7-list-item-label::after {
	content: " *";
	color: var(--nvec-naranja-tierra);
}

.section-contacto__form .wpcf7-list-item {
	margin: 0;
}

.section-contacto__form .wpcf7-list-item label {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	line-height: 1.5;
	color: var(--nvec-marron-medio);
}

.section-contacto__form .wpcf7-list-item input[type="checkbox"] {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin-top: 0.125rem;
	accent-color: var(--nvec-verde-teal);
}

.section-contacto__form :is(.form-legal-layer__more a, .form-check a, .form-legal a, .wpcf7-list-item-label a) {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-decoration-color: var(--nvec-verde-teal);
	text-underline-offset: 0.18em;
}

.section-contacto__form :is(.form-legal-layer__more a, .form-check a, .form-legal a, .wpcf7-list-item-label a):hover {
	color: var(--nvec-naranja-tierra);
	text-decoration: none;
}

/* CF7 — campos con error */
.section-contacto__form .wpcf7-not-valid {
	border-color: var(--nvec-naranja-tierra) !important;
	background: rgba(196, 92, 38, 0.04);
}

.section-contacto__form .form-field:has(.wpcf7-not-valid) label {
	color: var(--nvec-naranja-tierra);
}

.section-contacto__form .wpcf7-acceptance:has(.wpcf7-not-valid),
.section-contacto__form .wpcf7-checkbox:has(.wpcf7-not-valid) {
	padding: 0.75rem 0.875rem;
	border: 1px solid rgba(196, 92, 38, 0.24);
	border-radius: var(--nvec-radius);
	background: rgba(196, 92, 38, 0.05);
}

/* CF7 — aviso inline bajo cada campo */
.section-contacto__form .wpcf7-not-valid-tip {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin-top: 0.5rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid rgba(196, 92, 38, 0.22);
	border-radius: var(--nvec-radius);
	background: rgba(196, 92, 38, 0.07);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 500;
	line-height: 1.45;
	color: var(--nvec-marron-oscuro);
}

.section-contacto__form .wpcf7-not-valid-tip::before {
	content: "";
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin-top: 0.1rem;
	background-color: var(--nvec-naranja-tierra);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' x2='12' y1='8' y2='12'/%3E%3Cline x1='12' x2='12.01' y1='16' y2='16'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' x2='12' y1='8' y2='12'/%3E%3Cline x1='12' x2='12.01' y1='16' y2='16'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

/* CF7 — resumen tras envío (éxito / error servidor) */
.section-contacto__form .wpcf7-response-output {
	display: none;
	align-items: flex-start;
	gap: 0.75rem;
	margin: 0;
	padding: 0.875rem 1rem;
	border: 1px solid transparent;
	border-radius: var(--nvec-radius);
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-ui);
	font-weight: 500;
	line-height: 1.55;
	color: var(--nvec-marron-oscuro);
}

.wpcf7 form.section-contacto__form.sent .wpcf7-response-output,
.wpcf7 form.section-contacto__form.failed .wpcf7-response-output,
.wpcf7 form.section-contacto__form.spam .wpcf7-response-output {
	display: flex;
}

/* Arriba del formulario (posición por defecto CF7) */
.wpcf7 form.section-contacto__form > .wpcf7-response-output:first-child {
	margin-bottom: 1.25rem;
}

/* Debajo del botón enviar */
.wpcf7 form.section-contacto__form.sent .wpcf7-response-output:not(:first-child),
.wpcf7 form.section-contacto__form.failed .wpcf7-response-output:not(:first-child),
.wpcf7 form.section-contacto__form.spam .wpcf7-response-output:not(:first-child) {
	margin-top: 1.25rem;
}

/* Errores de campo: solo tips inline; no duplicar con el resumen general. */
.wpcf7 form.section-contacto__form.invalid .wpcf7-response-output,
.wpcf7 form.section-contacto__form.unaccepted .wpcf7-response-output {
	display: none;
}

.wpcf7 form.section-contacto__form > p:empty {
	display: none;
	margin: 0;
	padding: 0;
}

.wpcf7 form.section-contacto__form.sent .wpcf7-response-output {
	border-color: rgba(43, 152, 127, 0.28);
	background: rgba(43, 152, 127, 0.1);
}

.wpcf7 form.section-contacto__form.sent .wpcf7-response-output::before {
	content: "";
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.1rem;
	background-color: var(--nvec-verde-teal);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

.wpcf7 form.section-contacto__form.failed .wpcf7-response-output,
.wpcf7 form.section-contacto__form.spam .wpcf7-response-output {
	border-color: rgba(140, 26, 26, 0.22);
	background: rgba(140, 26, 26, 0.06);
}

.wpcf7 form.section-contacto__form.failed .wpcf7-response-output::before,
.wpcf7 form.section-contacto__form.spam .wpcf7-response-output::before {
	content: "";
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.1rem;
	background-color: var(--nvec-rojo-sangre);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' x2='9' y1='9' y2='15'/%3E%3Cline x1='9' x2='15' y1='9' y2='15'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' x2='9' y1='9' y2='15'/%3E%3Cline x1='9' x2='15' y1='9' y2='15'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

.section-contacto__form .wpcf7-spinner {
	margin-left: 0.75rem;
}

.section-contacto__form p:has(.section-contacto__submit) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0.25rem 0 0;
}

.wpcf7 form.section-contacto__form.sent p:has(.section-contacto__submit) + .wpcf7-response-output,
.wpcf7 form.section-contacto__form.failed p:has(.section-contacto__submit) + .wpcf7-response-output,
.wpcf7 form.section-contacto__form.spam p:has(.section-contacto__submit) + .wpcf7-response-output {
	margin-top: 1.25rem;
}

@media (min-width: 900px) {
	.section-contacto__grid {
		grid-template-columns: 1fr 1fr;
		gap: clamp(3rem, 6vw, 5rem);
		align-items: start;
	}
}

/* §05 · Nosotros ══════════════════════════════════════════════════ */

/* ─── Nosotros: cabecera (mismo orden que el resto de páginas: kicker → título → entradilla) ── */

/* ─── Nosotros: historia (foto + texto) ──────────────────────────────────── */

.section-nosotros-historia {
	background: var(--nvec-beige-medio);
	padding-bottom: clamp(3rem, 6vw, 5rem);
}

.section-nosotros-historia__grid,
.wp-block-group.section-nosotros-historia__grid > .wp-block-group__inner-container,
.wp-block-group.nvec-container.section-nosotros-historia__grid > .wp-block-group__inner-container {
	display: grid;
	gap: clamp(2.5rem, 5vw, 4rem);
	padding-top: clamp(2rem, 4vw, 3rem);
}

.section-nosotros-historia__media {
	position: relative;
}

.section-nosotros-historia__media-inner {
	border-radius: var(--nvec-radius);
	overflow: hidden;
	aspect-ratio: 4 / 5;
	background: var(--nvec-beige-oscuro);
}

.section-nosotros-historia__media-inner img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.section-nosotros-historia__quote {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	position: absolute;
	right: -1rem;
	bottom: -1rem;
	width: min(28rem, calc(100% - 1rem));
	margin: 0;
	padding: 1rem 1.25rem;
	border: 0;
	border-radius: 2px;
	background: rgba(35, 26, 10, 0.88);
}

.section-nosotros-historia__quote .nvec-quote {
	color: var(--nvec-crema);
}

.section-nosotros-historia__quote cite {
	color: var(--nvec-beige-oscuro);
	font-weight: 600;
	font-size: var(--nvec-text-body);
	letter-spacing: normal;
	text-transform: none;
}

@media (min-width: 900px) {
	.section-nosotros-historia__quote {
		right: -1rem;
		bottom: -1rem;
		width: 28rem;
	}
}

.nosotros-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin: 2rem 0 0;
	padding: 0;
}

.nosotros-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 5.5rem;
	padding: 1.25rem 0.75rem;
	text-align: center;
	background: var(--nvec-crema);
	border-radius: var(--nvec-radius);
}

.nosotros-stat__value {
	margin: 0;
	font-family: var(--nvec-font-ui);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
	color: var(--nvec-verde-teal);
}

.nosotros-stat__label {
	margin: 0.375rem 0 0;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.nosotros-prose {
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
	padding-top: 0.5rem;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	line-height: var(--nvec-text-body-line);
	color: #4a3b27;
}

.nosotros-prose strong {
	font-weight: 700;
	color: var(--nvec-casi-negro);
}

.nosotros-prose em {
	font-style: italic;
}

.nvec-pullquote {
	margin-top: 0.5rem;
	padding: 1.5rem;
	border-left: 3px solid var(--nvec-verde-teal);
	border-radius: 0 var(--nvec-radius) var(--nvec-radius) 0;
	background: var(--nvec-crema);
}

.nvec-pullquote .nvec-quote {
	color: var(--nvec-marron-oscuro);
}

.nvec-pullquote cite {
	color: var(--nvec-verde-teal);
}

@media (min-width: 900px) {
	.section-nosotros-historia__grid,
	.wp-block-group.section-nosotros-historia__grid > .wp-block-group__inner-container,
	.wp-block-group.nvec-container.section-nosotros-historia__grid > .wp-block-group__inner-container {
		grid-template-columns: 1fr 1fr;
		gap: clamp(3rem, 6vw, 5rem);
		align-items: start;
	}

	.nosotros-prose {
		padding-top: 1rem;
	}
}

/* ─── Nosotros: la finca ─────────────────────────────────────────────────── */

.section-nosotros-lugar__head {
	max-width: 36rem;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

.section-nosotros-lugar__head .nvec-section__lead {
	margin-top: 1rem;
}

:is(.section-nosotros-lugar__more, .nvec-interest-links) {
	margin-top: clamp(2rem, 4vw, 3rem);
	padding-top: clamp(1.5rem, 3vw, 2rem);
	border-top: var(--nvec-border);
}

:is(.section-nosotros-lugar__more-label, .nvec-interest-links__label) {
	margin-bottom: 0.75rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nvec-naranja-tierra);
}

:is(.section-nosotros-lugar__links, .nvec-interest-links__list) {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

:is(.section-nosotros-lugar__link, .nvec-interest-links__link) {
	display: inline;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 500;
	line-height: 1.35;
	color: var(--nvec-verde-teal);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

@media (hover: hover) {
	:is(.section-nosotros-lugar__link, .nvec-interest-links__link):hover {
		color: var(--nvec-naranja-tierra);
	}
}

:is(.section-nosotros-lugar__link-icon, .nvec-interest-links__link-icon) {
	display: none;
}

/* Enlaces externos inline en prosa editorial (icono después del texto vía CSS) */
.nvec-prose a.nvec-link--external,
.entry-content a.nvec-link--external,
.form-legal-layer__list a.nvec-link--external,
.form-legal-layer__more a.nvec-link--external,
.form-legal a.nvec-link--external,
.nosotros-prose a.nvec-link--external,
.section-nosotros-lugar__link.nvec-link--external,
.proyecto-panel a.nvec-link--external {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

.nvec-link--external::after {
	content: "";
	display: inline-block;
	width: 0.85em;
	height: 0.85em;
	margin-left: 0.2em;
	vertical-align: -0.1em;
	background-color: currentColor;
	opacity: 0.8;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}

@media (hover: hover) {
	.nvec-prose a.nvec-link--external:hover,
	.entry-content a.nvec-link--external:hover,
	.form-legal-layer__list a.nvec-link--external:hover,
	.form-legal-layer__more a.nvec-link--external:hover,
	.form-legal a.nvec-link--external:hover,
	.nosotros-prose a.nvec-link--external:hover,
	.section-nosotros-lugar__link.nvec-link--external:hover,
	.proyecto-panel a.nvec-link--external:hover {
		color: var(--nvec-naranja-tierra);
	}
}

.wp-block-group.grid-nosotros-lugar > .wp-block-group__inner-container {
	display: grid;
	gap: 2rem;
}

.card-nosotros-lugar {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--nvec-beige-medio);
	border-radius: var(--nvec-radius);
}

.card-nosotros-lugar__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--nvec-beige-oscuro);
}

.card-nosotros-lugar__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.card-nosotros-lugar__body {
	padding: 1.75rem;
}

.card-nosotros-lugar__title {
	font-family: var(--nvec-font-editorial);
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 0.75rem;
}

.card-nosotros-lugar__text {
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-marron-medio);
}

@media (min-width: 768px) {
	.wp-block-group.grid-nosotros-lugar > .wp-block-group__inner-container {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Nosotros en bloques Gutenberg: misma maquetación que la plantilla HTML */
.nosotros-page .page-header.wp-block-group,
.nosotros-page section.page-header {
	max-width: none;
}

.nosotros-page .page-header.wp-block-group > .wp-block-group__inner-container,
.nosotros-page section.page-header > .wp-block-group__inner-container {
	max-width: none;
}

.nosotros-page .page-header .wp-block-group.nvec-container,
.nosotros-page section.page-header .nvec-container {
	width: min(100% - var(--nvec-gutter) * 2, var(--nvec-container));
	margin-inline: auto;
}

.nosotros-page section.page-header.nvec-section,
.nosotros-page .wp-block-group.page-header.nvec-section {
	padding-block-start: var(--nvec-content-offset-top);
	padding-block-end: clamp(2rem, 4vw, 3rem);
}

.nosotros-page .section-nosotros-historia.wp-block-group,
.nosotros-page section.section-nosotros-historia {
	max-width: none;
}

.nosotros-page .section-nosotros-historia > .wp-block-group__inner-container {
	max-width: none;
}

.nosotros-page .wp-block-group.nvec-container.section-nosotros-historia__grid {
	display: block;
	width: min(100% - var(--nvec-gutter) * 2, var(--nvec-container));
	margin-inline: auto;
}

.nosotros-page .wp-block-group.grid-nosotros-lugar {
	display: block;
}

.nosotros-page .wp-block-group.nosotros-prose > .wp-block-group__inner-container {
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}

.nosotros-page .section-nosotros-lugar .wp-block-group.nvec-container {
	width: min(100% - var(--nvec-gutter) * 2, var(--nvec-container));
	margin-inline: auto;
}

/* §06 · Blog archivo ═════════════════════════════════════════════ */

/* ─── Blog: filtros por categoría ───────────────────────────────────────── */

.blog-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: clamp(2rem, 4vw, 2.5rem);
	margin-bottom: 1.25rem;
}

#contenido > .page-header.nvec-section.page-header--blog,
.page-header.nvec-section.page-header--blog {
	padding-block-end: 0;
}

.blog-filter {
	display: inline-block;
	padding: 0.5rem 1rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-tag);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.3;
	color: var(--nvec-marron-medio);
	background: var(--nvec-beige-medio);
	border: 1.5px solid rgba(35, 26, 10, 0.15);
	border-radius: var(--nvec-radius);
	cursor: pointer;
	text-decoration: none;
	transition: background-color var(--nvec-ease), border-color var(--nvec-ease), color var(--nvec-ease);
}

.blog-filter:hover,
.blog-filter:focus,
.blog-filter:active,
.blog-filter[aria-current="page"],
.blog-filter[aria-pressed="true"] {
	text-decoration: none;
}

.blog-filter:not([aria-current="page"]):not([aria-pressed="true"]):hover,
.blog-filter:not([aria-current="page"]):not([aria-pressed="true"]):focus {
	background: rgba(43, 152, 127, 0.12);
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-verde-teal);
}

.blog-filter[aria-current="page"],
.blog-filter[aria-pressed="true"] {
	background: var(--nvec-verde-teal);
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-crema);
}

/* ─── Blog: listado ─────────────────────────────────────────────────────── */

.section-blog-archive {
	padding-bottom: clamp(3rem, 6vw, 5rem);
}

.grid-blog {
	display: grid;
	gap: clamp(2rem, 4vw, 2.5rem);
}

.card-blog--archive .card-blog__meta {
	margin-bottom: 0.5rem;
}

.card-blog--archive .card-blog__title a {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
}

.card-blog--archive .card-blog__title-tag {
	order: -1;
}

.card-blog--archive .card-blog__title {
	margin-bottom: 0.625rem;
}

.card-blog--archive .card-blog__title a {
	color: inherit;
	text-decoration: none;
	transition: color var(--nvec-ease);
}

.card-blog--archive .card-blog__title a:hover {
	color: var(--nvec-naranja-tierra);
}

.card-blog--archive .card-blog__media {
	display: block;
	color: inherit;
	text-decoration: none;
}

.card-blog--archive .card-blog__excerpt {
	flex: 1;
	margin-bottom: 1rem;
}

.card-blog__byline {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.625rem;
	margin-top: auto;
}

.card-blog__date-row {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	margin: 0;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	color: var(--nvec-marron-medio);
}

.card-blog__date-row svg {
	flex-shrink: 0;
	color: var(--nvec-marron-medio);
}

.card-blog--archive .btn--text {
	display: none;
}

.card-blog__media img {
	transition: transform 0.4s ease;
}

.blog-empty {
	display: none;
	padding: 4rem 0;
	text-align: center;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	font-style: italic;
	color: var(--nvec-marron-medio);
}

.blog-empty.is-visible {
	display: block;
}

@media (min-width: 600px) {
	.grid-blog {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 900px) {
	.grid-blog {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* §07 · Blog entrada ══════════════════════════════════════════════ */

/* ─── Blog: entrada individual ───────────────────────────────────────────── */

/* WordPress single.php — ancho de lectura acotado (no afecta header ni otras vistas) */
.single-post #contenido .nvec-container {
	width: min(100% - var(--nvec-gutter) * 2, var(--nvec-container-post));
}

/* Imagen destacada — mismo ratio 4:3 que las cards del archivo */
.blog-post__figure {
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
	overflow: hidden;
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-oscuro);
}

.blog-post__figure img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	object-position: center;
}

.blog-post {
	padding-top: var(--nvec-content-offset-top);
	padding-bottom: clamp(3rem, 6vw, 4rem);
}

.blog-post__inner {
	max-width: var(--nvec-container-post);
	margin-inline: auto;
}

.blog-post__back {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-marron-medio);
	text-decoration: none;
}

.blog-post__back:hover {
	color: var(--nvec-naranja-tierra);
}

.blog-post__back svg {
	flex-shrink: 0;
	color: var(--nvec-verde-teal);
}

.blog-post__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
	margin-bottom: 1.25rem;
}

.blog-post__meta-date {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	color: var(--nvec-marron-medio);
}

.blog-post__meta-date svg {
	flex-shrink: 0;
}

.blog-post__title {
	font-family: var(--nvec-font-editorial);
	font-size: clamp(2rem, 3vw + 1rem, 3.5rem);
	font-weight: 700;
	line-height: 1.1;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 1.5rem;
}

.blog-post__lead {
	margin-bottom: 2.5rem;
	padding-bottom: 2.5rem;
	border-bottom: var(--nvec-border);
	font-family: var(--nvec-font-body);
	font-size: 1.125rem;
	font-style: italic;
	line-height: 1.6;
	color: var(--nvec-marron-medio);
}

.blog-post__content {
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	line-height: var(--nvec-text-body-line);
	color: #4a3b27;
}

/* Prosa del artículo — equivalente a .entry-content en WordPress */
.nvec-prose {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.nvec-prose > * {
	margin: 0;
}

.nvec-prose h2,
.nvec-prose h3,
.nvec-prose h4 {
	font-family: var(--nvec-font-editorial);
	font-weight: 700;
	line-height: 1.2;
	color: var(--nvec-marron-oscuro);
}

.nvec-prose h2 {
	font-size: clamp(1.5rem, 2vw + 0.75rem, 2rem);
	margin-top: 0.5rem;
}

.nvec-prose h3 {
	font-size: clamp(1.25rem, 1.5vw + 0.5rem, 1.5rem);
}

.nvec-prose h4 {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.nvec-prose strong {
	font-weight: 700;
	color: var(--nvec-casi-negro);
}

.nvec-prose em {
	font-style: italic;
}

.nvec-prose a:not(.btn):not(.tag):not(.btn--text) {
	color: var(--nvec-verde-teal);
	font-weight: 600;
}

.nvec-prose ul,
.nvec-prose ol {
	padding-left: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.nvec-prose ul {
	list-style-type: disc;
}

.nvec-prose ol {
	list-style-type: decimal;
}

.nvec-prose li::marker {
	color: var(--nvec-verde-teal);
}

.nvec-prose li ul,
.nvec-prose li ol {
	margin-top: 0.5rem;
}

.nvec-prose-quote {
	padding: 1.25rem 1.5rem;
	border-left: 3px solid var(--nvec-beige-oscuro);
	border-radius: 0 var(--nvec-radius) var(--nvec-radius) 0;
	background: var(--nvec-beige-medio);
	font-style: italic;
	color: var(--nvec-marron-oscuro);
}

.nvec-prose .nvec-pullquote {
	margin-block: 0.25rem;
	padding: 1.5rem;
	border-left: 3px solid var(--nvec-verde-teal);
	border-radius: 0 var(--nvec-radius) var(--nvec-radius) 0;
	background: var(--nvec-crema);
}

.nvec-prose .nvec-pullquote .nvec-quote {
	color: var(--nvec-marron-oscuro);
}

.nvec-prose .nvec-pullquote cite {
	color: var(--nvec-verde-teal);
}

.nvec-prose-figure {
	overflow: hidden;
	border-radius: var(--nvec-radius);
	background: var(--nvec-crema);
}

.nvec-prose-figure img {
	display: block;
	width: 100%;
	height: auto;
	background: var(--nvec-beige-oscuro);
}

.nvec-prose-figure .nvec-caption,
.proyecto-gallery__item .nvec-caption {
	position: relative;
	max-width: 75%;
	margin-left: auto;
	padding: 1rem 1.75rem 1rem 1.125rem;
	background: var(--nvec-crema);
	color: var(--nvec-marron-oscuro);
	border-top: var(--nvec-border);
	text-align: right;
}

.nvec-prose-figure .nvec-caption::before,
.proyecto-gallery__item .nvec-caption::before {
	content: "";
	position: absolute;
	right: 0.875rem;
	top: 1rem;
	bottom: 1rem;
	width: 3px;
	background: var(--nvec-verde-teal);
	border-radius: 1px;
}

.nvec-prose-sep {
	border: 0;
	border-top: var(--nvec-border);
}

/* ── Tablas: prosa, entry-content, Gutenberg (estilo Nicepage limpio) ── */

.nvec-prose-table-wrap,
.wp-block-table,
.nvec-prose :is(.wp-block-html, .wp-block-table):has(table),
.nvec-prose > table,
.entry-content > table,
.entry-content :is(.wp-block-html, .wp-block-table):has(table) {
	width: 100%;
	max-width: 100%;
	margin: 0.25rem 0 1.5rem;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-color: var(--nvec-beige-oscuro) transparent;
}

.nvec-prose table,
.entry-content table,
.nvec-prose-table,
.wp-block-table table {
	width: 100%;
	min-width: 16rem;
	border-collapse: collapse;
	border: var(--nvec-border);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	line-height: 1.5;
	color: #4a3b27;
	background: var(--nvec-crema);
}

.nvec-prose table caption,
.entry-content table caption,
.nvec-prose-table caption,
.wp-block-table table caption {
	caption-side: bottom;
	padding: 0.75rem 0 0;
	text-align: left;
	font-size: var(--nvec-text-caption);
	color: var(--nvec-marron-medio);
}

.nvec-prose table th,
.nvec-prose table td,
.entry-content table th,
.entry-content table td,
.nvec-prose-table th,
.nvec-prose-table td,
.wp-block-table th,
.wp-block-table td {
	padding: 0.75rem 1rem;
	border-bottom: var(--nvec-border);
	text-align: left;
	vertical-align: top;
}

.nvec-prose table thead th,
.entry-content table thead th,
.nvec-prose-table thead th,
.wp-block-table thead th {
	font-weight: 600;
	font-size: 0.8125rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nvec-marron-oscuro);
	background: var(--nvec-beige-medio);
	border-bottom: 2px solid var(--nvec-verde-teal);
}

.nvec-prose table tbody tr:nth-child(even),
.entry-content table tbody tr:nth-child(even),
.nvec-prose-table tbody tr:nth-child(even),
.wp-block-table tbody tr:nth-child(even) {
	background: rgba(235, 228, 212, 0.45);
}

.nvec-prose table tbody td:first-child,
.entry-content table tbody td:first-child,
.nvec-prose-table tbody td:first-child,
.wp-block-table tbody td:first-child {
	font-weight: 500;
	color: var(--nvec-casi-negro);
}

@media (hover: hover) {
	.nvec-prose table tbody tr:hover,
	.entry-content table tbody tr:hover,
	.nvec-prose-table tbody tr:hover,
	.wp-block-table tbody tr:hover {
		background: rgba(43, 152, 127, 0.08);
	}
}

@media (max-width: 639px) {
	.nvec-prose table,
	.entry-content table,
	.nvec-prose-table,
	.wp-block-table table {
		min-width: 22rem;
	}

	.nvec-prose-table-wrap,
	.wp-block-table,
	.nvec-prose :is(.wp-block-html, .wp-block-table):has(table),
	.nvec-prose > table,
	.entry-content > table,
	.entry-content :is(.wp-block-html, .wp-block-table):has(table) {
		margin-inline: calc(-1 * var(--nvec-gutter) * 0.35);
		padding-inline: calc(var(--nvec-gutter) * 0.35);
	}
}

.nvec-prose code {
	padding: 0.125em 0.35em;
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-medio);
	font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
	font-size: 0.9em;
	color: var(--nvec-marron-oscuro);
}

.nvec-prose-code {
	overflow-x: auto;
	padding: 1rem 1.25rem;
	border-radius: var(--nvec-radius);
	background: var(--nvec-casi-negro);
	color: var(--nvec-crema);
	font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
	font-size: 0.8125rem;
	line-height: 1.6;
}

.nvec-prose-code code {
	padding: 0;
	background: none;
	color: inherit;
	font-size: inherit;
}

.nvec-prose-dl {
	display: grid;
	gap: 0.75rem;
}

.nvec-prose-dl dt {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-marron-oscuro);
}

.nvec-prose-dl dd {
	margin: 0;
	padding-left: 1rem;
	border-left: 2px solid var(--nvec-beige-oscuro);
}

.nvec-callout {
	padding: 1rem 1.25rem;
	border-radius: var(--nvec-radius);
	border: var(--nvec-border);
	background: var(--nvec-crema);
}

.nvec-callout--tip {
	border-left: 3px solid var(--nvec-verde-teal);
}

.nvec-callout--warning {
	border-left: 3px solid var(--nvec-naranja-tierra);
	background: rgba(195, 75, 0, 0.06);
}

.nvec-callout__title {
	margin: 0 0 0.375rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.nvec-callout p:last-child {
	margin: 0;
}

.nvec-alert {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.875rem 1rem;
	border-radius: var(--nvec-radius);
	border: 1px solid transparent;
}

.nvec-alert--info {
	background: rgba(43, 152, 127, 0.1);
	border-color: rgba(43, 152, 127, 0.28);
	color: var(--nvec-marron-oscuro);
}

.nvec-alert--success {
	background: rgba(43, 152, 127, 0.1);
	border-color: rgba(43, 152, 127, 0.28);
	color: var(--nvec-marron-oscuro);
}

.nvec-alert--error {
	background: rgba(140, 26, 26, 0.06);
	border-color: rgba(140, 26, 26, 0.22);
	color: var(--nvec-marron-oscuro);
}

.nvec-alert--warning {
	background: rgba(196, 92, 38, 0.08);
	border-color: rgba(196, 92, 38, 0.24);
	color: var(--nvec-marron-oscuro);
}

.nvec-alert__icon {
	flex-shrink: 0;
	margin-top: 0.1rem;
	color: var(--nvec-verde-teal);
}

.nvec-alert__body {
	min-width: 0;
}

.nvec-alert__title {
	margin: 0 0 0.25rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-marron-oscuro);
}

.nvec-alert__text {
	margin: 0;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-ui);
	line-height: 1.55;
	color: var(--nvec-marron-medio);
}

.nvec-prose-cta {
	margin-top: 0.25rem;
}

.blog-post__signoff {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: var(--nvec-border);
}

.blog-post__author {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.blog-post__author-bio {
	padding-left: calc(3rem + 0.5rem);
}

.blog-post__author-bio-text {
	margin: 0;
	font-family: var(--nvec-font-body);
	font-size: 0.875rem;
	line-height: 1.6;
	color: #4a3b27;
}

.blog-post__author-bio-link {
	margin-top: 0.75rem;
	padding: 0;
}

@media (max-width: 479px) {
	.blog-post__author-bio {
		padding-left: 0;
	}
}

.nvec-author--post .nvec-author__avatar {
	width: 3rem;
	height: 3rem;
}

.nvec-author--post .nvec-author__text {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
}

.nvec-author__caption {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 400;
	line-height: 1.4;
	color: var(--nvec-marron-medio);
}

/* Perfil de autor (archivo /author/slug/) */
.nvec-author-profile {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.nvec-author-profile__avatar {
	flex-shrink: 0;
	width: 5rem;
	height: 5rem;
	border-radius: 50%;
	object-fit: cover;
}

.nvec-author-profile__body {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.nvec-author-profile__title {
	margin: 0;
}

.nvec-author-profile__bio {
	margin: 0;
}

.nvec-author-social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.blog-post__author-social {
	margin-top: 0.75rem;
}

@media (min-width: 640px) {
	.nvec-author-profile {
		flex-direction: row;
		align-items: flex-start;
		gap: 1.5rem;
	}
}

.blog-post__tags {
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: var(--nvec-border);
}

.blog-post__tags-label {
	margin: 0 0 0.75rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.blog-post__tags-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.blog-post__tags-list a.tag--related,
.blog-post__tags-list a.tag--related:hover,
.blog-post__tags-list a.tag--related:focus {
	text-decoration: none;
}

/* Paginación del archivo del blog */
.section-blog-archive .pagination {
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
	padding-top: clamp(2rem, 4vw, 2.5rem);
	border-top: var(--nvec-border);
}

.section-blog-archive .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem 0.75rem;
}

.section-blog-archive .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding: 0.375rem 0.75rem;
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-marron-oscuro);
	text-decoration: none;
	transition: background-color var(--nvec-ease), border-color var(--nvec-ease), color var(--nvec-ease);
}

.section-blog-archive a.page-numbers:hover {
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-verde-teal);
}

.section-blog-archive .page-numbers.current {
	background: var(--nvec-verde-teal);
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-crema);
}

.section-blog-archive .page-numbers.dots {
	border-color: transparent;
	min-width: auto;
	padding-inline: 0.25rem;
}

/* Navegación anterior / siguiente */
.blog-post-nav {
	background: var(--nvec-beige-medio);
	padding: clamp(2rem, 4vw, 3rem) 0;
}

.blog-post-nav__grid {
	display: grid;
	gap: 1.5rem;
}

/* Solo «Siguiente» visible → alineado a la derecha (p. ej. entrada más reciente) */
#blog-post-prev[hidden] + #blog-post-next {
	justify-self: end;
}

.blog-post-nav__link {
	display: flex;
	align-items: center;
	gap: 1rem;
	text-decoration: none;
	color: inherit;
}

.blog-post-nav__link--next {
	text-align: right;
	justify-content: flex-end;
}

.blog-post-nav__label {
	margin-bottom: 0.25rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.blog-post-nav__title {
	font-family: var(--nvec-font-editorial);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--nvec-marron-oscuro);
}

.blog-post-nav__link:hover .blog-post-nav__title {
	color: var(--nvec-naranja-tierra);
}

.blog-post-nav__icon {
	flex-shrink: 0;
	color: var(--nvec-verde-teal);
}

@media (min-width: 768px) {
	.blog-post-nav__grid {
		grid-template-columns: 1fr 1fr;
	}

	#blog-post-prev[hidden] + #blog-post-next {
		grid-column: 2;
		justify-self: stretch;
	}
}

/* Estado 404 */
.blog-post-not-found {
	padding: clamp(4rem, 10vw, 8rem) 0;
	text-align: center;
}

.blog-post-not-found__title {
	font-family: var(--nvec-font-editorial);
	font-size: clamp(2rem, 3vw + 1rem, 2.5rem);
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 1.5rem;
}

.blog-post-not-found__back {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-verde-teal);
	text-decoration: none;
}

.blog-post-not-found__back:hover {
	color: var(--nvec-naranja-tierra);
}

/* §08 · Proyectos ════════════════════════════════════════════════ */

#contenido > .page-header.nvec-section.page-header--proyectos,
.page-header.nvec-section.page-header--proyectos {
	padding-block-end: 0;
}

#contenido > .page-header.nvec-section.page-header--contactanos,
.page-header.nvec-section.page-header--contactanos {
	padding-block-end: 0;
}

.page-header--contactanos + .nvec-section {
	padding-top: 0;
}

.nvec-section--contactanos {
	background: #ebe4d4;
}

#contenido > .nvec-section.nvec-section--contactanos,
.nvec-section.nvec-section--contactanos {
	padding-top: clamp(3rem, 6vw, 5rem);
}

/* Páginas legales (aviso legal, privacidad, cookies, condiciones): columna de
   lectura más estrecha y jerarquía de encabezados numerados. */
#contenido .nvec-container--legal {
	width: min(100% - var(--nvec-gutter) * 2, var(--nvec-container-post));
}

#contenido > .page-header.nvec-section.page-header--legal,
.page-header.nvec-section.page-header--legal {
	padding-block-end: 0;
}

.legal-content h2 {
	padding-top: 1.25rem;
	border-top: var(--nvec-border);
}

.legal-content > h2:first-of-type {
	padding-top: 0;
	border-top: 0;
}

.section-proyectos-listado {
	padding-top: 0;
}

.proyecto-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: clamp(2rem, 4vw, 2.5rem);
	margin-bottom: 1.25rem;
}

.proyecto-filter {
	display: inline-block;
	padding: 0.25rem 0.5rem;
	border: 2px solid transparent;
	border-radius: var(--nvec-radius);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-tag);
	font-weight: 600;
	font-style: normal;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.2727272727;
	color: var(--nvec-verde-teal);
	background: rgba(43, 152, 127, 0.12);
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--nvec-ease), color var(--nvec-ease);
}

.proyecto-filter:hover,
.proyecto-filter:focus,
.proyecto-filter:active,
.proyecto-filter[aria-current="page"],
.proyecto-filter[aria-pressed="true"] {
	text-decoration: none;
}

.proyecto-filter:hover,
.proyecto-filter:focus {
	background: rgba(43, 152, 127, 0.2);
	color: var(--nvec-verde-teal);
}

.proyecto-filter[aria-current="page"],
.proyecto-filter[aria-pressed="true"] {
	background: var(--nvec-verde-teal);
	color: var(--nvec-crema);
}

.section-proyectos-archive {
	padding-bottom: clamp(3rem, 6vw, 5rem);
	background: var(--nvec-beige-medio);
}

.section-proyectos-archive > .nvec-container {
	padding-top: clamp(2rem, 4vw, 3rem);
}

/* Archivo: rejilla de cards verticales (mosaico) */
.grid-proyectos--tile {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

@media (min-width: 640px) {
	.grid-proyectos--tile {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.grid-proyectos--tile {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.card-proyecto--tile {
	position: relative;
	flex-direction: column;
	transition: border-color var(--nvec-ease);
}

.card-proyecto--tile > .card-proyecto__link {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
}

.card-proyecto--tile:has(.card-proyecto__link:hover) {
	border-color: rgba(43, 152, 127, 0.35);
}

.card-proyecto__visual {
	position: relative;
}

.card-proyecto--tile .card-proyecto__media {
	flex: none;
	width: 100%;
	aspect-ratio: 16 / 9;
	min-height: 0;
}

.card-proyecto--tile .card-proyecto__media img {
	transition: transform 0.45s ease;
}

.card-proyecto--tile:has(.card-proyecto__link:hover) .card-proyecto__media img {
	transform: scale(1.05);
}

.card-proyecto--tile .card-proyecto__meta {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	width: 100%;
	margin-bottom: 0.5rem;
	position: relative;
	z-index: 2;
}

.card-proyecto--tile .card-proyecto__status {
	position: static;
	box-shadow: none;
	margin-left: auto;
}

.card-proyecto--tile .card-proyecto__body {
	padding: 1.125rem 1.25rem 1.25rem;
}

.card-proyecto--tile .card-proyecto__title {
	font-size: clamp(1.125rem, 1.5vw, 1.3125rem);
	margin-bottom: 0.5rem;
	color: var(--nvec-marron-oscuro);
}

.card-proyecto--tile:has(.card-proyecto__link:hover) .card-proyecto__title {
	color: var(--nvec-naranja-tierra);
}

.card-proyecto--tile .card-proyecto__text {
	flex: 1;
	margin-bottom: 0.875rem;
	font-size: var(--nvec-text-ui);
	line-height: 1.55;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

.card-proyecto--tile .card-proyecto__cost {
	margin-bottom: 0;
	padding: 0.625rem 0.75rem;
}

.card-proyecto--tile .card-proyecto__cta {
	margin-top: 1rem;
}

.grid-proyectos--archive {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2rem);
}

/* Ficha individual: proyectos relacionados (ancho del contenido, 2 columnas) */
.proyecto-section--related {
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
	padding-top: clamp(2rem, 4vw, 2.5rem);
	border-top: var(--nvec-border);
}

.proyecto-section--related .proyecto-section__title {
	font-size: clamp(1.5rem, 2vw, 1.75rem);
	margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

.proyecto-related-grid {
	grid-template-columns: 1fr;
	gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

@media (min-width: 640px) {
	.proyecto-related-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.proyecto-related-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.card-proyecto--archive {
	flex-direction: row;
	align-items: stretch;
}

.card-proyecto--archive .card-proyecto__media {
	flex: 0 0 min(38%, 16rem);
	aspect-ratio: auto;
	min-height: 12rem;
}

a.card-proyecto__media {
	display: block;
	color: inherit;
	text-decoration: none;
}

a.card-proyecto__media:hover img {
	transform: scale(1.03);
}

.card-proyecto--archive .card-proyecto__media img {
	transition: transform 0.4s ease;
}

.card-proyecto--archive .card-proyecto__meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}

.card-proyecto--archive .card-proyecto__title {
	font-size: clamp(1.25rem, 2vw, 1.375rem);
	margin-bottom: 0.625rem;
}

.card-proyecto--archive .card-proyecto__title a {
	color: inherit;
	text-decoration: none;
}

.card-proyecto--archive .card-proyecto__title a:hover {
	color: var(--nvec-naranja-tierra);
	text-decoration: none;
}

.proyecto-empty {
	display: none;
	padding: 4rem 0;
	text-align: center;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	font-style: italic;
	color: var(--nvec-marron-medio);
}

.proyecto-empty.is-visible {
	display: block;
}

@media (max-width: 639px) {
	.card-proyecto--archive {
		flex-direction: column;
	}

	.card-proyecto--archive .card-proyecto__media {
		flex: none;
		width: 100%;
		aspect-ratio: 16 / 9;
		min-height: 0;
	}
}

/* Ficha de proyecto individual */
.proyecto {
	padding-top: var(--nvec-content-offset-top);
	padding-bottom: clamp(3rem, 6vw, 4rem);
}

.proyecto__inner {
	max-width: 60rem;
	margin-inline: auto;
}

.proyecto__back {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-marron-medio);
	text-decoration: none;
}

.proyecto__back:hover {
	color: var(--nvec-naranja-tierra);
}

.proyecto__back svg {
	flex-shrink: 0;
	color: var(--nvec-verde-teal);
}

.proyecto__meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
}

.proyecto__title {
	font-family: var(--nvec-font-editorial);
	font-size: clamp(2rem, 3vw + 1rem, 3.5rem);
	font-weight: 700;
	line-height: 1.1;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 1.5rem;
}

.proyecto__lead {
	margin-bottom: 1.5rem;
	font-family: var(--nvec-font-body);
	font-size: 1.125rem;
	font-style: italic;
	line-height: 1.6;
	color: var(--nvec-marron-medio);
}

.proyecto__figure {
	margin: 0 0 1.5rem;
	border-radius: var(--nvec-radius);
	overflow: hidden;
}

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

.proyecto-video {
	margin-bottom: 1.5rem;
}

.proyecto-video__alert {
	margin-top: 0.875rem;
}

.proyecto-video__stage {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--nvec-radius);
	background: var(--nvec-fondo-oscuro);
}

.proyecto-video__stage iframe,
.proyecto-video__file {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.proyecto-video__file {
	display: block;
	object-fit: cover;
	background: var(--nvec-fondo-oscuro);
}

.proyecto-video__stage:not(.is-playing) .proyecto-video__file {
	visibility: hidden;
}

.proyecto-video__poster {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 1.5rem;
	border: 0;
	cursor: pointer;
	background: var(--nvec-fondo-oscuro);
}

.proyecto-video__poster:hover .proyecto-video__play,
.proyecto-video__poster:focus-visible .proyecto-video__play {
	background: var(--nvec-naranja-tierra);
	transform: scale(1.05);
}

.proyecto-video__poster:focus-visible {
	outline: 2px solid var(--nvec-verde-teal);
	outline-offset: 2px;
}

.proyecto-video__stage--youtube {
	background: #000;
}

.proyecto-video__poster--youtube {
	gap: 0;
}

.proyecto-video__poster-scrim--youtube {
	background: rgba(0, 0, 0, 0.18);
}

.proyecto-video__poster--youtube:hover .proyecto-video__yt-play,
.proyecto-video__poster--youtube:focus-visible .proyecto-video__yt-play {
	opacity: 0.88;
}

.proyecto-video__yt-play {
	position: relative;
	z-index: 1;
	display: block;
	line-height: 0;
	filter: drop-shadow(0 0.25rem 0.75rem rgba(0, 0, 0, 0.35));
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.proyecto-video__poster--youtube:hover .proyecto-video__yt-play,
.proyecto-video__poster--youtube:focus-visible .proyecto-video__yt-play {
	transform: scale(1.04);
}

.proyecto-video__yt-brand {
	position: absolute;
	left: 0.75rem;
	bottom: 0.75rem;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.5rem;
	border-radius: 0.25rem;
	background: rgba(0, 0, 0, 0.72);
	font-family: var(--nvec-font-ui);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	color: #fff;
}

.proyecto-video__poster:disabled {
	cursor: default;
}

.proyecto-video__poster:disabled .proyecto-video__play {
	opacity: 0.65;
}

.proyecto-video__stage.is-playing .proyecto-video__poster {
	display: none;
}

.proyecto-video__poster-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.proyecto-video__poster-scrim {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(26, 18, 8, 0.35) 0%, rgba(26, 18, 8, 0.82) 100%),
		rgba(43, 152, 127, 0.18);
}

.proyecto-video__poster-brand {
	position: relative;
	z-index: 1;
}

.proyecto-video__logo {
	display: block;
	width: min(14rem, 72vw);
	height: auto;
}

.proyecto-video__play {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4.25rem;
	height: 4.25rem;
	border-radius: 50%;
	background: var(--nvec-verde-teal);
	color: var(--nvec-crema);
	box-shadow: 0 0.35rem 1.25rem rgba(26, 18, 8, 0.28);
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.proyecto-video__play svg {
	margin-left: 0.2rem;
}

.proyecto-video__embed {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-oscuro);
}

.proyecto-panel-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
	gap: 0.75rem 1rem;
	margin: 0 0 1.5rem;
	padding: 0.875rem 1rem;
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-medio);
}

.proyecto-panel-facts__item {
	margin: 0;
}

.proyecto-panel-facts__item dt {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
	margin-bottom: 0.25rem;
}

.proyecto-panel-facts__item dd {
	margin: 0;
	font-family: var(--nvec-font-editorial);
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--nvec-marron-oscuro);
}

.proyecto-summary {
	margin-bottom: 1.5rem;
	padding: 0.875rem 1rem;
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	background: var(--nvec-crema);
}

.proyecto-summary__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
	gap: 0.75rem 1rem;
	margin: 0;
}

.proyecto-summary__item {
	margin: 0;
}

.proyecto-summary__item dt {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
	margin-bottom: 0.25rem;
}

.proyecto-summary__item dd {
	margin: 0;
	font-family: var(--nvec-font-editorial);
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--nvec-marron-oscuro);
}

.proyecto-summary__item:last-child dd {
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-ui);
	font-weight: 500;
}

.proyecto-cost-panel {
	margin-bottom: 0;
	padding: 0.75rem 0.875rem;
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-medio);
}

.proyecto-cost-panel--self {
	background: rgba(43, 152, 127, 0.08);
	border-color: rgba(43, 152, 127, 0.22);
}

.proyecto-cost-panel--self .proyecto-cost-panel__title {
	margin-bottom: 0.375rem;
}

.proyecto-cost-panel__start {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem;
	margin: 0 0 0.5rem;
}

.proyecto-cost-panel__start-label {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.proyecto-cost-panel__start-value {
	font-family: var(--nvec-font-editorial);
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
	white-space: nowrap;
}

.proyecto-cost-panel__message {
	margin: 0;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-ui);
	font-weight: 500;
	line-height: 1.5;
	color: var(--nvec-marron-oscuro);
}

.proyecto-cost-panel__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.5rem;
}

.proyecto-cost-panel__label {
	margin: 0;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-marron-oscuro);
}

.proyecto-cost-panel__percent {
	margin: 0;
	font-family: var(--nvec-font-editorial);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--nvec-verde-teal);
}

.proyecto-cost-panel__title {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
	margin: 0;
}

.proyecto-cost-panel__value {
	margin: 0;
	font-family: var(--nvec-font-editorial);
	font-size: 1.0625rem;
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
}

.proyecto-cost-panel__meta {
	margin: 0;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	line-height: 1.45;
	color: var(--nvec-marron-medio);
}

.proyecto-cost-panel__pending {
	font-weight: 600;
}

.proyecto-cost-panel__pending--danger {
	color: var(--nvec-rojo-sangre);
}

.proyecto-cost-panel__pending--warning {
	color: var(--nvec-ambar);
}

.proyecto-cost-panel__pending--success {
	color: var(--nvec-verde-oliva);
}

.proyecto-cost-panel__bar {
	height: 0.375rem;
	margin-bottom: 0.5rem;
	border-radius: var(--nvec-radius-pill);
	background: var(--nvec-beige-oscuro);
	overflow: hidden;
}

.proyecto-cost-panel__fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--nvec-verde-teal);
}

.proyecto-cost-panel__cta {
	margin: 0.5rem 0 0;
	text-align: right;
}

.proyecto__levels {
	margin-bottom: 3rem;
}

.proyecto-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 2rem;
	padding-bottom: 1rem;
	border-bottom: var(--nvec-border);
}

.proyecto-tabs__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.5rem 0.875rem;
	border: 1.5px solid rgba(35, 26, 10, 0.15);
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-medio);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	line-height: 1.35;
	color: var(--nvec-marron-medio);
	cursor: pointer;
	transition: background-color var(--nvec-ease), border-color var(--nvec-ease), color var(--nvec-ease);
}

.proyecto-tabs__icon {
	display: inline-flex;
	flex-shrink: 0;
	line-height: 0;
	opacity: 0.88;
}

.proyecto-tabs__btn[aria-selected="true"] .proyecto-tabs__icon {
	opacity: 1;
}

.proyecto-tabs__label {
	line-height: 1.35;
}

.proyecto-tabs__btn:not([aria-selected="true"]):hover,
.proyecto-tabs__btn:not([aria-selected="true"]):focus {
	background: rgba(43, 152, 127, 0.12);
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-verde-teal);
}

.proyecto-tabs__btn[aria-selected="true"] {
	background: var(--nvec-verde-teal);
	border-color: var(--nvec-verde-teal);
	color: var(--nvec-crema);
}

.proyecto-panel-empty {
	font-style: italic;
	color: var(--nvec-marron-medio);
}

.proyecto-panel__title {
	font-family: var(--nvec-font-editorial);
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
	margin: 0 0 1.25rem;
}

.proyecto-panel-lead {
	margin: 0 0 1rem;
	font-family: var(--nvec-font-editorial);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.45;
	color: var(--nvec-marron-oscuro);
}

.proyecto-impact {
	margin-bottom: 1.5rem;
}

.proyecto-impact__title {
	font-family: var(--nvec-font-editorial);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
	margin: 0 0 0.75rem;
}

.proyecto-impact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
	gap: 0.75rem;
	margin-bottom: 0;
}

.proyecto-impact-card {
	padding: 1rem;
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	background: var(--nvec-crema);
	text-align: center;
}

.proyecto-impact-card__value {
	font-family: var(--nvec-font-editorial);
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--nvec-verde-teal);
	margin-bottom: 0.25rem;
}

.proyecto-impact-card__label {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	color: var(--nvec-marron-medio);
	line-height: 1.4;
}

.proyecto-timeline__status {
	display: inline-block;
	padding: 0.2rem 0.5rem;
	border-radius: var(--nvec-radius);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.proyecto-timeline__status--done {
	background: rgba(38, 163, 79, 0.15);
	color: var(--nvec-verde-oliva);
}

.proyecto-timeline__status--active {
	background: rgba(195, 75, 0, 0.12);
	color: var(--nvec-naranja-tierra);
}

.proyecto-timeline__status--pending {
	background: var(--nvec-beige-medio);
	color: var(--nvec-marron-medio);
}

.proyecto-docs-list__soon {
	font-style: italic;
	color: var(--nvec-marron-medio);
}

.proyecto-progress {
	margin-bottom: 0;
	padding: 0.75rem 0.875rem;
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-medio);
}

.proyecto-progress__start {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem;
	margin: 0 0 0.5rem;
}

.proyecto-progress__start-label {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.proyecto-progress__start-value {
	font-family: var(--nvec-font-editorial);
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
	white-space: nowrap;
}

@media (min-width: 768px) {
	.proyecto-cost-panel__start-value,
	.proyecto-progress__start-value {
		font-size: 1.2rem;
	}
}

.proyecto-progress__foot {
	margin: 0.5rem 0 0;
}

.proyecto-progress__link {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 500;
	line-height: 1.35;
	color: var(--nvec-verde-teal);
	text-decoration: none;
}

.proyecto-progress__link:hover {
	color: var(--nvec-naranja-tierra);
	text-decoration: none;
}

.proyecto-status-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
	align-items: start;
	margin-bottom: 1.5rem;
}

@media (min-width: 640px) {
	.proyecto-status-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.proyecto-status-row__cell:only-child {
		grid-column: 1 / -1;
	}
}

.proyecto-status-row__cell {
	min-width: 0;
}

.proyecto-status-row__cell[hidden] {
	display: none;
}

.proyecto-bitacora__lead {
	margin: 0 0 1.25rem;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	line-height: 1.6;
	color: var(--nvec-marron-medio);
}

.proyecto-bitacora-grid {
	margin-top: 0;
	grid-template-columns: 1fr;
	gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

@media (min-width: 640px) {
	.proyecto-bitacora-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.proyecto-bitacora-grid .card-blog {
	padding: 1rem 1rem 1.25rem;
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	border-bottom: var(--nvec-border);
	background: var(--nvec-crema);
}

.proyecto-bitacora-grid .card-blog__meta {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 0.75rem;
}

.proyecto-bitacora-grid .card-blog__date {
	margin-left: auto;
}

.proyecto-bitacora-grid .card-blog a.tag {
	text-decoration: none;
}

.proyecto-bitacora-grid .card-blog a.tag--animales,
.proyecto-bitacora-grid .card-blog a.tag--huerto {
	color: var(--nvec-crema);
}

.proyecto-bitacora-grid .card-blog a.tag--animales:hover,
.proyecto-bitacora-grid .card-blog a.tag--huerto:hover {
	color: var(--nvec-verde-teal);
}

.proyecto-progress__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin-bottom: 0.5rem;
}

.proyecto-progress__label {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-marron-oscuro);
}

.proyecto-progress__value {
	font-family: var(--nvec-font-editorial);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--nvec-verde-teal);
}

.proyecto-progress__bar {
	height: 0.5rem;
	border-radius: var(--nvec-radius-pill);
	background: var(--nvec-beige-oscuro);
	overflow: hidden;
}

.proyecto-progress__fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--nvec-verde-teal);
}

.proyecto-log {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	margin-bottom: 2rem;
}

.proyecto-log__entry {
	padding-left: 1rem;
	border-left: 3px solid var(--nvec-verde-teal);
}

.proyecto-log__date {
	display: block;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
	margin-bottom: 0.35rem;
}

.proyecto-log__title {
	font-family: var(--nvec-font-editorial);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 0.35rem;
}

.proyecto-section {
	margin-bottom: 3rem;
	padding-top: 2.5rem;
	border-top: var(--nvec-border);
}

.proyecto-section__title {
	font-family: var(--nvec-font-editorial);
	font-size: clamp(1.5rem, 2vw, 1.75rem);
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 1.25rem;
}

.proyecto-participa-grid {
	display: grid;
	gap: 1.25rem;
	margin-top: 0.25rem;
}

@media (min-width: 640px) {
	.proyecto-participa-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.proyecto-participa-card {
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-medio);
}

.proyecto-participa-card__title {
	font-family: var(--nvec-font-editorial);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
	margin: 0 0 0.625rem;
}

.proyecto-participa-card__text {
	margin: 0 0 1.25rem;
	line-height: 1.55;
	color: var(--nvec-marron-medio);
}

.proyecto-participa-card .btn {
	margin-top: auto;
	align-self: flex-start;
}

.proyecto-gallery {
	display: grid;
	gap: 1rem;
}

@media (min-width: 640px) {
	.proyecto-gallery {
		grid-template-columns: repeat(2, 1fr);
	}
}

.proyecto-gallery__item {
	overflow: hidden;
	border-radius: var(--nvec-radius);
	background: var(--nvec-crema);
}

.proyecto-gallery__item img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: var(--nvec-beige-oscuro);
}


.proyecto-nav {
	background: var(--nvec-beige-medio);
	padding: clamp(2rem, 4vw, 3rem) 0;
}

.proyecto-nav__grid {
	display: grid;
	gap: 1.5rem;
}

.proyecto-nav__grid--only-next {
	justify-items: end;
}

.proyecto-nav__grid--only-prev {
	justify-items: start;
}

.proyecto-nav__link {
	display: flex;
	align-items: center;
	gap: 1rem;
	text-decoration: none;
	color: inherit;
	max-width: 100%;
}

.proyecto-nav__link--prev {
	justify-content: flex-start;
}

.proyecto-nav__link--next {
	text-align: right;
	justify-content: flex-end;
}

.proyecto-nav__label {
	margin-bottom: 0.25rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.proyecto-nav__title {
	font-family: var(--nvec-font-editorial);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--nvec-marron-oscuro);
}

.proyecto-nav__link:hover .proyecto-nav__title {
	color: var(--nvec-naranja-tierra);
}

.proyecto-nav__icon {
	flex-shrink: 0;
	color: var(--nvec-verde-teal);
}

@media (min-width: 768px) {
	.proyecto-nav__grid {
		grid-template-columns: 1fr 1fr;
	}

	.proyecto-nav__grid--both .proyecto-nav__link--prev {
		grid-column: 1;
		justify-self: start;
	}

	.proyecto-nav__grid--both .proyecto-nav__link--next {
		grid-column: 2;
		justify-self: end;
	}

	.proyecto-nav__grid--only-next {
		grid-template-columns: 1fr 1fr;
		justify-items: stretch;
	}

	.proyecto-nav__grid--only-next .proyecto-nav__link--next {
		grid-column: 2;
		justify-self: end;
	}

	.proyecto-nav__grid--only-prev {
		grid-template-columns: 1fr 1fr;
		justify-items: stretch;
	}

	.proyecto-nav__grid--only-prev .proyecto-nav__link--prev {
		grid-column: 1;
		justify-self: start;
	}
}

.proyecto-not-found {
	padding: clamp(4rem, 10vw, 8rem) 0;
	text-align: center;
}

.proyecto-not-found__title {
	font-family: var(--nvec-font-editorial);
	font-size: clamp(2rem, 3vw + 1rem, 2.5rem);
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 1.5rem;
}

.proyecto-not-found__back {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-verde-teal);
	text-decoration: none;
}

.proyecto-not-found__back:hover {
	color: var(--nvec-naranja-tierra);
}

/* §09 · Colabora ══════════════════════════════════════════════════ */

.colabora-hero {
	padding-top: var(--nvec-content-offset-top);
	padding-bottom: clamp(3rem, 6vw, 5rem);
	background: var(--nvec-casi-negro);
	color: var(--nvec-crema);
}

.colabora-hero__kicker {
	color: var(--nvec-naranja-tierra);
}

.colabora-hero__title {
	max-width: 11em;
	font-family: var(--nvec-font-editorial);
	font-size: clamp(2.5rem, 4vw + 1.25rem, 4.5rem);
	font-weight: 700;
	line-height: 1.05;
	color: var(--nvec-crema);
}

.colabora-hero__lead {
	max-width: 36rem;
	margin-top: 1.5rem;
	font-family: var(--nvec-font-body);
	font-size: 1.125rem;
	font-style: italic;
	line-height: 1.6;
	color: rgba(244, 239, 228, 0.65);
}

/* Bloques 01 / 02 / 03 (PNG Colabora) */
.colabora-block {
	padding-block: clamp(3.5rem, 7vw, 6rem);
	background: var(--nvec-crema);
}

.colabora-block--alt {
	background: var(--nvec-beige-medio);
}

.colabora-block__grid {
	display: grid;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: center;
}

.colabora-block__grid.wp-block-columns {
	display: grid;
	margin-bottom: 0;
}

.colabora-block__grid.wp-block-columns > .wp-block-column {
	margin: 0;
}

@media (min-width: 900px) {
	.colabora-block__grid {
		grid-template-columns: 1fr 1fr;
		gap: clamp(3rem, 6vw, 5rem);
	}

	.colabora-block__grid.wp-block-columns {
		grid-template-columns: 1fr 1fr;
	}

	.colabora-block__grid--reverse .colabora-visual {
		order: -1;
	}
}

.colabora-visual {
	display: flex;
	flex-direction: column;
	gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

.colabora-visual__media {
	margin: 0;
	border-radius: var(--nvec-radius);
	overflow: hidden;
}

.colabora-visual__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.colabora-visual .colabora-quote {
	margin: 0;
}

.colabora-block__title {
	max-width: 14em;
	margin-bottom: 1.5rem;
	font-family: var(--nvec-font-editorial);
	font-size: clamp(1.75rem, 2.5vw + 0.75rem, 2.75rem);
	font-weight: 700;
	line-height: 1.15;
	color: var(--nvec-marron-oscuro);
}

.colabora-block__prose {
	max-width: 36rem;
	color: #4a3b27;
}

.colabora-block__prose p + p {
	margin-top: 1rem;
}

.colabora-block__cta {
	margin-top: 2rem;
}

/* Colabora en bloques Gutenberg: misma maquetación que la maqueta HTML */
.colabora-page .colabora-hero.wp-block-group,
.colabora-page section.colabora-block.wp-block-group {
	max-width: none;
}

.colabora-page .colabora-hero.wp-block-group > .wp-block-group__inner-container,
.colabora-page section.colabora-block.wp-block-group > .wp-block-group__inner-container {
	max-width: none;
}

.colabora-page .colabora-hero .wp-block-group.nvec-container,
.colabora-page .colabora-block .wp-block-group.nvec-container {
	width: min(100% - var(--nvec-gutter) * 2, var(--nvec-container));
	margin-inline: auto;
}

.colabora-page .colabora-block__grid.wp-block-columns.is-layout-flex {
	display: grid;
}

.colabora-page .colabora-block .wp-block-buttons.colabora-block__cta {
	margin-top: 2rem;
}

.colabora-page .colabora-quote.wp-block-group > .wp-block-group__inner-container {
	display: block;
}

.colabora-page .colabora-block__prose.wp-block-group > .wp-block-group__inner-container > p + p {
	margin-top: 1rem;
}

/* Páginas de detalle (aportaciones, voluntariado, especie) */

.colabora-detail {
	padding-top: var(--nvec-content-offset-top);
	padding-bottom: clamp(3rem, 6vw, 5rem);
	background: var(--nvec-crema);
}

/* Columna centrada en la página; contenido alineado a la izquierda dentro de ella */

.colabora-detail > .nvec-container {
	width: min(100% - var(--nvec-gutter) * 2, 40rem);
	margin-inline: auto;
}

.colabora-detail__layout,
.colabora-detail__content,
.colabora-detail__form {
	text-align: left;
}

.colabora-detail .colabora-block__prose {
	max-width: none;
}

.colabora-detail__back {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: clamp(1.5rem, 3vw, 2rem);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-marron-medio);
	text-decoration: none;
}

.colabora-detail__back:hover {
	color: var(--nvec-naranja-tierra);
}

.colabora-detail__back svg {
	flex-shrink: 0;
	color: var(--nvec-verde-teal);
}

.colabora-detail .page-header__title {
	margin-bottom: 1.5rem;
}

.colabora-detail__layout {
	display: flex;
	flex-direction: column;
	gap: clamp(2.5rem, 5vw, 3.5rem);
}

.colabora-detail__cta {
	margin-top: 2rem;
}

.colabora-detail__form {
	scroll-margin-top: calc(var(--nvec-header-offset) + 1rem);
}

.colabora-detail__form .colabora-form {
	width: 100%;
}

.colabora-quote {
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-medio);
}

.colabora-block--alt .colabora-quote--light {
	background: var(--nvec-crema);
}

.colabora-detail .colabora-quote {
	margin-top: 2rem;
}

.colabora-quote__text {
	font-family: var(--nvec-font-body);
	font-size: clamp(1.125rem, 1.5vw + 0.5rem, 1.375rem);
	font-style: italic;
	line-height: 1.5;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 1rem;
}

.colabora-quote__cite {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-verde-teal);
}

.colabora-form__title {
	font-family: var(--nvec-font-editorial);
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--nvec-marron-oscuro);
	margin-bottom: 0.5rem;
}

.colabora-form__lead {
	margin-bottom: 1.25rem;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	font-style: italic;
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-marron-medio);
}

.colabora-form__submit {
	align-self: flex-start;
	margin-top: 0.25rem;
}

.colabora-form__note {
	margin-top: 1rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-style: italic;
	color: var(--nvec-marron-medio);
}

.aportacion-amounts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.5rem;
}

.aportacion-amount {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 3.5rem;
	padding: 0.5rem 0.875rem;
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	background: var(--nvec-beige-medio);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	color: var(--nvec-marron-oscuro);
	cursor: pointer;
	transition: border-color var(--nvec-ease), background-color var(--nvec-ease), color var(--nvec-ease);
}

.aportacion-amount input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.aportacion-amount:has(input:checked) {
	border-color: var(--nvec-verde-teal);
	background: rgba(43, 152, 127, 0.12);
	color: var(--nvec-verde-teal);
}

.aportacion-amount:has(input:focus-visible) {
	outline: 2px solid var(--nvec-verde-teal);
	outline-offset: 2px;
}

.colabora-form .form-field select {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid rgba(35, 26, 10, 0.15);
	border-radius: 2px;
	background: var(--nvec-beige-medio);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	color: var(--nvec-marron-oscuro);
}

.colabora-form .form-field legend {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
	margin-bottom: 0.25rem;
}

/* Formulario donaciones (plugin mowomo) en páginas Colabora */

.colabora-detail .bbva-aport-form-wrap {
	max-width: none;
	margin: 0;
}

.colabora-detail .bbva-aport-form-wrap,
.colabora-detail .bbva-aport-form {
	--bbva-primary: var(--nvec-verde-teal);
	--bbva-primary-hover: #248a73;
	--bbva-btn-border: rgba(35, 26, 10, 0.15);
	--bbva-btn-text: var(--nvec-marron-oscuro);
	--bbva-btn-active-bg: var(--nvec-verde-teal);
	--bbva-btn-active-text: #fff;
	--bbva-form-bg: var(--nvec-crema);
	--bbva-form-border: rgba(35, 26, 10, 0.15);
	--bbva-heading: var(--nvec-marron-oscuro);
	--bbva-button-radius: var(--nvec-radius);
}

.colabora-detail .bbva-aport-form {
	padding: clamp(1.25rem, 3vw, 1.5rem);
	font-family: var(--nvec-font-ui);
}

.colabora-detail .bbva-aport-form h2 {
	font-family: var(--nvec-font-editorial);
	font-size: 1.375rem;
	font-weight: 700;
	margin-bottom: 0.75rem;
}

.colabora-detail .bbva-label,
.colabora-detail .bbva-field > label {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.colabora-detail .bbva-choice-btn {
	background: var(--nvec-beige-medio);
	border-width: 1px;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
}

.colabora-detail .bbva-choice-btn.is-active {
	background: rgba(43, 152, 127, 0.12);
	color: var(--nvec-verde-teal);
	border-color: var(--nvec-verde-teal);
}

.colabora-detail .bbva-field input[type="text"],
.colabora-detail .bbva-field input[type="email"],
.colabora-detail .bbva-field input[type="number"],
.colabora-detail .bbva-custom-amount input {
	padding: 0.75rem 1rem;
	border: 1px solid rgba(35, 26, 10, 0.15);
	border-radius: 2px;
	background: #ebe4d4;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	color: var(--nvec-marron-oscuro);
}

.colabora-detail .bbva-checkbox label {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-weight: 400;
	line-height: 1.5;
	color: var(--nvec-marron-medio);
	text-transform: none;
	letter-spacing: normal;
}

.colabora-detail .bbva-checkbox input[type="checkbox"] {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin-top: 0.125rem;
	accent-color: var(--nvec-verde-teal);
}

.colabora-detail .bbva-checkbox .description,
.colabora-detail .bbva-note {
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	font-style: italic;
	color: var(--nvec-marron-medio);
}

.colabora-detail .bbva-submit {
	width: auto;
	margin-top: 0.25rem;
	padding: 0.75rem 1.25rem;
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-ui);
	font-weight: 600;
	border-radius: var(--nvec-radius);
}

.colabora-detail__aside {
	scroll-margin-top: calc(var(--nvec-header-offset) + 1rem);
}

/* §10 · 404 ══════════════════════════════════════════════════════ */

.page-404 {
	padding: clamp(3rem, 8vw, 6rem) 0 clamp(4rem, 10vw, 7rem);
	background: var(--nvec-crema);
}

.page-404__inner {
	max-width: 40rem;
	margin-inline: auto;
	text-align: center;
}

.page-404__kicker {
	margin-bottom: 1rem;
}

.page-404__code {
	margin: 0 0 0.5rem;
	font-family: var(--nvec-font-display);
	font-size: clamp(4.5rem, 14vw, 8rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.04em;
	color: rgba(195, 75, 0, 0.14);
}

.page-404__title {
	max-width: 14em;
	margin-inline: auto;
	margin-bottom: 1.25rem;
	font-family: var(--nvec-font-editorial);
	font-size: clamp(2rem, 3vw + 1rem, 2.75rem);
	font-weight: 700;
	line-height: 1.1;
	color: var(--nvec-marron-oscuro);
}

.page-404__lead {
	max-width: 34rem;
	margin-inline: auto;
	margin-bottom: 2rem;
	font-family: var(--nvec-font-body);
	font-size: var(--nvec-text-body);
	font-style: italic;
	line-height: var(--nvec-text-body-line);
	color: var(--nvec-marron-medio);
}

.page-404__actions {
	justify-content: center;
}

/* §11 · Guía de estilos ════════════════════════════════════════ */

.nvec-style-guide__intro {
	margin-bottom: 0.5rem;
}

.nvec-style-guide__section {
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: var(--nvec-border);
}

.nvec-style-guide__section > h2:first-child {
	margin-bottom: 1.25rem;
}

.nvec-style-guide__section > h3 {
	margin-top: 1.5rem;
	margin-bottom: 1rem;
}

.nvec-style-guide__stack {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.nvec-style-guide__row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
}

.nvec-style-guide__swatches {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
	gap: 0.75rem;
}

.nvec-style-guide__swatch {
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	overflow: hidden;
	background: var(--nvec-blanco);
}

.nvec-style-guide__swatch-color {
	height: 4rem;
	border-bottom: var(--nvec-border);
}

.nvec-style-guide__swatch-label {
	padding: 0.5rem 0.625rem;
	font-family: var(--nvec-font-ui);
	font-size: 0.6875rem;
	line-height: 1.4;
	color: var(--nvec-marron-medio);
}

.nvec-style-guide__swatch-label strong {
	display: block;
	color: var(--nvec-marron-oscuro);
	font-weight: 600;
}

.nvec-style-guide__type-demo {
	padding: 1rem 0;
	border-bottom: 1px solid rgba(35, 26, 10, 0.06);
}
.nvec-style-guide__type-demo:last-child {
	border-bottom: 0;
}

.nvec-style-guide__type-label {
	margin-bottom: 0.5rem;
	font-family: var(--nvec-font-ui);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nvec-marron-medio);
}

.nvec-style-guide__cards {
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.nvec-style-guide__cards--blog {
		grid-template-columns: repeat(2, 1fr);
	}
}

.nvec-style-guide__spacing {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.nvec-style-guide__spacing-box {
	padding: 1rem 1.25rem;
	background: var(--nvec-beige-medio);
	border: var(--nvec-border);
	border-radius: var(--nvec-radius);
	font-family: var(--nvec-font-ui);
	font-size: var(--nvec-text-caption);
	color: var(--nvec-marron-medio);
}

.nvec-style-guide__form {
	max-width: 32rem;
}

/* ─── Botón «volver arriba» ──────────────────────────────────────────────── */

.back-to-top {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 60;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--nvec-verde-teal), var(--nvec-verde-oliva));
	color: var(--nvec-crema);
	cursor: pointer;
	box-shadow: 0 8px 20px rgba(61, 40, 16, 0.28);
	opacity: 0;
	visibility: hidden;
	transform: translateY(0.5rem);
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease, box-shadow 0.2s ease;
}

.back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.back-to-top:hover,
.back-to-top:focus-visible {
	box-shadow: 0 10px 26px rgba(61, 40, 16, 0.35);
	transform: translateY(-3px);
}

.back-to-top:focus-visible {
	outline: 2px solid var(--nvec-crema);
	outline-offset: 2px;
}

@media (min-width: 900px) {
	.back-to-top {
		right: 2rem;
		bottom: 2rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.back-to-top {
		transition: opacity 0.15s ease, visibility 0.15s ease;
		transform: none !important;
	}
}
