/*
Theme Name: enllano.com
Theme URI: https://enllano.com
Description: Tema de bloques propio de enllano.com: tecnología libre, en llano. Diseño oscuro editorial, portada bento con datos en vivo (vulnerabilidades de CISA y mapa de ciberataques), un color por sección y fuentes alojadas en local.
Version: 3.1.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: enllano
*/

:root {
	color-scheme: dark;
	--lv3-ink-fijo: #0A0C10;
	--lv3-radio: 22px;
	--lv3-radio-s: 14px;
	--lv3-linea: rgb(255 255 255 / .08);
	--lv3-linea-fuerte: rgb(255 255 255 / .16);
	--lv3-sombra: 0 0 0 1px rgb(255 255 255 / .02), 0 18px 40px -24px rgb(0 0 0 / .9);
	--lv3-sombra-hover: 0 0 0 1px rgb(255 255 255 / .06), 0 30px 60px -28px rgb(0 0 0 / .95);
	--lv3-mono: var(--wp--preset--font-family--mono);
	--lv3-lima: var(--wp--preset--color--lima);
	--sec: var(--wp--preset--color--tinta);
	--sec-ink: var(--wp--preset--color--papel);
}
* { --sec-suave: color-mix(in srgb, var(--sec) 12%, var(--wp--preset--color--blanco)); }

/* ---------- Color de sección ---------- */
.category-inteligencia-artificial, .lv3-cat-inteligencia-artificial { --sec: var(--wp--preset--color--azul); --sec-ink: #0A0C10; }
.category-ciberseguridad, .lv3-cat-ciberseguridad                   { --sec: var(--wp--preset--color--naranja); --sec-ink: var(--lv3-ink-fijo); }
.category-privacidad, .lv3-cat-privacidad                           { --sec: var(--wp--preset--color--amarillo); --sec-ink: var(--lv3-ink-fijo); }
.category-tecnologia, .lv3-cat-tecnologia                           { --sec: var(--wp--preset--color--rosa); --sec-ink: var(--lv3-ink-fijo); }
.category-herramientas, .lv3-cat-herramientas,
.category-datos-abiertos, .lv3-cat-datos-abiertos                   { --sec: var(--wp--preset--color--menta); --sec-ink: var(--lv3-ink-fijo); }
.category-linux, .lv3-cat-linux                                     { --sec: #2FD394; --sec-ink: #0A0C10; }
.category-sociedad, .lv3-cat-sociedad                               { --sec: #A78BFA; --sec-ink: #0A0C10; }

/* ---------- Base ---------- */
body { -webkit-font-smoothing: antialiased; }
:where(h1, h2, h3, h4) { text-wrap: balance; font-variation-settings: "wdth" 88; }
h1 { font-variation-settings: "wdth" 78; }
p { text-wrap: pretty; }
.wp-block-post-date, .lv3-radar { font-variant-numeric: tabular-nums; }
::selection { background: var(--wp--preset--color--amarillo); color: var(--lv3-ink-fijo); }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--wp--preset--color--azul); outline-offset: 3px; border-radius: 6px; }
.wp-site-blocks { overflow-x: clip; }

/* ---------- Cabecera: fija, translúcida ---------- */
.lv3-header {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--wp--preset--color--papel) 78%, transparent);
	backdrop-filter: saturate(1.6) blur(16px); -webkit-backdrop-filter: saturate(1.6) blur(16px);
	border-bottom: 1px solid var(--lv3-linea);
}
.admin-bar .lv3-header { top: 32px; }
.lv3-marca {
	font-family: var(--wp--preset--font-family--bricolage); font-weight: 800; font-size: 1.625rem;
	letter-spacing: -0.015em; line-height: 1; text-decoration: none; color: var(--wp--preset--color--tinta);
	font-variation-settings: "wdth" 88; white-space: nowrap;
}
.lv3-marca span, .lv3-firma span {
	display: inline-block; padding: .1em .22em .14em; margin-left: .05em;
	background: var(--wp--preset--color--azul); color: #fff; border-radius: .25em;
	transform: rotate(-5deg); letter-spacing: -0.03em; transition: transform .2s ease;
}
.lv3-marca:hover span { transform: rotate(4deg) scale(1.06); }

/* Navegación en "pastilla" con punto de color por sección */
@media (min-width: 600px) {
	.lv3-nav .wp-block-navigation__container {
		background: var(--wp--preset--color--blanco); border: 1px solid var(--lv3-linea);
		border-radius: 999px; padding: .3rem; box-shadow: var(--lv3-sombra);
	}
}
.lv3-nav .wp-block-navigation__container { flex-wrap: nowrap; }
.lv3-nav .wp-block-navigation-item__content { white-space: nowrap; padding: .45rem .75rem !important; border-radius: 999px; text-decoration: none; display: inline-flex; align-items: center; gap: .45rem; }
.lv3-nav .wp-block-navigation-item__content:hover { background: color-mix(in srgb, var(--wp--preset--color--tinta) 7%, transparent); }
.lv3-nav .wp-block-navigation-item__content::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: var(--dot, currentColor); }
.lv3-nav-ia    { --dot: var(--wp--preset--color--azul); }
.lv3-nav-ciber { --dot: var(--wp--preset--color--naranja); }
.lv3-nav-priv  { --dot: var(--wp--preset--color--amarillo); }
.lv3-nav-tec   { --dot: var(--wp--preset--color--rosa); }
.lv3-nav-soc   { --dot: #A78BFA; }
.lv3-header .wp-block-search__button { border-radius: 999px; background: var(--wp--preset--color--tinta); color: var(--wp--preset--color--papel); }
@media (max-width: 1280px) { .lv3-header-redes { display: none; } }

/* Redes sociales */
.lv3-redes.wp-block-social-links { gap: .35rem !important; }
.lv3-redes .wp-social-link a { padding: .5rem !important; border-radius: 999px; transition: background .15s ease; }
.lv3-redes .wp-social-link a:hover { background: color-mix(in srgb, var(--wp--preset--color--tinta) 9%, transparent); }
.lv3-redes .wp-social-link { color: var(--wp--preset--color--tinta) !important; }

/* ---------- Portada: intro + bento ---------- */
.lv3-intro h1 { margin: 0; font-size: clamp(2.75rem, 1.6rem + 5vw, 6.25rem); }
.lv3-intro .lv3-claim { margin: 0; max-width: 32ch; font-size: 1.25rem; line-height: 1.4; color: var(--wp--preset--color--grafito); }

.lv3-bento { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; }
.lv3-bento > * { margin: 0 !important; min-width: 0; }
.lv3-b-destacado { grid-column: span 2; grid-row: span 2; }
.lv3-b-radar     { grid-column: span 2; grid-row: span 2; }
.lv3-b-dato      { grid-column: span 1; }
.lv3-b-redes     { grid-column: span 2; }
.lv3-b-empieza   { grid-column: span 1; }
@media (max-width: 1000px) {
	.lv3-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.lv3-bento { gap: .75rem; }
	.lv3-b-destacado, .lv3-b-radar, .lv3-b-redes, .lv3-b-dato, .lv3-b-empieza { grid-column: 1 / -1; grid-row: auto; }
}

/* Celdas genéricas */
.lv3-b-redes, .lv3-b-empieza, .lv3-tarjeta {
	background: var(--wp--preset--color--blanco); border: 1px solid var(--lv3-linea);
	border-radius: var(--lv3-radio); box-shadow: var(--lv3-sombra);
}
.lv3-b-redes, .lv3-b-empieza { padding: 1.5rem; display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; }
.lv3-b-redes h2 { margin: 0; font-size: 2rem; }
.lv3-b-redes p { margin: 0; color: var(--wp--preset--color--grafito); }
.lv3-b-empieza > p { margin: 0; font-family: var(--wp--preset--font-family--bricolage); font-weight: 750; font-size: 1.5rem; line-height: 1.1; }
.lv3-b-empieza { background: var(--wp--preset--color--tinta); color: var(--wp--preset--color--papel); border-color: transparent; }
.lv3-b-empieza .wp-block-button__link { background: var(--wp--preset--color--amarillo); color: var(--lv3-ink-fijo); width: 100%; text-align: center; }

/* Puertas de sección */
.lv3-b-sec {
	display: flex; flex-direction: column; justify-content: space-between; gap: 2rem;
	min-height: 10.5rem; padding: 1.25rem; border-radius: var(--lv3-radio);
	background: var(--sec); color: var(--sec-ink); text-decoration: none;
	font-family: var(--wp--preset--font-family--bricolage);
	position: relative; overflow: hidden; isolation: isolate;
	transition: transform .2s ease, box-shadow .2s ease;
}
.lv3-b-sec::after {
	content: ""; position: absolute; inset: auto -30% -60% auto; width: 80%; aspect-ratio: 1; z-index: -1;
	border-radius: 50%; background: radial-gradient(circle, rgb(255 255 255 / .35), transparent 65%);
}
.lv3-b-sec:hover { transform: translateY(-4px); box-shadow: var(--lv3-sombra-hover); color: var(--sec-ink); }
.lv3-b-sec svg { width: 2.5rem; height: 2.5rem; }
.lv3-b-sec strong { display: block; font-size: 1.375rem; line-height: 1.05; font-weight: 750; letter-spacing: -0.02em; font-variation-settings: "wdth" 85; }
.lv3-b-sec small { display: block; font-family: var(--wp--preset--font-family--atkinson); font-size: .9375rem; margin-top: .35rem; line-height: 1.3; opacity: .9; }
@media (max-width: 600px) { .lv3-b-sec strong { font-size: 1.15rem; hyphens: auto; } .lv3-b-sec { min-height: 9rem; padding: 1rem; } }

/* ---------- Tarjetas de artículo ---------- */
.lv3-tarjeta { position: relative; height: 100%; overflow: hidden; display: flex; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease; }
.lv3-tarjeta:hover { transform: translateY(-4px); box-shadow: var(--lv3-sombra-hover); }
.lv3-tarjeta .wp-block-post-featured-image { margin: 0; }
.lv3-tarjeta .wp-block-post-featured-image img { transition: transform .5s ease; }
.lv3-tarjeta:hover .wp-block-post-featured-image img { transform: scale(1.04); }
/* Sin imagen: portada generada con el color de la sección */
.lv3-tarjeta:not(:has(.wp-block-post-featured-image))::before {
	content: ""; display: block; aspect-ratio: 16 / 10;
	background:
		radial-gradient(circle at 85% 20%, rgb(255 255 255 / .45), transparent 40%),
		radial-gradient(circle at 10% 100%, color-mix(in srgb, var(--sec) 60%, #000) 0, transparent 55%),
		var(--sec);
}
.lv3-tarjeta__texto { padding: 1.1rem 1.35rem 1.4rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.lv3-tarjeta__texto > * { margin: 0 !important; }
.lv3-tarjeta .wp-block-post-title { font-size: 1.375rem; line-height: 1.12; letter-spacing: -0.02em; }
.lv3-tarjeta .wp-block-post-title a { text-decoration: none; }
.lv3-tarjeta .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; } /* toda la tarjeta clicable */
.lv3-tarjeta .wp-block-post-terms a { position: relative; z-index: 1; }
.lv3-tarjeta .wp-block-post-date { margin-top: auto !important; padding-top: .5rem; }
.lv3-tarjeta .wp-block-post-excerpt__excerpt { color: var(--wp--preset--color--grafito); margin: 0; }
.lv3-tarjeta .wp-block-post-excerpt__more-text { display: none; }

/* La destacada ocupa su celda y lleva el título grande */
.lv3-b-destacado, .lv3-b-destacado .wp-block-post-template, .lv3-b-destacado .wp-block-post { height: 100%; margin: 0; }
.lv3-b-destacado .lv3-tarjeta:not(:has(.wp-block-post-featured-image))::before { aspect-ratio: auto; flex: 1; min-height: 14rem; }
.lv3-b-destacado .wp-block-post-title { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.75rem); line-height: 1.02; letter-spacing: -0.035em; }
.lv3-b-destacado .lv3-tarjeta__texto { flex: 0; padding: 1.5rem 1.75rem 1.75rem; }

/* Rejilla */
.lv3-rejilla .wp-block-post-template.is-layout-grid { gap: 1.25rem; }
@media (max-width: 900px) { .lv3-rejilla .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .lv3-rejilla .wp-block-post-template.is-layout-grid { grid-template-columns: 1fr; } }
.lv3-titulo-seccion { font-size: clamp(1.75rem, 1.3rem + 1.5vw, 2.5rem); }

/* Etiqueta de sección */
.wp-block-post-terms.taxonomy-category a {
	display: inline-flex; align-items: center; gap: .4rem; text-decoration: none;
	font-family: var(--wp--preset--font-family--bricolage); font-weight: 650; font-size: .875rem;
	color: var(--wp--preset--color--tinta);
}
.wp-block-post-terms.taxonomy-category a::before { content: ""; width: .6rem; height: .6rem; border-radius: 50%; background: var(--sec); }
.wp-block-post-terms.taxonomy-category .wp-block-post-terms__separator { display: none; }

/* ---------- Radar ---------- */
.lv3-radar {
	height: 100%; box-sizing: border-box;
	background: var(--wp--preset--color--blanco); border: 1px solid var(--lv3-linea);
	border-radius: var(--lv3-radio); box-shadow: var(--lv3-sombra); overflow: hidden;
}
.lv3-radar > h2 { margin: 0; padding: 1.25rem 1.5rem .25rem; font-size: 1.5rem; display: flex; align-items: center; gap: .6rem; }
.lv3-radar > h2::before {
	content: ""; flex: none; width: .7rem; height: .7rem; border-radius: 50%; background: var(--wp--preset--color--naranja);
	animation: lv3-pulso 2.4s ease-out infinite;
}
@keyframes lv3-pulso {
	0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--wp--preset--color--naranja) 60%, transparent); }
	70%, 100% { box-shadow: 0 0 0 .6rem transparent; }
}
.lv3-radar__nota, .lv3-radar__fuente, .lv3-radar ol, .lv3-radar--vacio { padding-inline: 1.5rem; }
.lv3-radar__nota { font-size: .9375rem; color: var(--wp--preset--color--grafito); margin: .25rem 0 .5rem; }
.lv3-radar ol { list-style: none; margin: 0; }
.lv3-radar li { display: grid; grid-template-columns: 1fr auto; gap: .1rem 1rem; padding: .8rem 0; border-top: 1px solid var(--lv3-linea); }
.lv3-radar li > div { grid-row: 1; grid-column: 1; }
.lv3-radar time { grid-row: 1; grid-column: 2; font-family: var(--wp--preset--font-family--bricolage); font-weight: 600; font-size: .875rem; color: var(--wp--preset--color--grafito); white-space: nowrap; }
.lv3-radar strong { display: block; font-family: var(--wp--preset--font-family--bricolage); font-weight: 700; line-height: 1.2; font-size: 1.0625rem; }
.lv3-radar .lv3-cve { font-size: .875rem; color: var(--wp--preset--color--grafito); }
.lv3-radar__fuente { font-size: .8125rem; color: var(--wp--preset--color--grafito); margin: .25rem 0 1.25rem; }
.lv3-radar--vacio { margin: 1rem 0; }

/* ---------- Artículo ---------- */
.lv3-progreso {
	position: fixed; top: 0; left: 0; right: 0; height: 4px; z-index: 60;
	background: var(--sec); transform-origin: 0 50%; transform: scaleX(0);
}
@supports (animation-timeline: scroll()) {
	.lv3-progreso { animation: lv3-avance linear both; animation-timeline: scroll(root); }
	@keyframes lv3-avance { to { transform: scaleX(1); } }
}
@supports not (animation-timeline: scroll()) { .lv3-progreso { display: none; } }

.lv3-banda {
	background:
		radial-gradient(ellipse 60% 90% at 100% 0%, color-mix(in srgb, var(--sec) 55%, transparent), transparent 70%),
		linear-gradient(180deg, var(--sec-suave), var(--wp--preset--color--papel));
	color: var(--wp--preset--color--tinta);
}
.lv3-banda > * { max-width: 58rem !important; }
.lv3-banda .wp-block-post-title { margin-block: .75rem 0; color: inherit; letter-spacing: -0.04em; }
.lv3-banda .wp-block-post-date { color: var(--wp--preset--color--grafito); }
.lv3-banda .wp-block-post-terms.taxonomy-category a { background: var(--sec); color: var(--sec-ink); padding: .3rem .75rem; border-radius: 999px; }
.lv3-banda .wp-block-post-terms.taxonomy-category a::before { background: currentColor; }
.lv3-banda .wp-block-post-excerpt__excerpt { max-width: 46ch; font-size: 1.375rem; line-height: 1.4; color: var(--wp--preset--color--grafito); }
.lv3-banda .wp-block-post-excerpt__more-text { display: none; }
main.lv3-articulo, .lv3-articulo > .lv3-banda { margin-top: 0 !important; }

.lv3-articulo .wp-block-post-content :where(h2) { margin-top: 2.75rem; font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); }
.lv3-articulo .wp-block-post-content :where(h3) { margin-top: 2rem; font-size: 1.5rem; }
.lv3-articulo .wp-block-post-content :where(li) { margin-bottom: .4rem; }
.lv3-articulo .wp-block-post-content :where(p a, li a) { text-decoration-thickness: 2px; text-underline-offset: 3px; text-decoration-color: var(--sec); }
.lv3-articulo .wp-block-post-featured-image img { border-radius: var(--lv3-radio); }

.lv3-autor { margin-top: 3rem !important; padding: 1.5rem 1.75rem !important; background: var(--sec-suave); border-radius: var(--lv3-radio); }
.lv3-autor > * { margin: 0 0 .5rem !important; }
.lv3-autor__titulo { font-family: var(--wp--preset--font-family--bricolage); font-weight: 750; font-size: 1.5rem; }

/* ---------- Estilos de bloque propios ---------- */
.is-style-en-corto {
	background: var(--wp--preset--color--blanco);
	border: 1px solid var(--lv3-linea); border-radius: var(--lv3-radio);
	padding: 1.4rem 1.6rem 1.1rem 1.9rem !important; box-shadow: var(--lv3-sombra);
	position: relative; overflow: hidden;
}
.is-style-en-corto::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 6px; background: var(--sec); }
.is-style-en-corto > p:first-child { margin: 0 0 .5rem; font-family: var(--wp--preset--font-family--bricolage); font-weight: 750; font-size: 1.25rem; }
.is-style-en-corto ul { margin: 0; padding-left: 1.2rem; }
.is-style-en-corto li::marker { color: var(--sec); }

.is-style-dato-abierto {
	background: radial-gradient(circle at 100% 0%, rgb(255 255 255 / .28), transparent 50%), var(--wp--preset--color--azul);
	color: #fff; border-radius: var(--lv3-radio); padding: 1.5rem !important;
}
.is-style-dato-abierto a { color: #fff; }
.is-style-dato-abierto > p { margin: 0; }
.is-style-dato-abierto > p:first-child {
	font-family: var(--wp--preset--font-family--bricolage);
	font-size: clamp(3.25rem, 2.5rem + 3vw, 5.5rem); font-weight: 800; line-height: .9;
	letter-spacing: -0.05em; font-variation-settings: "wdth" 75; margin-bottom: .75rem;
}
.is-style-dato-abierto > p:last-child { font-size: .8125rem; opacity: .85; margin-top: .75rem; }

.is-style-alerta {
	background: color-mix(in srgb, var(--wp--preset--color--naranja) 13%, var(--wp--preset--color--blanco));
	border-radius: var(--lv3-radio-s); padding: 1.1rem 1.5rem 1.1rem 1.25rem !important;
	border-left: 6px solid var(--wp--preset--color--naranja);
}
.is-style-alerta p { margin: .25rem 0; }

ol.is-style-pasos { counter-reset: paso; list-style: none; padding-left: 0; }
ol.is-style-pasos > li { counter-increment: paso; position: relative; padding-left: 3.5rem; margin-bottom: 1.25rem; min-height: 2.5rem; }
ol.is-style-pasos > li::before {
	content: counter(paso); position: absolute; left: 0; top: -.15rem;
	width: 2.35rem; height: 2.35rem; display: grid; place-items: center;
	background: var(--sec); color: var(--sec-ink); border-radius: 12px;
	font-family: var(--wp--preset--font-family--bricolage); font-weight: 800; font-size: 1.05rem;
}
body:not([class*="lv3-cat-"]) ol.is-style-pasos > li::before { background: var(--wp--preset--color--amarillo); color: var(--lv3-ink-fijo); }

/* Archivo de categoría */
.lv3-archivo-cab { padding: 2rem; border-radius: var(--lv3-radio); background: linear-gradient(135deg, var(--sec-suave), var(--wp--preset--color--blanco)); border: 1px solid var(--lv3-linea); }
.lv3-archivo-cab h1 { margin: 0; }

/* ---------- Pie ---------- */
.lv3-footer { border-top: 1px solid var(--lv3-linea); font-size: 1rem; }
.lv3-footer a { text-decoration: none; }
.lv3-footer a:hover { text-decoration: underline; }
.lv3-footer-titulo { font-family: var(--wp--preset--font-family--bricolage); font-weight: 700; margin-bottom: .25rem; }
.lv3-footer .lv3-firma { font-family: var(--wp--preset--font-family--bricolage); font-weight: 800; font-size: clamp(3rem, 1.5rem + 8vw, 9rem); line-height: .9; letter-spacing: -0.025em; font-variation-settings: "wdth" 85; margin: 0; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
	.lv3-progreso { display: none; }
}

.lv3-b-radar > * { margin: 0 !important; }
.lv3-b-radar > .lv3-radar { height: 100%; }

/* ---------- Gráficos de datos abiertos ---------- */
.lv3-graf {
	margin: 0; padding: 1.5rem; box-sizing: border-box; height: 100%;
	background: var(--wp--preset--color--blanco); border: 1px solid var(--lv3-linea);
	border-radius: var(--lv3-radio); box-shadow: var(--lv3-sombra);
	--c: var(--wp--preset--color--azul);
}
.lv3-graf--naranja { --c: var(--wp--preset--color--naranja); }
.lv3-graf__titulo { font-family: var(--wp--preset--font-family--bricolage); font-weight: 750; font-size: 1.5rem; line-height: 1.1; letter-spacing: -0.02em; }
.lv3-graf__resumen { margin: .5rem 0 1.25rem; color: var(--wp--preset--color--grafito); font-size: 1rem; max-width: 60ch; }
.lv3-graf__resumen strong { color: var(--wp--preset--color--tinta); }
.lv3-graf__fuente { font-size: .8125rem; color: var(--wp--preset--color--grafito); margin: .75rem 0 0; }
.lv3-graf__tabla { margin-top: 1rem; font-size: .9375rem; }
.lv3-graf__tabla summary { cursor: pointer; font-family: var(--wp--preset--font-family--bricolage); font-weight: 600; }
.lv3-graf__tabla table { width: 100%; border-collapse: collapse; margin-top: .5rem; font-variant-numeric: tabular-nums; }
.lv3-graf__tabla th, .lv3-graf__tabla td { text-align: left; padding: .35rem .5rem; border-bottom: 1px solid var(--lv3-linea); }
.lv3-graf__tabla td:last-child, .lv3-graf__tabla th:last-child { text-align: right; }

/* Barras verticales */
.lv3-barras { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 6px; align-items: end; height: 14rem; padding-top: 1.5rem; border-bottom: 1px solid var(--lv3-linea); position: relative; }
.lv3-barra, .lv3-grupo { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; outline-offset: 2px; }
.lv3-barra__fill { display: block; height: calc(var(--v) * 1%); min-height: 2px; background: var(--c); border-radius: 4px 4px 0 0; transition: filter .15s ease; }
.lv3-barra__valor { position: absolute; left: 50%; transform: translateX(-50%); bottom: calc(var(--v) * 1% + .3rem); font-family: var(--wp--preset--font-family--bricolage); font-weight: 650; font-size: .8125rem; white-space: nowrap; opacity: 0; color: var(--wp--preset--color--tinta); }
.lv3-barra--etiqueta .lv3-barra__valor { opacity: 1; }
.lv3-barra__eje { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: .4rem; font-size: .75rem; color: var(--wp--preset--color--grafito); white-space: nowrap; }
.lv3-barras { margin-bottom: 1.75rem; }
.lv3-barra:hover .lv3-barra__fill, .lv3-barra:focus .lv3-barra__fill, .lv3-grupo:hover .lv3-barra__fill, .lv3-grupo:focus .lv3-barra__fill { filter: brightness(1.12) saturate(1.1); }
@media (max-width: 600px) { .lv3-barras .lv3-barra:nth-child(even) .lv3-barra__eje { visibility: hidden; } }

/* Tooltip al pasar o enfocar */
.lv3-tip {
	position: absolute; bottom: calc(100% - 1rem); left: 50%; transform: translate(-50%, -.25rem); z-index: 5;
	background: var(--wp--preset--color--tinta); color: var(--wp--preset--color--papel);
	font-size: .8125rem; line-height: 1.3; padding: .4rem .6rem; border-radius: 8px; white-space: nowrap;
	pointer-events: none; opacity: 0; transition: opacity .12s ease;
}
.lv3-barra:hover .lv3-tip, .lv3-barra:focus .lv3-tip, .lv3-grupo:hover .lv3-tip, .lv3-grupo:focus .lv3-tip { opacity: 1; }

/* Barras agrupadas (España / UE) */
.lv3-graf--dos { --es: #2340FF; --ue: #E8590C; }
.lv3-graf--dos { --es: #5B73FF; --ue: #E5601F; }
.lv3-grupo__barras { display: flex; gap: 2px; align-items: flex-end; height: 100%; justify-content: center; }
.lv3-grupo__barras .lv3-barra__fill { flex: 0 1 2.25rem; }
.lv3-es { background: var(--es); }
.lv3-ue { background: var(--ue); }
.lv3-leyenda { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.25rem; font-size: .875rem; }
.lv3-leyenda li { display: inline-flex; align-items: center; gap: .4rem; }
.lv3-leyenda li::before { content: ""; width: .8rem; height: .8rem; border-radius: 3px; }
.lv3-leyenda--es::before { background: var(--es); }
.lv3-leyenda--ue::before { background: var(--ue); }

/* Barras horizontales (ranking) */
.lv3-hbarras { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.lv3-hbarras li { display: grid; grid-template-columns: minmax(6rem, 9rem) 1fr auto; align-items: center; gap: .75rem; font-size: .9375rem; }
.lv3-hbarras__nombre { font-family: var(--wp--preset--font-family--bricolage); font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lv3-hbarras__fill { height: .9rem; width: calc(var(--v) * 1%); min-width: 2px; background: var(--c); border-radius: 0 4px 4px 0; }
.lv3-hbarras__valor { text-align: right; font-variant-numeric: tabular-nums; color: var(--wp--preset--color--grafito); }

/* Panel de datos abiertos */
.lv3-panel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.lv3-panel > * { margin: 0 !important; min-width: 0; }
.lv3-panel .lv3-ancho { grid-column: 1 / -1; }
@media (max-width: 800px) { .lv3-panel { grid-template-columns: 1fr; } }
.lv3-radar--ia > h2::before { background: var(--wp--preset--color--azul); animation: none; }
.lv3-radar--hibp > h2::before { background: var(--wp--preset--color--amarillo); animation: none; }
.lv3-radar--ia li, .lv3-radar--hibp li { grid-template-columns: 1fr auto; }
.lv3-radar a { color: inherit; }
.lv3-nav-datos { --dot: var(--wp--preset--color--menta); }
.lv3-firma-autor { font-family: var(--wp--preset--font-family--bricolage); font-weight: 650; font-size: var(--wp--preset--font-size--pequeno); }
.lv3-autor__quien { align-items: center; }
.lv3-autor__quien .wp-block-post-author__avatar img { border-radius: 50%; }
.lv3-autor__quien .wp-block-post-author__name { font-family: var(--wp--preset--font-family--bricolage); font-weight: 750; font-size: 1.375rem; margin: 0; }
.lv3-autor__quien .wp-block-post-author__byline { font-size: .875rem; color: var(--wp--preset--color--grafito); margin: 0; }

.lv3-hbarras__fill { position: relative; overflow: hidden; }
.lv3-hbarras__ransom { position: absolute; inset: 0 auto 0 0; width: calc(var(--r) * 1%); background: color-mix(in srgb, var(--c) 55%, #000); }

/* ---------- Linux ---------- */
.lv3-graf--linux { --c: var(--wp--preset--color--menta); }
.lv3-radar--linux > h2::before { background: #13A877; animation: none; }
.lv3-eol__lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1.25rem 1.75rem; }
.lv3-eol__distro h3 { margin: 0 0 .5rem; font-size: 1.25rem; }
.lv3-eol__distro ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.lv3-eol__fila { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .5rem; font-size: .9375rem; }
.lv3-eol__fila strong { font-family: var(--wp--preset--font-family--bricolage); font-size: 1.0625rem; }
.lv3-eol__fila em { font-style: normal; font-weight: 400; color: var(--wp--preset--color--grafito); }
.lv3-eol__fila span { margin-left: auto; color: var(--wp--preset--color--grafito); font-variant-numeric: tabular-nums; }
.lv3-eol__lts { font-size: .6875rem; font-weight: 700; padding: .05rem .4rem; border-radius: 999px; background: #13A877; color: #fff; }
.lv3-eol__barra { height: 6px; border-radius: 3px; margin-top: .35rem; background: color-mix(in srgb, var(--wp--preset--color--tinta) 10%, transparent); position: relative; overflow: hidden; }
.lv3-eol__barra::after { content: ""; position: absolute; inset: 0 auto 0 0; width: calc(var(--p) * 1%); background: #13A877; border-radius: 3px; }
.lv3-eol small { display: block; font-size: .8125rem; color: var(--wp--preset--color--grafito); margin-top: .2rem; }
.lv3-nav-linux { --dot: #2FD394; }

.lv3-cifras { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem; }
.lv3-cifras > * { margin: 0 !important; }
.is-style-dato-abierto.lv3-dato-linux { background: radial-gradient(circle at 100% 0%, rgb(255 255 255 / .25), transparent 50%), #0F8A62; }
.lv3-cifras .is-style-dato-abierto > p:first-child { font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
.lv3-cifras .is-style-dato-abierto:nth-child(3n+2) { background: radial-gradient(circle at 100% 0%, rgb(255 255 255 / .25), transparent 50%), var(--lv3-ink-fijo); }

.lv3-panel > p.lv3-radar--vacio, .lv3-bento > p.lv3-radar--vacio, .wp-block-post-content > p.lv3-radar--vacio {
	padding: 1.5rem; border: 1px dashed var(--lv3-linea); border-radius: var(--lv3-radio); color: var(--wp--preset--color--grafito);
}

/* ---------- Compartir ---------- */
.lv3-compartir { margin-top: 2.5rem; }
.lv3-compartir__titulo { font-family: var(--wp--preset--font-family--bricolage); font-weight: 750; font-size: 1.25rem; margin: 0 0 .6rem; }
.lv3-compartir ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.lv3-compartir a, .lv3-compartir button {
	display: inline-flex; align-items: center; padding: .5rem .95rem; border-radius: 999px;
	border: 1px solid var(--lv3-linea); background: var(--wp--preset--color--blanco); color: var(--wp--preset--color--tinta);
	font: 600 .9375rem/1 var(--wp--preset--font-family--bricolage); text-decoration: none; cursor: pointer;
	transition: background .15s ease, border-color .15s ease;
}
.lv3-compartir a:hover, .lv3-compartir button:hover { border-color: var(--sec); background: var(--sec-suave); }
.lv3-compartir__nativo button { background: var(--wp--preset--color--tinta); color: var(--wp--preset--color--papel); border-color: transparent; }

/* ---------- Pie ampliado ---------- */
.lv3-footer-cab { gap: 2rem; }
.lv3-hablemos { max-width: 30rem; }
.lv3-hablemos p { margin: 0 0 1rem; color: var(--wp--preset--color--grafito); }
.lv3-footer .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--tinta); border: 2px solid currentColor; }
.lv3-footer-cols p { line-height: 1.9; }
.lv3-footer-pie { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--lv3-linea); font-size: .875rem; color: var(--wp--preset--color--grafito); }
.lv3-footer-pie p { margin: 0; }

/* ---------- Cronología de soporte ---------- */
.lv3-crono { --lin: #13A877; --win: #2340FF; --col: 9.5rem; }
.lv3-leyenda--lin::before { background: var(--lin); }
.lv3-leyenda--win::before { background: var(--win); }
.lv3-crono__eje { position: relative; height: 1.5rem; margin: 1rem 0 .25rem var(--col); font-size: .75rem; color: var(--wp--preset--color--grafito); }
.lv3-crono__eje span { position: absolute; transform: translateX(-50%); }
.lv3-crono__filas { position: relative; display: grid; gap: .5rem; }
.lv3-crono__filas::after { content: ""; position: absolute; top: -.25rem; bottom: -.25rem; left: calc(var(--col) + (100% - var(--col)) * var(--hoy) / 100); width: 2px; background: var(--wp--preset--color--naranja); }
.lv3-crono__fila { position: relative; display: grid; grid-template-columns: var(--col) 1fr; align-items: center; min-height: 1.6rem; outline-offset: 2px; }
.lv3-crono__nombre { font-family: var(--wp--preset--font-family--bricolage); font-weight: 650; font-size: .875rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: .5rem; }
.lv3-crono__pista { position: relative; height: 1rem; background: color-mix(in srgb, var(--wp--preset--color--tinta) 5%, transparent); border-radius: 4px; }
.lv3-crono__barra, .lv3-crono__ext { position: absolute; top: 0; bottom: 0; border-radius: 4px; }
.lv3-crono--lin .lv3-crono__barra { background: var(--lin); }
.lv3-crono--win .lv3-crono__barra { background: var(--win); }
.lv3-crono--lin .lv3-crono__ext { background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--lin) 45%, transparent) 0 4px, transparent 4px 8px); }
.lv3-crono--win .lv3-crono__ext { background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--win) 45%, transparent) 0 4px, transparent 4px 8px); }
.lv3-crono__fila:hover .lv3-tip, .lv3-crono__fila:focus .lv3-tip { opacity: 1; }
.lv3-crono__fila .lv3-tip { bottom: 100%; left: 60%; }
@media (max-width: 600px) { .lv3-crono { --col: 6.75rem; } .lv3-crono__eje span:nth-child(even) { visibility: hidden; } }
.lv3-crono { --win: #5B73FF; }

.lv3-graf--amarillo { --c: #C99400; }
.lv3-graf--amarillo { --c: #FFC21A; }

/* ---------- Herramientas interactivas ---------- */
.lv3-tool {
	background: var(--wp--preset--color--blanco); border: 1px solid var(--lv3-linea);
	border-radius: var(--lv3-radio); box-shadow: var(--lv3-sombra); padding: 1.75rem; margin-block: 2rem;
	position: relative; overflow: hidden;
}
.lv3-tool::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 6px; background: var(--wp--preset--color--naranja); }
.lv3-tool__titulo { margin: .25rem 0 .5rem !important; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.lv3-tool__nota { color: var(--wp--preset--color--grafito); font-size: 1rem; margin: 0 0 1.25rem; max-width: 62ch; }
.lv3-tool__nota strong { color: var(--wp--preset--color--tinta); }
.lv3-pwned label { display: block; font-family: var(--wp--preset--font-family--bricolage); font-weight: 650; margin-bottom: .4rem; }
.lv3-pwned__fila { display: flex; gap: .5rem; flex-wrap: wrap; }
.lv3-pwned input { flex: 1 1 14rem; font: inherit; padding: .75rem 1rem; border-radius: 14px; border: 2px solid var(--lv3-linea); background: var(--wp--preset--color--papel); color: var(--wp--preset--color--tinta); }
.lv3-pwned input:focus { border-color: var(--wp--preset--color--azul); outline: none; }
.lv3-pwned button, .lv3-test__ver {
	font: 700 1rem/1 var(--wp--preset--font-family--bricolage); padding: .8rem 1.2rem; border-radius: 999px; cursor: pointer;
	border: 2px solid var(--wp--preset--color--tinta); background: transparent; color: var(--wp--preset--color--tinta);
}
.lv3-pwned__ir, .lv3-test__ver { background: var(--wp--preset--color--tinta) !important; color: var(--wp--preset--color--papel) !important; }
.lv3-pwned__res, .lv3-test__res { margin-top: 1rem; border-radius: 16px; }
.lv3-pwned__res:empty, .lv3-test__res:empty { display: none; }
.lv3-pwned__res, .lv3-test__res { padding: 1rem 1.25rem; }
.lv3-pwned__res--mal, .lv3-test__res--mal { background: color-mix(in srgb, var(--wp--preset--color--naranja) 16%, var(--wp--preset--color--blanco)); border-left: 6px solid var(--wp--preset--color--naranja); }
.lv3-pwned__res--bien, .lv3-test__res--bien { background: color-mix(in srgb, #13A877 14%, var(--wp--preset--color--blanco)); border-left: 6px solid #13A877; }
.lv3-test__res--medio, .lv3-test__res--aviso { background: color-mix(in srgb, var(--wp--preset--color--amarillo) 18%, var(--wp--preset--color--blanco)); border-left: 6px solid var(--wp--preset--color--amarillo); }
.lv3-pwned__res--cargando, .lv3-pwned__res--error { background: var(--wp--preset--color--papel); border-left: 6px solid var(--lv3-linea); }
.lv3-test__lista { list-style: none; counter-reset: q; padding: 0; margin: 0 0 1.25rem; display: grid; gap: .75rem; }
.lv3-test__lista > li { counter-increment: q; padding: .9rem 1rem; border-radius: 16px; background: var(--wp--preset--color--papel); }
.lv3-test__lista fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; }
.lv3-test__lista legend { width: 100%; font-weight: 700; margin-bottom: .4rem; padding: 0; }
.lv3-test__lista legend::before { content: counter(q) ". "; color: var(--wp--preset--color--naranja); font-family: var(--wp--preset--font-family--bricolage); }
.lv3-test__lista label { display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; }
.lv3-test__lista input { accent-color: var(--wp--preset--color--azul); width: 1.1rem; height: 1.1rem; }
.lv3-test--falta { outline: 2px dashed var(--wp--preset--color--naranja); }
.lv3-test__nota { margin: 0; font-family: var(--wp--preset--font-family--bricolage); font-weight: 800; font-size: 1.25rem; }
.lv3-test__nota span { font-size: 3.5rem; letter-spacing: -0.04em; }
.lv3-test__nivel { margin: 0 0 .75rem; font-family: var(--wp--preset--font-family--bricolage); font-weight: 700; font-size: 1.25rem; }

/* ---------- Software libre ---------- */
.category-software-libre, .lv3-cat-software-libre { --sec: #9BD63A; --sec-ink: #0A0C10; }
.lv3-nav-libre { --dot: #9BD63A; }
.lv3-graf--libre { --c: #65A30D; }
.lv3-graf--libre .lv3-hbarras li { grid-template-columns: minmax(6rem, 12rem) 1fr auto; }
.lv3-spdx__tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .75rem; }
.lv3-spdx__tile { padding: 1rem 1.1rem; border-radius: 18px; background: color-mix(in srgb, #65A30D 12%, var(--wp--preset--color--blanco)); }
.lv3-spdx__tile strong { display: block; font-family: var(--wp--preset--font-family--bricolage); font-size: 2.5rem; font-weight: 800; line-height: 1; letter-spacing: -0.04em; }
.lv3-spdx__tile span { display: block; margin-top: .35rem; font-size: .9375rem; }
.lv3-spdx__tile small { color: var(--wp--preset--color--grafito); }

/* ---------- Mapas de ciberataques ---------- */
.lv3-ciber {
	--g-rans: #eb6834; --g-datos: #2a78d6; --g-otros: #1baf7a; --g-viol: #6250d6;
	--tierra: color-mix(in srgb, var(--wp--preset--color--tinta) 7%, var(--wp--preset--color--blanco));
	--tierra-con: color-mix(in srgb, var(--wp--preset--color--tinta) 17%, var(--wp--preset--color--blanco));
	display: grid; gap: 1.5rem; margin-block: 2rem;
}
.lv3-ciber { --g-rans: #d95926; --g-datos: #3987e5; --g-otros: #199e70; --g-viol: #9085e9; }
.lv3-graf--violeta { --c: #6250d6; }
.lv3-graf--violeta { --c: #9085e9; }
.lv3-ciber__kpis, .lv3-ciber__cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; }
.lv3-kpi { background: var(--wp--preset--color--blanco); border: 1px solid var(--lv3-linea); border-radius: var(--lv3-radio-s); padding: 1rem 1.25rem; display: grid; gap: .25rem; align-content: start; }
.lv3-kpi__valor { font-family: var(--wp--preset--font-family--bricolage); font-weight: 800; font-size: clamp(1.9rem, 1.5rem + 1.5vw, 2.6rem); line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.lv3-kpi__valor--txt { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); line-height: 1.1; }
.lv3-kpi__txt { color: var(--wp--preset--color--grafito); font-size: .9375rem; line-height: 1.35; }
.lv3-ciber__filtros { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; }
.lv3-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.lv3-chip, .lv3-ciber__limpiar, .lv3-mapa__zoom button {
	font: 600 .9375rem/1 var(--wp--preset--font-family--bricolage); padding: .55rem .9rem; border-radius: 999px; cursor: pointer;
	border: 1px solid var(--lv3-linea); background: var(--wp--preset--color--blanco); color: var(--wp--preset--color--tinta);
	display: inline-flex; align-items: center; gap: .45rem;
}
.lv3-chip[aria-pressed="true"] { background: var(--wp--preset--color--tinta); color: var(--wp--preset--color--papel); border-color: transparent; }
.lv3-ciber__limpiar { text-decoration: underline; border-style: dashed; }
.lv3-sel { display: inline-flex; align-items: center; gap: .5rem; font: 600 .9375rem var(--wp--preset--font-family--bricolage); }
.lv3-sel select { font: inherit; font-weight: 500; padding: .45rem .7rem; border-radius: 12px; border: 1px solid var(--lv3-linea); background: var(--wp--preset--color--blanco); color: var(--wp--preset--color--tinta); max-width: 14rem; }
.lv3-punto { display: inline-block; width: .75rem; height: .75rem; border-radius: 50%; flex: none; box-shadow: 0 0 0 2px var(--wp--preset--color--blanco); }
.lv3-punto--rans { background: var(--g-rans); } .lv3-punto--datos { background: var(--g-datos); } .lv3-punto--otros { background: var(--g-otros); }

.lv3-ciber__cuerpo { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(17rem, 1fr); gap: 1.25rem; align-items: stretch; }
@media (max-width: 900px) { .lv3-ciber__cuerpo { grid-template-columns: 1fr; } }
.lv3-mapa { margin: 0; background: var(--wp--preset--color--blanco); border: 1px solid var(--lv3-linea); border-radius: var(--lv3-radio); box-shadow: var(--lv3-sombra); padding: 1rem; display: grid; gap: .75rem; align-content: start; }
.lv3-mapa__lienzo { position: relative; }
.lv3-mapa svg { display: block; width: 100%; height: auto; touch-action: manipulation; user-select: none; }
.lv3-mapa__regiones path { fill: var(--tierra); stroke: var(--wp--preset--color--blanco); stroke-width: calc(.8px / var(--k, 1)); vector-effect: non-scaling-stroke; transition: fill .15s; }
.lv3-mapa__regiones path.con { fill: var(--tierra-con); cursor: pointer; }
.lv3-mapa__regiones path:hover { fill: color-mix(in srgb, var(--wp--preset--color--tinta) 26%, var(--wp--preset--color--blanco)); }
.lv3-mapa__regiones path.sel { fill: color-mix(in srgb, var(--wp--preset--color--tinta) 34%, var(--wp--preset--color--blanco)); stroke: var(--wp--preset--color--tinta); stroke-width: 1.5px; }
.lv3-mapa--vivo .lv3-mapa__regiones path[data-paso="1"] { fill: color-mix(in oklab, var(--g-viol) 18%, var(--tierra)); }
.lv3-mapa--vivo .lv3-mapa__regiones path[data-paso="2"] { fill: color-mix(in oklab, var(--g-viol) 36%, var(--tierra)); }
.lv3-mapa--vivo .lv3-mapa__regiones path[data-paso="3"] { fill: color-mix(in oklab, var(--g-viol) 54%, var(--tierra)); }
.lv3-mapa--vivo .lv3-mapa__regiones path[data-paso="4"] { fill: color-mix(in oklab, var(--g-viol) 74%, var(--tierra)); }
.lv3-mapa--vivo .lv3-mapa__regiones path[data-paso="5"] { fill: var(--g-viol); }
.lv3-mapa__escala { display: inline-flex; vertical-align: middle; margin-left: .5rem; }
.lv3-mapa__escala i { width: 1.4rem; height: .6rem; background: var(--g-viol); }
.lv3-mapa__escala i:nth-child(1) { opacity: .18; } .lv3-mapa__escala i:nth-child(2) { opacity: .36; } .lv3-mapa__escala i:nth-child(3) { opacity: .54; } .lv3-mapa__escala i:nth-child(4) { opacity: .74; }
.lv3-mapa__escala i:first-child { border-radius: 4px 0 0 4px; } .lv3-mapa__escala i:last-child { border-radius: 0 4px 4px 0; }
.lv3-mapa__escala-txt { font-size: .75rem; margin-left: .35rem; }
.lv3-mapa__recuadro { fill: none; stroke: var(--wp--preset--color--grafito); stroke-width: 1px; vector-effect: non-scaling-stroke; opacity: .6; }
.lv3-p { stroke: var(--wp--preset--color--blanco); stroke-width: 2px; vector-effect: non-scaling-stroke; cursor: pointer; transition: opacity .15s; fill-opacity: .92; }
.lv3-p--rans { fill: var(--g-rans); } .lv3-p--datos { fill: var(--g-datos); } .lv3-p--otros { fill: var(--g-otros); }
.lv3-p.off { opacity: 0; pointer-events: none; }
.lv3-p:hover, .lv3-p:focus, .lv3-p.hover, .lv3-p.sel { stroke: var(--wp--preset--color--tinta); stroke-width: 3px; outline: none; fill-opacity: 1; }
.lv3-mapa__tip { position: absolute; z-index: 5; max-width: 17rem; pointer-events: none; background: var(--wp--preset--color--tinta); color: var(--wp--preset--color--papel); font-size: .8125rem; line-height: 1.35; padding: .5rem .7rem; border-radius: 10px; box-shadow: var(--lv3-sombra); }
.lv3-mapa__zoom { position: absolute; right: .5rem; top: .5rem; display: grid; gap: .3rem; }
.lv3-mapa__zoom button { width: 2.25rem; height: 2.25rem; padding: 0; justify-content: center; font-size: 1.15rem; box-shadow: var(--lv3-sombra); }
.lv3-mapa__leyenda { display: flex; flex-wrap: wrap; gap: .4rem 1rem; align-items: center; font-size: .875rem; color: var(--wp--preset--color--grafito); }
.lv3-mapa__leyenda > span { display: inline-flex; align-items: center; gap: .4rem; }
.lv3-mapa__ley-titulo { width: 100%; font: 700 .9375rem var(--wp--preset--font-family--bricolage); color: var(--wp--preset--color--tinta); }
.lv3-mapa__modo { width: 100%; flex-wrap: wrap; }
.lv3-mapa__modo input { accent-color: var(--g-viol); width: 1rem; height: 1rem; }
.lv3-mapa__pista { width: 100%; font-size: .8125rem; }

.lv3-ciber__lista { background: var(--wp--preset--color--blanco); border: 1px solid var(--lv3-linea); border-radius: var(--lv3-radio); box-shadow: var(--lv3-sombra); padding: 1rem 0 0; display: flex; flex-direction: column; min-height: 0; max-height: 46rem; }
.lv3-ciber__cuenta { margin: 0 1.25rem .5rem; font-family: var(--wp--preset--font-family--bricolage); }
.lv3-ciber__lista ol { list-style: none; margin: 0; padding: 0 .5rem .5rem; overflow-y: auto; flex: 1; scroll-behavior: smooth; }
.lv3-ciber__lista li { border-top: 1px solid var(--lv3-linea); }
.lv3-ciber__lista summary { cursor: pointer; display: grid; grid-template-columns: auto 1fr; gap: .1rem .6rem; align-items: center; padding: .65rem .75rem; border-radius: 12px; list-style: none; }
.lv3-ciber__lista summary::-webkit-details-marker { display: none; }
.lv3-ciber__lista summary:hover, .lv3-ciber__lista li:focus-within summary { background: var(--wp--preset--color--papel); }
.lv3-ciber__lista summary time { font-size: .8125rem; color: var(--wp--preset--color--grafito); font-variant-numeric: tabular-nums; }
.lv3-ciber__lista summary strong, .lv3-ciber__donde { grid-column: 2; }
.lv3-ciber__lista summary strong { font-family: var(--wp--preset--font-family--bricolage); line-height: 1.2; }
.lv3-ciber__donde { font-size: .8125rem; color: var(--wp--preset--color--grafito); }
.lv3-ciber__lista details > p { margin: 0 .75rem .6rem 2.1rem; font-size: .9375rem; }
.lv3-ciber__lista details[open] summary { background: var(--wp--preset--color--papel); }
.lv3-ciber__meta { font-size: .8125rem !important; color: var(--wp--preset--color--grafito); }
.lv3-ciber__vacio { margin: 1rem 1.25rem; }
.lv3-ciber__graficos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: 1.25rem; }
.lv3-ciber__graficos .lv3-barras { height: 11rem; }
.lv3-ciber__h { font-size: var(--wp--preset--font-size--medio); margin: 1rem 0 .25rem; }
.lv3-ciber__vivo, .lv3-ciber__oficial { display: grid; gap: .75rem; }
.lv3-ciber__cifras .lv3-kpi__txt a { color: inherit; }
.lv3-ciber [hidden] { display: none !important; }
.lv3-ciber .lv3-hbarras li { grid-template-columns: minmax(7rem, 11rem) 1fr auto; }
.lv3-barras--densa .lv3-barra:not(:nth-child(3n+1)) .lv3-barra__eje { visibility: hidden; }
.lv3-barras--densa { gap: 3px; }
/* La lista se adapta a la altura del mapa y hace scroll por dentro */
.lv3-ciber__lista { contain: size; min-height: 26rem; max-height: none; }
@media (max-width: 900px) { .lv3-ciber__lista { height: 30rem; } }
.lv3-mapa svg.zoom { touch-action: none; cursor: grab; }
.lv3-graf--violeta .lv3-barra:nth-child(even) .lv3-barra__eje { visibility: hidden; }

/* Submenús de la navegación (Seguridad y Datos) */
.lv3-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before { display: none; }
.lv3-nav .wp-block-navigation-submenu { position: relative; }
.lv3-nav .wp-block-navigation__submenu-icon { margin-left: -.35rem; width: .7em; height: .7em; }
@media (min-width: 600px) {
	.lv3-nav .wp-block-navigation__submenu-container {
		background: var(--wp--preset--color--blanco) !important; color: var(--wp--preset--color--tinta) !important;
		border: 1px solid var(--lv3-linea) !important; border-radius: var(--lv3-radio-s); box-shadow: var(--lv3-sombra-hover);
		padding: .4rem !important; min-width: 16rem !important; top: calc(100% + .45rem) !important; left: -.3rem !important; z-index: 60;
	}
	/* Puente invisible para que el submenú no se cierre al bajar el ratón */
	.lv3-nav .wp-block-navigation__submenu-container::before { content: ""; position: absolute; inset: -.6rem 0 auto 0; height: .6rem; }
	.lv3-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: flex; width: 100%; border-radius: 12px; padding: .55rem .8rem !important; font-weight: 600; }
}

/* Menú del móvil: el desenfoque de la cabecera atrapaba el panel a pantalla completa */
html.has-modal-open .lv3-header, .lv3-header:has(.is-menu-open) { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--wp--preset--color--papel); }
.lv3-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--papel) !important; color: var(--wp--preset--color--tinta) !important; padding: 1.25rem 1.25rem 2rem !important; }
.lv3-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3rem !important; }
.lv3-nav .is-menu-open .wp-block-navigation__container { gap: .15rem !important; align-items: stretch !important; }
.lv3-nav .is-menu-open .wp-block-navigation-item__content { font-size: 1.375rem; padding: .55rem .25rem !important; }
.lv3-nav .is-menu-open .wp-block-navigation__submenu-container { padding: 0 0 .5rem 1.4rem !important; gap: 0 !important; }
.lv3-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.0625rem; color: var(--wp--preset--color--grafito); padding: .35rem .25rem !important; }
.lv3-nav .wp-block-navigation__responsive-container-open { padding: .55rem; border-radius: 999px; border: 1px solid var(--lv3-linea); background: var(--wp--preset--color--blanco); }

/* =====================================================================
   3.0 · Oscuro editorial tech
   Capa final: fondo noche, superficies con borde fino, brillos por sección,
   detalles en monoespaciada y acento lima para lo que está «en vivo».
   ===================================================================== */

body {
	background:
		radial-gradient(60rem 36rem at 85% -10%, rgb(112 131 255 / .16), transparent 70%),
		radial-gradient(40rem 30rem at -10% 10%, rgb(198 244 92 / .07), transparent 70%),
		var(--wp--preset--color--papel);
	background-repeat: no-repeat;
}
::selection { background: var(--lv3-lima); color: var(--lv3-ink-fijo); }
:where(a, button, input, select, textarea, summary):focus-visible { outline-color: var(--lv3-lima); }
a { text-underline-offset: 3px; }

/* Etiquetas en mono */
.lv3-kicker, .wp-block-post-date, .lv3-graf__fuente, .lv3-radar time, .lv3-cve, .lv3-barra__eje,
.lv3-ciber__lista summary time, .lv3-atajo__k, .lv3-mini__cab, .lv3-mini__pie, .lv3-footer-pie, .lv3-kpi__txt a {
	font-family: var(--lv3-mono); letter-spacing: 0;
}

/* Insignia «en vivo» con pulso */
.lv3-vivo {
	display: inline-flex; align-items: center; gap: .45rem; padding: .2rem .6rem .2rem .5rem; border-radius: 999px;
	font: 500 .75rem/1.2 var(--lv3-mono); text-transform: uppercase; letter-spacing: .06em;
	color: var(--lv3-lima); background: rgb(198 244 92 / .1); border: 1px solid rgb(198 244 92 / .28);
}
.lv3-vivo::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: var(--lv3-lima); animation: lv3-latido 2s ease-out infinite; }
@keyframes lv3-latido { 0% { box-shadow: 0 0 0 0 rgb(198 244 92 / .6); } 70%, 100% { box-shadow: 0 0 0 .5rem transparent; } }

/* ---------- Cabecera ---------- */
.lv3-header { background: rgb(10 12 16 / .72); border-bottom-color: var(--lv3-linea); }
.lv3-marca { color: var(--wp--preset--color--tinta); }
.lv3-marca span, .lv3-firma span { background: linear-gradient(135deg, #5468FF, #7F90FF); box-shadow: 0 6px 24px -8px rgb(112 131 255 / .8); }
@media (min-width: 600px) {
	.lv3-nav .wp-block-navigation__container { background: rgb(255 255 255 / .03); border-color: var(--lv3-linea); box-shadow: none; }
}
.lv3-nav .wp-block-navigation-item__content { color: color-mix(in srgb, var(--wp--preset--color--tinta) 82%, transparent); }
.lv3-nav .wp-block-navigation-item__content:hover { background: rgb(255 255 255 / .06); color: var(--wp--preset--color--tinta); }
.lv3-nav .current-menu-item > .wp-block-navigation-item__content { background: rgb(255 255 255 / .08); color: var(--wp--preset--color--tinta); }
@media (min-width: 600px) {
	.lv3-nav .wp-block-navigation__submenu-container { background: #141821 !important; border-color: var(--lv3-linea-fuerte) !important; }
}
.lv3-header .wp-block-search__button { background: rgb(255 255 255 / .06); color: var(--wp--preset--color--tinta); border: 1px solid var(--lv3-linea); }
.lv3-header .wp-block-search__button:hover { background: var(--lv3-lima); color: var(--lv3-ink-fijo); }
.lv3-nav .wp-block-navigation__responsive-container-open { background: rgb(255 255 255 / .05); color: var(--wp--preset--color--tinta); }

/* ---------- Portada ---------- */
.lv3-intro { position: relative; }
.lv3-intro::before { /* rejilla técnica que se desvanece */
	content: ""; position: absolute; inset: -4rem -50vw 0; z-index: -1; pointer-events: none;
	background-image: linear-gradient(rgb(255 255 255 / .045) 1px, transparent 1px), linear-gradient(90deg, rgb(255 255 255 / .045) 1px, transparent 1px);
	background-size: 56px 56px; background-position: center top;
	mask-image: radial-gradient(ellipse 70% 80% at 50% 0%, #000 30%, transparent 75%);
}
.lv3-intro > * { margin-block: 0; }
.lv3-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; font-size: .8125rem; color: var(--wp--preset--color--grafito); margin: 0 0 1.5rem !important; }
.lv3-kicker a { color: inherit; text-decoration: none; }
.lv3-kicker a:hover { color: var(--wp--preset--color--tinta); }
.lv3-kicker strong { color: var(--wp--preset--color--tinta); font-weight: 500; }
.lv3-intro h1 { font-size: clamp(3rem, 1.4rem + 7vw, 8.25rem); line-height: .88; letter-spacing: -0.05em; max-width: 12ch; }
.lv3-grad {
	background: linear-gradient(100deg, #8C9BFF 0%, #C6F45C 55%, #5EE6B0 100%);
	-webkit-background-clip: text; background-clip: text; color: transparent;
}
.lv3-intro .lv3-claim { margin-top: 1.5rem !important; max-width: 46ch; font-size: clamp(1.125rem, 1rem + .4vw, 1.375rem); color: var(--wp--preset--color--grafito); }

/* Rejilla bento */
.lv3-bento { gap: 1rem; }
.lv3-b-mapa { grid-column: span 2; }
.lv3-b-redes { grid-column: 1 / -1; flex-direction: row; align-items: center; flex-wrap: wrap; }
.lv3-b-redes h2 { font-size: 1.5rem; }
.lv3-b-redes p { flex: 1 1 18rem; }
@media (max-width: 1000px) { .lv3-b-mapa { grid-column: 1 / -1; } }

/* Superficies: borde fino que se ilumina con el color de la sección */
.lv3-tarjeta, .lv3-radar, .lv3-graf, .lv3-b-redes, .lv3-tool, .lv3-kpi, .lv3-mapa, .lv3-ciber__lista, .is-style-en-corto, .lv3-mini, .lv3-atajo {
	background: linear-gradient(180deg, rgb(255 255 255 / .035), rgb(255 255 255 / .01)), var(--wp--preset--color--blanco);
	border: 1px solid var(--lv3-linea); box-shadow: var(--lv3-sombra);
}
.lv3-tarjeta, .lv3-atajo, .lv3-mini { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.lv3-tarjeta:hover, .lv3-atajo:hover, .lv3-mini:hover {
	transform: translateY(-3px); border-color: color-mix(in srgb, var(--sec, var(--lv3-lima)) 55%, transparent);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--sec, var(--lv3-lima)) 25%, transparent), 0 24px 60px -24px color-mix(in srgb, var(--sec, var(--lv3-lima)) 45%, transparent);
}

/* Portada generada sin imagen: malla de luz del color de la sección sobre rejilla */
.lv3-tarjeta:not(:has(.wp-block-post-featured-image))::before {
	background:
		radial-gradient(70% 90% at 85% 10%, color-mix(in srgb, var(--sec) 70%, transparent), transparent 60%),
		radial-gradient(60% 80% at 10% 100%, color-mix(in srgb, var(--sec) 35%, transparent), transparent 65%),
		linear-gradient(rgb(255 255 255 / .05) 1px, transparent 1px) 0 0 / 28px 28px,
		linear-gradient(90deg, rgb(255 255 255 / .05) 1px, transparent 1px) 0 0 / 28px 28px,
		#0E1117;
	border-bottom: 1px solid var(--lv3-linea);
}
.lv3-tarjeta .wp-block-post-title a { color: var(--wp--preset--color--tinta); }
.lv3-tarjeta:hover .wp-block-post-title a { color: #fff; }
.wp-block-post-terms.taxonomy-category a { font-family: var(--lv3-mono); font-weight: 500; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--sec); }
.wp-block-post-terms.taxonomy-category a::before { box-shadow: 0 0 10px var(--sec); }
.wp-block-post-date { font-size: .75rem !important; text-transform: uppercase; letter-spacing: .04em; }

/* Puertas de sección: superficie oscura con brillo de color */
.lv3-b-sec {
	background:
		radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--sec) 32%, transparent), transparent 60%),
		var(--wp--preset--color--blanco);
	color: var(--wp--preset--color--tinta); border: 1px solid color-mix(in srgb, var(--sec) 22%, var(--lv3-linea));
}
.lv3-b-sec::after { background: radial-gradient(circle, color-mix(in srgb, var(--sec) 40%, transparent), transparent 65%); }
.lv3-b-sec svg { color: var(--sec); filter: drop-shadow(0 0 12px color-mix(in srgb, var(--sec) 60%, transparent)); }
.lv3-b-sec small { color: var(--wp--preset--color--grafito); opacity: 1; }
.lv3-b-sec:hover { color: var(--wp--preset--color--tinta); border-color: color-mix(in srgb, var(--sec) 60%, transparent); box-shadow: 0 24px 60px -24px color-mix(in srgb, var(--sec) 55%, transparent); }

/* Radar */
.lv3-radar > h2::before { background: var(--lv3-lima); animation-name: lv3-latido; }
.lv3-radar li { border-top-color: var(--lv3-linea); }
.lv3-radar li:hover strong { color: #fff; }
.lv3-radar .lv3-cve { color: color-mix(in srgb, var(--wp--preset--color--naranja) 85%, #fff); }

/* Dato abierto: número con degradado */
.is-style-dato-abierto {
	background: radial-gradient(90% 90% at 100% 0%, rgb(112 131 255 / .35), transparent 60%), #10142A;
	border: 1px solid rgb(112 131 255 / .3); color: var(--wp--preset--color--tinta);
}
.is-style-dato-abierto > p:first-child { background: linear-gradient(120deg, #fff, #A9B5FF); -webkit-background-clip: text; background-clip: text; color: transparent; }
.is-style-dato-abierto a { color: inherit; }
.lv3-cifras .is-style-dato-abierto:nth-child(3n+2) { background: radial-gradient(90% 90% at 100% 0%, rgb(198 244 92 / .22), transparent 60%), #12170C; border-color: rgb(198 244 92 / .25); }
.is-style-dato-abierto.lv3-dato-linux { background: radial-gradient(90% 90% at 100% 0%, rgb(47 211 148 / .3), transparent 60%), #0B1A14; border-color: rgb(47 211 148 / .28); }

/* Celda «¿cómo de protegido estás?» */
.lv3-b-empieza { background: radial-gradient(100% 100% at 0% 100%, rgb(198 244 92 / .25), transparent 60%), #141A0B; color: var(--wp--preset--color--tinta); border: 1px solid rgb(198 244 92 / .25); }
.lv3-b-empieza .wp-block-button__link { background: var(--lv3-lima); color: var(--lv3-ink-fijo); }
.lv3-b-empieza .wp-block-button__link:hover { background: #fff; }

/* Mapa mini */
.lv3-b-mapa > * { margin: 0 !important; height: 100%; }
.lv3-mini { --sec: var(--wp--preset--color--naranja); display: flex; flex-direction: column; gap: .75rem; height: 100%; box-sizing: border-box; padding: 1.25rem 1.25rem 1rem; border-radius: var(--lv3-radio); text-decoration: none; color: var(--wp--preset--color--tinta); overflow: hidden; }
.lv3-mini__cab { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; font-size: .8125rem; color: var(--wp--preset--color--grafito); }
.lv3-mini__n { font: 800 1.75rem/1 var(--wp--preset--font-family--bricolage); color: var(--wp--preset--color--tinta); letter-spacing: -.03em; }
.lv3-mini__mapa { position: relative; display: block; flex: 1; min-height: 9rem; }
.lv3-mini__mapa img, .lv3-mini__mapa svg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.lv3-mini circle { stroke: var(--wp--preset--color--blanco); stroke-width: 1.5; }
.lv3-mini .lv3-p--rans { fill: #FF6B3D; } .lv3-mini .lv3-p--datos { fill: #4C95F0; } .lv3-mini .lv3-p--otros { fill: #2FD394; }
.lv3-mini__nuevo { animation: lv3-onda 2.4s ease-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes lv3-onda { 0% { stroke: rgb(255 255 255 / .9); stroke-width: 1.5; } 70%, 100% { stroke: rgb(255 255 255 / 0); stroke-width: 18; } }
.lv3-mini__pie { display: flex; justify-content: space-between; gap: 1rem; font-size: .75rem; color: var(--wp--preset--color--grafito); }
.lv3-mini__ir { color: var(--wp--preset--color--tinta); transition: transform .2s ease; }
.lv3-mini:hover .lv3-mini__ir { transform: translateX(4px); }

/* Atajos a datos y herramientas */
.lv3-atajos { margin-top: var(--wp--preset--spacing--50); }
.lv3-atajos .lv3-titulo-seccion { margin: 0 0 1.25rem; }
.lv3-atajos__rejilla { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
@media (max-width: 1000px) { .lv3-atajos__rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .lv3-atajos__rejilla { grid-template-columns: 1fr; } }
.lv3-atajo { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem 1.15rem 1.2rem; border-radius: var(--lv3-radio-s); text-decoration: none; color: var(--wp--preset--color--tinta); position: relative; overflow: hidden; }
.lv3-atajo::after { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: linear-gradient(90deg, var(--sec), transparent); opacity: .8; }
.lv3-atajo__k { font-size: .75rem; color: var(--sec); }
.lv3-atajo strong { font-family: var(--wp--preset--font-family--bricolage); font-size: 1.25rem; letter-spacing: -.02em; line-height: 1.1; }
.lv3-atajo small { color: var(--wp--preset--color--grafito); font-size: .875rem; line-height: 1.35; }
.lv3-atajo:hover { color: var(--wp--preset--color--tinta); }

.lv3-titulo-seccion { letter-spacing: -.035em; }
.lv3-titulo-seccion::before { content: "// "; font: 500 .45em var(--lv3-mono); color: var(--lv3-lima); vertical-align: .55em; letter-spacing: 0; }

/* ---------- Artículo ---------- */
.lv3-progreso { background: linear-gradient(90deg, var(--sec), var(--lv3-lima)); height: 3px; box-shadow: 0 0 12px var(--sec); }
.lv3-banda {
	background:
		radial-gradient(50% 120% at 100% 0%, color-mix(in srgb, var(--sec) 30%, transparent), transparent 70%),
		linear-gradient(rgb(255 255 255 / .035) 1px, transparent 1px) 0 0 / 56px 56px,
		linear-gradient(90deg, rgb(255 255 255 / .035) 1px, transparent 1px) 0 0 / 56px 56px,
		transparent;
	border-bottom: 1px solid var(--lv3-linea);
}
.lv3-banda .wp-block-post-terms.taxonomy-category a { background: color-mix(in srgb, var(--sec) 16%, transparent); color: var(--sec); border: 1px solid color-mix(in srgb, var(--sec) 40%, transparent); }
.lv3-banda .wp-block-post-terms.taxonomy-category a::before { background: var(--sec); }
.lv3-banda .wp-block-post-title { letter-spacing: -0.045em; }
.lv3-articulo .wp-block-post-content { color: #D4D9E3; font-size: 1.1875rem; }
.lv3-articulo .wp-block-post-content :where(h2, h3, strong) { color: var(--wp--preset--color--tinta); }
.lv3-articulo .wp-block-post-content :where(p a, li a) { color: var(--wp--preset--color--tinta); text-decoration-color: color-mix(in srgb, var(--sec) 80%, transparent); }
.lv3-articulo .wp-block-post-content :where(p a, li a):hover { color: var(--sec); }
.lv3-articulo .wp-block-post-content :where(h2)::before { content: ""; display: block; width: 2.5rem; height: 3px; margin-bottom: .9rem; border-radius: 2px; background: var(--sec); box-shadow: 0 0 14px var(--sec); }
.lv3-autor { background: radial-gradient(100% 120% at 100% 0%, color-mix(in srgb, var(--sec) 14%, transparent), transparent 60%), var(--wp--preset--color--blanco); border: 1px solid var(--lv3-linea); }
.is-style-en-corto::before { box-shadow: 0 0 16px var(--sec); }
.is-style-alerta { background: color-mix(in srgb, var(--wp--preset--color--naranja) 10%, var(--wp--preset--color--blanco)); }
.wp-block-separator { border-color: var(--lv3-linea) !important; opacity: 1; }
.wp-block-post-navigation-link a { color: var(--wp--preset--color--tinta); }
.wp-block-post-terms:not(.taxonomy-category) a { font-family: var(--lv3-mono); font-size: .8125rem; color: var(--wp--preset--color--grafito); }
.lv3-compartir a, .lv3-compartir button { background: rgb(255 255 255 / .04); }
.lv3-compartir__nativo button { background: var(--wp--preset--color--tinta); color: var(--lv3-ink-fijo); }
:where(.wp-block-post-content) code { font-family: var(--lv3-mono); background: rgb(255 255 255 / .07); padding: .1em .35em; border-radius: 6px; font-size: .9em; }

/* Archivo y búsqueda */
.lv3-archivo-cab { background: radial-gradient(70% 140% at 100% 0%, color-mix(in srgb, var(--sec) 28%, transparent), transparent 65%), var(--wp--preset--color--blanco); border-color: color-mix(in srgb, var(--sec) 25%, var(--lv3-linea)); }

/* Páginas */
.wp-block-post-title { letter-spacing: -0.04em; }
.wp-block-button.is-style-outline .wp-block-button__link { border: 1px solid var(--lv3-linea-fuerte) !important; color: var(--wp--preset--color--tinta) !important; background: transparent !important; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--lv3-lima) !important; color: var(--lv3-lima) !important; }
.lv3-ciber-nav { gap: .5rem; }

/* Herramientas */
.lv3-tool::before { background: linear-gradient(90deg, var(--wp--preset--color--naranja), var(--lv3-lima)); height: 3px; }
.lv3-pwned input { background: rgb(0 0 0 / .25); border-width: 1px; }
.lv3-pwned input:focus { border-color: var(--lv3-lima); }
.lv3-pwned__ir, .lv3-test__ver { background: var(--lv3-lima) !important; color: var(--lv3-ink-fijo) !important; border-color: transparent !important; }
.lv3-test__lista > li { background: rgb(255 255 255 / .03); border: 1px solid var(--lv3-linea); }
.lv3-test__lista input { accent-color: var(--lv3-lima); }

/* Gráficos y mapas en oscuro */
.lv3-chip[aria-pressed="true"] { background: var(--wp--preset--color--tinta); color: var(--lv3-ink-fijo); }
.lv3-chip, .lv3-ciber__limpiar, .lv3-mapa__zoom button, .lv3-sel select { background: rgb(255 255 255 / .04); }
.lv3-sel select option { background: #12151C; }
.lv3-ciber { --tierra: #1B202B; --tierra-con: #2A3242; }
.lv3-mapa__regiones path { stroke: #0F1218; }
.lv3-mapa__regiones path:hover { fill: #364055; }
.lv3-mapa__regiones path.sel { fill: #3D4A63; stroke: var(--lv3-lima); }
.lv3-p { stroke: #0F1218; }
.lv3-p:hover, .lv3-p:focus, .lv3-p.hover, .lv3-p.sel { stroke: #fff; }
.lv3-ciber__lista summary:hover, .lv3-ciber__lista li:focus-within summary, .lv3-ciber__lista details[open] summary { background: rgb(255 255 255 / .05); }
.lv3-tip, .lv3-mapa__tip { background: #F1F4F9; color: var(--lv3-ink-fijo); box-shadow: 0 12px 30px -10px rgb(0 0 0 / .8); }
.lv3-punto { box-shadow: 0 0 0 2px var(--wp--preset--color--blanco), 0 0 10px currentColor; }
.lv3-barra__fill, .lv3-hbarras__fill { box-shadow: 0 0 14px -4px var(--c); }
.lv3-spdx__tile { background: color-mix(in srgb, #9BD63A 10%, var(--wp--preset--color--blanco)); border: 1px solid rgb(155 214 58 / .2); }
.lv3-graf--linux { --c: #2FD394; }
.lv3-graf--libre { --c: #9BD63A; }
.lv3-eol__lts, .lv3-eol__barra::after { background: #2FD394; color: var(--lv3-ink-fijo); }
.lv3-crono { --lin: #2FD394; }

/* ---------- Pie ---------- */
.lv3-footer { background: linear-gradient(180deg, transparent, #06070A 30%); border-top: 1px solid var(--lv3-linea); }
.lv3-footer .lv3-firma { background: linear-gradient(180deg, #fff 30%, rgb(255 255 255 / .35)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lv3-footer .lv3-firma span { -webkit-text-fill-color: #fff; }
.lv3-footer-titulo { font-family: var(--lv3-mono); font-weight: 500; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--wp--preset--color--grafito); }
.lv3-footer-cols a { color: color-mix(in srgb, var(--wp--preset--color--tinta) 85%, transparent); }
.lv3-footer-cols a:hover { color: var(--lv3-lima); }
.lv3-footer .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--lv3-lima); color: var(--lv3-ink-fijo); }
.lv3-footer-pie { font-size: .75rem; }

@media (prefers-reduced-motion: reduce) { .lv3-vivo::before, .lv3-mini__nuevo { animation: none; } }
.lv3-intro h1 { max-width: none; }
.lv3-mini { min-height: 17rem; }
.lv3-mini__mapa { min-height: 11rem; }
.lv3-nav .wp-block-navigation__container > .wp-block-navigation-item { background: transparent !important; }
.lv3-intro h1 { letter-spacing: -0.035em; font-variation-settings: "wdth" 82; }
.lv3-banda .wp-block-post-title, .wp-block-post-title { letter-spacing: -0.032em; }
.wp-block-search__input, input[type="text"], input[type="email"], input[type="search"], textarea {
	background: rgb(0 0 0 / .3); color: var(--wp--preset--color--tinta); border: 1px solid var(--lv3-linea-fuerte); border-radius: 12px; padding: .65rem .9rem;
}
.wp-block-search__input:focus { border-color: var(--lv3-lima); outline: none; }

/* ---------- Botones de cabecera: Empieza aquí y modo claro/oscuro ---------- */
.lv3-empieza-btn {
	display: inline-flex; align-items: center; white-space: nowrap; padding: .55rem .95rem; border-radius: 999px; text-decoration: none;
	font: 700 .9375rem/1 var(--wp--preset--font-family--bricolage); background: var(--lv3-lima); color: var(--lv3-ink-fijo);
}
.lv3-empieza-btn:hover { background: #fff; color: var(--lv3-ink-fijo); }
.lv3-tema-btn {
	display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; padding: 0; border-radius: 999px; cursor: pointer;
	border: 1px solid var(--lv3-linea); background: rgb(255 255 255 / .05); color: var(--wp--preset--color--tinta);
}
.lv3-tema-btn:hover { border-color: var(--lv3-lima); color: var(--lv3-lima); }
.lv3-tema-btn .lv3-tema-luna { display: none; }
[data-tema="claro"] .lv3-tema-btn .lv3-tema-sol { display: none; }
[data-tema="claro"] .lv3-tema-btn .lv3-tema-luna { display: block; }
@media (max-width: 1100px) { .lv3-empieza-btn { display: none; } }

/* ---------- Formulario de contacto ---------- */
.lv3-contacto__form label { display: block; font: 650 1rem var(--wp--preset--font-family--bricolage); margin-bottom: .35rem; }
.lv3-contacto__form input[type="text"], .lv3-contacto__form input[type="email"], .lv3-contacto__form textarea { width: 100%; box-sizing: border-box; font: inherit; }
.lv3-contacto__form textarea { resize: vertical; }
.lv3-contacto__acepto label { display: flex; gap: .5rem; align-items: flex-start; font: 400 .9375rem var(--wp--preset--font-family--atkinson); }
.lv3-contacto__acepto input { accent-color: var(--lv3-lima); width: 1.1rem; height: 1.1rem; margin-top: .2rem; }
.lv3-contacto__trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wp-block-post-content table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.wp-block-post-content th, .wp-block-post-content td { text-align: left; padding: .6rem .7rem; border-bottom: 1px solid var(--lv3-linea); vertical-align: top; }
.wp-block-post-content th { font: 700 .875rem var(--wp--preset--font-family--bricolage); }

/* =====================================================================
   Modo claro (opcional, lo elige el lector)
   ===================================================================== */
[data-tema="claro"] {
	color-scheme: light;
	--wp--preset--color--papel: #F5F7FA;
	--wp--preset--color--blanco: #FFFFFF;
	--wp--preset--color--tinta: #12182A;
	--wp--preset--color--grafito: #4A5468;
	--wp--preset--color--azul: #2340FF;
	--wp--preset--color--naranja: #E8590C;
	--wp--preset--color--amarillo: #B38600;
	--wp--preset--color--rosa: #D6337A;
	--wp--preset--color--menta: #0E9F6E;
	--lv3-lima: #4D7C0F;
	--lv3-linea: rgb(18 24 42 / .1);
	--lv3-linea-fuerte: rgb(18 24 42 / .2);
	--lv3-sombra: 0 1px 2px rgb(18 24 42 / .05), 0 10px 28px -16px rgb(18 24 42 / .22);
	--lv3-sombra-hover: 0 2px 4px rgb(18 24 42 / .06), 0 26px 50px -22px rgb(18 24 42 / .35);
}
[data-tema="claro"] body { background: radial-gradient(60rem 36rem at 85% -10%, rgb(35 64 255 / .08), transparent 70%), var(--wp--preset--color--papel); }
[data-tema="claro"] .category-linux, [data-tema="claro"] .lv3-cat-linux { --sec: #0E9F6E; }
[data-tema="claro"] .category-sociedad, [data-tema="claro"] .lv3-cat-sociedad { --sec: #7C3AED; }
[data-tema="claro"] .category-software-libre, [data-tema="claro"] .lv3-cat-software-libre { --sec: #4D7C0F; }
[data-tema="claro"] .category-privacidad, [data-tema="claro"] .lv3-cat-privacidad { --sec: #B38600; }
[data-tema="claro"] .lv3-header { background: rgb(245 247 250 / .8); }
[data-tema="claro"] .lv3-nav .wp-block-navigation__container { background: #fff; }
[data-tema="claro"] .lv3-nav .wp-block-navigation-item__content:hover, [data-tema="claro"] .lv3-nav .current-menu-item > .wp-block-navigation-item__content { background: rgb(18 24 42 / .06); }
[data-tema="claro"] .lv3-nav .wp-block-navigation__submenu-container { background: #fff !important; }
[data-tema="claro"] .lv3-header .wp-block-search__button, [data-tema="claro"] .lv3-tema-btn, [data-tema="claro"] .lv3-nav .wp-block-navigation__responsive-container-open { background: #fff; }
[data-tema="claro"] .lv3-empieza-btn { background: var(--wp--preset--color--tinta); color: #fff; }
[data-tema="claro"] .lv3-intro::before { background-image: linear-gradient(rgb(18 24 42 / .06) 1px, transparent 1px), linear-gradient(90deg, rgb(18 24 42 / .06) 1px, transparent 1px); }
[data-tema="claro"] .lv3-grad { background-image: linear-gradient(100deg, #2340FF 0%, #4D7C0F 60%, #0E9F6E 100%); }
[data-tema="claro"] .lv3-vivo { color: #3F6212; background: rgb(77 124 15 / .1); border-color: rgb(77 124 15 / .3); }
[data-tema="claro"] .lv3-vivo::before { background: #65A30D; }
[data-tema="claro"] .lv3-tarjeta:not(:has(.wp-block-post-featured-image))::before {
	background:
		radial-gradient(70% 90% at 85% 10%, color-mix(in srgb, var(--sec) 55%, transparent), transparent 60%),
		radial-gradient(60% 80% at 10% 100%, color-mix(in srgb, var(--sec) 25%, transparent), transparent 65%),
		linear-gradient(rgb(18 24 42 / .06) 1px, transparent 1px) 0 0 / 28px 28px,
		linear-gradient(90deg, rgb(18 24 42 / .06) 1px, transparent 1px) 0 0 / 28px 28px,
		#EEF1F7;
}
[data-tema="claro"] .lv3-tarjeta:hover .wp-block-post-title a { color: var(--wp--preset--color--tinta); }
[data-tema="claro"] .lv3-banda { background: radial-gradient(50% 120% at 100% 0%, color-mix(in srgb, var(--sec) 22%, transparent), transparent 70%), linear-gradient(rgb(18 24 42 / .04) 1px, transparent 1px) 0 0 / 56px 56px, linear-gradient(90deg, rgb(18 24 42 / .04) 1px, transparent 1px) 0 0 / 56px 56px; }
[data-tema="claro"] .lv3-articulo .wp-block-post-content { color: #2A3245; }
[data-tema="claro"] .lv3-radar li:hover strong { color: var(--wp--preset--color--tinta); }
[data-tema="claro"] .lv3-radar .lv3-cve { color: #C2410C; }
[data-tema="claro"] .lv3-chip, [data-tema="claro"] .lv3-ciber__limpiar, [data-tema="claro"] .lv3-mapa__zoom button, [data-tema="claro"] .lv3-sel select, [data-tema="claro"] .lv3-compartir a, [data-tema="claro"] .lv3-compartir button { background: #fff; }
[data-tema="claro"] .lv3-sel select option { background: #fff; }
[data-tema="claro"] .lv3-ciber { --tierra: #E3E7EF; --tierra-con: #C9D0DD; }
[data-tema="claro"] .lv3-mapa__regiones path { stroke: #fff; }
[data-tema="claro"] .lv3-mapa__regiones path:hover { fill: #B7C0D1; }
[data-tema="claro"] .lv3-mapa__regiones path.sel { fill: #A9B4C8; stroke: var(--wp--preset--color--tinta); }
[data-tema="claro"] .lv3-p { stroke: #fff; }
[data-tema="claro"] .lv3-p:hover, [data-tema="claro"] .lv3-p:focus, [data-tema="claro"] .lv3-p.hover, [data-tema="claro"] .lv3-p.sel { stroke: var(--wp--preset--color--tinta); }
[data-tema="claro"] .lv3-ciber { --g-rans: #eb6834; --g-datos: #2a78d6; --g-otros: #1baf7a; --g-viol: #6250d6; }
[data-tema="claro"] .lv3-graf--violeta { --c: #6250d6; }
[data-tema="claro"] .lv3-graf--linux, [data-tema="claro"] .lv3-crono { --c: #0E9F6E; --lin: #0E9F6E; }
[data-tema="claro"] .lv3-graf--libre { --c: #4D7C0F; }
[data-tema="claro"] .lv3-crono { --win: #2340FF; }
[data-tema="claro"] .lv3-graf--dos { --es: #2340FF; --ue: #E8590C; }
[data-tema="claro"] .lv3-graf--amarillo { --c: #B38600; }
[data-tema="claro"] .lv3-tip, [data-tema="claro"] .lv3-mapa__tip { background: var(--wp--preset--color--tinta); color: #fff; }
[data-tema="claro"] .lv3-ciber__lista summary:hover, [data-tema="claro"] .lv3-ciber__lista li:focus-within summary, [data-tema="claro"] .lv3-ciber__lista details[open] summary { background: rgb(18 24 42 / .05); }
[data-tema="claro"] .lv3-test__lista > li { background: rgb(18 24 42 / .03); }
[data-tema="claro"] .wp-block-search__input, [data-tema="claro"] input[type="text"], [data-tema="claro"] input[type="email"], [data-tema="claro"] input[type="search"], [data-tema="claro"] textarea, [data-tema="claro"] .lv3-pwned input { background: #fff; }
[data-tema="claro"] .lv3-mini .lv3-p--rans { fill: #eb6834; } [data-tema="claro"] .lv3-mini .lv3-p--datos { fill: #2a78d6; } [data-tema="claro"] .lv3-mini .lv3-p--otros { fill: #1baf7a; }
[data-tema="claro"] .lv3-mini__mapa img { filter: invert(1) hue-rotate(180deg) brightness(1.05) contrast(.8); }
[data-tema="claro"] .lv3-titulo-seccion::before { color: #4D7C0F; }
[data-tema="claro"] .wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--wp--preset--color--tinta) !important; color: var(--wp--preset--color--tinta) !important; }
/* El pie y las celdas oscuras siguen oscuros en modo claro */
[data-tema="claro"] .lv3-footer, [data-tema="claro"] .lv3-b-empieza, [data-tema="claro"] .is-style-dato-abierto {
	--wp--preset--color--tinta: #ECEFF4; --wp--preset--color--grafito: #8F98AB; --lv3-linea: rgb(255 255 255 / .08); --lv3-lima: #C6F45C; color: #ECEFF4;
}
[data-tema="claro"] .lv3-footer { background: #0A0C10; }
[data-tema="claro"] .lv3-footer .lv3-redes .wp-social-link { color: #ECEFF4 !important; }
@media (max-width: 1500px) { .lv3-header-redes { display: none; } }
[data-tema="claro"] .lv3-chip[aria-pressed="true"] { color: #fff; }
[data-tema="claro"] :where(.wp-element-button, .wp-block-button__link):not(:hover) { color: #fff; }
[data-tema="claro"] .lv3-b-empieza .wp-block-button__link, [data-tema="claro"] .lv3-footer .wp-block-button:not(.is-style-outline) .wp-block-button__link { color: var(--lv3-ink-fijo); }
[data-tema="claro"] .wp-block-button.is-style-outline .wp-block-button__link { color: var(--wp--preset--color--tinta) !important; }
[data-tema="claro"] .lv3-pwned__ir, [data-tema="claro"] .lv3-test__ver { background: var(--wp--preset--color--tinta) !important; color: #fff !important; }
[data-tema="claro"] .lv3-header .wp-block-search__button, [data-tema="claro"] .lv3-header .wp-block-search__button:not(:hover) { color: var(--wp--preset--color--tinta); }
[data-tema="claro"] .lv3-chip[aria-pressed="true"] { background: var(--wp--preset--color--tinta); color: #fff; border-color: transparent; }
.lv3-articulo .wp-block-post-content .lv3-tool h2::before { display: none; }
