@charset "UTF-8";
/* ==========================================================================
   CriticaBits — la columna lateral
   --------------------------------------------------------------------------
   La barra lateral heredada era una pila de widgets sin relación entre sí:
   cada uno con su tipografía, su margen y su idea de lo que es un título.
   Aquí se le da una sola gramática —panel, filo de acento, rótulo de
   sección, cuerpo— y un color por familia, de modo que se distinga de un
   vistazo qué se está mirando sin tener que leerlo.

   ÍNDICE
     1. El panel: gramática común
     2. Índice de lectura
     3. Newsletter
     4. Lo + Visto
     5. Sectores
     6. Redes sociales
     7. Adaptación a pantallas pequeñas
   ========================================================================== */

/* ==========================================================================
   1. El panel: gramática común
   ========================================================================== */

.cb-aside {
	--cb-panel-pad: 1.4rem;
}

/* El contenedor pegajoso ya es una columna flexible, así que el orden de
   los paneles se decide con `order` (lo pone aside.php) y no tocando la
   configuración de widgets del escritorio.

   Y se le pone techo. Una columna de 2.600 px declarada `sticky` con
   `top` se queda clavada en cuanto empieza el desplazamiento y ya no se
   mueve: de la newsletter para abajo no había forma de llegar, ni
   desplazándose hasta el final del artículo. Acotándola al alto de la
   ventana la columna entera se vuelve alcanzable, y el índice —que es lo
   que acompaña a la lectura— se queda arriba del todo. */
.cb-aside .aside-sticky-container {
	position: sticky;
	top: 6.5rem;
	max-height: calc(100vh - 7.5rem);
	overflow-y: auto;
	/* Que la rueda siga moviendo la página al llegar al final. */
	overscroll-behavior-y: auto;
	gap: 1.5rem;
	/* Aire para que la barra y las sombras no toquen los paneles. */
	padding: 2px 6px 2px 2px;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, .16) transparent;
}

/* Con techo en el contenedor, los paneles se encogían para caber: la
   columna entera quedaba aplastada a 780 px. Cada panel conserva su
   alto y es la columna la que se desplaza. */
.cb-aside .aside-sticky-container > * {
	flex: 0 0 auto;
}

.cb-aside .aside-sticky-container::-webkit-scrollbar { width: 5px; }
.cb-aside .aside-sticky-container::-webkit-scrollbar-track { background: transparent; }
.cb-aside .aside-sticky-container::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, .16);
	border-radius: 5px;
}

:is(.cb-aside .widget, .cb-toc-panel--moved) {
	position: relative;
	margin: 0;
	padding: var(--cb-panel-pad);
	border: 1px solid var(--cb-hairline);
	border-radius: 6px;
	overflow: hidden;
	background:
		linear-gradient(165deg, rgba(24, 29, 46, .82), rgba(12, 15, 26, .92));
	box-shadow: var(--cb-shadow-1);
	transition:
		border-color var(--cb-base) var(--cb-ease),
		box-shadow var(--cb-base) var(--cb-ease),
		transform var(--cb-base) var(--cb-ease-out);
}

/* Un color por familia de panel. Es la única señal que distingue el
   índice de la newsletter cuando se recorre la columna de reojo. */
/* El orden lo reparte aside.php con una clase por ranura. Los widgets
   de bloque —el del índice entre ellos— se quedan sin ella, es decir en
   0, y por tanto arriba. */
.cb-aside .cb-slot-20 { order: 20; }
.cb-aside .cb-slot-30 { order: 30; }
.cb-aside .cb-slot-40 { order: 40; }
.cb-aside .cb-slot-50 { order: 50; }

:is(.cb-aside .widget, .cb-toc-panel--moved) { --cb-accent: var(--cb-neon-cyan); }
.cb-aside .cb-side--news { --cb-accent: var(--cb-neon-pink); }
.cb-aside .tfm_posts_widget { --cb-accent: var(--cb-neon-amber); }
.cb-aside .cb-side--sectors { --cb-accent: var(--cb-neon-violet); }
.cb-aside .tfm_social_widget { --cb-accent: var(--cb-neon-aqua); }

/* Filo de acento a la izquierda: apagado en reposo, encendido al pasar
   por encima. Es lo que convierte cinco cajas en una consola. */
:is(.cb-aside .widget, .cb-toc-panel--moved)::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 2px;
	background: var(--cb-accent);
	opacity: .38;
	transition: opacity var(--cb-base) var(--cb-ease), box-shadow var(--cb-base) var(--cb-ease);
}

:is(.cb-aside .widget, .cb-toc-panel--moved):hover {
	border-color: var(--cb-hairline-strong);
	box-shadow: var(--cb-shadow-2);
}

:is(.cb-aside .widget, .cb-toc-panel--moved):hover::before {
	opacity: 1;
	box-shadow: 0 0 14px -1px var(--cb-accent);
}

/* --- Rótulo del panel ---------------------------------------------------- */

:is(.cb-aside, .cb-toc-panel--moved) .widget-title {
	display: flex;
	align-items: center;
	gap: .55rem;
	margin: 0 0 .2rem;
	padding: 0;
	border: 0;
	font-family: var(--body-font, "Plus Jakarta Sans", sans-serif);
	font-size: .78rem;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: #fff;
}

:is(.cb-aside, .cb-toc-panel--moved) .widget-title::before {
	content: "";
	flex: 0 0 auto;
	width: 16px;
	height: 2px;
	border-radius: 2px;
	background: var(--cb-accent);
	box-shadow: 0 0 8px -1px var(--cb-accent);
}

:is(.cb-aside, .cb-toc-panel--moved) .widget-title::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: linear-gradient(90deg, var(--cb-hairline), transparent);
}

/* La bajada es la que separa el rótulo del cuerpo, con la línea de puntos
   de un documento técnico. */
:is(.cb-aside, .cb-toc-panel--moved) .widget-subtitle {
	margin: 0 0 1rem;
	padding: 0 0 .85rem;
	border-bottom: 1px dashed rgba(255, 255, 255, .1);
	font-family: var(--body-font, "Plus Jakarta Sans", sans-serif);
	font-size: .78rem;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: .01em;
	color: rgba(255, 255, 255, .48);
}

/* ==========================================================================
   2. Índice de lectura
   --------------------------------------------------------------------------
   Responde a tres preguntas y en este orden: cuánto llevo leído, qué
   sección estoy leyendo y qué queda por delante. El medidor de arriba y
   el raíl de la izquierda son la misma información en dos escalas: la del
   artículo entero y la de cada sección.
   ========================================================================== */

.cb-toc {
	--cb-toc-p: 0%;
	display: block;
}

/* A página completa no hay widget que lo anuncie, así que lleva su propia
   caja y su propio rótulo. */
.cb-toc--inline {
	margin: 3rem 0 3.5rem;
	padding: 1.35rem 1.5rem 1.4rem;
	border: 1px solid var(--cb-hairline);
	border-left: 3px solid var(--cb-neon-cyan);
	border-radius: 6px;
	background: linear-gradient(165deg, rgba(24, 29, 46, .9), rgba(12, 15, 26, .94));
	--cb-accent: var(--cb-neon-cyan);
}

.cb-toc__title {
	margin: 0 0 .9rem;
	font-family: var(--body-font, "Plus Jakarta Sans", sans-serif);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--cb-neon-cyan);
}

/* --- Cabecera: medidor de avance ----------------------------------------- */

.cb-toc__head {
	display: flex;
	align-items: center;
	gap: .7rem;
	margin: 0 0 1.05rem;
}

.cb-toc__meter {
	flex: 1 1 auto;
	position: relative;
	height: 3px;
	border-radius: 3px;
	background: rgba(255, 255, 255, .09);
	overflow: hidden;
}

.cb-toc__meter-fill {
	display: block;
	width: var(--cb-toc-p);
	height: 100%;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--cb-neon-pink), var(--cb-neon-cyan));
	box-shadow: 0 0 10px -2px var(--cb-neon-cyan);
	transition: width 120ms linear;
}

.cb-toc__pct {
	flex: 0 0 auto;
	min-width: 2.6em;
	text-align: right;
	font-family: var(--body-font, "Plus Jakarta Sans", sans-serif);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .06em;
	font-variant-numeric: tabular-nums;
	color: var(--cb-neon-cyan);
}

/* El plegado sólo hace falta donde el índice queda lejos de la vista: en
   el escritorio la columna es pegajosa y siempre está delante. */
.cb-toc__toggle {
	display: none;
	appearance: none;
	-webkit-appearance: none;
	flex: 0 0 auto;
	margin: 0;
	padding: .3rem .55rem;
	border: 1px solid var(--cb-hairline);
	border-radius: 3px;
	background: none;
	cursor: pointer;
	font-family: var(--body-font, "Plus Jakarta Sans", sans-serif);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .6);
	transition: color var(--cb-fast) var(--cb-ease), border-color var(--cb-fast) var(--cb-ease);
}

.cb-toc__toggle:hover {
	color: #fff;
	border-color: var(--cb-hairline-strong);
}

/* --- Cuerpo: raíl y lista ------------------------------------------------ */

.cb-toc__body {
	position: relative;
	/* Plegable sin medir alturas: una fila de rejilla que colapsa a 0fr. */
	display: grid;
	grid-template-rows: 1fr;
	overflow: hidden;
	transition: grid-template-rows var(--cb-base) var(--cb-ease-out), opacity var(--cb-base) ease;
}

.cb-toc.is-collapsed .cb-toc__body {
	grid-template-rows: 0fr;
	opacity: 0;
}

/* El raíl es una sola línea continua, no un trozo por entrada: así el
   relleno de avance puede recorrerlo de arriba abajo sin cortes. */
.cb-toc__rail {
	position: absolute;
	top: .35rem;
	bottom: .35rem;
	left: 0;
	width: 2px;
	border-radius: 2px;
	background: rgba(255, 255, 255, .09);
	pointer-events: none;
}

.cb-toc__rail-fill {
	display: block;
	width: 100%;
	height: var(--cb-toc-p);
	border-radius: 2px;
	background: linear-gradient(180deg, var(--cb-neon-pink), var(--cb-neon-cyan));
	box-shadow: 0 0 12px -2px var(--cb-neon-cyan);
	transition: height 120ms linear;
}

.cb-toc__list {
	list-style: none;
	margin: 0;
	padding: 0;
	min-height: 0;
	max-width: none;
}

/* Un índice largo llena por sí solo toda la columna y esconde lo que
   viene detrás. Con techo, la newsletter asoma por debajo y se ve que
   la columna sigue. El desplazamiento encadena con el de la columna y
   con el de la página, así que la rueda nunca se queda atrapada. */
.cb-toc__list {
	max-height: min(42vh, 380px);
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, .18) transparent;
}

.cb-toc--inline .cb-toc__list,
.cb-toc-panel--moved .cb-toc__list {
	max-height: min(60vh, 480px);
}

.cb-toc__list::-webkit-scrollbar { width: 4px; }
.cb-toc__list::-webkit-scrollbar-track { background: transparent; }
.cb-toc__list::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, .18);
	border-radius: 4px;
}

/* Difuminado al pie cuando la lista se corta, para que se vea que hay
   más secciones. Lo pone el JS sólo si realmente desborda. */
.cb-toc.is-clipped .cb-toc__body::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 34px;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(14, 17, 29, 0), rgba(14, 17, 29, .92));
}

.cb-toc__list::-webkit-scrollbar { width: 4px; }
.cb-toc__list::-webkit-scrollbar-track { background: transparent; }
.cb-toc__list::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, .18);
	border-radius: 4px;
}

.cb-toc__item {
	margin: 0;
	padding: 0;
	line-height: 1.4;
}

/* Rejilla de tres columnas: número, icono y texto. El emoji con el que
   empiezan casi todos los titulares del sitio va en columna propia para
   que los textos arranquen todos a la misma sangría. */
.cb-toc__item a {
	position: relative;
	display: grid;
	grid-template-columns: 1.7rem 0fr minmax(0, 1fr);
	align-items: baseline;
	column-gap: .5rem;
	padding: .5rem .3rem .5rem 1.05rem;
	border-radius: 0 4px 4px 0;
	text-decoration: none;
	font-size: .88rem;
	color: rgba(255, 255, 255, .72);
	transition:
		color var(--cb-fast) var(--cb-ease),
		background-color var(--cb-fast) var(--cb-ease),
		transform var(--cb-fast) var(--cb-ease-out);
}

.cb-toc__item--h3 a {
	padding-left: 2.4rem;
	font-size: .83rem;
	color: rgba(255, 255, 255, .56);
}

.cb-toc__item a:hover,
.cb-toc__item a:focus-visible {
	color: #fff;
	background: rgba(255, 255, 255, .04);
	transform: translateX(2px);
}

.cb-toc__num {
	font-family: var(--body-font, "Plus Jakarta Sans", sans-serif);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .08em;
	font-variant-numeric: tabular-nums;
	color: rgba(255, 255, 255, .3);
	transition: color var(--cb-fast) var(--cb-ease);
}

/* Los subapartados no se numeran: cuelgan de su sección con una marca. */
.cb-toc__num--sub {
	position: relative;
}

.cb-toc__num--sub::before {
	content: "";
	position: absolute;
	right: 0;
	top: .55em;
	width: 9px;
	height: 1px;
	background: rgba(255, 255, 255, .28);
	transition: background-color var(--cb-fast) var(--cb-ease), width var(--cb-fast) var(--cb-ease);
}

.cb-toc__ico {
	font-size: .95em;
	line-height: 1;
	filter: grayscale(.5);
	opacity: .7;
	transition: filter var(--cb-fast) var(--cb-ease), opacity var(--cb-fast) var(--cb-ease);
}

.cb-toc__text {
	min-width: 0;
	overflow-wrap: break-word;
}

.cb-toc__item a:hover .cb-toc__num { color: var(--cb-neon-cyan); }

.cb-toc__item a:hover .cb-toc__ico,
.cb-toc__item.is-active .cb-toc__ico {
	filter: none;
	opacity: 1;
}

/* --- Sección en curso ---------------------------------------------------- */

.cb-toc__item.is-active a {
	color: #fff;
	background: linear-gradient(90deg, rgba(0, 212, 255, .1), transparent 70%);
}

.cb-toc__item.is-active .cb-toc__num { color: var(--cb-neon-cyan); }

.cb-toc__item.is-active .cb-toc__num--sub::before {
	width: 14px;
	background: var(--cb-neon-cyan);
}

/* El punto que marca dónde estoy va sobre el raíl, no al lado: es el
   mismo hilo que el medidor de arriba, sólo que ampliado. */
.cb-toc__item.is-active a::after {
	content: "";
	position: absolute;
	left: -4px;
	top: 50%;
	width: 10px;
	height: 10px;
	margin-top: -5px;
	border-radius: 50%;
	background: var(--cb-neon-cyan);
	box-shadow:
		0 0 0 3px rgba(0, 212, 255, .16),
		0 0 14px rgba(0, 212, 255, .75);
	animation: cb-toc-pulse 2.4s var(--cb-ease) infinite;
}

@keyframes cb-toc-pulse {
	0%, 100% { box-shadow: 0 0 0 3px rgba(0, 212, 255, .16), 0 0 14px rgba(0, 212, 255, .75); }
	50%      { box-shadow: 0 0 0 5px rgba(0, 212, 255, .07), 0 0 20px rgba(0, 212, 255, .95); }
}

/* ==========================================================================
   3. Newsletter
   ========================================================================== */

.cb-news__pitch {
	margin: 0 0 1rem;
	font-size: .88rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, .72);
}

.cb-news .mc4wp-form-fields p {
	margin: 0 0 .6rem;
}

.cb-news .mc4wp-form-fields p:last-child {
	margin-bottom: 0;
}

.cb-news input[type="email"],
.cb-news input[type="text"] {
	width: 100%;
	margin: 0;
	padding: .8rem .9rem;
	border: 1px solid var(--cb-hairline-strong);
	border-radius: 4px;
	background: rgba(0, 0, 0, .35);
	color: #fff;
	font-family: var(--body-font, "Plus Jakarta Sans", sans-serif);
	font-size: .9rem;
	transition: border-color var(--cb-fast) var(--cb-ease), box-shadow var(--cb-fast) var(--cb-ease);
}

.cb-news input[type="email"]::placeholder {
	color: rgba(255, 255, 255, .34);
}

.cb-news input[type="email"]:focus {
	outline: none;
	border-color: var(--cb-neon-pink);
	box-shadow: 0 0 0 3px rgba(255, 0, 94, .18);
}

.cb-news input[type="submit"] {
	width: 100%;
	margin: 0;
	padding: .85rem 1rem;
	border: 0;
	border-radius: 4px;
	background: linear-gradient(120deg, var(--cb-neon-pink), var(--cb-neon-violet));
	color: #fff;
	font-family: var(--body-font, "Plus Jakarta Sans", sans-serif);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform var(--cb-fast) var(--cb-ease-out), box-shadow var(--cb-base) var(--cb-ease), filter var(--cb-fast) var(--cb-ease);
}

.cb-news input[type="submit"]:hover {
	transform: translateY(-1px);
	filter: brightness(1.08);
	box-shadow: 0 8px 22px -8px var(--cb-neon-pink);
}

.cb-news__fine {
	margin: .85rem 0 0;
	font-size: .7rem;
	letter-spacing: .04em;
	color: rgba(255, 255, 255, .4);
}

.cb-news .mc4wp-response {
	margin-top: .75rem;
	font-size: .82rem;
	color: rgba(255, 255, 255, .8);
}

.cb-news .mc4wp-response p { margin: 0; }

/* ==========================================================================
   4. Lo + Visto
   --------------------------------------------------------------------------
   Era una lista de titulares sin más. Con el puesto delante se lee como
   una clasificación, que es lo que en realidad es, y eso da una razón
   para entrar: no «otro artículo» sino «el más leído».
   ========================================================================== */

.cb-aside .tfm-posts-widget {
	counter-reset: cb-rank;
	display: block;
}

.cb-aside .tfm-posts-widget .article {
	counter-increment: cb-rank;
	margin: 0;
	padding: .95rem 0;
	border-top: 1px dashed rgba(255, 255, 255, .09);
}

.cb-aside .tfm-posts-widget .article:first-child {
	padding-top: 0;
	border-top: 0;
}

.cb-aside .tfm-posts-widget .article:last-child {
	padding-bottom: 0;
}

.cb-aside .tfm-posts-widget .thumbnail-wrapper {
	position: relative;
	margin: 0;
	border-radius: 4px;
	overflow: hidden;
}

.cb-aside .tfm-posts-widget .post-thumbnail,
.cb-aside .tfm-posts-widget .post-thumbnail > a {
	display: block;
	margin: 0;
	height: 100%;
}

.cb-aside .tfm-posts-widget img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--cb-slow) var(--cb-ease-out);
}

.cb-aside .tfm-posts-widget .article:hover img {
	transform: scale(1.06);
}

/* El plugin ya pintaba un puesto propio, un número enorme centrado sobre
   la miniatura… que además salía «01» en las cinco entradas. Se retira y
   se queda el de aquí, que sí cuenta. */
.cb-aside .widget.tfm_posts_widget .post-grid.show-post-count .article::before {
	content: none;
	display: none;
}

/* El puesto, sobre la miniatura. */
.cb-aside .tfm-posts-widget .thumbnail-wrapper::after {
	content: counter(cb-rank, decimal-leading-zero);
	position: absolute;
	left: 0;
	bottom: 0;
	padding: .2rem .45rem;
	background: rgba(8, 10, 18, .88);
	border-top-right-radius: 4px;
	font-family: var(--body-font, "Plus Jakarta Sans", sans-serif);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .08em;
	font-variant-numeric: tabular-nums;
	color: var(--cb-neon-amber);
}

/* La primera entrada manda: imagen ancha y titular mayor. */
.cb-aside .tfm-posts-widget .first-grid .thumbnail-wrapper {
	aspect-ratio: 16 / 9;
	margin-bottom: .7rem;
}

.cb-aside .tfm-posts-widget .first-grid .entry-title {
	font-size: 1rem;
	line-height: 1.35;
}

/* Las demás, en fila: miniatura cuadrada y titular a dos líneas. */
.cb-aside .tfm-posts-widget .article:not(.first-grid) .post-inner {
	display: grid;
	grid-template-columns: 66px minmax(0, 1fr);
	gap: .8rem;
	align-items: start;
}

.cb-aside .tfm-posts-widget .article:not(.first-grid) .thumbnail-wrapper {
	aspect-ratio: 1;
}

.cb-aside .tfm-posts-widget .entry-title {
	margin: 0;
	font-size: .88rem;
	font-weight: 700;
	line-height: 1.4;
}

.cb-aside .tfm-posts-widget .entry-title a {
	color: rgba(255, 255, 255, .88);
	text-decoration: none;
	background: none;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color var(--cb-fast) var(--cb-ease);
}

.cb-aside .tfm-posts-widget .article:hover .entry-title a,
.cb-aside .tfm-posts-widget .entry-title a:hover {
	color: var(--cb-neon-amber);
}

.cb-aside .tfm-posts-widget .entry-meta {
	margin: .35rem 0 0;
}

.cb-aside .tfm-posts-widget .post-meta {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	gap: .5rem;
	font-size: .7rem;
	letter-spacing: .04em;
	color: rgba(255, 255, 255, .42);
}

.cb-aside .tfm-posts-widget .post-meta .count {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: rgba(255, 255, 255, .68);
}

/* ==========================================================================
   5. Sectores
   --------------------------------------------------------------------------
   La barra de fondo de cada fila es proporcional al número de artículos
   de la sección: el mapa del sitio se lee como un gráfico sin necesidad
   de leer las cifras.
   ========================================================================== */

.cb-sectors {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cb-sectors__item + .cb-sectors__item {
	margin-top: 2px;
}

.cb-sectors a {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .6rem .7rem;
	border-radius: 4px;
	text-decoration: none;
	background:
		linear-gradient(
			90deg,
			rgba(122, 92, 255, .16) 0 var(--cb-share, 0%),
			transparent var(--cb-share, 0%)
		);
	font-size: .88rem;
	color: rgba(255, 255, 255, .78);
	transition:
		color var(--cb-fast) var(--cb-ease),
		transform var(--cb-fast) var(--cb-ease-out),
		background-color var(--cb-fast) var(--cb-ease);
}

.cb-sectors a:hover,
.cb-sectors a:focus-visible {
	color: #fff;
	transform: translateX(3px);
	background:
		linear-gradient(
			90deg,
			rgba(122, 92, 255, .34) 0 var(--cb-share, 0%),
			rgba(255, 255, 255, .04) var(--cb-share, 0%)
		);
}

.cb-sectors__name {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 600;
}

.cb-sectors__count {
	flex: 0 0 auto;
	min-width: 2.1em;
	padding: .1rem .4rem;
	border: 1px solid var(--cb-hairline);
	border-radius: 3px;
	text-align: center;
	font-size: .68rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: rgba(255, 255, 255, .5);
}

.cb-sectors__item.is-current a {
	color: #fff;
	box-shadow: inset 2px 0 0 var(--cb-neon-violet);
}

.cb-sectors__item.is-current .cb-sectors__count {
	border-color: var(--cb-neon-violet);
	color: var(--cb-neon-violet);
}

/* ==========================================================================
   6. Redes sociales
   ========================================================================== */

.cb-aside .tfm-social-icons-wrapper {
	margin: 0;
}

.cb-aside .tfm-social-icons {
	display: grid;
	gap: .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cb-aside .tfm-social-icon {
	margin: 0;
	padding: 0;
}

.cb-aside .tfm-social-icon a {
	display: flex;
	/* El tema lo declara row-reverse con space-between, que mandaba el
	   icono al extremo opuesto del texto al que acompaña. */
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	gap: .8rem;
	width: 100%;
	padding: .75rem .9rem;
	border: 1px solid var(--cb-hairline);
	border-radius: 4px;
	background: rgba(0, 0, 0, .28);
	color: rgba(255, 255, 255, .85);
	text-decoration: none;
	transition:
		border-color var(--cb-fast) var(--cb-ease),
		background-color var(--cb-fast) var(--cb-ease),
		transform var(--cb-fast) var(--cb-ease-out);
}

.cb-aside .tfm-social-icon a:hover {
	border-color: var(--cb-neon-aqua);
	background: rgba(0, 255, 255, .07);
	transform: translateY(-1px);
	color: #fff;
}

/* El icono lo pinta el tema en el ::before del enlace, pero con el
   nombre reordenado acababa a la derecha del todo, separado del texto
   al que acompaña. Vuelve a su sitio. */
/* El plugin invierte la fila —row-reverse con space-between— sólo dentro
   de .sidebar, y con cinco clases de especificidad. Se deshace con la
   misma forma del selector para no recurrir a !important. */
.cb-aside .tfm-social-icons-wrapper .tfm-social-icons.has-text .tfm-social-icon a,
.cb-aside .tfm-social-icons-wrapper .tfm-social-icons.has-text.icon-background .tfm-social-icon a,
.cb-aside .tfm-social-icons-wrapper .tfm-social-icons.has-text.icon-border .tfm-social-icon a {
	flex-direction: row;
	justify-content: flex-start;
	gap: .8rem;
	width: 100%;
	height: auto;
}

/* El orden lo fija flex-direction; aquí sólo se le quita el cuadro de
   fondo y se le da el color de acento. */
.cb-aside .tfm-social-icon a::before {
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
	width: auto;
	height: auto;
	background: none;
	font-size: 1.15rem;
	line-height: 1;
	color: var(--cb-accent);
}

.cb-aside .tfm-social-name {
	order: 0;
	flex: 1 1 auto;
	min-width: 0;
}

/* El nombre y el «Síguenos en» vienen en el mismo span y en ese orden;
   invirtiendo la columna, la coletilla queda encima como corresponde. */
.cb-aside .tfm-social-name {
	display: flex;
	flex-direction: column-reverse;
	gap: .1rem;
	font-family: var(--body-font, "Plus Jakarta Sans", sans-serif);
	font-size: .92rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	line-height: 1.2;
}

.cb-aside .tfm-social-subtext {
	font-size: .68rem;
	font-style: normal;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .42);
}

/* ==========================================================================
   7. Adaptación a pantallas pequeñas
   ========================================================================== */

/* En tableta la columna cae debajo del artículo a lo ancho: dos paneles
   por fila aprovechan el hueco en lugar de dejar una tira de un solo
   panel de medio kilómetro. */
@media (min-width: 783px) and (max-width: 1199px) {

	.cb-aside .aside-sticky-container {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
		gap: 1.25rem;
	}

	.cb-aside .widget:has(.cb-toc) {
		grid-column: 1 / -1;
	}
}

@media (max-width: 1199px) {

	/* A partir de aquí la columna cae DEBAJO del artículo, a todo lo
	   ancho: acotarla al alto de la ventana y dejarla pegajosa no tendría
	   ningún sentido, sólo la partiría por la mitad. */
	.cb-aside .aside-sticky-container {
		position: static;
		max-height: none;
		overflow: visible;
		padding: 0;
	}

	.cb-toc__list {
		max-height: none;
	}

	/* Debajo del artículo, un índice ya no sirve de nada: el JS lo sube
	   al principio del texto y allí conviene plegado, para no empujar el
	   primer párrafo fuera de la pantalla. */
	.cb-toc-panel--moved {
		margin: 0 0 2.5rem;
	}

	.cb-toc__toggle {
		display: inline-block;
	}
}

@media (max-width: 782px) {

	.cb-aside .widget {
		padding: 1.15rem 1.1rem;
	}

	.cb-aside .tfm-posts-widget .article:not(.first-grid) .post-inner {
		grid-template-columns: 58px minmax(0, 1fr);
	}
}

/* Movimiento reducido: el punto de la sección en curso deja de latir. */
@media (prefers-reduced-motion: reduce) {

	.cb-toc__item.is-active a::after {
		animation: none;
	}

	.cb-toc__meter-fill,
	.cb-toc__rail-fill,
	.cb-aside .tfm-posts-widget img {
		transition: none;
	}
}
