/*
 * Lume Digital · sistema «Encendido» · hoja global del tema (etapa 1).
 *
 * Fuente del diseño: prototipos aprobados (prototipos/encendido/ y prototipos/encendido-interiores/, B4 y B10).
 * Catálogo de componentes: docs/arquitectura/sistema-encendido.md.
 *
 *  1. Tokens            8. Pie y barra móvil
 *  2. Base              9. Hero interior y haz de luz
 *  3. Tipografía       10. Componentes comunes
 *  4. Botones          11. Contenido del editor y estilos de bloque
 *  5. Retícula         12. Búsqueda y aviso de cookies
 *  6. Cabecera         13. Listados, relacionados y 404
 *  7. Idiomas          14. Páginas compuestas (secciones y componentes del editor)
 *                      15. Accesibilidad, movimiento, móvil e impresión
 *
 * Las piezas propias de cada página (selector, plano, etapas, etc.) viven en hojas que se cargan solo donde se usan.
 */

/* 1. Tokens ------------------------------------------------------------------------------- */
:root {
	--noche: var(--wp--preset--color--noche, #030504);
	--noche-2: var(--wp--preset--color--noche-2, #070C09);
	--grafito: var(--wp--preset--color--grafito, #0C120E);
	--bruma: var(--wp--preset--color--bruma, #E8EEE9);
	--niebla: var(--wp--preset--color--niebla, #9AA79E);
	--tenue: var(--wp--preset--color--tenue, #78847C);
	--verde: var(--wp--preset--color--verde, #228B22);
	--clorofila: var(--wp--preset--color--clorofila, #57D65A);
	--clorofila-2: var(--wp--preset--color--clorofila-2, #8BEA8C);
	--filamento: var(--wp--preset--color--filamento, #FFB648);
	--alerta: var(--wp--preset--color--alerta, #FF5A4E);
	--vidrio: rgba(232, 238, 233, .045);
	--vidrio-2: rgba(232, 238, 233, .075);
	--linea: rgba(232, 238, 233, .10);
	--linea-2: rgba(232, 238, 233, .18);
	--linea-verde: rgba(87, 214, 90, .32);
	--linea-ambar: rgba(255, 182, 72, .38);
	--apagado: #1A221D;
	--sobre-verde: #03140A;
	--margen: clamp(1.25rem, .5rem + 3.2vw, 3.5rem);
	--ancho: 84rem;
	--texto: 46rem;
	--radio: 18px;
	--radio-grande: 24px;
	--ease: cubic-bezier(.2, .8, .2, 1);
	--ease-in-out: cubic-bezier(.65, 0, .35, 1);
	--t-display: clamp(2.6rem, 1rem + 4.7vw, 5.9rem);
	--t-h2: clamp(2.1rem, 1rem + 3.5vw, 4.6rem);
	--t-h3: clamp(1.5rem, 1.05rem + 1.4vw, 2.3rem);
	--t-lead: clamp(1.08rem, 1rem + .38vw, 1.32rem);
	--cab-alto: 4.5rem;
	color-scheme: dark;
}

/* 2. Base --------------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--cab-alto) + 1rem); }
body {
	margin: 0;
	background: var(--noche);
	color: var(--bruma);
	font-family: var(--wp--preset--font-family--mona-sans, "Mona Sans", system-ui, sans-serif);
	font-size: clamp(1rem, .96rem + .2vw, 1.1rem);
	line-height: 1.6;
	font-stretch: 100%;
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
}
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--clorofila); outline-offset: 4px; border-radius: 6px; }
::selection { background: var(--clorofila); color: var(--sobre-verde); }
.principal { position: relative; z-index: 1; display: block; }
.principal:focus { outline: none; }
.screen-reader-text, .vh {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.saltar {
	position: absolute; left: 1rem; top: -4rem; z-index: 100; padding: .6rem 1rem; border-radius: 999px;
	background: var(--clorofila); color: var(--sobre-verde); font-weight: 650; text-decoration: none;
}
.saltar:focus { top: 1rem; }
/* Grano fino sobre todo el sitio (se desactiva en móvil). */
.grano {
	position: fixed; inset: 0; z-index: 2; pointer-events: none; opacity: .035;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* 3. Tipografía --------------------------------------------------------------------------- */
h1, h2, h3, h4 { margin: 0; color: var(--bruma); font-weight: 740; font-stretch: 118%; letter-spacing: -.03em; line-height: 1.05; text-wrap: balance; overflow-wrap: break-word; }
p { margin: 0 0 1em; }
.h2 { margin: 0; font-size: var(--t-h2); font-weight: 740; font-stretch: 118%; line-height: 1; letter-spacing: -.035em; text-wrap: balance; }
.lead { margin: 1.25rem 0 0; max-width: 36rem; color: var(--niebla); font-size: var(--t-lead); text-wrap: pretty; }
.lead strong { color: var(--bruma); font-weight: 600; }
.micro { margin: .8rem 0 0; max-width: 34rem; color: var(--tenue); font-size: .88rem; }
/* Antetítulo con luz (kicker). */
.kicker, .is-style-lume-kicker {
	display: flex; align-items: center; gap: .7rem; margin: 0 0 1.25rem;
	color: var(--niebla); font-size: .92rem; font-weight: 560; font-stretch: 112%; letter-spacing: .005em;
}
.kicker::before, .is-style-lume-kicker::before {
	content: ""; flex: none; width: .5rem; height: .5rem; border-radius: 50%;
	background: var(--clorofila); box-shadow: 0 0 10px var(--clorofila), 0 0 22px rgba(87, 214, 90, .5);
}
/* Titular que se enciende al entrar en pantalla (con JavaScript y sin movimiento reducido). */
.enciende, .is-style-lume-enciende { transition: color 1s var(--ease), text-shadow 1.2s var(--ease); }
.js .enciende:not(.on), .js .is-style-lume-enciende:not(.on) { color: rgba(232, 238, 233, .22); }
.js .enciende.on, .js .is-style-lume-enciende.on { animation: destello 1.4s var(--ease); }
@keyframes destello { 40% { text-shadow: 0 0 40px rgba(87, 214, 90, .55); } }
@keyframes aparecer { from { opacity: 0; translate: 0 14px; } }
@keyframes brillo { from { background-position: 100% 0; } to { background-position: 0 0; } }

/* 4. Botones ------------------------------------------------------------------------------ */
.boton, .wp-block-button__link, .wp-element-button {
	position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
	min-height: 3.1rem; padding: .8rem 1.45rem; border: 0; border-radius: 999px; cursor: pointer;
	background: var(--clorofila); color: var(--sobre-verde); font-weight: 650; font-stretch: 106%; line-height: 1.2;
	text-decoration: none; isolation: isolate; overflow: hidden;
	transition: box-shadow .4s var(--ease), background-color .3s, transform .25s var(--ease);
}
.boton::after, .wp-block-button__link::after {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(100deg, transparent 30%, rgba(255, 255, 255, .55) 50%, transparent 70%);
	translate: -120% 0; transition: translate .8s var(--ease);
}
.boton:hover, .wp-block-button__link:hover { box-shadow: 0 0 26px rgba(87, 214, 90, .55), 0 0 90px rgba(87, 214, 90, .25); color: var(--sobre-verde); }
.boton:hover::after, .wp-block-button__link:hover::after { translate: 120% 0; }
.boton:active, .wp-block-button__link:active { scale: .98; }
.boton svg { flex: none; width: 1.05em; height: 1.05em; transition: translate .3s var(--ease); }
.boton:hover svg { translate: 3px 0; }
.boton--fantasma, .is-style-lume-secundario .wp-block-button__link {
	background: rgba(232, 238, 233, .02); color: var(--bruma); box-shadow: inset 0 0 0 1px var(--linea-2);
}
.boton--fantasma::after, .is-style-lume-secundario .wp-block-button__link::after {
	background: linear-gradient(100deg, transparent 30%, rgba(87, 214, 90, .18) 50%, transparent 70%);
}
.boton--fantasma:hover, .is-style-lume-secundario .wp-block-button__link:hover {
	color: var(--bruma); box-shadow: inset 0 0 0 1px rgba(87, 214, 90, .6), 0 0 30px rgba(87, 214, 90, .15);
}
.boton--chico { min-height: 2.6rem; padding: .55rem 1.1rem; font-size: .92rem; }
.boton--grande { min-height: 3.6rem; padding-inline: 2rem; font-size: 1.06rem; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: .75rem; margin: 2rem 0; }

/* 5. Retícula ----------------------------------------------------------------------------- */
.contenedor { width: min(100% - 2 * var(--margen), var(--ancho)); margin-inline: auto; }
.seccion { padding-block: clamp(5rem, 12vh, 8.5rem); }
.seccion__cab {
	display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 1.25rem 4rem; align-items: end;
	margin-bottom: clamp(2.25rem, 5vh, 3.5rem);
}
.seccion__cab .lead { margin: 0; }
@media (max-width: 63.99em) { .seccion__cab { grid-template-columns: minmax(0, 1fr); } }

/* 6. Cabecera ----------------------------------------------------------------------------- */
.cab {
	position: fixed; inset: 0 0 auto; z-index: 30; border-bottom: 1px solid transparent;
	transition: background-color .35s var(--ease), border-color .35s;
}
.admin-bar .cab { top: var(--wp-admin--admin-bar--height, 32px); }
/* En ≤ 600 px la barra de administración deja de ser fija: la cabecera sube a 0 al desplazarse. */
@media screen and (max-width: 600px) { .admin-bar .cab.is-solida { top: 0; } }
.cab.is-solida, .cab.is-abierta {
	background: rgba(3, 5, 4, .66); border-color: var(--linea);
	-webkit-backdrop-filter: blur(16px) saturate(150%); backdrop-filter: blur(16px) saturate(150%);
}
.cab__in { display: flex; align-items: center; gap: 1.5rem; height: var(--cab-alto); }
.lume-logo { display: inline-flex; flex: none; border-radius: 6px; }
.lume-logo__img, .cab .lume-logo img { width: auto; height: 34px; }
.cab__nav { margin-left: auto; }
.cab__nav ul { display: flex; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.cab__nav a {
	position: relative; display: block; padding: .5rem .8rem; border-radius: 999px;
	color: var(--niebla); font-size: .94rem; text-decoration: none; transition: color .2s, background-color .2s;
}
.cab__nav a:hover { color: var(--bruma); background: rgba(232, 238, 233, .05); }
.cab__nav [aria-current], .cab__nav .current-menu-ancestor > a, .cab__nav .current-page-ancestor > a, .cab__nav .current_page_parent > a { color: var(--bruma); }
.cab__nav [aria-current]::after, .cab__nav .current-menu-ancestor > a::after, .cab__nav .current-page-ancestor > a::after, .cab__nav .current_page_parent > a::after {
	content: ""; position: absolute; left: 50%; bottom: .1rem; width: 4px; height: 4px; margin-left: -2px;
	border-radius: 50%; background: var(--clorofila); box-shadow: 0 0 8px var(--clorofila);
}
.cab__cta { display: inline-flex; }
.cab__nav a, .cab__cta .boton, .cab .idiomas a { white-space: nowrap; }
/* Entre 1024 y 1199 px el menú de seis elementos no cabe con el botón: la cabecera muestra el logotipo, el botón
   principal y «Menú», que abre el mismo panel que en el móvil (con el selector de idioma). */
@media (min-width: 64em) and (max-width: 74.99em) {
	.cab__nav, .cab .idiomas--cabecera { display: none; }
	.cab__cta { margin-left: auto; }
	.cab .cab__menu { display: inline-flex; margin-left: 0; }
	html:not(.js) .cab .cab__menu { display: none; }
	.panel { padding: 1rem var(--margen) 1.5rem; border-bottom: 1px solid var(--linea); background: rgba(3, 5, 4, .97); }
	.panel > .boton { display: none; }
	html:not(.js) .panel { display: block; }
	.js .cab.is-abierta .panel { display: block; max-height: calc(100dvh - var(--cab-alto)); overflow-y: auto; }
	html:not(.js) .cab { position: relative; }
}
/* Entre 1200 y 1279 px el menú completo se compacta para no partirse en dos líneas. */
@media (min-width: 75em) and (max-width: 79.99em) {
	.cab__in { gap: .9rem; }
	.cab__nav ul { gap: 0; }
	.cab__nav a { padding: .5rem .5rem; font-size: .9rem; }
	.cab__cta .boton { padding-inline: 1rem; font-size: .9rem; }
}
.cab__menu {
	display: none; margin-left: auto; min-height: 2.75rem; padding: .5rem 1.1rem; border: 0; border-radius: 999px;
	background: rgba(232, 238, 233, .06); box-shadow: inset 0 0 0 1px var(--linea-2); cursor: pointer; font-weight: 560;
}
.cab__menu[aria-expanded="true"] { background: rgba(87, 214, 90, .12); box-shadow: inset 0 0 0 1px var(--linea-verde); }
/* Panel móvil: con JavaScript se abre con el botón; sin JavaScript se ve completo bajo la cabecera. */
.panel { display: none; }
.panel ul { margin: 0; padding: 0; list-style: none; }
.panel__lista a {
	display: block; padding: .85rem 0; border-bottom: 1px solid var(--linea);
	font-size: 1.2rem; font-weight: 620; font-stretch: 112%; text-decoration: none;
}
/* Página activa en el panel móvil: texto verde y la misma luz discreta de la cabecera, a la izquierda. */
.panel__lista [aria-current], .panel__lista .current-menu-ancestor > a, .panel__lista .current-page-ancestor > a, .panel__lista .current_page_parent > a { color: var(--clorofila); }
.panel__lista [aria-current]::before, .panel__lista .current-menu-ancestor > a::before, .panel__lista .current-page-ancestor > a::before, .panel__lista .current_page_parent > a::before {
	content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 .7rem .2em 0; border-radius: 50%; vertical-align: middle;
	background: var(--clorofila); box-shadow: 0 0 8px var(--clorofila);
}
.panel .boton { width: 100%; margin-top: 1.25rem; }
@media (max-width: 63.99em) {
	.cab__nav, .cab__cta, .cab .idiomas--cabecera { display: none; }
	.cab__menu { display: inline-flex; }
	html:not(.js) .cab__menu { display: none; }
	.panel { padding: 1rem var(--margen) 1.5rem; border-bottom: 1px solid var(--linea); background: rgba(3, 5, 4, .97); }
	html:not(.js) .panel { display: block; }
	.js .cab.is-abierta .panel { display: block; max-height: calc(100dvh - var(--cab-alto)); overflow-y: auto; }
	html:not(.js) .cab { position: relative; }
}
.lume-sin-scroll { overflow: hidden; }

/* 7. Idiomas ------------------------------------------------------------------------------ */
.idiomas ul { display: flex; gap: .2rem; margin: 0; padding: 0; list-style: none; }
.idiomas a {
	display: inline-flex; align-items: center; min-height: 2.25rem; padding: .3rem .65rem; border-radius: 999px;
	color: var(--niebla); font-size: .86rem; font-weight: 560; text-decoration: none; transition: color .2s, background-color .2s;
}
.idiomas a:hover { color: var(--bruma); background: rgba(232, 238, 233, .06); }
.idiomas [aria-current] { color: var(--bruma); box-shadow: inset 0 0 0 1px var(--linea-2); }
.idiomas--panel { margin-top: 1rem; }
.idiomas--panel ul { gap: .5rem; }
.idiomas--panel a { display: inline-flex; align-items: center; min-height: 2.75rem; padding-inline: 1.1rem; font-size: 1rem; }
.idiomas--pie { margin-top: 1.25rem; }

/* 8. Pie y barra móvil -------------------------------------------------------------------- */
.pie {
	position: relative; z-index: 1; overflow: hidden; padding-block: 4rem 6rem;
	border-top: 1px solid var(--linea); background: rgba(3, 5, 4, .94); color: var(--niebla); font-size: .92rem;
}
.pie__in { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 2rem; }
.pie .lume-logo__img, .pie img { width: auto; height: 30px; margin-bottom: 1rem; }
.pie h2 { margin: 0 0 .75rem; color: var(--bruma); font-size: .92rem; font-weight: 600; font-stretch: 100%; letter-spacing: 0; }
.pie ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.pie a { text-decoration: none; }
.pie a:hover, .pie [aria-current] { color: var(--bruma); }
.pie__legal { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 2rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--linea); color: var(--tenue); font-size: .84rem; }
.pie__legal p { margin: 0; }
.pie__legal ul { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.pie__preferencias button { padding: 0; border: 0; background: none; color: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.pie__firma {
	margin: 4rem 0 0; color: transparent; font-size: clamp(2.4rem, .8rem + 6.4vw, 7.4rem); font-weight: 800;
	font-stretch: 125%; line-height: .9; letter-spacing: -.045em; white-space: nowrap; -webkit-text-stroke: 1px rgba(87, 214, 90, .35);
}
@media (max-width: 50em) { .pie__in { grid-template-columns: 1fr 1fr; } .pie__marca { grid-column: 1 / -1; } .pie__firma { white-space: normal; } }
/* Barra de conversión en móvil: una sola acción (D5). Aparece tras el hero y se oculta en el cierre. */
.cta-movil {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: grid;
	padding: .6rem var(--margen) calc(.6rem + env(safe-area-inset-bottom));
	border-top: 1px solid var(--linea); background: rgba(3, 5, 4, .96); transition: translate .35s var(--ease), visibility 0s;
}
.cta-movil .boton { min-height: 2.9rem; padding-inline: .8rem; font-size: .92rem; }
.cta-movil .boton svg { display: none; }
.js .cta-movil:not(.visible) { translate: 0 110%; visibility: hidden; transition: translate .35s var(--ease), visibility 0s .35s; }
@media (min-width: 64em) { .cta-movil { display: none; } }
@media (max-width: 63.99em) { html { scroll-padding-bottom: 5.5rem; } body:has(.cta-movil) .pie { padding-bottom: 8rem; } }

/* 9. Hero interior y haz de luz ----------------------------------------------------------- */
.hero-int { position: relative; isolation: isolate; overflow: clip; padding-block: calc(var(--cab-alto) + 4rem) clamp(3rem, 7vh, 5rem); }
.hero-int--alto { min-height: min(92svh, 60rem); display: grid; align-content: end; }
.hero-int::before {
	content: ""; position: absolute; inset: 0; z-index: -2; pointer-events: none; opacity: .55;
	background-image: linear-gradient(var(--linea) 1px, transparent 1px), linear-gradient(90deg, var(--linea) 1px, transparent 1px);
	background-size: 56px 56px; background-position: -1px -1px;
	-webkit-mask: radial-gradient(ellipse 70% 80% at 72% 30%, #000, transparent 70%); mask: radial-gradient(ellipse 70% 80% at 72% 30%, #000, transparent 70%);
}
.haz {
	position: absolute; z-index: -1; pointer-events: none; top: -12%; right: 6%; width: clamp(14rem, 24vw, 26rem); height: 125%;
	transform-origin: 50% 0; rotate: 17deg; filter: blur(20px);
	background: linear-gradient(90deg, transparent, rgba(87, 214, 90, .07) 22%, rgba(139, 234, 140, .3) 44%, rgba(225, 255, 225, .5) 50%, rgba(139, 234, 140, .28) 56%, rgba(87, 214, 90, .07) 78%, transparent);
	-webkit-mask: linear-gradient(180deg, rgba(0, 0, 0, .35), #000 18%, #000 45%, transparent 92%); mask: linear-gradient(180deg, rgba(0, 0, 0, .35), #000 18%, #000 45%, transparent 92%);
}
.haz::after {
	content: ""; position: absolute; left: 50%; bottom: 14%; width: 160%; aspect-ratio: 3 / 1; translate: -50% 0; border-radius: 50%;
	background: radial-gradient(closest-side, rgba(87, 214, 90, .28), transparent); filter: blur(10px);
}
.migas { margin: 0 0 2rem; color: var(--tenue); font-size: .88rem; }
.migas ol { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.migas li { display: inline-flex; align-items: center; gap: .35rem; }
.migas li + li::before {
	content: ""; width: .32rem; height: .32rem; margin-right: .2rem; opacity: .7; rotate: 45deg;
	border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor;
}
.migas a { color: var(--niebla); text-decoration: none; border-radius: 4px; }
.migas a:hover { color: var(--bruma); text-decoration: underline; text-underline-offset: 3px; }
.migas [aria-current] { color: var(--bruma); }
.titulo-int { margin: 0; font-weight: 760; font-stretch: 118%; letter-spacing: -.04em; }
.titulo-int__tema {
	display: flex; align-items: center; gap: .75rem; margin-bottom: .55em; color: var(--niebla);
	font-size: clamp(1.05rem, .85rem + .8vw, 1.55rem); font-weight: 620; font-stretch: 110%; letter-spacing: -.01em; line-height: 1.2;
}
.titulo-int__tema::before {
	content: ""; flex: none; width: .6rem; height: .6rem; border-radius: 50%;
	background: var(--clorofila); box-shadow: 0 0 12px var(--clorofila), 0 0 26px rgba(87, 214, 90, .5);
}
.titulo-int__res {
	display: block; font-size: var(--t-display); line-height: .98; text-wrap: balance;
	/* El texto con degradado solo se pinta dentro de la caja: el relleno inferior deja sitio a los descendentes
	   (g, j, p, q, y) de la última línea y el margen negativo conserva el espaciado. */
	padding-bottom: .22em; margin-bottom: -.22em;
	background: linear-gradient(100deg, var(--bruma) 40%, #fff 50%, var(--bruma) 60%) 100% 0 / 250% 100%;
	-webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: 0 0 50px rgba(87, 214, 90, .18);
}
.titulo-int--simple .titulo-int__res { font-size: clamp(2.3rem, 1rem + 3.8vw, 4.6rem); }
.hero-int__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 3rem 4rem; align-items: end; }
.hero-int__grid--solo { grid-template-columns: minmax(0, 1fr); max-width: 60rem; }
.hero-int__lead { margin: 1.6rem 0 0; max-width: 38rem; color: var(--niebla); font-size: var(--t-lead); text-wrap: pretty; }
.hero-int__acciones { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.datos-clave { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: clamp(2.5rem, 6vh, 4rem) 0 0; border-top: 1px solid var(--linea); }
.datos-clave div { padding: 1rem 1.25rem 0 0; }
.datos-clave div + div { padding-left: 1.25rem; border-left: 1px solid var(--linea); }
.datos-clave dt { color: var(--tenue); font-size: .8rem; }
.datos-clave dd { margin: .2rem 0 0; font-weight: 620; font-stretch: 108%; }
@media (prefers-reduced-motion: no-preference) {
	.js .haz { animation: haz-enciende 2.2s var(--ease) .2s both; }
	.js .titulo-int__tema { animation: aparecer .9s var(--ease) .1s both; }
	.js .titulo-int__res { animation: aparecer 1.1s var(--ease) .3s both, brillo 2.4s var(--ease) 1.2s both; }
	.js .hero-int .entrada { animation: aparecer 1s var(--ease) .7s both; }
}
@keyframes haz-enciende { 0% { opacity: 0; scale: 1 .6; } 35% { opacity: .35; } 45% { opacity: .15; } 100% { opacity: 1; scale: 1 1; } }
@media (max-width: 63.99em) {
	.hero-int { padding-top: calc(var(--cab-alto) + 2.5rem); }
	.hero-int__grid { grid-template-columns: minmax(0, 1fr); }
	.haz { width: 60vw; right: -6%; rotate: 12deg; }
}
@media (max-width: 40em) {
	.datos-clave { grid-template-columns: 1fr; }
	.datos-clave div { padding: .8rem 0; }
	.datos-clave div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--linea); }
}

/* 10. Componentes comunes ----------------------------------------------------------------- */
/* Panel de vidrio. */
.vidrio, .is-style-lume-oscuro, .is-style-lume-marco {
	padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--linea-2); border-radius: var(--radio-grande);
	background: rgba(7, 12, 9, .86); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
.is-style-lume-sombra { padding: clamp(1.5rem, 4vw, 3rem); border-radius: var(--radio-grande); background: var(--grafito); }
/* Tarjeta de servicio de vidrio con borde de luz al pasar el cursor. */
.servicio {
	position: relative; display: block; padding: 1.25rem 1.4rem 1.3rem; border: 1px solid var(--linea); border-radius: var(--radio);
	background: linear-gradient(180deg, rgba(232, 238, 233, .055), rgba(232, 238, 233, .015)); text-decoration: none;
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	transition: border-color .35s, transform .35s var(--ease), background-color .35s;
}
.servicio::after {
	content: ""; position: absolute; inset: -1px; padding: 1px; border-radius: inherit; pointer-events: none; opacity: 0;
	background: conic-gradient(from var(--a, 0deg), var(--clorofila), transparent 25%, transparent 60%, var(--filamento), var(--clorofila));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
	transition: opacity .45s var(--ease);
}
.servicio:hover, .servicio:focus-visible { transform: translateY(-2px); }
.servicio:hover::after, .servicio:focus-visible::after { opacity: 1; animation: giro 4s linear infinite; }
@property --a { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes giro { to { --a: 360deg; } }
.servicio h3, .servicio h4, .servicio__nombre {
	display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 0;
	font-size: 1.18rem; font-weight: 660; font-stretch: 112%; letter-spacing: -.01em;
}
.servicio svg { flex: none; width: 1.1rem; height: 1.1rem; color: var(--clorofila); transition: translate .3s var(--ease); }
.servicio:hover svg { translate: 4px 0; }
.servicio p, .servicio__resumen { display: block; margin: .4rem 0 0; color: var(--niebla); font-size: .97rem; }
.servicio--pilar { border-color: var(--linea-verde); background: linear-gradient(160deg, rgba(87, 214, 90, .11), rgba(232, 238, 233, .015) 62%); }
/* Indicador de luz (encendido, ámbar, apagado, alerta). Nunca depende solo del color: va con texto. */
.luz { display: inline-block; flex: none; width: .7rem; height: .7rem; border-radius: 50%; background: var(--apagado); box-shadow: inset 0 0 0 1px var(--linea-2); }
.luz--on { background: var(--clorofila); box-shadow: 0 0 10px var(--clorofila), 0 0 22px rgba(87, 214, 90, .5); }
.luz--ambar { background: var(--filamento); box-shadow: 0 0 10px var(--filamento); }
.luz--alerta { background: var(--alerta); box-shadow: 0 0 10px rgba(255, 90, 78, .7); }
/* Pasos «qué pasa después» en cápsulas (cierre). */
.siguientes { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin: 2rem auto 2.4rem; padding: 0; list-style: none; counter-reset: s; }
.siguientes li {
	counter-increment: s; display: flex; align-items: center; gap: .6rem; padding: .55rem 1rem .55rem .55rem;
	border: 1px solid var(--linea-2); border-radius: 999px; background: rgba(3, 5, 4, .7); font-size: .95rem;
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.siguientes li::before {
	content: counter(s); display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%;
	background: rgba(87, 214, 90, .15); color: var(--clorofila); font-size: .85rem; font-weight: 700;
}
/* Cierre interior: haz vertical, sin arco (B5). */
.cierre-int { position: relative; isolation: isolate; overflow: clip; padding-block: clamp(7rem, 16vh, 10rem); text-align: center; }
.cierre-int::before {
	content: ""; position: absolute; z-index: -1; left: 50%; top: -10%; width: min(70rem, 140vw); height: 120%; translate: -50% 0; pointer-events: none;
	background: conic-gradient(from 180deg at 50% 0%, transparent 160deg, rgba(87, 214, 90, .18) 176deg, rgba(200, 255, 200, .3) 180deg, rgba(87, 214, 90, .18) 184deg, transparent 200deg);
	filter: blur(16px); opacity: var(--o, .25); transition: opacity 1.6s var(--ease);
	-webkit-mask: linear-gradient(180deg, #000 30%, transparent 95%); mask: linear-gradient(180deg, #000 30%, transparent 95%);
}
.cierre-int.on::before, html:not(.js) .cierre-int::before { --o: 1; }
.cierre-int::after {
	content: ""; position: absolute; z-index: -1; left: 50%; bottom: 9%; width: min(42rem, 90vw); height: 5rem; translate: -50% 0;
	border-radius: 50%; background: radial-gradient(closest-side, rgba(87, 214, 90, .22), transparent); filter: blur(8px);
}
.cierre-int .h2 { max-width: 13em; margin-inline: auto; font-size: clamp(2.2rem, 1rem + 3.9vw, 4.8rem); }
.cierre-int .micro { margin-inline: auto; }
/* Preguntas frecuentes (bloque Detalles nativo; FAQPage lo genera el plugin). */
.faq { padding-block: clamp(5rem, 12vh, 8rem); }
.faq__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 2rem 5rem; align-items: start; }
.faq__grid > .h2 { position: sticky; top: 7rem; }
.faq details, .is-style-lume-pregunta, .lume-faq .wp-block-details { border-bottom: 1px solid var(--linea); }
.faq details:first-of-type, .lume-faq .wp-block-details:first-of-type { border-top: 1px solid var(--linea); }
.faq summary, .is-style-lume-pregunta summary, .lume-faq summary {
	display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.35rem 0; cursor: pointer; list-style: none;
	font-size: clamp(1.08rem, 1rem + .35vw, 1.3rem); font-weight: 620; font-stretch: 108%;
}
.faq summary::-webkit-details-marker, .is-style-lume-pregunta summary::-webkit-details-marker, .lume-faq summary::-webkit-details-marker { display: none; }
.faq summary::after, .is-style-lume-pregunta summary::after, .lume-faq summary::after {
	content: ""; flex: none; width: .7rem; height: .7rem; border: 2px solid var(--tenue); border-radius: 50%;
	transition: background-color .35s, border-color .35s, box-shadow .35s;
}
.faq details[open] summary::after, .is-style-lume-pregunta[open] summary::after, .lume-faq details[open] summary::after {
	background: var(--clorofila); border-color: var(--clorofila); box-shadow: 0 0 12px var(--clorofila);
}
.faq summary:hover, .is-style-lume-pregunta summary:hover, .lume-faq summary:hover { color: #fff; }
.faq details > :not(summary), .is-style-lume-pregunta > :not(summary), .lume-faq details > :not(summary) { max-width: 42rem; margin: 0 0 1.4rem; color: var(--niebla); }
@media (max-width: 63.99em) { .faq__grid { grid-template-columns: 1fr; } .faq__grid > .h2 { position: static; } }
/* Tabla comparativa accesible (tabla real; en móvil se apila por filas). En el editor: estilo «Tabla comparativa». */
.comparar-marco, .is-style-lume-comparar { overflow: hidden; margin: 0; border: 1px solid var(--linea-2); border-radius: 22px; background: rgba(7, 12, 9, .86); }
.is-style-lume-comparar .comparar th, .is-style-lume-comparar .comparar td { border-left: 0; border-right: 0; border-top: 0; }
.profundidad { display: flex; gap: 4px; margin-bottom: .75rem; }
.profundidad i { width: 18px; height: 3px; border-radius: 2px; background: var(--linea-2); }
.profundidad i.si { background: var(--clorofila); box-shadow: 0 0 8px var(--clorofila); }
.comparar thead td { border-bottom: 1px solid var(--linea); }
.comparar { width: 100%; border-collapse: collapse; font-size: .96rem; }
.comparar caption { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.comparar th, .comparar td { padding: 1rem 1.25rem; border-bottom: 1px solid var(--linea); text-align: left; vertical-align: top; }
.comparar tbody tr:last-child > * { border-bottom: 0; }
.comparar thead th { padding-top: 1.4rem; color: var(--bruma); font-size: 1.12rem; font-weight: 680; font-stretch: 112%; vertical-align: bottom; }
.comparar tbody th { width: 13rem; color: var(--tenue); font-size: .86rem; font-weight: 540; }
.comparar td { color: var(--niebla); }
.comparar td b, .comparar td strong { color: var(--bruma); font-weight: 620; }
.comparar a { color: var(--clorofila); font-weight: 620; text-decoration: none; }
.comparar a:hover { text-decoration: underline; text-underline-offset: 3px; }
.col-destacada { background: linear-gradient(180deg, rgba(87, 214, 90, .08), rgba(87, 214, 90, .02)); }
.comparar thead .col-destacada { box-shadow: inset 0 2px 0 var(--clorofila); }
.etiqueta-ambar { display: inline-block; padding: .15rem .55rem; border: 1px solid rgba(255, 182, 72, .45); border-radius: 999px; color: var(--filamento); font-size: .76rem; font-weight: 620; }
@media (max-width: 50em) {
	.comparar, .comparar tbody, .comparar tr, .comparar th, .comparar td { display: block; }
	.comparar thead { display: none; }
	.comparar tbody tr { padding: .6rem 1.1rem; border-bottom: 1px solid var(--linea); }
	.comparar tbody th, .contenido .comparar tbody th { width: auto; padding: .6rem 0 .2rem; border: 0; color: var(--bruma); font-size: .95rem; font-weight: 640; }
	/* La etiqueta flota a la izquierda y la celda la contiene: si ocupa dos líneas, la fila crece con ella. */
	.comparar td, .contenido .comparar td { display: flow-root; padding: .35rem 0 .35rem 7.5rem; border: 0; }
	.comparar td::before { content: attr(data-col); float: left; width: 7rem; margin-left: -7.5rem; color: var(--tenue); font-size: .8rem; line-height: 1.35; }
	.col-destacada { background: none; }
}
/* Ruta por hitos (patrón «Pasos numerados» y componente de las páginas). */
.ruta-marco { position: relative; }
.ruta { position: relative; display: grid; grid-template-columns: repeat(var(--pasos, 5), minmax(0, 1fr)); gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.ruta__linea { position: absolute; left: .55rem; right: 0; top: .5rem; height: 2px; background: var(--linea); }
.ruta__linea::before {
	content: ""; position: absolute; inset: 0; transform-origin: left; transform: scaleX(var(--p, 0));
	background: linear-gradient(90deg, rgba(87, 214, 90, .4), var(--clorofila) 55%, var(--filamento)); box-shadow: 0 0 14px rgba(87, 214, 90, .55);
	transition: transform 1.2s var(--ease);
}
html:not(.js) .ruta__linea::before { --p: 1; }
.paso { position: relative; padding-top: 2.4rem; }
.paso::before {
	content: ""; position: absolute; top: 0; left: 0; width: 1.1rem; height: 1.1rem; border: 2px solid var(--tenue); border-radius: 50%;
	background: var(--noche); transition: border-color .5s, box-shadow .5s, background-color .5s;
}
.paso.on::before, html:not(.js) .paso::before { border-color: var(--clorofila); box-shadow: 0 0 14px rgba(87, 214, 90, .7); }
.paso:last-child.on::before { border-color: var(--filamento); background: var(--filamento); box-shadow: 0 0 20px var(--filamento); }
.paso h3 { margin: 0 0 .4rem; font-size: 1.2rem; font-weight: 680; font-stretch: 112%; letter-spacing: -.01em; transition: color .5s; }
.paso p { margin: 0; color: var(--niebla); font-size: .96rem; }
.js .paso:not(.on) h3 { color: var(--niebla); }
@media (max-width: 63.99em) {
	.ruta-marco { padding-left: 2.4rem; }
	.ruta { grid-template-columns: 1fr; gap: 2.2rem; }
	.ruta__linea { left: .5rem; right: auto; top: .2rem; bottom: 0; width: 2px; height: auto; }
	.ruta__linea::before { transform-origin: top; transform: scaleY(var(--p, 0)); background: linear-gradient(180deg, rgba(87, 214, 90, .4), var(--clorofila) 60%, var(--filamento)); }
	.paso { padding-top: 0; }
	.paso::before { left: -2.4rem; top: .2rem; }
}

/* 11. Contenido del editor y estilos de bloque -------------------------------------------- */
.contenido { padding-block: 1rem clamp(4rem, 10vh, 6rem); }
.contenido > * { width: min(100% - 2 * var(--margen), var(--texto)); margin-inline: auto; }
.contenido > .alignwide { width: min(100% - 2 * var(--margen), var(--ancho)); }
.contenido > .alignfull { width: 100%; }
.contenido > .alignfull > * { width: min(100% - 2 * var(--margen), var(--ancho)); margin-inline: auto; }
.contenido h2 { margin-block: 3.5rem 1.25rem; font-size: clamp(1.8rem, 1.1rem + 2.2vw, 3rem); line-height: 1.02; }
.contenido h3 { margin-block: 2.5rem .9rem; font-size: var(--t-h3); }
.contenido h4 { margin-block: 2rem .7rem; font-size: 1.2rem; font-stretch: 110%; letter-spacing: -.01em; }
.contenido p, .contenido li { color: rgba(232, 238, 233, .86); }
.contenido a:not(.boton):not(.wp-block-button__link) { color: var(--clorofila); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.contenido a:not(.boton):not(.wp-block-button__link):hover { color: var(--clorofila-2); }
.contenido strong { color: var(--bruma); font-weight: 640; }
.contenido ul, .contenido ol { padding-left: 1.25rem; }
.contenido li + li { margin-top: .4rem; }
.contenido blockquote { margin: 2rem auto; padding-left: 1.25rem; border-left: 2px solid var(--clorofila); font-size: var(--t-lead); }
.contenido hr { height: 1px; margin-block: 3rem; border: 0; background: var(--linea); }
.contenido table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.contenido th, .contenido td { padding: .75rem 1rem; border-bottom: 1px solid var(--linea); text-align: left; vertical-align: top; }
.contenido th { color: var(--bruma); font-weight: 620; }
.contenido figure { margin: 2rem auto; }
.contenido figcaption { margin-top: .6rem; color: var(--tenue); font-size: .86rem; }
.lume-seccion { padding-block: clamp(2.5rem, 6vh, 4rem); }
/* Lienzo (portada provisional hasta la etapa 2 y páginas compuestas): deja sitio a la cabecera fija. */
.pagina__migas { padding-top: calc(var(--cab-alto) + 2rem); }
.home .contenido--lienzo, .page-template-lienzo .contenido--lienzo { padding-top: calc(var(--cab-alto) + 2rem); }
.articulo__imagen { margin-block: 1rem 2rem; }
.articulo__imagen img { width: 100%; border-radius: var(--radio-grande); }
.is-style-lume-entradilla { color: var(--niebla) !important; font-size: var(--t-lead); text-wrap: pretty; }
.is-style-lume-nota { color: var(--tenue) !important; font-size: .9rem; }
.is-style-lume-ancho { font-size: var(--t-h2) !important; line-height: 1 !important; }
/* Lista con indicadores de luz. */
.is-style-lume-luces, .is-style-lume-problemas { display: grid; gap: .75rem; padding: 0 !important; list-style: none; }
.is-style-lume-luces li, .is-style-lume-problemas li { position: relative; margin: 0 !important; padding-left: 1.6rem; }
.is-style-lume-luces li::before, .is-style-lume-problemas li::before {
	content: ""; position: absolute; left: 0; top: .5em; width: .6rem; height: .6rem; border-radius: 50%;
	background: var(--clorofila); box-shadow: 0 0 10px var(--clorofila);
}
.is-style-lume-problemas li { color: var(--bruma); font-size: clamp(1.15rem, 1rem + .6vw, 1.5rem); font-weight: 650; font-stretch: 108%; line-height: 1.25; }
.is-style-lume-problemas li::before { background: var(--filamento); box-shadow: 0 0 10px var(--filamento); }
/* Rejilla de alcance: piezas con esquina de luz al pasar el cursor. */
.is-style-lume-incluye {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); padding: 0 !important; list-style: none;
	border-top: 1px solid var(--linea); border-left: 1px solid var(--linea);
}
.is-style-lume-incluye li {
	position: relative; margin: 0 !important; padding: 1.2rem 1.2rem 1.4rem; border-right: 1px solid var(--linea); border-bottom: 1px solid var(--linea);
	color: var(--niebla); font-size: .95rem; transition: background-color .4s;
}
.is-style-lume-incluye li::before {
	content: ""; position: absolute; left: -1px; top: -1px; width: 9px; height: 9px; opacity: 0;
	border-left: 2px solid var(--clorofila); border-top: 2px solid var(--clorofila); transition: opacity .35s;
}
.is-style-lume-incluye li:hover { background: rgba(87, 214, 90, .04); }
.is-style-lume-incluye li:hover::before { opacity: 1; }
.is-style-lume-incluye strong { display: block; margin-bottom: .3rem; color: var(--bruma); font-size: 1.05rem; }
/* Ruta por hitos como lista del editor. */
.is-style-lume-pasos { position: relative; display: grid; gap: 1.8rem; padding: 0 0 0 2.4rem !important; list-style: none; counter-reset: paso; }
.is-style-lume-pasos::before { content: ""; position: absolute; left: .5rem; top: .3rem; bottom: .3rem; width: 2px; background: linear-gradient(180deg, var(--clorofila), var(--filamento)); box-shadow: 0 0 10px rgba(87, 214, 90, .45); }
.is-style-lume-pasos li { position: relative; margin: 0 !important; counter-increment: paso; }
.is-style-lume-pasos li::before {
	content: ""; position: absolute; left: -2.4rem; top: .25rem; width: 1.1rem; height: 1.1rem; border: 2px solid var(--clorofila); border-radius: 50%;
	background: var(--noche); box-shadow: 0 0 12px rgba(87, 214, 90, .6);
}
.is-style-lume-pasos li:last-child::before { border-color: var(--filamento); background: var(--filamento); box-shadow: 0 0 16px var(--filamento); }
.is-style-lume-pasos strong { display: block; color: var(--bruma); font-size: 1.15rem; font-stretch: 110%; }
/* Contenido pendiente de validación: solo lo ven los editores (el plugin lo oculta al público). */
.is-style-lume-pendiente, .lume-pendiente { position: relative; padding: 1rem 1.25rem; border: 1.5px dashed var(--filamento); border-radius: 12px; }
.is-style-lume-pendiente::before, .lume-pendiente:not(.is-style-lume-pendiente)::before { content: "Pendiente de validación · solo visible para editores"; display: block; margin-bottom: .5rem; color: var(--filamento); font-size: .78rem; font-weight: 650; }

/* 12. Búsqueda y aviso de cookies (el formulario de proyecto está en contacto.css) --------- */
.search-form { display: flex; flex-wrap: wrap; gap: .6rem; }
.search-form label { flex: 1 1 14rem; }
.search-form input[type="search"] {
	width: 100%; min-height: 3rem; padding: .7rem .9rem; border: 1px solid var(--linea-2); border-radius: 12px;
	background: rgba(232, 238, 233, .035); color: var(--bruma); font-size: 1rem; transition: border-color .25s, box-shadow .25s, background-color .25s;
}
.search-form input:focus { outline: none; border-color: var(--clorofila); background: rgba(87, 214, 90, .03); box-shadow: 0 0 0 3px rgba(87, 214, 90, .2); }
.search-form .search-submit { min-height: 3rem; padding: .7rem 1.2rem; border: 0; border-radius: 999px; background: var(--bruma); color: var(--sobre-verde); font-weight: 650; cursor: pointer; }
.lume-cookies { position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 90; padding: 1rem; pointer-events: none; }
.lume-cookies__caja {
	display: grid; gap: .75rem; max-width: 34rem; padding: 1.25rem; border: 1px solid var(--linea-2); border-radius: var(--radio);
	background: rgba(9, 14, 11, .97); color: var(--bruma); box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .9); pointer-events: auto; font-size: .94rem;
}
.lume-cookies__texto { margin: 0; color: var(--niebla); }
.lume-cookies__texto a { color: var(--clorofila); }
.lume-cookies__acciones { display: flex; flex-wrap: wrap; gap: .5rem; }
/* Las dos opciones tienen el mismo peso visual. */
.lume-cookies__boton { flex: 1 1 10rem; min-height: 2.75rem; padding: .6rem 1rem; border: 1px solid var(--linea-2); border-radius: 999px; background: rgba(232, 238, 233, .04); color: var(--bruma); font-weight: 620; cursor: pointer; }
.lume-cookies__boton:hover { border-color: var(--clorofila); }

/* 13. Listados, relacionados y 404 -------------------------------------------------------- */
.listado__lista, .relacionados__lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: .8rem; margin: 0; padding: 0; list-style: none; }
.listado__vacio { color: var(--niebla); }
.relacionados { border-top: 1px solid var(--linea); }
.relacionados__titulo { margin-bottom: 1.75rem; font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.2rem); }
.lume-fechas { color: var(--tenue); font-size: .9rem; }
.error-404__luz { width: 3.2rem; height: 3.2rem; margin: 0 0 2rem; border: 2px solid var(--tenue); border-radius: 50%; border-top-color: transparent; rotate: 45deg; }
.error-404__enlaces { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.error-404__enlaces a { color: var(--clorofila); font-weight: 600; }
.error-404__buscar { max-width: 32rem; margin-top: 2.5rem; color: var(--niebla); }
.nav-links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2.5rem; }
.nav-links .page-numbers { display: inline-grid; place-items: center; min-width: 2.75rem; min-height: 2.75rem; padding: 0 .8rem; border: 1px solid var(--linea); border-radius: 999px; text-decoration: none; }
.nav-links .current { border-color: var(--clorofila); color: var(--clorofila); }

/* 14. Páginas compuestas: secciones del editor y componentes compartidos (etapa 2) -------- */
/* Cada grupo de primer nivel es una sección a ancho completo cuyo contenido se alinea con el contenedor. */
.lienzo > * { margin: 0; }
.lienzo > .wp-block-group { padding-inline: max(var(--margen), calc((100% - var(--ancho)) / 2)); padding-block: clamp(5rem, 12vh, 8.5rem); }
.lienzo h2.wp-block-heading { font-size: var(--t-h2); line-height: 1; letter-spacing: -.035em; }
.lienzo .is-style-lume-entradilla { max-width: 36rem; margin: 0; }
.lienzo .is-style-lume-entradilla strong { color: var(--bruma); font-weight: 600; }
.lienzo .is-style-lume-nota { margin: 1.25rem 0 0; }
.lienzo a:not(.boton):not(.servicio):not(.lume-autoeval__auditoria) { color: var(--clorofila); text-underline-offset: 3px; }
.lienzo a:not(.boton):not(.servicio):not(.lume-autoeval__auditoria):hover { color: var(--clorofila-2); }
/* Cabecera de sección: antetítulo y titular a la izquierda, entradilla a la derecha, el resto debajo. */
.is-style-lume-seccion-cab { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); column-gap: 4rem; align-items: end; }
.is-style-lume-seccion-cab > * { grid-column: 1 / -1; margin: 0; }
.is-style-lume-seccion-cab > :nth-child(1) { grid-column: 1; grid-row: 1; margin-bottom: 1.25rem; }
.is-style-lume-seccion-cab > :nth-child(2) { grid-column: 1; grid-row: 2; }
.is-style-lume-seccion-cab > :nth-child(3) { grid-column: 2; grid-row: 1 / 3; }
.is-style-lume-seccion-cab > :nth-child(4) { margin-top: clamp(2.25rem, 5vh, 3.5rem); }
.is-style-lume-seccion-cab > :nth-child(n+5) { margin-top: 1.5rem; }
.is-style-lume-seccion-cab > :nth-child(3) > * + * { margin-top: .9rem; }
@media (max-width: 63.99em) {
	.is-style-lume-seccion-cab { grid-template-columns: minmax(0, 1fr); }
	.is-style-lume-seccion-cab > :nth-child(3) { grid-column: 1; grid-row: 3; margin-top: 1.25rem; }
}
/* Dos columnas (texto y pieza). */
.lume-dos-columnas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem 5rem; align-items: center; }
.lume-dos-columnas--activos { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.lume-dos-columnas > *, .lume-dos-columnas > .wp-block-group > * { margin: 0; }
.lume-dos-columnas > .wp-block-group > * + * { margin-top: 1.25rem; }
.lume-dos-columnas > .wp-block-group > .is-style-lume-kicker + * { margin-top: 0; }
@media (max-width: 63.99em) { .lume-dos-columnas, .lume-dos-columnas--activos { grid-template-columns: minmax(0, 1fr); } }
/* Acción principal del editor. */
.lume-acciones__botones { display: flex; flex-wrap: wrap; gap: .75rem; }
/* Tarjetas de servicio en serie. */
.servicio + .servicio { margin-top: .8rem; }
/* Preguntas frecuentes del editor: titular fijo a la izquierda. */
.lume-faq { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); column-gap: 5rem; align-items: start; }
.lume-faq > * { grid-column: 2; margin: 0; }
.lume-faq > h2 { grid-column: 1; grid-row: 1 / span 30; position: sticky; top: 7rem; }
/* La columna del titular es estrecha: tamaño propio para que palabras largas («preguntarnos») no se salgan. */
.lienzo .lume-faq > h2.wp-block-heading { font-size: clamp(2rem, .9rem + 2.5vw, 3.5rem); }
@media (max-width: 63.99em) {
	.lume-faq { grid-template-columns: minmax(0, 1fr); }
	.lume-faq > *, .lume-faq > h2 { grid-column: 1; grid-row: auto; }
	.lume-faq > h2 { position: static; margin-bottom: 2rem; }
}
/* Ruta por hitos desde una lista del editor (el tema añade la línea de luz). */
.ruta > .paso { margin: 0; color: var(--niebla); font-size: .96rem; }
.ruta > .paso strong { display: block; margin: 0 0 .4rem; color: var(--bruma); font-size: 1.2rem; font-weight: 680; font-stretch: 112%; letter-spacing: -.01em; transition: color .5s; }
.js .ruta > .paso:not(.on) strong { color: var(--niebla); }
/* Inventario de activos: tabla real con luces de control. */
.is-style-lume-inventario { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--linea-2); border-radius: 22px; background: rgba(7, 12, 9, .88); }
.is-style-lume-inventario::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0; translate: -100% 0;
	background: linear-gradient(90deg, transparent, rgba(87, 214, 90, .10) 50%, transparent) 0 0 / 40% 100% no-repeat;
}
.is-style-lume-inventario.visto::before { animation: barrido 2.4s var(--ease) .2s; }
@keyframes barrido { 0% { opacity: 1; translate: -100% 0; } 100% { opacity: 1; translate: 350% 0; } }
.is-style-lume-inventario table { width: 100%; border-collapse: collapse; table-layout: auto; }
.is-style-lume-inventario th, .is-style-lume-inventario td { padding: .95rem 1.25rem; border: 0; text-align: left; vertical-align: middle; }
.is-style-lume-inventario thead th { color: var(--tenue); font-size: .78rem; font-weight: 520; border-bottom: 1px solid var(--linea); }
.is-style-lume-inventario thead th:last-child { width: 4.5rem; text-align: center; }
.is-style-lume-inventario tbody tr + tr > * { border-top: 1px solid var(--linea); }
.is-style-lume-inventario tbody td:first-child { width: 9.5rem; color: var(--bruma); font-weight: 640; font-stretch: 110%; }
.is-style-lume-inventario tbody td:nth-child(2) { color: var(--niebla); font-size: .95rem; }
.inventario__control { text-align: center !important; }
.luzita {
	display: inline-block; width: .75rem; height: .75rem; border-radius: 50%; background: var(--apagado); box-shadow: inset 0 0 0 1px var(--linea-2);
	transition: background-color .5s, box-shadow .5s; transition-delay: calc(var(--i, 0) * 180ms + .3s);
}
.is-style-lume-inventario.visto .luzita, html:not(.js) .luzita { background: var(--clorofila); box-shadow: 0 0 10px var(--clorofila), 0 0 22px rgba(87, 214, 90, .45); }
.is-style-lume-inventario figcaption {
	display: flex; align-items: center; gap: .55rem; margin: 0; padding: .85rem 1.25rem; border-top: 1px solid var(--linea);
	background: rgba(87, 214, 90, .05); color: var(--niebla); font-size: .85rem;
}
.is-style-lume-inventario figcaption::before { content: ""; width: .6rem; height: .6rem; border-radius: 50%; background: var(--clorofila); box-shadow: 0 0 8px var(--clorofila); }
@media (max-width: 40em) {
	.is-style-lume-inventario th, .is-style-lume-inventario td { padding: .8rem .9rem; }
	.is-style-lume-inventario tbody td:first-child { width: auto; }
	.is-style-lume-inventario tbody td:nth-child(2) { font-size: .86rem; }
}
/* Rejilla con iconos: alcance (rejilla de plano) y perfiles (tarjetas). */
.lume-rejilla { margin: 0; padding: 0; list-style: none; }
.lume-rejilla--alcance { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--linea); border-left: 1px solid var(--linea); }
.lume-rejilla--alcance .lume-elemento { position: relative; padding: 1.4rem 1.3rem 1.6rem; border-right: 1px solid var(--linea); border-bottom: 1px solid var(--linea); transition: background-color .4s; }
.lume-rejilla--alcance .lume-elemento::before {
	content: ""; position: absolute; left: -1px; top: -1px; width: 9px; height: 9px; opacity: 0;
	border-left: 2px solid var(--clorofila); border-top: 2px solid var(--clorofila); transition: opacity .35s;
}
.lume-rejilla--alcance .lume-elemento:hover { background: rgba(87, 214, 90, .04); }
.lume-rejilla--alcance .lume-elemento:hover::before { opacity: 1; }
.lume-rejilla--alcance svg { width: 2rem; height: 2rem; margin-bottom: 1rem; color: var(--clorofila); }
.lume-rejilla--alcance h3 { font-size: 1.08rem; font-weight: 660; font-stretch: 110%; letter-spacing: -.01em; }
.lume-rejilla--alcance p { margin: .4rem 0 0; color: var(--niebla); font-size: .93rem; }
@media (max-width: 63.99em) { .lume-rejilla--alcance { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 30em) { .lume-rejilla--alcance { grid-template-columns: minmax(0, 1fr); } }
.lume-rejilla--perfiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; }
.lume-rejilla--perfiles .lume-elemento {
	position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; min-height: 17rem; overflow: hidden;
	padding: 1.5rem; border: 1px solid var(--linea); border-radius: 20px; background: var(--vidrio); transition: border-color .4s;
}
.lume-rejilla--perfiles .lume-elemento::before {
	content: ""; position: absolute; inset: auto -30% -60% -30%; height: 80%; opacity: .6;
	background: radial-gradient(closest-side, rgba(87, 214, 90, .16), transparent); transition: opacity .6s, translate .8s var(--ease);
}
.lume-rejilla--perfiles .lume-elemento:hover { border-color: var(--linea-verde); }
.lume-rejilla--perfiles .lume-elemento:hover::before { opacity: 1; translate: 0 -18%; }
.lume-rejilla--perfiles svg { position: relative; width: 4.5rem; height: 4.5rem; color: var(--clorofila); }
.lume-rejilla--perfiles svg * { vector-effect: non-scaling-stroke; }
.lume-rejilla--perfiles svg path { stroke-dasharray: 220; stroke-dashoffset: 0; }
.lume-rejilla--perfiles h3 { position: relative; margin-top: auto; margin-bottom: .4rem; font-size: 1.3rem; font-weight: 680; font-stretch: 112%; letter-spacing: -.01em; }
.lume-rejilla--perfiles p { position: relative; margin: 0; color: var(--niebla); font-size: .97rem; }
@media (prefers-reduced-motion: no-preference) { .lume-rejilla--perfiles .lume-elemento:hover svg path { animation: trazo 1.3s var(--ease); } }
@keyframes trazo { from { stroke-dashoffset: 220; } }
@media (max-width: 63.99em) { .lume-rejilla--perfiles { grid-template-columns: minmax(0, 1fr); } .lume-rejilla--perfiles .lume-elemento { min-height: auto; } }
/* Beneficios con título. */
.is-style-lume-beneficios { display: grid; gap: 1.25rem; padding: 0 !important; list-style: none; }
.is-style-lume-beneficios li { position: relative; margin: 0 !important; padding-left: 1.4rem; color: var(--niebla); }
.is-style-lume-beneficios li::before { content: ""; position: absolute; left: 0; top: .6em; width: .5rem; height: .5rem; border-radius: 50%; background: var(--clorofila); box-shadow: 0 0 8px var(--clorofila); }
.is-style-lume-beneficios strong { display: block; color: var(--bruma); font-size: 1.06rem; font-weight: 640; }
/* Enlaces en línea con luz (p. ej., los servicios bajo el hero de la portada). */
.is-style-lume-enlaces { display: flex; flex-wrap: wrap; gap: .5rem 1.75rem; padding: 1.1rem 0 0 !important; border-top: 1px solid var(--linea); list-style: none; }
.is-style-lume-enlaces li { margin: 0 !important; }
.lienzo .is-style-lume-enlaces a { display: inline-flex; align-items: center; gap: .55rem; color: var(--niebla); font-size: .92rem; font-weight: 540; text-decoration: none; transition: color .25s; }
.lienzo .is-style-lume-enlaces a::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--verde); transition: background-color .25s, box-shadow .25s; }
.lienzo .is-style-lume-enlaces a:hover { color: var(--bruma); }
.lienzo .is-style-lume-enlaces a:hover::before { background: var(--clorofila); box-shadow: 0 0 8px var(--clorofila); }
/* Pulso de continuidad (ámbar). */
.latido { width: 100%; height: 56px; overflow: visible; }
.latido path { fill: none; stroke: var(--filamento); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 6px rgba(255, 182, 72, .7)); stroke-dasharray: 420; stroke-dashoffset: 0; }
.latido.vivo path { animation: latir 2.6s linear infinite; stroke-dashoffset: 420; }
@keyframes latir { to { stroke-dashoffset: -420; } }
/* Banda de continuidad (ámbar): enlaza un servicio con lo que viene después del lanzamiento. */
.is-style-lume-banda {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 1rem 4rem; align-items: center; padding: clamp(2rem, 5vh, 3rem);
	border: 1px solid rgba(255, 182, 72, .28); border-radius: 24px;
	background: radial-gradient(100% 120% at 0% 100%, rgba(255, 182, 72, .10), transparent 60%), rgba(7, 12, 9, .8);
}
.is-style-lume-banda > * { grid-column: 2; margin: 0; }
.is-style-lume-banda > .latido { grid-column: 1; grid-row: 1 / span 3; height: 64px; }
.is-style-lume-banda h2.wp-block-heading { font-size: clamp(1.7rem, 1rem + 2vw, 2.8rem); }
.is-style-lume-banda p { color: var(--niebla); }
.lienzo .is-style-lume-banda a:not(.boton) { color: var(--filamento); font-weight: 620; text-decoration: none; }
.lienzo .is-style-lume-banda a:not(.boton):hover { color: var(--filamento); text-decoration: underline; }
@media (max-width: 63.99em) { .is-style-lume-banda { grid-template-columns: minmax(0, 1fr); } .is-style-lume-banda > *, .is-style-lume-banda > .latido { grid-column: 1; grid-row: auto; } }

/* Lectura (artículos y páginas legales): índice lateral fijo en escritorio, plegado arriba en móvil. */
.lectura { padding-block: 1rem clamp(4rem, 10vh, 6rem); }
.lectura--con-indice { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 46rem); gap: 2rem 4rem; justify-content: center; align-items: start; }
.lectura .contenido { padding: 0; }
.lectura .contenido > * { width: auto; margin-inline: 0; }
.lectura .contenido > h2:first-child, .lectura .contenido > :first-child { margin-top: 0; }
.indice { position: sticky; top: calc(var(--cab-alto) + 2rem); padding: 1rem 0 1rem 1rem; border-left: 1px solid var(--linea-2); font-size: .9rem; }
.indice__titulo { margin: 0 0 .6rem; color: var(--tenue); font-size: .78rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.indice ol { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.indice a { position: relative; display: block; color: var(--niebla); text-decoration: none; transition: color .25s; }
.indice a:hover, .indice a[aria-current="true"] { color: var(--bruma); }
/* Marca de la sección actual sobre la línea del índice, a la altura de todo el enlace (una o varias líneas). */
.indice a::before { content: ""; position: absolute; top: .1em; bottom: .1em; left: calc(-1rem - 1.5px); width: 2px; border-radius: 2px; background: var(--clorofila); opacity: 0; transform: scaleY(.4); transition: opacity .25s, transform .25s var(--ease); }
.indice a[aria-current="true"]::before { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .indice a::before { transition: none; } }
@media (max-width: 63.99em) {
	.lectura--con-indice { grid-template-columns: minmax(0, 1fr); }
	.indice { position: static; padding: 1rem; border: 1px solid var(--linea); border-radius: 16px; }
	.indice a::before { display: none; }
}
.contenido--lectura h2 { scroll-margin-top: calc(var(--cab-alto) + 1.5rem); }
.lume-aviso-borrador { padding: 1rem 1.2rem; border: 1px solid var(--linea-ambar); border-radius: 14px; background: rgba(255, 182, 72, .06); }
.lume-aviso-borrador p { margin: 0; color: var(--bruma) !important; font-size: .95rem; }
.lume-fecha-legal { margin-top: 3rem !important; color: var(--tenue) !important; font-size: .88rem; }
/* Artículo. */
.barra-lectura { position: fixed; inset: 0 0 auto; z-index: 31; height: 3px; pointer-events: none; }
.admin-bar .barra-lectura { top: var(--wp-admin--admin-bar--height, 32px); }
.barra-lectura span { display: block; height: 100%; transform-origin: left; transform: scaleX(var(--avance, 0)); background: linear-gradient(90deg, var(--verde), var(--clorofila)); box-shadow: 0 0 12px var(--clorofila); }
.articulo__datos { display: flex; flex-wrap: wrap; gap: .3rem 1.25rem; margin: 0; padding: 1rem 0 0; border-top: 1px solid var(--linea); color: var(--tenue); font-size: .88rem; }
.articulo__datos span + span::before { content: "·"; margin-right: 1.25rem; color: var(--linea-2); }
.lume-respuesta--articulo { margin-block: 0 2rem !important; padding: 1.4rem 1.5rem; border: 1px solid var(--linea-verde); border-radius: 20px; background: radial-gradient(90% 120% at 0% 0%, rgba(87, 214, 90, .10), transparent 60%), rgba(7, 12, 9, .7); }
.lume-respuesta--articulo > * { margin: 0 !important; }
.lume-respuesta--articulo .is-style-lume-kicker { margin-bottom: .6rem !important; }
.lume-respuesta--articulo p:last-child { color: var(--bruma) !important; font-size: var(--t-lead); line-height: 1.5; }
.lume-servicio-articulo { margin-block: 2.5rem !important; }
.lume-servicio-articulo__etiqueta { margin: 0 0 .6rem !important; color: var(--tenue) !important; font-size: .85rem; }
.contenido .servicio { text-decoration: none !important; }
.contenido .servicio h3 { margin: 0; font-size: 1.25rem; }
/* Recursos: filtros por problema, destacado y rejilla. */
.recursos { padding-top: 1rem; }
.recursos__filtros { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 2rem; }
.recursos__filtros a { display: inline-flex; align-items: center; min-height: 2.6rem; padding: .45rem 1rem; border: 1px solid var(--linea-2); border-radius: 999px; color: var(--niebla); font-size: .92rem; font-weight: 560; text-decoration: none; transition: border-color .25s, color .25s, background-color .25s; }
.recursos__filtros a:hover { border-color: var(--linea-verde); color: var(--bruma); }
.recursos__filtros a[aria-current] { border-color: var(--clorofila); background: rgba(87, 214, 90, .1); color: var(--bruma); }
.recursos__lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: .9rem; margin: 0; padding: 0; list-style: none; }
.recursos__lista > li[hidden] { display: none; }
.recursos__destacado { grid-column: 1 / -1; }
.articulo-tarjeta { position: relative; display: flex; flex-direction: column; gap: .6rem; height: 100%; padding: 1.4rem 1.5rem; border: 1px solid var(--linea); border-radius: 20px; background: var(--vidrio); text-decoration: none; transition: border-color .35s, transform .35s var(--ease); }
.articulo-tarjeta:hover, .articulo-tarjeta:focus-visible { border-color: var(--linea-verde); transform: translateY(-2px); }
.articulo-tarjeta__tema { display: inline-flex; align-items: center; gap: .5rem; color: var(--clorofila-2); font-size: .82rem; font-weight: 600; }
.articulo-tarjeta__tema::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: var(--clorofila); box-shadow: 0 0 8px var(--clorofila); }
.articulo-tarjeta__titulo { font-size: clamp(1.25rem, 1rem + .8vw, 1.6rem); line-height: 1.12; }
.articulo-tarjeta--destacada { padding: clamp(1.5rem, 4vw, 2.5rem); border-color: var(--linea-verde); background: radial-gradient(80% 120% at 100% 0%, rgba(87, 214, 90, .12), transparent 60%), rgba(7, 12, 9, .8); }
.articulo-tarjeta--destacada .articulo-tarjeta__titulo { max-width: 22em; font-size: clamp(1.8rem, 1.2rem + 2vw, 3rem); }
.articulo-tarjeta__resumen { margin: 0; max-width: 46rem; color: var(--niebla); }
.articulo-tarjeta .articulo__datos { margin-top: auto; padding-top: .8rem; }
.relacionados__lista > li { list-style: none; }
/* 404: luz apagada. */
.error-404__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 2rem 4rem; align-items: center; }
.error-404__arco { justify-self: center; width: min(100%, 20rem); overflow: visible; rotate: 135deg; }
.error-404__pista, .error-404__luz { fill: none; stroke-width: 6; stroke-linecap: round; stroke-dasharray: 75 100; }
.error-404__pista { stroke: rgba(232, 238, 233, .12); }
.error-404__luz { stroke: var(--clorofila); stroke-dashoffset: 75; opacity: 0; filter: drop-shadow(0 0 10px rgba(87, 214, 90, .8)) drop-shadow(0 0 30px rgba(87, 214, 90, .4)); transition: stroke-dashoffset 1s var(--ease), opacity .3s; }
.error-404.encendida .error-404__luz { stroke-dashoffset: 0; opacity: 1; }
.error-404 .haz { opacity: 0; transition: opacity 1s; }
.error-404.encendida .haz { opacity: 1; animation: none; }
.error-404__llave { position: relative; width: 2.2rem; height: 1.25rem; border-radius: 999px; background: rgba(3, 20, 10, .25); box-shadow: inset 0 0 0 1px rgba(3, 20, 10, .35); }
.error-404__llave::after { content: ""; position: absolute; left: .15rem; top: .15rem; width: .95rem; height: .95rem; border-radius: 50%; background: var(--sobre-verde); transition: translate .4s var(--ease); }
.error-404.encendida .error-404__llave::after { translate: .95rem 0; }
@media (prefers-reduced-motion: reduce) { .error-404__luz { stroke-dashoffset: 0; opacity: 1; } .error-404 .haz { opacity: 1; } }
@media (max-width: 63.99em) { .error-404__grid { grid-template-columns: minmax(0, 1fr); } .error-404__arco { order: -1; justify-self: start; width: 8rem; } }

/* 15. Accesibilidad, movimiento, móvil e impresión ---------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.js .enciende:not(.on), .js .is-style-lume-enciende:not(.on) { color: inherit; }
}
/* Alto contraste del sistema: el texto recortado sobre degradados vuelve a ser texto normal. */
@media (forced-colors: active) {
	.titulo-int__res { background: none; color: CanvasText; -webkit-text-fill-color: CanvasText; }
	.boton, .wp-block-button__link { border: 1px solid ButtonText; }
	.luz, .kicker::before, .titulo-int__tema::before { forced-color-adjust: none; }
}
/* Móvil: sin desenfoque de fondo (coste de GPU) y superficies más opacas. */
@media (max-width: 63.99em) {
	.grano { display: none; }
	.servicio, .vidrio, .is-style-lume-oscuro, .is-style-lume-marco, .siguientes li, .cab.is-solida, .cab.is-abierta {
		-webkit-backdrop-filter: none; backdrop-filter: none;
	}
	.servicio { background: rgba(12, 18, 14, .94); }
	.servicio--pilar { background: linear-gradient(160deg, rgba(25, 52, 28, .96), rgba(12, 18, 14, .96) 62%); }
	.cab.is-solida, .cab.is-abierta { background: rgba(3, 5, 4, .96); }
}
@media print {
	.cab, .pie, .cta-movil, .cierre-int, .haz, .grano, .idiomas { display: none !important; }
	body { background: #fff; color: #000; }
	.titulo-int__res { color: #000; background: none; -webkit-text-fill-color: #000; }
	a { color: #000; }
}

/* Fuentes de un artículo: bloque final discreto, separado del cuerpo. */
.lume-fuentes { margin-top: 3rem; padding-top: 1.25rem; border-top: 1px solid var(--linea); color: var(--tenue); font-size: .88rem; }
.lume-fuentes p { margin: 0 0 .5rem; color: var(--niebla); }
.lume-fuentes ul { margin: 0; padding-left: 1.1rem; }
