/* ==========================================================================
   China Trade Hub — Design tokens
   Paleta alineada con TuSocioEnChina.com: rojo (bandera CN/ES) + marino +
   oro como acento — el "puente China-España" en forma de color.
   ========================================================================== */
.cth-directorio,
.cth-single,
.cth-herramienta {
	--cth-tinta-900: #0F2540;
	--cth-tinta-700: #1B3A63;
	--cth-tinta-500: #2C5488;
	--cth-laca-600: #C8102E;
	--cth-laca-700: #A50D26;
	--cth-oro-500: #C99A3D;
	--cth-gris-900: #16202B;
	--cth-gris-600: #5B6675;
	--cth-gris-300: #D8DEE6;
	--cth-gris-100: #F3F5F8;
	--cth-blanco: #FFFFFF;
	--cth-verde-ok: #2E7D5B;
	--cth-radio: 10px;
	--cth-sombra: 0 1px 2px rgba(15,37,64,0.06), 0 4px 14px rgba(15,37,64,0.06);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--cth-gris-900);
	line-height: 1.5;
	max-width: 100%;
	overflow-x: hidden;
}

.cth-directorio *,
.cth-single * {
	box-sizing: border-box;
}

.cth-directorio img,
.cth-single img {
	max-width: 100%;
	height: auto;
}

/* ==========================================================================
   Filtros
   ========================================================================== */
.cth-filtros {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: 16px;
	background: rgba(255,255,255,0.55);
	backdrop-filter: blur(20px) saturate(180%);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	border: 1px solid rgba(255,255,255,0.6);
	border-radius: 18px;
	padding: 20px;
	margin-bottom: 28px;
	position: sticky;
	top: 8px;
	z-index: 20;
	box-shadow: 0 8px 32px rgba(15,37,64,0.10), inset 0 1px 0 rgba(255,255,255,0.6);
}

.cth-filtro-campo {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 180px;
	flex: 1 1 180px;
}

.cth-filtro-campo label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cth-gris-600);
}

.cth-filtro-campo input,
.cth-filtro-campo select {
	appearance: none;
	-webkit-appearance: none;
	padding: 11px 16px;
	border: 1px solid rgba(255,255,255,0.7);
	border-radius: 999px;
	background: rgba(255,255,255,0.65) url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%235B6675' stroke-width='2'%3E%3Cpath d='M5 7l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center;
	background-size: 16px;
	backdrop-filter: blur(14px) saturate(160%);
	-webkit-backdrop-filter: blur(14px) saturate(160%);
	font-size: 14px;
	color: var(--cth-gris-900);
	width: 100%;
	box-shadow: inset 0 1px 0 rgba(255,255,255,0.7), 0 1px 3px rgba(15,37,64,0.06);
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.cth-filtro-campo input {
	background-image: none;
}

.cth-filtro-campo input:focus,
.cth-filtro-campo select:focus {
	outline: none;
	border-color: var(--cth-tinta-500);
	box-shadow: 0 0 0 3px rgba(44,84,136,0.18);
}

.cth-btn-filtrar {
	background: rgba(200,16,46,0.92);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	color: var(--cth-blanco);
	border: 1px solid rgba(255,255,255,0.3);
	border-radius: 999px;
	padding: 11px 24px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.1s ease;
	box-shadow: 0 4px 14px rgba(200,16,46,0.35);
}
.cth-btn-filtrar:hover {
	background: var(--cth-laca-700);
}
.cth-btn-filtrar:active {
	transform: scale(0.97);
}

.cth-btn-limpiar {
	font-size: 13px;
	color: var(--cth-gris-600);
	text-decoration: underline;
	padding: 11px 4px;
}
.cth-btn-limpiar:hover {
	color: var(--cth-laca-600);
}

.cth-toggle-vista {
	display: flex;
	gap: 6px;
	margin-left: auto;
	background: rgba(255,255,255,0.4);
	border-radius: 999px;
	padding: 4px;
	border: 1px solid rgba(255,255,255,0.6);
}
.cth-toggle-btn {
	appearance: none;
	-webkit-appearance: none;
	background: transparent;
	border: none;
	color: var(--cth-gris-600);
	font-size: 13px;
	font-weight: 600;
	padding: 9px 16px;
	border-radius: 999px;
	cursor: pointer;
	transition: all 0.15s ease;
	white-space: nowrap;
}
.cth-toggle-btn:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(44,84,136,0.18);
}
.cth-toggle-btn:active {
	transform: scale(0.97);
}
.cth-toggle-btn.is-activo {
	background: var(--cth-tinta-700);
	color: var(--cth-blanco);
	box-shadow: 0 2px 8px rgba(15,37,64,0.25);
}
.cth-toggle-btn:not(.is-activo):hover {
	background: rgba(255,255,255,0.6);
	color: var(--cth-tinta-700);
}

/* ==========================================================================
   Grid de tarjetas
   ========================================================================== */
.cth-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
}

.cth-card {
	display: flex;
	flex-direction: column;
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	box-shadow: var(--cth-sombra);
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease, opacity 0.5s ease;
	will-change: transform;
	opacity: 0;
	transform: translateY(18px);
}
.cth-card.cth-revelada {
	opacity: 1;
	transform: translateY(0);
}
.cth-card:hover {
	border-color: var(--cth-tinta-500);
	box-shadow: 0 8px 24px rgba(15,37,64,0.14);
}
.cth-card.cth-tilt-activa {
	transition: transform 0.08s ease-out;
	box-shadow: 0 16px 34px rgba(15,37,64,0.22);
	z-index: 2;
}

.cth-card-media {
	position: relative;
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, var(--cth-tinta-700), var(--cth-tinta-900));
	overflow: hidden;
}
.cth-card-media img,
.cth-card-media svg {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.cth-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 4px 10px;
	border-radius: 999px;
	color: var(--cth-blanco);
	background: var(--cth-gris-600);
}
.cth-badge-proxima    { background: var(--cth-tinta-500); }
.cth-badge-curso      { background: var(--cth-laca-600); }
.cth-badge-finalizada { background: var(--cth-gris-600); }
.cth-badge-cancelada  { background: #8A2E2E; }

.cth-card-body {
	padding: 16px 18px 18px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
}
.cth-card-titulo {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0;
	color: var(--cth-tinta-900);
}
.cth-card-lugar {
	font-size: 13px;
	color: var(--cth-gris-600);
	margin: 0;
}
.cth-card-fechas {
	font-size: 13px;
	font-weight: 600;
	color: var(--cth-laca-700);
	margin: 2px 0 0;
}
.cth-card-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 8px;
}
.cth-chip {
	font-size: 11px;
	font-weight: 600;
	background: var(--cth-gris-100);
	border: 1px solid var(--cth-gris-300);
	color: var(--cth-tinta-700);
	padding: 3px 9px;
	border-radius: 999px;
}
.cth-card-meta {
	font-size: 12px;
	color: var(--cth-gris-600);
	margin: 6px 0 0;
}
.cth-sin-resultados {
	text-align: center;
	padding: 60px 20px;
	color: var(--cth-gris-600);
	font-size: 15px;
}

/* ==========================================================================
   Paginación
   ========================================================================== */
.cth-paginacion {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin-top: 32px;
	flex-wrap: wrap;
}
.cth-paginacion .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border-radius: 8px;
	border: 1px solid var(--cth-gris-300);
	color: var(--cth-tinta-700);
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
}
.cth-paginacion .page-numbers.current {
	background: var(--cth-tinta-700);
	color: var(--cth-blanco);
	border-color: var(--cth-tinta-700);
}
.cth-paginacion .page-numbers:hover:not(.current) {
	border-color: var(--cth-tinta-500);
}

.cth-resultados {
	position: relative;
	min-height: 120px;
	transition: opacity 0.15s ease;
}
.cth-resultados.cth-cargando {
	opacity: 0.45;
	pointer-events: none;
}
.cth-resultados.cth-cargando::after {
	content: "";
	position: absolute;
	top: 20px;
	left: 50%;
	width: 28px;
	height: 28px;
	margin-left: -14px;
	border: 3px solid var(--cth-gris-300);
	border-top-color: var(--cth-tinta-700);
	border-radius: 50%;
	animation: cth-girar 0.7s linear infinite;
}
@keyframes cth-girar {
	to { transform: rotate(360deg); }
}

/* ==========================================================================
   Calendario
   ========================================================================== */
.cth-calendario-cabecera {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
	gap: 8px;
	flex-wrap: wrap;
}
.cth-calendario-cabecera h3 {
	font-size: 18px;
	color: var(--cth-tinta-900);
	margin: 0;
	text-transform: capitalize;
}
.cth-cal-nav {
	appearance: none;
	-webkit-appearance: none;
	background: rgba(255,255,255,0.55);
	backdrop-filter: blur(14px) saturate(160%);
	-webkit-backdrop-filter: blur(14px) saturate(160%);
	border: 1px solid rgba(255,255,255,0.7);
	color: var(--cth-tinta-700);
	font-size: 13px;
	font-weight: 600;
	padding: 9px 16px;
	border-radius: 999px;
	cursor: pointer;
	white-space: nowrap;
	box-shadow: inset 0 1px 0 rgba(255,255,255,0.7), 0 1px 3px rgba(15,37,64,0.06);
	transition: box-shadow 0.15s ease, transform 0.1s ease;
}
.cth-cal-nav:hover {
	box-shadow: 0 4px 12px rgba(15,37,64,0.15);
}
.cth-cal-nav:active {
	transform: scale(0.97);
}
.cth-cal-nav:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(44,84,136,0.18);
}

.cth-calendario-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 6px;
	margin-bottom: 32px;
}
.cth-calendario-dia-semana {
	text-align: center;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--cth-gris-600);
	padding-bottom: 6px;
}
.cth-calendario-celda {
	min-height: 74px;
	border: 1px solid var(--cth-gris-300);
	border-radius: 8px;
	padding: 6px;
	background: var(--cth-blanco);
}
.cth-calendario-vacia {
	border: none;
	background: transparent;
}
.cth-calendario-con-feria {
	background: var(--cth-gris-100);
	border-color: var(--cth-tinta-500);
}
.cth-calendario-num {
	font-size: 12px;
	font-weight: 700;
	color: var(--cth-gris-600);
}
.cth-calendario-eventos {
	display: flex;
	flex-direction: column;
	gap: 3px;
	margin-top: 4px;
}
.cth-calendario-evento {
	font-size: 10px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--cth-tinta-700);
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: 4px;
	padding: 2px 5px;
	text-decoration: none;
	display: block;
}
.cth-calendario-evento:hover {
	background: var(--cth-tinta-700);
	color: var(--cth-blanco);
}
.cth-calendario-lista-titulo {
	font-size: 16px;
	color: var(--cth-tinta-900);
	margin-bottom: 14px;
}

/* ==========================================================================
   Páginas de archivo (hub general, provincia, sector)
   ========================================================================== */
.cth-archivo-cabecera {
	margin-bottom: 28px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--cth-gris-300);
}
.cth-archivo-eyebrow {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cth-laca-600);
	margin: 0 0 10px;
}
.cth-archivo-eyebrow::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--cth-laca-600);
}
.cth-archivo-cabecera h1 {
	font-size: 38px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0 0 14px;
	background: linear-gradient(100deg, var(--cth-tinta-900) 40%, var(--cth-tinta-500) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: var(--cth-tinta-900);
	-webkit-text-fill-color: transparent;
}
.cth-archivo-intro {
	color: var(--cth-gris-600);
	font-size: 16px;
	line-height: 1.6;
	max-width: 680px;
	margin: 0;
}
.cth-explora-mas {
	margin-bottom: 20px;
}
button.cth-explora-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 0 10px;
	margin: 0;
	cursor: pointer;
	text-align: left;
	appearance: none;
	-webkit-appearance: none;
	color: inherit;
}
button.cth-explora-toggle h2 {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cth-gris-600) !important;
	margin: 0;
}
.cth-explora-icono {
	color: var(--cth-gris-600);
	font-size: 13px;
	transition: transform 0.2s ease;
}
.cth-explora-cerrado .cth-explora-icono {
	transform: rotate(-90deg);
}
.cth-explora-cerrado .cth-explora-chips {
	display: none;
}
.cth-explora-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.cth-chip-enlace {
	text-decoration: none;
	font-size: 13px;
	padding: 6px 14px;
	transition: all 0.15s ease;
}
.cth-chip-enlace:hover {
	background: var(--cth-tinta-700);
	border-color: var(--cth-tinta-700);
	color: var(--cth-blanco);
}
.cth-volver-directorio {
	margin-top: 32px;
	font-size: 14px;
}
.cth-volver-directorio a {
	color: var(--cth-tinta-700);
	text-decoration: none;
	font-weight: 600;
}
.cth-volver-directorio a:hover {
	color: var(--cth-laca-600);
}

/* ==========================================================================
   Ficha individual (single-feria / single-guia-ciudad)
   ========================================================================== */
.cth-single {
	max-width: 1100px;
	margin: 0 auto;
	padding: 32px 20px 80px;
}
.cth-breadcrumbs {
	font-size: 13px;
	color: var(--cth-gris-600);
	margin-bottom: 16px;
}
.cth-breadcrumbs a {
	color: var(--cth-tinta-700);
	text-decoration: none;
	font-weight: 600;
}
.cth-breadcrumbs a:hover {
	color: var(--cth-laca-600);
}
.cth-breadcrumbs-actual {
	color: var(--cth-gris-600);
}

.cth-single-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	border-radius: var(--cth-radio);
	overflow: hidden;
	margin-bottom: 32px;
	box-shadow: var(--cth-sombra);
}
.cth-single-hero-img {
	width: 100%;
	aspect-ratio: 21 / 9;
	background: var(--cth-tinta-900);
	overflow: hidden;
}
.cth-single-hero-img img,
.cth-single-hero-img svg {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cth-single-hero-info {
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-top: none;
	padding: 24px 28px;
}
.cth-single-hero-info h1 {
	font-size: 28px;
	margin: 10px 0 12px;
	color: var(--cth-tinta-900);
	line-height: 1.25;
}
.cth-single-lugar,
.cth-single-fechas {
	font-size: 14px;
	color: var(--cth-gris-600);
	margin: 2px 0;
}
.cth-single-fechas {
	color: var(--cth-laca-700);
	font-weight: 600;
}
.cth-btn-web-oficial {
	display: inline-block;
	margin-top: 16px;
	background: var(--cth-laca-600);
	color: var(--cth-blanco);
	text-decoration: none;
	font-size: 14px;
	font-weight: 700;
	padding: 10px 20px;
	border-radius: 8px;
	transition: background 0.15s ease;
}
.cth-btn-web-oficial:hover {
	background: var(--cth-laca-700);
	color: var(--cth-blanco);
}

.cth-single-cuerpo {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 32px;
}
.cth-seccion {
	margin-bottom: 28px;
}
.cth-seccion h2 {
	font-size: 18px;
	color: var(--cth-tinta-900);
	border-bottom: 2px solid var(--cth-gris-300);
	padding-bottom: 8px;
	margin-bottom: 12px;
}
.cth-single-descripcion p {
	color: var(--cth-gris-900);
}
.cth-galeria {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 10px;
}
.cth-galeria img {
	width: 100%;
	border-radius: 8px;
	aspect-ratio: 1;
	object-fit: cover;
}
.cth-mapa-interactivo {
	width: 100%;
	border-radius: var(--cth-radio);
	overflow: hidden;
	border: 1px solid var(--cth-gris-300);
	background: var(--cth-gris-100);
}
.cth-marcador-principal span,
.cth-marcador-secundario span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-size: 18px;
	background: var(--cth-blanco);
	border: 2px solid var(--cth-laca-600);
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(15,37,64,0.25);
}
.cth-marcador-secundario span {
	font-size: 14px;
	border-color: var(--cth-tinta-500);
}
.leaflet-popup-content-wrapper {
	border-radius: 10px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.cth-guia-ciudad-bloque {
	background: var(--cth-gris-100);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	padding: 22px;
}
.cth-guia-ciudad-bloque h2 {
	margin-top: 0;
}
.cth-atracciones-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 12px;
	margin: 14px 0 20px;
}
.cth-atraccion-card {
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: 10px;
	padding: 14px;
}
.cth-atraccion-card .cth-atraccion-emoji {
	font-size: 22px;
	margin-bottom: 6px;
	display: block;
}
.cth-atraccion-card h4 {
	margin: 0 0 4px;
	font-size: 14px;
	color: var(--cth-tinta-900);
}
.cth-atraccion-card p {
	margin: 0;
	font-size: 12px;
	color: var(--cth-gris-600);
	line-height: 1.4;
}
.cth-apps-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 10px;
	margin: 14px 0 20px;
}
.cth-app-card {
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: 10px;
	padding: 10px 14px;
}
.cth-app-card-icono {
	width: 34px;
	height: 34px;
	border-radius: 8px;
	background: var(--cth-tinta-700);
	color: var(--cth-blanco);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 14px;
	flex-shrink: 0;
}
.cth-app-card-texto strong {
	display: block;
	font-size: 13px;
	color: var(--cth-tinta-900);
}
.cth-app-card-texto span {
	font-size: 12px;
	color: var(--cth-gris-600);
}
.cth-guia-enlace-completa {
	display: inline-block;
	margin-top: 6px;
	font-size: 13px;
	font-weight: 700;
	color: var(--cth-laca-600);
	text-decoration: none;
}
.cth-guia-enlace-completa:hover {
	text-decoration: underline;
}

.cth-single-lateral {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.cth-ficha-datos {
	background: var(--cth-gris-100);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	padding: 18px 20px;
}
.cth-ficha-datos h3 {
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cth-gris-600);
	margin: 0 0 12px;
}
.cth-ficha-datos ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 14px;
}
.cth-ficha-datos strong {
	color: var(--cth-tinta-900);
}
.cth-btn-volver {
	font-size: 13px;
	font-weight: 600;
	color: var(--cth-tinta-700);
	text-decoration: none;
}
.cth-btn-volver:hover {
	color: var(--cth-laca-600);
}

.cth-relacionadas {
	margin-top: 12px;
}
.cth-nav-cronologica {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: 36px;
	padding-top: 20px;
	border-top: 1px solid var(--cth-gris-300);
}
.cth-nav-cronologica a {
	font-size: 14px;
	font-weight: 600;
	color: var(--cth-tinta-700);
	text-decoration: none;
	max-width: 45%;
}
.cth-nav-cronologica a:hover {
	color: var(--cth-laca-600);
}
.cth-nav-siguiente {
	text-align: right;
	margin-left: auto;
}

/* ==========================================================================
   Gamificación: sello, confetti, toast, pasaporte
   ========================================================================== */
.cth-sello-animado {
	position: absolute;
	top: 24px;
	right: 24px;
	pointer-events: none;
	z-index: 5;
	animation: cth-sello-entrada 0.6s cubic-bezier(.2,1.4,.4,1) forwards, cth-sello-salida 0.4s ease 1.7s forwards;
}
.cth-sello-animado span {
	display: inline-block;
	border: 3px solid var(--cth-laca-600);
	color: var(--cth-laca-600);
	font-weight: 800;
	font-size: 15px;
	letter-spacing: 0.12em;
	padding: 8px 16px;
	border-radius: 6px;
	transform: rotate(-8deg);
	background: rgba(255,255,255,0.9);
	box-shadow: 0 6px 18px rgba(200,16,46,0.3);
}
@keyframes cth-sello-entrada {
	0%   { opacity: 0; transform: scale(2.4) rotate(-8deg); }
	60%  { opacity: 1; transform: scale(0.92) rotate(-8deg); }
	100% { opacity: 1; transform: scale(1) rotate(-8deg); }
}
@keyframes cth-sello-salida {
	to { opacity: 0; }
}

.cth-confetti-contenedor {
	position: fixed;
	top: 0;
	left: 0;
	width: 0;
	height: 0;
	z-index: 99999;
	pointer-events: none;
}
.cth-confetti-particula {
	position: fixed;
	width: 8px;
	height: 8px;
	border-radius: 2px;
	opacity: 0.95;
	animation: cth-confetti-vuelo 1.1s ease-out forwards;
}
@keyframes cth-confetti-vuelo {
	0%   { transform: translate(0,0) rotate(0deg); opacity: 1; }
	100% { transform: translate(var(--dx), var(--dy)) rotate(var(--rot)); opacity: 0; }
}

.cth-toast {
	position: fixed;
	bottom: 24px;
	left: 50%;
	transform: translate(-50%, 20px);
	display: flex;
	align-items: center;
	gap: 12px;
	background: #0F2540;
	color: #fff;
	padding: 14px 20px;
	border-radius: 12px;
	box-shadow: 0 12px 30px rgba(0,0,0,0.3);
	opacity: 0;
	transition: opacity 0.35s ease, transform 0.35s ease;
	z-index: 100000;
	max-width: 320px;
	width: calc(100vw - 48px);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.cth-toast-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}
.cth-toast-emoji {
	font-size: 26px;
	flex-shrink: 0;
}
.cth-toast-texto {
	font-size: 13px;
	line-height: 1.4;
}
.cth-toast-texto strong {
	font-size: 14px;
}

.cth-pasaporte-widget {
	position: fixed;
	bottom: 24px;
	left: 24px;
	z-index: 9999;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.cth-pasaporte-boton {
	position: relative;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #0F2540;
	border: none;
	cursor: pointer;
	box-shadow: 0 8px 22px rgba(15,37,64,0.35);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.2s ease;
}
.cth-pasaporte-boton:hover {
	transform: scale(1.06);
}
.cth-pasaporte-anillo {
	position: absolute;
	inset: 0;
	width: 56px;
	height: 56px;
	transform: rotate(-90deg);
}
.cth-anillo-fondo {
	fill: none;
	stroke: rgba(255,255,255,0.15);
	stroke-width: 3;
}
.cth-anillo-progreso {
	fill: none;
	stroke: #C99A3D;
	stroke-width: 3;
	stroke-linecap: round;
	transition: stroke-dasharray 0.6s ease;
}
.cth-pasaporte-emoji {
	font-size: 22px;
	position: relative;
	z-index: 1;
}
.cth-pasaporte-panel {
	position: absolute;
	bottom: 68px;
	left: 0;
	width: 280px;
	max-width: calc(100vw - 48px);
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 16px 40px rgba(15,37,64,0.25);
	padding: 18px;
	opacity: 0;
	transform: translateY(10px) scale(0.97);
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.cth-pasaporte-abierto .cth-pasaporte-panel {
	opacity: 1;
	transform: translateY(0) scale(1);
	pointer-events: auto;
}
.cth-pasaporte-panel h4 {
	margin: 0 0 6px;
	font-size: 15px;
	color: #0F2540;
}
.cth-pasaporte-panel p {
	margin: 0 0 10px;
	font-size: 13px;
	color: #5B6675;
}
.cth-pasaporte-barra {
	height: 8px;
	background: #F3F5F8;
	border-radius: 999px;
	overflow: hidden;
	margin-bottom: 14px;
}
.cth-pasaporte-barra-relleno {
	height: 100%;
	background: linear-gradient(90deg, #C8102E, #C99A3D);
	border-radius: 999px;
	transition: width 0.6s ease;
}
.cth-pasaporte-logros-titulo {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 700;
	color: #5B6675;
	margin-bottom: 8px !important;
}
.cth-pasaporte-logros {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.cth-logro-badge {
	font-size: 11px;
	font-weight: 600;
	background: #F3F5F8;
	border: 1px solid #D8DEE6;
	color: #1B3A63;
	padding: 5px 10px;
	border-radius: 999px;
}
.cth-pasaporte-sin-logros {
	font-size: 12px;
	color: #8A93A0;
	font-style: italic;
}

.cth-app-card-enlace {
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
	position: relative;
}
.cth-app-card-enlace:hover {
	border-color: var(--cth-tinta-500);
	box-shadow: 0 6px 16px rgba(15,37,64,0.12);
	transform: translateY(-1px);
}
.cth-app-card-flecha {
	margin-left: auto;
	color: var(--cth-gris-600);
	font-size: 14px;
	flex-shrink: 0;
}

.cth-app-card-codigo {
	align-items: flex-start;
	grid-column: 1 / -1;
}
.cth-app-card-codigo .cth-app-card-texto {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
}
.cth-app-card-codigo .cth-app-card-texto span {
	line-height: 1.4;
}
.cth-codigo-copiable {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--cth-gris-100);
	border: 1px dashed var(--cth-tinta-500);
	border-radius: 8px;
	padding: 6px 6px 6px 12px;
	margin-top: 2px;
	width: fit-content;
	max-width: 100%;
}
.cth-codigo-texto {
	font-family: "SF Mono", "Menlo", "Consolas", monospace;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.04em;
	color: var(--cth-tinta-900);
}
.cth-codigo-boton {
	appearance: none;
	-webkit-appearance: none;
	background: var(--cth-tinta-700);
	color: var(--cth-blanco);
	border: none;
	border-radius: 6px;
	padding: 6px 12px;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.15s ease, transform 0.1s ease;
}
.cth-codigo-boton:hover {
	background: var(--cth-laca-600);
}
.cth-codigo-boton:active {
	transform: scale(0.96);
}
.cth-codigo-boton.cth-codigo-copiado {
	background: var(--cth-verde-ok);
}

.cth-cta-servicios {
	background: linear-gradient(135deg, rgba(200,16,46,0.06), rgba(27,58,99,0.06));
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	padding: 22px;
}
.cth-cta-servicios h2 {
	border-bottom: none;
	padding-bottom: 0;
	margin-bottom: 8px;
}
.cth-cta-servicios p {
	color: var(--cth-gris-600);
	font-size: 14px;
	margin: 0 0 16px;
}
.cth-servicios-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
}
.cth-servicio-chip {
	font-size: 13px;
	font-weight: 600;
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	color: var(--cth-tinta-700);
	padding: 8px 14px;
	border-radius: 999px;
	text-decoration: none;
	transition: all 0.15s ease;
}
.cth-servicio-chip:hover {
	background: var(--cth-tinta-700);
	color: var(--cth-blanco);
	border-color: var(--cth-tinta-700);
}
.cth-btn-contacto {
	margin-top: 0;
}

/* ==========================================================================
   Responsive — tablet (≤1024px)
   ========================================================================== */
@media (max-width: 1024px) {
	.cth-single-cuerpo {
		grid-template-columns: 1fr;
	}
	.cth-single-lateral {
		order: -1;
	}
	.cth-grid {
		grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	}
}

/* ==========================================================================
   Responsive — móvil (≤782px)
   ========================================================================== */
@media (max-width: 782px) {
	.cth-filtros {
		flex-direction: column;
		align-items: stretch;
		position: static;
	}
	.cth-filtro-campo {
		min-width: 0;
		width: 100%;
		flex: 0 1 auto;
	}
	.cth-toggle-vista {
		margin-left: 0;
		width: 100%;
		flex: 0 1 auto;
	}
	.cth-toggle-btn {
		flex: 1;
	}
	.cth-btn-filtrar,
	.cth-btn-limpiar {
		flex: 0 1 auto;
		width: 100%;
		text-align: center;
	}
	.cth-grid {
		grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
		gap: 14px;
	}
	.cth-single {
		padding: 20px 14px 60px;
	}
	.cth-single-hero-info {
		padding: 18px 18px;
	}
	.cth-single-hero-info h1 {
		font-size: 22px;
	}
	.cth-single-hero-img {
		aspect-ratio: 16 / 9;
	}
	.cth-calendario-grid {
		gap: 3px;
	}
	.cth-calendario-celda {
		min-height: 54px;
		padding: 4px;
	}
	.cth-calendario-evento {
		display: none;
	}
	.cth-calendario-con-feria::after {
		content: "●";
		display: block;
		text-align: center;
		color: var(--cth-laca-600);
		font-size: 10px;
	}
	.cth-nav-cronologica {
		flex-direction: column;
	}
	.cth-nav-cronologica a {
		max-width: 100%;
	}
	.cth-nav-siguiente {
		text-align: left;
		margin-left: 0;
	}
	.cth-archivo-cabecera h1 {
		font-size: 22px;
	}
	.cth-archivo-cabecera {
		margin-bottom: 18px;
		padding-left: 6px;
		padding-right: 6px;
	}
	.cth-explora-mas {
		margin-bottom: 16px;
	}
	.cth-explora-chips {
		gap: 6px;
	}
	.cth-chip-enlace {
		font-size: 12px;
		padding: 6px 12px;
	}
	.cth-pasaporte-widget {
		bottom: 14px;
		left: 14px;
	}
}

/* ==========================================================================
   Responsive — móvil pequeño (≤420px)
   ========================================================================== */
@media (max-width: 420px) {
	.cth-grid {
		grid-template-columns: 1fr 1fr;
	}
	.cth-atracciones-grid,
	.cth-apps-grid {
		grid-template-columns: 1fr;
	}
	.cth-toast {
		bottom: 90px;
	}
}

/* ==========================================================================
   Botón "Añadir a mi calendario" (ficha de feria)
   ========================================================================== */
.cth-calendario-anadir {
	position: relative;
	display: inline-block;
	margin: 10px 0 4px;
}
.cth-btn-anadir-calendario {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border-radius: var(--cth-radio);
	border: 1px solid var(--cth-gris-300);
	background: var(--cth-blanco);
	color: var(--cth-tinta-700);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.cth-btn-anadir-calendario:hover {
	background: var(--cth-gris-100);
	border-color: var(--cth-tinta-500);
}
.cth-calendario-opciones {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	min-width: 200px;
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	box-shadow: var(--cth-sombra);
	padding: 6px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	opacity: 0;
	transform: translateY(-6px);
	pointer-events: none;
	transition: opacity 0.15s ease, transform 0.15s ease;
	z-index: 20;
}
.cth-cal-abierto .cth-calendario-opciones {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.cth-calendario-opciones a {
	display: block;
	padding: 8px 10px;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 500;
	color: var(--cth-gris-900);
	text-decoration: none;
}
.cth-calendario-opciones a:hover {
	background: var(--cth-gris-100);
}

/* ==========================================================================
   Autocompletado de ciudad (campo "Buscar" del directorio)
   ========================================================================== */
.cth-sugerencias-ciudad {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	margin: 4px 0 0;
	padding: 6px;
	list-style: none;
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	box-shadow: var(--cth-sombra);
	max-height: 260px;
	overflow-y: auto;
	opacity: 0;
	transform: translateY(-6px);
	pointer-events: none;
	transition: opacity 0.15s ease, transform 0.15s ease;
	z-index: 30;
}
.cth-sugerencias-abiertas {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.cth-sugerencia-opcion {
	padding: 8px 10px;
	border-radius: 6px;
	font-size: 13px;
	color: var(--cth-gris-900);
	cursor: pointer;
}
.cth-sugerencia-opcion:hover,
.cth-sugerencia-activa {
	background: var(--cth-gris-100);
}

/* Datos prácticos y FAQ (guías de ciudad) — optimización SEO v1 */
.cth-datos-practicos {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
	font-size: 15px;
	color: var(--cth-gris-700);
}
.cth-datos-practicos strong {
	color: var(--cth-tinta-900);
}
.cth-faq details {
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	padding: 4px 6px;
	margin-bottom: 10px;
	-webkit-tap-highlight-color: transparent;
}
.cth-faq summary {
	cursor: pointer;
	padding: 14px 16px;
	font-weight: 700;
	color: var(--cth-tinta-900);
	list-style: none;
	-webkit-tap-highlight-color: transparent;
	-webkit-touch-callout: none;
	user-select: none;
	outline: none;
}
.cth-faq summary:focus,
.cth-faq summary:active {
	outline: none;
	background: transparent;
}
.cth-faq summary::-webkit-details-marker {
	display: none;
}
.cth-faq summary::after {
	content: "+";
	float: right;
	color: var(--cth-laca-600);
	font-weight: 700;
}
.cth-faq details[open] summary::after {
	content: "–";
}
.cth-faq p {
	padding: 0 16px 16px;
	margin: 0;
	color: var(--cth-gris-700);
	font-size: 14.5px;
}

/* Mapa nacional y comparador de ferias — mejoras de funcionalidad v1 */
.cth-mapa-nacional-wrap {
	margin: 20px 0;
}
.cth-mapa-nacional-intro {
	font-size: 14px;
	color: var(--cth-gris-600);
	margin: 0 0 14px;
}
.cth-comparador {
	margin: 20px 0;
}
.cth-comparador-intro {
	font-size: 14px;
	color: var(--cth-gris-600);
	margin: 0 0 14px;
}
.cth-comparador-selectores {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 12px;
	margin-bottom: 20px;
}
.cth-comparador-select {
	padding: 10px 12px;
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	font-size: 14px;
	background: var(--cth-blanco);
	color: var(--cth-gris-900);
}
.cth-comparador-aviso {
	font-size: 14px;
	color: var(--cth-gris-600);
}
.cth-comparador-tabla-wrap {
	overflow-x: auto;
}
.cth-comparador-tabla {
	width: 100%;
	border-collapse: collapse;
	min-width: 480px;
	font-size: 14px;
}
.cth-comparador-tabla th,
.cth-comparador-tabla td {
	padding: 12px 14px;
	border-bottom: 1px solid var(--cth-gris-300);
	text-align: left;
	vertical-align: top;
}
.cth-comparador-tabla thead th {
	background: var(--cth-tinta-900);
	color: #fff;
	font-weight: 700;
}
.cth-comparador-tabla thead th a {
	color: #fff;
	text-decoration: underline;
}
.cth-comparador-tabla tbody tr:nth-child(even) {
	background: var(--cth-gris-100);
}
.cth-comparador-tabla td:first-child {
	font-weight: 600;
	color: var(--cth-gris-600);
}

/* Botón "Descargar dossier en PDF" y hoja de impresión — mejoras v1 */
.cth-btn-pdf {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-left: 10px;
	padding: 10px 16px;
	border-radius: 8px;
	border: 1px solid var(--cth-gris-300);
	background: var(--cth-blanco);
	color: var(--cth-tinta-900);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}
.cth-btn-pdf:hover {
	border-color: var(--cth-laca-600);
	color: var(--cth-laca-600);
}
@media print {
	.cth-breadcrumbs,
	.cth-single-lateral,
	.cth-relacionadas,
	.cth-nav-cronologica,
	.cth-cta-servicios,
	.cth-btn-pdf,
	.cth-calendario-anadir,
	header,
	footer,
	nav {
		display: none !important;
	}
	.cth-single-cuerpo {
		display: block !important;
	}
	.cth-single {
		max-width: 100% !important;
	}
}

/* Fecha de actualización — mejoras v1 */
.cth-actualizado {
	font-size: 12.5px;
	color: var(--cth-gris-600);
	margin-top: 10px;
}

/* Mapa nacional con filtros — mejoras v2 */
.cth-mapa-nacional-filtros {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}
.cth-mapa-filtro {
	padding: 9px 12px;
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	font-size: 14px;
	background: var(--cth-blanco);
	color: var(--cth-gris-900);
}
.cth-mapa-nacional-contenedor {
	height: 560px;
	border-radius: var(--cth-radio);
	overflow: hidden;
	border: 1px solid var(--cth-gris-300);
}

/* ==========================================================================
   HERRAMIENTAS INTERACTIVAS v1 — calculadora, glosario, mapa de clusters
   Namespacing: .cth-calc-*, .cth-gloss-*, .cth-clusters-*
   Reutiliza las variables --cth-* definidas arriba, no redefine nada.
   ========================================================================== */
.cth-herramienta {
	margin: 0 auto 40px;
	max-width: 1100px;
}
.cth-calc-titulo {
	font-size: 26px;
	color: var(--cth-tinta-900);
	margin: 0 0 8px;
}
.cth-calc-intro p,
.cth-glosario-intro p,
.cth-clusters-intro p {
	color: var(--cth-gris-600);
	font-size: 15px;
	max-width: 760px;
	margin: 0 0 22px;
}

/* --- Calculadora ---------------------------------------------------- */
.cth-calc-grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 24px;
	align-items: start;
}
@media (max-width: 780px) {
	.cth-calc-grid {
		grid-template-columns: 1fr;
	}
	.cth-calc-resultado {
		position: static;
		top: auto;
	}
}
.cth-calc-fieldset {
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	padding: 16px 18px 18px;
	margin: 0 0 16px;
	background: var(--cth-blanco);
}
.cth-calc-fieldset legend {
	font-size: 13px;
	font-weight: 600;
	color: var(--cth-tinta-700);
	padding: 0 6px;
}
.cth-calc-campo {
	margin-bottom: 12px;
}
.cth-calc-campo:last-child {
	margin-bottom: 0;
}
.cth-calc-campo label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	color: var(--cth-gris-900);
	margin-bottom: 5px;
}
.cth-calc-campo input[type="number"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	font-size: 16px;
	color: var(--cth-gris-900);
	background: var(--cth-gris-100);
}
.cth-calc-campo input[type="number"]:focus {
	outline: none;
	border-color: var(--cth-tinta-500);
	background: var(--cth-blanco);
}
.cth-calc-info {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--cth-gris-300);
	color: var(--cth-gris-900);
	font-size: 11px;
	font-weight: 700;
	cursor: help;
	position: relative;
}
.cth-calc-info:hover::after,
.cth-calc-info:focus::after {
	content: attr(data-tip);
	position: absolute;
	bottom: 130%;
	left: 50%;
	transform: translateX(-50%);
	background: var(--cth-tinta-900);
	color: var(--cth-blanco);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
	padding: 9px 11px;
	border-radius: 8px;
	width: 220px;
	z-index: 5;
	box-shadow: var(--cth-sombra);
}
.cth-calc-resultado {
	display: flex;
	flex-direction: column;
	gap: 12px;
	position: sticky;
	top: 16px;
}
.cth-calc-card {
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	padding: 16px 18px;
	box-shadow: var(--cth-sombra);
}
.cth-calc-card-label {
	display: block;
	font-size: 12.5px;
	color: var(--cth-gris-600);
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin-bottom: 6px;
}
.cth-calc-card-valor {
	display: block;
	font-size: 26px;
	font-weight: 700;
	color: var(--cth-tinta-900);
}
.cth-calc-card-valor small {
	font-size: 15px;
	font-weight: 600;
	color: var(--cth-gris-600);
}
.cth-calc-card-sub {
	display: block;
	font-size: 13px;
	color: var(--cth-gris-600);
	margin-top: 6px;
}
.cth-calc-card-total {
	background: linear-gradient(135deg, var(--cth-tinta-700), var(--cth-tinta-900));
	border: none;
}
.cth-calc-card-total .cth-calc-card-label,
.cth-calc-card-total .cth-calc-card-sub {
	color: rgba(255,255,255,0.75);
}
.cth-calc-card-total .cth-calc-card-valor {
	color: var(--cth-blanco);
}
.cth-calc-card-ok {
	border-color: var(--cth-verde-ok);
}
.cth-calc-card-ok .cth-calc-card-valor {
	color: var(--cth-verde-ok);
}
.cth-calc-card-mal {
	border-color: var(--cth-laca-600);
}
.cth-calc-card-mal .cth-calc-card-valor {
	color: var(--cth-laca-600);
}
.cth-calc-lista-desglose {
	list-style: none;
	margin: 6px 0 0;
	padding: 0;
}
.cth-calc-lista-desglose li {
	display: flex;
	justify-content: space-between;
	font-size: 13.5px;
	padding: 6px 0;
	border-bottom: 1px dashed var(--cth-gris-300);
	color: var(--cth-gris-900);
}
.cth-calc-lista-desglose li:last-child {
	border-bottom: none;
}
.cth-calc-lista-nota span {
	color: var(--cth-gris-600);
}
.cth-calc-desglose-nota {
	font-size: 12px;
	color: var(--cth-gris-600);
	margin: 8px 0 0;
}
.cth-calc-barra {
	display: flex;
	height: 14px;
	border-radius: 7px;
	overflow: hidden;
	margin-top: 8px;
	background: var(--cth-gris-300);
}
.cth-calc-barra-coste {
	background: var(--cth-gris-600);
}
.cth-calc-barra-margen {
	background: var(--cth-verde-ok);
}
.cth-calc-barra-leyenda {
	display: flex;
	gap: 16px;
	margin-top: 8px;
	font-size: 12.5px;
	color: var(--cth-gris-600);
}
.cth-calc-barra-leyenda span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.cth-calc-dot-coste,
.cth-calc-dot-margen {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	display: inline-block;
}
.cth-calc-dot-coste {
	background: var(--cth-gris-600);
}
.cth-calc-dot-margen {
	background: var(--cth-verde-ok);
}
.cth-calc-nota {
	font-size: 12.5px;
	color: var(--cth-gris-600);
	margin-top: 20px;
	line-height: 1.6;
}
.cth-calc-nota a {
	color: var(--cth-tinta-700);
}

/* --- Glosario --------------------------------------------------------- */
.cth-glosario-buscador {
	position: sticky;
	top: 0;
	background: var(--cth-blanco);
	padding: 14px 0;
	z-index: 3;
	border-bottom: 1px solid var(--cth-gris-300);
	margin-bottom: 14px;
}
.cth-gloss-input {
	width: 100%;
	padding: 12px 14px;
	font-size: 16px;
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	background: var(--cth-gris-100);
	margin-bottom: 10px;
}
.cth-gloss-input:focus {
	outline: none;
	border-color: var(--cth-tinta-500);
	background: var(--cth-blanco);
}
.cth-gloss-categorias {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.cth-gloss-cat {
	padding: 7px 12px;
	border-radius: 999px;
	border: 1px solid var(--cth-gris-300);
	background: var(--cth-blanco);
	color: var(--cth-tinta-700);
	font-size: 13px;
	cursor: pointer;
}
.cth-gloss-cat.is-activo {
	background: var(--cth-tinta-700);
	border-color: var(--cth-tinta-700);
	color: var(--cth-blanco);
}
.cth-gloss-contador {
	font-size: 13px;
	color: var(--cth-gris-600);
	margin: 0 0 14px;
}
.cth-gloss-lista {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}
@media (max-width: 780px) {
	.cth-gloss-lista {
		grid-template-columns: 1fr;
	}
}
.cth-gloss-item {
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	padding: 16px 18px;
	scroll-margin-top: 100px;
}
.cth-gloss-item-destacado {
	border-color: var(--cth-oro-500);
	box-shadow: 0 0 0 3px rgba(201,154,61,0.25);
}
.cth-gloss-item-cabecera {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 6px;
}
.cth-gloss-item-titulo {
	font-size: 16px;
	color: var(--cth-tinta-900);
	margin: 0;
}
.cth-gloss-item-badge {
	flex-shrink: 0;
	font-size: 11px;
	padding: 3px 9px;
	border-radius: 999px;
	background: var(--cth-gris-100);
	color: var(--cth-tinta-700);
	border: 1px solid var(--cth-gris-300);
	white-space: nowrap;
}
.cth-gloss-item-def {
	font-size: 14px;
	color: var(--cth-gris-900);
	line-height: 1.55;
	margin: 0 0 8px;
}
.cth-gloss-item-ejemplo {
	font-size: 13px;
	color: var(--cth-gris-600);
	background: var(--cth-gris-100);
	border-radius: 8px;
	padding: 8px 10px;
	margin: 0 0 8px;
}
.cth-gloss-item-enlace {
	font-size: 11.5px;
	color: var(--cth-gris-600);
	text-decoration: none;
}
.cth-gloss-item-enlace:hover {
	color: var(--cth-tinta-700);
}
.cth-gloss-sin-resultados {
	text-align: center;
	color: var(--cth-gris-600);
	padding: 30px 0;
}

/* --- Mapa de clusters industriales ------------------------------------ */
.cth-clusters-layout {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 20px;
	align-items: start;
}
@media (max-width: 780px) {
	.cth-clusters-layout {
		grid-template-columns: 1fr;
	}
}
.cth-clusters-svg {
	width: 100%;
	height: auto;
	border-radius: var(--cth-radio);
	border: 1px solid var(--cth-gris-300);
}
.cth-clusters-fondo {
	fill: var(--cth-gris-100);
}
.cth-clusters-grid {
	stroke: var(--cth-gris-300);
	stroke-width: 1;
	opacity: 0.5;
}
.cth-clusters-nodo {
	cursor: pointer;
}
.cth-clusters-nodo:focus {
	outline: none;
}
.cth-clusters-punto {
	fill: var(--cth-tinta-500);
	stroke: var(--cth-blanco);
	stroke-width: 2.5;
	transition: fill 0.15s ease, r 0.15s ease;
}
.cth-clusters-nodo:hover .cth-clusters-punto,
.cth-clusters-nodo:focus .cth-clusters-punto,
.cth-clusters-nodo.is-activo .cth-clusters-punto {
	fill: var(--cth-laca-600);
}
.cth-clusters-etiqueta {
	font-size: 15px;
	fill: var(--cth-tinta-900);
	font-weight: 600;
	pointer-events: none;
}
.cth-clusters-panel {
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	padding: 20px;
	min-height: 220px;
	box-shadow: var(--cth-sombra);
}
.cth-clusters-panel-vacio {
	color: var(--cth-gris-600);
	font-size: 14px;
}
.cth-clusters-panel-titulo {
	font-size: 20px;
	color: var(--cth-tinta-900);
	margin: 0 0 8px;
}
.cth-clusters-panel-especialidad {
	font-size: 14px;
	color: var(--cth-gris-900);
	line-height: 1.55;
	margin: 0 0 14px;
}
.cth-clusters-panel-bloque {
	margin-bottom: 14px;
}
.cth-clusters-panel-etiqueta {
	display: block;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--cth-gris-600);
	margin-bottom: 6px;
}
.cth-clusters-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.cth-clusters-chip {
	font-size: 12.5px;
	padding: 5px 10px;
	border-radius: 999px;
	background: var(--cth-gris-100);
	border: 1px solid var(--cth-gris-300);
	color: var(--cth-tinta-700);
}
.cth-clusters-panel-enlace {
	display: inline-block;
	margin-top: 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--cth-laca-600);
	text-decoration: none;
}
.cth-clusters-panel-enlace:hover {
	color: var(--cth-laca-700);
}

/* ==========================================================================
   FIX: zoom automático de iOS al enfocar campos con font-size < 16px
   Solo afecta a móvil, no cambia el tamaño calibrado en escritorio.
   ========================================================================== */
@media (max-width: 780px) {
	.cth-filtro-campo input,
	.cth-filtro-campo select,
	.cth-comparador-select {
		font-size: 16px;
	}
}

/* ==========================================================================
   MOTOR DE ENLAZADO INTERNO — "Sigue explorando" (guías) y
   "Más herramientas gratuitas" (calculadora/glosario/mapa).
   Namespacing: .cth-relacionados-*, .cth-cruzadas-*
   ========================================================================== */
.cth-relacionados-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}
@media (max-width: 780px) {
	.cth-relacionados-grid {
		grid-template-columns: 1fr;
	}
}
.cth-relacionados-card {
	display: block;
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	padding: 18px 20px;
	text-decoration: none;
	transition: border-color 0.15s ease, transform 0.15s ease;
}
a.cth-relacionados-card:hover {
	border-color: var(--cth-tinta-500);
	transform: translateY(-2px);
}
.cth-relacionados-card-tag {
	display: inline-block;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cth-laca-600);
	font-weight: 700;
	margin-bottom: 8px;
}
.cth-relacionados-card h3 {
	font-size: 16px;
	color: var(--cth-tinta-900);
	margin: 0 0 8px;
	line-height: 1.35;
}
.cth-relacionados-card p {
	font-size: 13.5px;
	color: var(--cth-gris-600);
	margin: 0 0 8px;
	line-height: 1.5;
}
.cth-relacionados-card-cta {
	font-size: 13px;
	font-weight: 600;
	color: var(--cth-tinta-700);
}
.cth-relacionados-card-cta-principal {
	background: linear-gradient(135deg, var(--cth-tinta-700), var(--cth-tinta-900));
	border: none;
}
.cth-relacionados-card-cta-principal .cth-relacionados-card-tag,
.cth-relacionados-card-cta-principal p {
	color: rgba(255,255,255,0.75);
}
.cth-relacionados-card-cta-principal h3,
.cth-relacionados-card-cta-principal .cth-relacionados-card-cta {
	color: var(--cth-blanco);
}
.cth-relacionados-card-lista ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.cth-relacionados-card-lista li {
	padding: 6px 0;
	border-bottom: 1px dashed var(--cth-gris-300);
}
.cth-relacionados-card-lista li:last-child {
	border-bottom: none;
}
.cth-relacionados-card-lista a {
	font-size: 14px;
	font-weight: 600;
	color: var(--cth-tinta-700);
	text-decoration: none;
}
.cth-relacionados-card-lista a:hover {
	text-decoration: underline;
}

/* --- Pie "Más herramientas gratuitas" --------------------------------- */
.cth-cruzadas {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid var(--cth-gris-300);
}
.cth-cruzadas-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
@media (max-width: 780px) {
	.cth-cruzadas-grid {
		grid-template-columns: 1fr;
	}
}
.cth-cruzadas-card {
	display: block;
	background: var(--cth-gris-100);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	padding: 18px 20px;
	text-decoration: none;
	transition: border-color 0.15s ease, transform 0.15s ease;
}
.cth-cruzadas-card:hover {
	border-color: var(--cth-tinta-500);
	transform: translateY(-2px);
	background: var(--cth-blanco);
}
.cth-cruzadas-card h3 {
	font-size: 15px;
	color: var(--cth-tinta-900);
	margin: 0 0 6px;
}
.cth-cruzadas-card p {
	font-size: 13px;
	color: var(--cth-gris-600);
	margin: 0;
	line-height: 1.45;
}

/* --- Chips-enlace dentro del panel del mapa de clusters ---------------- */
.cth-clusters-chip-enlace {
	text-decoration: none;
	cursor: pointer;
	font-weight: 600;
	color: var(--cth-tinta-700);
	background: var(--cth-blanco);
}
.cth-clusters-chip-enlace:hover {
	background: var(--cth-tinta-700);
	color: var(--cth-blanco);
}


.cth-wizard-chips{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
.cth-wizard-chip{border:1px solid #d8d8d8;background:#fff;border-radius:999px;padding:10px 16px;cursor:pointer;font-size:15px;transition:all .15s}
.cth-wizard-chip:hover{border-color:#c0392b;color:#c0392b}
.cth-wizard-atras{background:none;border:none;color:#777;cursor:pointer;padding:6px 0;font-size:14px}
.cth-wizard-card{border:1px solid #eee;border-radius:12px;padding:16px 18px;margin:12px 0;background:#fff}
.cth-wizard-tag{display:inline-block;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#c0392b;font-weight:700}
.cth-wizard-sub{margin-top:26px}
.cth-wizard-nota{background:#fdf6ec;border-radius:10px;padding:12px 14px;margin:12px 0}
.cth-wizard-ciudad{display:inline-block;margin:4px 10px 4px 0;font-weight:600}
.cth-wizard-cta{display:inline-block;background:#25d366;color:#fff !important;font-weight:700;border-radius:10px;padding:14px 22px;margin-top:18px;text-decoration:none}
.cth-wizard-ctasub{color:#666;font-size:14px;margin-top:6px}
.cth-wizard-otra{background:none;border:none;color:#777;cursor:pointer;margin-top:14px;text-decoration:underline}

.cth-comp-intro{font-size:18px;color:#444}
.cth-comp-tabla-wrap{overflow-x:auto;margin:22px 0}
.cth-comp-tabla{width:100%;border-collapse:collapse;font-size:15px}
.cth-comp-tabla th,.cth-comp-tabla td{border:1px solid #eee;padding:12px 14px;text-align:left;vertical-align:top}
.cth-comp-tabla thead th{background:#faf6f2;font-size:16px}
.cth-comp-tabla tbody th{background:#fbfbfb;white-space:nowrap}
.cth-comp-veredicto{border-left:4px solid #c0392b;background:#fff;padding:12px 16px;margin:12px 0;border-radius:0 10px 10px 0;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.cth-comp-cierre{margin-top:26px;font-size:16px}


/* ═══════════════════════════════════════════════════════════════════
   WIZARD ¿QUÉ FERIA PARA MI PRODUCTO? — v3.45.0
   Mobile-first. Breakpoints: 480px / 768px / 1024px
   ═══════════════════════════════════════════════════════════════════ */

/* Contenedor principal */
.cth-wizard { font-family: inherit; }

/* Pregunta de cada paso */
.cth-wiz-pregunta {
  font-size: 1.25rem; font-weight: 700; color: #222;
  margin: 0 0 18px; line-height: 1.3;
}

/* Grid de sectores (paso 1): 2 columnas en móvil, 3 en tablet, 4 en desktop */
.cth-wiz-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 16px;
}
@media (min-width: 480px) { .cth-wiz-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 768px) { .cth-wiz-grid { grid-template-columns: repeat(4, 1fr); } }

/* Chip de sector */
.cth-wiz-sector {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  padding: 12px 8px; border: 1.5px solid #e0e0e0; border-radius: 10px;
  background: #fff; cursor: pointer; text-align: center;
  font-size: 13px; line-height: 1.2; color: #333;
  transition: border-color .15s, box-shadow .15s, transform .1s;
  min-height: 72px;
}
.cth-wiz-sector:hover,
.cth-wiz-sector:focus-visible {
  border-color: #c0392b; box-shadow: 0 2px 8px rgba(192,57,43,.15);
  transform: translateY(-1px); outline: none;
}
.cth-wiz-emoji { font-size: 22px; line-height: 1; }
.cth-wiz-snombre { font-size: 12px; color: #444; }
@media (min-width: 480px) { .cth-wiz-snombre { font-size: 13px; } }

/* Opciones de paso 2 y 3 */
.cth-wiz-opts { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
@media (min-width: 600px) { .cth-wiz-opts { flex-direction: row; flex-wrap: wrap; } }

.cth-wiz-opt {
  flex: 1; min-width: 180px; padding: 14px 18px;
  border: 1.5px solid #d0d0d0; border-radius: 10px; background: #fff;
  cursor: pointer; font-size: 15px; text-align: left;
  transition: border-color .15s, box-shadow .15s;
}
.cth-wiz-opt:hover, .cth-wiz-opt:focus-visible {
  border-color: #c0392b; box-shadow: 0 2px 8px rgba(192,57,43,.12);
  outline: none;
}

/* Botón atrás */
.cth-wiz-back {
  background: none; border: none; color: #888; font-size: 14px;
  cursor: pointer; padding: 4px 0; margin-top: 4px;
}
.cth-wiz-back:hover { color: #444; }

/* ── Resultado ── */
.cth-wiz-res-header {
  margin-bottom: 14px;
}
.cth-wiz-res-sector {
  display: inline-block; background: #fdf3f2; color: #c0392b;
  border-radius: 20px; padding: 6px 14px; font-weight: 700; font-size: 15px;
}

/* Tarjeta de feria */
.cth-wiz-card {
  border: 1.5px solid #eee; border-radius: 12px; padding: 16px 18px;
  margin-bottom: 12px; background: #fff;
}
.cth-wiz-card--main { border-color: #c0392b; border-width: 2px; }
.cth-wiz-card--alt  { border-color: #ddd; }

.cth-wiz-etiq {
  display: inline-block; font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .6px; color: #c0392b;
  margin-bottom: 6px;
}
.cth-wiz-card--alt .cth-wiz-etiq { color: #888; }
.cth-wiz-card h3 { margin: 0 0 6px; font-size: 17px; line-height: 1.3; }
.cth-wiz-card h3 a { color: #222; text-decoration: none; }
.cth-wiz-card h3 a:hover { color: #c0392b; }
.cth-wiz-fecha { margin: 0; font-size: 14px; color: #666; }

/* Nota Yiwu */
.cth-wiz-yiwu {
  background: #fdf6ec; border-radius: 10px; padding: 12px 16px;
  font-size: 14px; margin: 10px 0;
}
.cth-wiz-yiwu a { color: #c0392b; font-weight: 600; }

/* Nota sin feria / fuera de ventana */
.cth-wiz-nota { font-size: 14px; color: #555; margin: 12px 0; }
.cth-wiz-dir { color: #c0392b; font-weight: 600; }

/* Sección ciudades */
.cth-wiz-sec { font-size: 16px; margin: 22px 0 10px; }
.cth-wiz-cluster {
  border: 1px solid #eee; border-radius: 10px; padding: 14px 16px;
  margin-bottom: 10px; background: #fafafa;
}
.cth-wiz-cnombre { margin: 0 0 4px; font-size: 15px; }
.cth-wiz-cesp    { margin: 0 0 10px; font-size: 13px; color: #666; }
.cth-wiz-ciudades { display: flex; flex-wrap: wrap; gap: 8px; }
.cth-wiz-ciudad {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 5px 12px; background: #fff; border: 1px solid #ddd;
  border-radius: 20px; font-size: 14px; font-weight: 600;
  color: #333; text-decoration: none;
  transition: border-color .12s, color .12s;
}
.cth-wiz-ciudad:hover { border-color: #c0392b; color: #c0392b; }
.cth-wiz-ciudad--merc { border-color: #27ae60; }
.cth-wiz-ciudad--merc:hover { border-color: #1e8449; color: #1e8449; }
.cth-wiz-ciudad span {
  font-size: 11px; font-weight: 500; color: #27ae60;
  background: #eafaf1; border-radius: 10px; padding: 1px 6px;
}

/* CTA WhatsApp */
.cth-wiz-cta {
  display: inline-flex; align-items: center; gap: 10px;
  background: #25d366; color: #fff !important; font-weight: 700;
  font-size: 16px; border-radius: 10px; padding: 14px 22px;
  text-decoration: none; margin-top: 20px;
  box-shadow: 0 3px 10px rgba(37,211,102,.3);
  transition: background .15s, transform .1s;
}
.cth-wiz-cta:hover { background: #1ebe5d; transform: translateY(-1px); }
.cth-wiz-ctasub { color: #666; font-size: 13px; margin: 8px 0 14px; }

/* Botón reiniciar */
.cth-wiz-reset {
  display: block; background: none; border: none; color: #aaa;
  cursor: pointer; font-size: 13px; padding: 0; text-decoration: underline;
}
.cth-wiz-reset:hover { color: #666; }


/* ═══════════════════════════════════════════════════════════════════
   COMPARATIVAS — v3.45.0
   Tabla responsive: scroll horizontal en móvil con primera columna
   sticky. En pantallas ≥768px: layout normal de 3 columnas.
   ═══════════════════════════════════════════════════════════════════ */

.cth-comp-intro {
  font-size: 17px; color: #444; line-height: 1.6; margin-bottom: 24px;
}
.cth-comp-h2 { margin: 28px 0 14px; font-size: 20px; }

/* Tabla */
.cth-comp-tabla-wrap {
  width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch;
  border: 1px solid #eee; border-radius: 10px; margin-bottom: 28px;
}
.cth-comp-tabla { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 520px; }
.cth-comp-tabla thead th {
  background: #faf6f2; padding: 12px 16px; text-align: left;
  font-size: 15px; font-weight: 700; color: #222;
  border-bottom: 2px solid #eee;
}
.cth-comp-tabla thead th:first-child { width: 130px; }
.cth-comp-tabla tbody th {
  padding: 12px 16px; background: #fbfbfb; font-weight: 600;
  font-size: 13px; color: #555; border-bottom: 1px solid #f0f0f0;
  white-space: nowrap; text-align: left;
  position: sticky; left: 0; z-index: 1;
  box-shadow: 2px 0 4px rgba(0,0,0,.04);
}
.cth-comp-tabla tbody td {
  padding: 12px 16px; border-bottom: 1px solid #f0f0f0;
  font-size: 14px; color: #333; vertical-align: top;
}
.cth-comp-tabla tbody tr:last-child th,
.cth-comp-tabla tbody tr:last-child td { border-bottom: none; }
.cth-comp-tabla tbody tr:hover td { background: #fdfaf9; }

/* Veredictos */
.cth-comp-verd {
  border-left: 4px solid #c0392b; padding: 12px 16px;
  margin-bottom: 10px; border-radius: 0 10px 10px 0;
  background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.cth-comp-vcaso {
  display: block; font-weight: 700; font-size: 15px;
  color: #222; margin-bottom: 4px;
}
.cth-comp-verd p { margin: 0; color: #444; font-size: 14px; line-height: 1.5; }

/* Cierre */
.cth-comp-cierre {
  margin-top: 24px; font-size: 15px; color: #555; line-height: 1.6;
}
.cth-comp-cierre a { color: #c0392b; font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════════
   CAJA "RECURSOS PARA TU IMPORTACIÓN" (v3.48.0)
   Añadida por el_content en posts del blog. Como vive FUERA de
   .cth-herramienta (el contenido Elementor no lo envuelve), las
   custom properties hay que definirlas aquí también — no las hereda
   del ámbito del plugin. Diseño coherente con .cth-cruzadas.
   ═══════════════════════════════════════════════════════════════════ */
/* ==========================================================================
   Caja "Recursos para tu importación" — al final de cada entrada del blog
   v3.52.0: rediseño acorde al sistema de diseño de la web
   ========================================================================== */
.cth-blog-recursos {
	--cth-tinta-900: #0F2540;
	--cth-tinta-700: #1B3A63;
	--cth-tinta-500: #2C5488;
	--cth-laca-600:  #C8102E;
	--cth-gris-900:  #16202B;
	--cth-gris-600:  #5B6675;
	--cth-gris-300:  #D8DEE6;
	--cth-gris-100:  #F3F5F8;
	--cth-blanco:    #FFFFFF;
	--cth-radio:     10px;
	margin-top: 44px;
	padding: 24px 28px;
	background: var(--cth-gris-100);
	border: 1px solid var(--cth-gris-300);
	border-left: 4px solid var(--cth-tinta-500);
	border-radius: var(--cth-radio);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.cth-blog-recursos h3 {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .7px;
	color: var(--cth-tinta-700);
	margin: 0 0 16px;
	padding: 0;
}
.cth-blog-recursos ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}
@media (max-width: 600px) {
	.cth-blog-recursos ul {
		grid-template-columns: 1fr;
	}
}
.cth-blog-recursos li {
	margin: 0;
	padding: 0;
}
.cth-blog-recursos li a {
	display: block;
	padding: 11px 14px;
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: 8px;
	color: var(--cth-tinta-700);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	line-height: 1.35;
	transition: border-color .15s, color .15s, background .15s;
}
.cth-blog-recursos li a:hover {
	border-color: var(--cth-tinta-500);
	color: var(--cth-laca-600);
	background: var(--cth-blanco);
}

/* Bloque "Del blog: artículos sobre {ciudad}" dentro de las guías.
   Vive dentro de .cth-herramienta, así que hereda las variables. */
.cth-blog-articulos {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--cth-gris-300);
}
.cth-blog-articulos h2 {
	font-size: 18px;
	margin: 0 0 12px;
}
.cth-blog-articulos ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.cth-blog-articulos ul li a {
	display: block;
	padding: 9px 14px;
	border: 1px solid var(--cth-gris-300);
	border-radius: 8px;
	background: var(--cth-gris-100);
	color: var(--cth-tinta-700);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: border-color .15s, color .15s;
}
.cth-blog-articulos ul li a:hover {
	border-color: var(--cth-tinta-500);
	color: var(--cth-laca-600);
	background: var(--cth-blanco);
}

/* ==========================================================================
   Hub de Guías de China — /guias-china/ (v3.51.0)
   Plantilla: templates/archive-guia-ciudad.php
   Clases: .cth-hub-guias, .cth-hub-cabecera, .cth-hub-intro,
           .cth-hub-cluster, .cth-hub-cluster-esp,
           .cth-card-guia-hub, .cth-card-cn, .cth-card-ver,
           .cth-hub-ferias-enlace
   ========================================================================== */

/* Contenedor raíz — hereda las variables de .cth-wrap */
.cth-hub-guias {
	--cth-tinta-900: #0F2540;
	--cth-tinta-700: #1B3A63;
	--cth-tinta-500: #2C5488;
	--cth-laca-600:  #C8102E;
	--cth-laca-700:  #A50D26;
	--cth-oro-500:   #C99A3D;
	--cth-gris-900:  #16202B;
	--cth-gris-600:  #5B6675;
	--cth-gris-300:  #D8DEE6;
	--cth-gris-100:  #F3F5F8;
	--cth-blanco:    #FFFFFF;
	--cth-radio:     10px;
	--cth-sombra:    0 1px 2px rgba(15,37,64,0.06), 0 4px 14px rgba(15,37,64,0.06);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--cth-gris-900);
	line-height: 1.5;
	max-width: 100%;
}

.cth-hub-guias * {
	box-sizing: border-box;
}

/* ---------- Cabecera del hub ---------- */
.cth-hub-cabecera {
	margin-bottom: 40px;
}

.cth-hub-cabecera h1 {
	font-size: clamp(24px, 4vw, 34px);
	font-weight: 800;
	color: var(--cth-tinta-900);
	line-height: 1.2;
	margin: 0 0 14px;
}

.cth-hub-intro {
	font-size: 16px;
	color: var(--cth-gris-600);
	max-width: 72ch;
	margin: 0;
	line-height: 1.65;
}

/* ---------- Sección por cluster ---------- */
.cth-hub-cluster {
	margin-bottom: 44px;
}

.cth-hub-cluster > h2 {
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--cth-tinta-500);
	border-bottom: 2px solid var(--cth-gris-300);
	padding-bottom: 8px;
	margin: 0 0 6px;
}

.cth-hub-cluster-esp {
	font-size: 13px;
	color: var(--cth-gris-600);
	margin: 0 0 18px;
	font-style: italic;
}

/* ---------- Tarjeta de guía dentro del hub ---------- */
.cth-card-guia-hub {
	display: flex;
	flex-direction: column;
	gap: 6px;
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-radius: var(--cth-radio);
	padding: 20px 22px 18px;
	text-decoration: none;
	color: inherit;
	box-shadow: var(--cth-sombra);
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
	position: relative;
}

.cth-card-guia-hub:hover {
	border-color: var(--cth-tinta-500);
	box-shadow: 0 8px 24px rgba(15,37,64,0.14);
	transform: translateY(-2px);
}

.cth-card-guia-hub h3 {
	font-size: 17px;
	font-weight: 700;
	color: var(--cth-tinta-900);
	margin: 0;
	line-height: 1.25;
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px;
}

/* Nombre en chino junto al de la ciudad */
.cth-card-cn {
	font-size: 14px;
	font-weight: 400;
	color: var(--cth-gris-600);
	letter-spacing: 0.03em;
}

/* Extracto de descripción */
.cth-card-guia-hub p {
	font-size: 13px;
	color: var(--cth-gris-600);
	margin: 2px 0 0;
	line-height: 1.55;
	flex: 1;
}

/* CTA "Ver guía →" */
.cth-card-ver {
	display: inline-block;
	margin-top: 10px;
	font-size: 12px;
	font-weight: 700;
	color: var(--cth-tinta-500);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	transition: color 0.15s;
}

.cth-card-guia-hub:hover .cth-card-ver {
	color: var(--cth-laca-600);
}

/* ---------- Banda de enlace al directorio de ferias ---------- */
.cth-hub-ferias-enlace {
	margin-top: 16px;
	padding: 20px 24px;
	background: var(--cth-gris-100);
	border: 1px solid var(--cth-gris-300);
	border-left: 4px solid var(--cth-tinta-500);
	border-radius: var(--cth-radio);
}

.cth-hub-ferias-enlace p {
	margin: 0;
	font-size: 14px;
	color: var(--cth-gris-600);
	line-height: 1.6;
}

.cth-hub-ferias-enlace a {
	color: var(--cth-tinta-700);
	font-weight: 600;
	text-decoration: none;
	transition: color 0.15s;
}

.cth-hub-ferias-enlace a:hover {
	color: var(--cth-laca-600);
}

/* ---------- Responsive ---------- */
@media (max-width: 640px) {
	.cth-hub-cabecera h1 {
		font-size: 22px;
	}
	.cth-hub-intro {
		font-size: 15px;
	}
	.cth-card-guia-hub {
		padding: 16px 16px 14px;
	}
	.cth-hub-ferias-enlace {
		padding: 16px 18px;
	}
}

/* ==========================================================================
   Estilo editorial para /guias-china/ — hub y singles de guía (v3.52.0)
   Alineado con el look de los artículos del blog de TuSocioEnChina.com:
   banner de hero con etiqueta de categoría, tipografía editorial, callouts,
   metadatos, separadores y CTA de contacto.
   ========================================================================== */

/* ── Banner editorial en el hub de guías ── */
.cth-hub-guias .cth-hub-cabecera {
	position: relative;
	background: linear-gradient(135deg, var(--cth-tinta-900) 0%, var(--cth-tinta-700) 60%, #1a4a7a 100%);
	border-radius: 14px;
	padding: 44px 40px 40px;
	margin-bottom: 48px;
	overflow: hidden;
}

.cth-hub-guias .cth-hub-cabecera::before {
	content: '';
	position: absolute;
	top: -40px;
	right: -40px;
	width: 220px;
	height: 220px;
	background: radial-gradient(circle, rgba(201,154,61,0.18) 0%, transparent 70%);
	pointer-events: none;
}

/* Etiqueta de categoría tipo blog */
.cth-hub-cabecera-tag {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(201,154,61,0.18);
	border: 1px solid rgba(201,154,61,0.4);
	color: var(--cth-oro-500);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: 20px;
	margin-bottom: 18px;
}

.cth-hub-guias .cth-hub-cabecera h1 {
	color: #FFFFFF;
	font-size: clamp(26px, 4vw, 38px);
	font-weight: 800;
	line-height: 1.18;
	margin: 0 0 16px;
	letter-spacing: -0.02em;
}

.cth-hub-guias .cth-hub-intro {
	color: rgba(255,255,255,0.82);
	font-size: 17px;
	max-width: 68ch;
	line-height: 1.7;
	margin: 0 0 24px;
}

/* Metadatos (tipo blog: icono autor + fecha + tiempo lectura) */
.cth-hub-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	font-size: 13px;
	color: rgba(255,255,255,0.6);
	border-top: 1px solid rgba(255,255,255,0.12);
	padding-top: 18px;
	margin-top: 4px;
}

.cth-hub-meta-item {
	display: flex;
	align-items: center;
	gap: 5px;
}

.cth-hub-meta-item svg {
	width: 14px;
	height: 14px;
	opacity: 0.7;
	flex-shrink: 0;
}

/* ── Secciones de cluster — estilo editorial ── */
.cth-hub-guias .cth-hub-cluster {
	margin-bottom: 52px;
}

.cth-hub-guias .cth-hub-cluster > h2 {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cth-laca-600);
	border: none;
	border-left: 3px solid var(--cth-laca-600);
	padding: 2px 0 2px 12px;
	margin: 0 0 6px;
}

.cth-hub-guias .cth-hub-cluster-esp {
	font-size: 14px;
	color: var(--cth-gris-600);
	margin: 0 0 20px;
	font-style: normal;
	line-height: 1.55;
}

/* ── Tarjetas de guía — look editorial enriquecido ── */
.cth-hub-guias .cth-card-guia-hub {
	border: 1px solid var(--cth-gris-300);
	border-top: 3px solid transparent;
	background: var(--cth-blanco);
	border-radius: 12px;
	padding: 22px 22px 18px;
	gap: 8px;
	transition: border-color 0.18s, box-shadow 0.18s, transform 0.18s;
}

.cth-hub-guias .cth-card-guia-hub:hover {
	border-top-color: var(--cth-laca-600);
	border-color: var(--cth-laca-600);
	box-shadow: 0 10px 28px rgba(200,16,46,0.10), 0 2px 6px rgba(15,37,64,0.06);
	transform: translateY(-3px);
}

.cth-hub-guias .cth-card-guia-hub h3 {
	font-size: 18px;
	font-weight: 700;
	color: var(--cth-tinta-900);
	letter-spacing: -0.01em;
}

.cth-hub-guias .cth-card-cn {
	font-size: 13px;
	color: var(--cth-gris-600);
	font-weight: 400;
}

.cth-hub-guias .cth-card-guia-hub p {
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--cth-gris-600);
}

.cth-hub-guias .cth-card-ver {
	font-size: 11px;
	font-weight: 700;
	color: var(--cth-laca-600);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-top: 8px;
	transition: color 0.15s, gap 0.15s;
	display: flex;
	align-items: center;
	gap: 4px;
}

.cth-hub-guias .cth-card-guia-hub:hover .cth-card-ver {
	color: var(--cth-laca-700);
	gap: 8px;
}

/* ── Grid del hub — más espacioso ── */
.cth-hub-guias .cth-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 16px;
	margin-top: 4px;
}

/* ── Callout de enlace a ferias — estilo editorial ── */
.cth-hub-guias .cth-hub-ferias-enlace {
	background: var(--cth-gris-100);
	border: 1px solid var(--cth-gris-300);
	border-left: 4px solid var(--cth-tinta-500);
	border-radius: 12px;
	padding: 22px 26px;
	margin-top: 48px;
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.cth-hub-guias .cth-hub-ferias-enlace::before {
	content: '🧭';
	font-size: 22px;
	flex-shrink: 0;
	margin-top: 2px;
}

/* ── Single de guía de ciudad — hero editorial ── */
.cth-single .cth-single-hero-info {
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-top: none;
	padding: 28px 32px 24px;
	position: relative;
}

/* Etiqueta de categoría en el single */
.cth-single-hero-tag {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(200,16,46,0.08);
	border: 1px solid rgba(200,16,46,0.2);
	color: var(--cth-laca-600);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 4px 12px;
	border-radius: 20px;
	margin-bottom: 12px;
}

.cth-single .cth-single-hero-info h1 {
	font-size: clamp(26px, 3.5vw, 36px);
	font-weight: 800;
	color: var(--cth-tinta-900);
	line-height: 1.2;
	margin: 0 0 14px;
	letter-spacing: -0.02em;
}

/* Metadatos del single (ciudad · provincia · cluster) */
.cth-single-hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
	font-size: 13px;
	color: var(--cth-gris-600);
	margin-bottom: 8px;
}

.cth-single-hero-meta span {
	display: flex;
	align-items: center;
	gap: 5px;
}

/* Descripción intro en el single */
.cth-single .cth-single-descripcion p {
	font-size: 17px;
	line-height: 1.75;
	color: var(--cth-gris-900);
	margin: 0;
}

/* ── Secciones de contenido en el single ── */
.cth-single .cth-seccion h2 {
	font-size: 20px;
	font-weight: 700;
	color: var(--cth-tinta-900);
	border: none;
	border-bottom: 2px solid var(--cth-gris-300);
	padding-bottom: 10px;
	margin-bottom: 16px;
	letter-spacing: -0.01em;
}

/* Separador decorativo entre secciones */
.cth-single .cth-seccion + .cth-seccion {
	padding-top: 4px;
}

/* Callout tipo "nota del experto" — para alertas y transporte */
.cth-single .cth-seccion p {
	font-size: 15.5px;
	line-height: 1.75;
	color: var(--cth-gris-900);
}

/* Mercados mayoristas — fila enriquecida */
.cth-mercado-fila {
	background: var(--cth-blanco);
	border: 1px solid var(--cth-gris-300);
	border-left: 3px solid var(--cth-tinta-500);
	border-radius: 10px;
	padding: 14px 18px;
	margin-bottom: 12px;
}

.cth-mercado-fila strong {
	font-size: 15px;
	color: var(--cth-tinta-900);
}

.cth-mercado-fila .cth-chip {
	display: inline-block;
	background: rgba(44,84,136,0.08);
	color: var(--cth-tinta-500);
	font-size: 11px;
	font-weight: 700;
	padding: 2px 9px;
	border-radius: 20px;
	margin-left: 8px;
	vertical-align: middle;
}

.cth-mercado-fila .cth-mercado-llegar {
	font-size: 13px;
	color: var(--cth-gris-600);
	margin: 6px 0 2px;
}

.cth-mercado-fila p {
	font-size: 13.5px;
	color: var(--cth-gris-600);
	margin: 4px 0 0;
	line-height: 1.55;
}

/* FAQ accordion — estilo editorial */
.cth-faq details {
	border: 1px solid var(--cth-gris-300);
	border-radius: 10px;
	margin-bottom: 10px;
	overflow: hidden;
	background: var(--cth-blanco);
}

.cth-faq details[open] {
	border-color: var(--cth-tinta-500);
}

.cth-faq summary {
	cursor: pointer;
	font-size: 15px;
	font-weight: 600;
	color: var(--cth-tinta-900);
	padding: 14px 18px;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	user-select: none;
}

.cth-faq summary::-webkit-details-marker { display: none; }

.cth-faq summary::after {
	content: '+';
	font-size: 18px;
	font-weight: 300;
	color: var(--cth-gris-600);
	transition: transform 0.2s, color 0.2s;
	flex-shrink: 0;
}

.cth-faq details[open] summary::after {
	content: '−';
	color: var(--cth-tinta-500);
}

.cth-faq details p {
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--cth-gris-600);
	padding: 0 18px 16px;
	margin: 0;
	border-top: 1px solid var(--cth-gris-300);
}

/* Breadcrumb — look editorial */
.cth-hub-guias .cth-breadcrumbs,
.cth-single .cth-breadcrumbs {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--cth-gris-600);
	margin-bottom: 20px;
}

/* ── Responsive editorial ── */
@media (max-width: 768px) {
	.cth-hub-guias .cth-hub-cabecera {
		padding: 32px 24px 28px;
	}
	.cth-hub-guias .cth-hub-cabecera h1 {
		font-size: 26px;
	}
	.cth-hub-guias .cth-hub-intro {
		font-size: 15px;
	}
	.cth-hub-guias .cth-grid {
		grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
		gap: 12px;
	}
	.cth-hub-guias .cth-hub-ferias-enlace {
		flex-direction: column;
		gap: 8px;
	}
	.cth-single .cth-single-hero-info {
		padding: 20px 20px 18px;
	}
	.cth-single .cth-single-hero-info h1 {
		font-size: 24px;
	}
	.cth-single .cth-single-descripcion p {
		font-size: 15px;
	}
}

@media (max-width: 480px) {
	.cth-hub-guias .cth-hub-cabecera {
		padding: 24px 18px 22px;
		border-radius: 10px;
	}
	.cth-hub-guias .cth-grid {
		grid-template-columns: 1fr;
	}
}

/* Separación mínima del filo de pantalla en móvil */
@media (max-width: 600px) {
	.cth-wrap.cth-hub-guias {
		padding-left: 12px;
		padding-right: 12px;
	}
}

/* ==========================================================================
   Estilo editorial para herramientas — calculadora, glosario y mapa clusters
   Mismo lenguaje visual que /guias-china/ (v3.52.2)
   ========================================================================== */

/* ── Banner hero editorial — común a las tres herramientas ── */
.cth-calc .cth-calc-intro,
.cth-glosario .cth-glosario-intro,
.cth-clusters .cth-clusters-intro {
	position: relative;
	background: linear-gradient(135deg, var(--cth-tinta-900) 0%, var(--cth-tinta-700) 60%, #1a4a7a 100%);
	border-radius: 14px;
	padding: 40px 40px 36px;
	margin-bottom: 40px;
	overflow: hidden;
}

.cth-calc .cth-calc-intro::before,
.cth-glosario .cth-glosario-intro::before,
.cth-clusters .cth-clusters-intro::before {
	content: '';
	position: absolute;
	top: -40px;
	right: -40px;
	width: 220px;
	height: 220px;
	background: radial-gradient(circle, rgba(201,154,61,0.18) 0%, transparent 70%);
	pointer-events: none;
}

/* Etiqueta de categoría tipo blog */
.cth-herramienta-tag {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(201,154,61,0.18);
	border: 1px solid rgba(201,154,61,0.4);
	color: var(--cth-oro-500, #c99a3d);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: 20px;
	margin-bottom: 16px;
}

/* Título principal sobre fondo marino */
.cth-calc .cth-calc-titulo,
.cth-glosario .cth-calc-titulo,
.cth-clusters .cth-calc-titulo {
	color: #FFFFFF;
	font-size: clamp(24px, 3.5vw, 34px);
	font-weight: 800;
	line-height: 1.18;
	letter-spacing: -0.02em;
	margin: 0 0 14px;
}

/* Párrafo intro sobre fondo marino */
.cth-calc .cth-calc-intro p,
.cth-glosario .cth-glosario-intro p,
.cth-clusters .cth-clusters-intro p {
	color: rgba(255,255,255,0.88);
	font-size: 16px;
	line-height: 1.7;
	max-width: 72ch;
	margin: 0;
}

.cth-calc .cth-calc-intro p em,
.cth-clusters .cth-clusters-intro p em {
	color: rgba(255,255,255,0.65);
	font-style: italic;
}

/* ── Calculadora — fieldsets con estilo editorial ── */
.cth-calc-fieldset {
	border: 1px solid var(--cth-gris-300);
	border-top: 3px solid var(--cth-tinta-500);
	border-radius: 12px;
	padding: 20px 22px 18px;
	background: var(--cth-blanco);
}

.cth-calc-fieldset legend {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cth-tinta-500);
	padding: 0 8px;
}

.cth-calc-campo label {
	font-size: 13px;
	font-weight: 600;
	color: var(--cth-tinta-900);
}

.cth-calc-campo input[type="number"] {
	border: 1px solid var(--cth-gris-300);
	border-radius: 8px;
	font-size: 15px;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.cth-calc-campo input[type="number"]:focus {
	border-color: var(--cth-tinta-500);
	box-shadow: 0 0 0 3px rgba(44,84,136,0.12);
	outline: none;
}

/* Cards de resultado — borde superior de color */
.cth-calc-card {
	border-top: 3px solid var(--cth-gris-300);
	border-radius: 10px;
	transition: border-top-color 0.2s;
}

.cth-calc-card-total {
	border-top-color: var(--cth-tinta-500);
}

.cth-calc-card-ok {
	border-top-color: #16a34a;
}

.cth-calc-card-mal {
	border-top-color: var(--cth-laca-600);
}

/* ── Glosario — buscador y filtros ── */
.cth-gloss-input {
	border: 1px solid var(--cth-gris-300);
	border-radius: 10px;
	font-size: 15px;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.cth-gloss-input:focus {
	border-color: var(--cth-tinta-500);
	box-shadow: 0 0 0 3px rgba(44,84,136,0.12);
	outline: none;
}

.cth-gloss-cat {
	border: 1px solid var(--cth-gris-300);
	border-radius: 20px;
	font-size: 12px;
	font-weight: 600;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.cth-gloss-cat.is-activo {
	background: var(--cth-tinta-900);
	border-color: var(--cth-tinta-900);
	color: #fff;
}

/* Items del glosario — borde izquierdo editorial */
.cth-gloss-item {
	border-left: 3px solid transparent;
	border-radius: 0 10px 10px 0;
	transition: border-color 0.15s, background 0.15s;
}

.cth-gloss-item:hover,
.cth-gloss-item-destacado {
	border-left-color: var(--cth-tinta-500);
	background: rgba(44,84,136,0.04);
}

.cth-gloss-item-titulo {
	font-size: 16px;
	font-weight: 700;
	color: var(--cth-tinta-900);
}

.cth-gloss-item-badge {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	border-radius: 20px;
	padding: 2px 9px;
}

.cth-gloss-item-def {
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--cth-gris-900);
}

.cth-gloss-item-ejemplo {
	font-size: 13px;
	color: var(--cth-gris-600);
	border-left: 3px solid var(--cth-oro-500, #c99a3d);
	padding-left: 10px;
	font-style: italic;
}

/* ── Mapa clusters — panel de detalle ── */
.cth-clusters-panel {
	border: 1px solid var(--cth-gris-300);
	border-top: 3px solid var(--cth-tinta-500);
	border-radius: 12px;
	background: var(--cth-blanco);
}

/* ── Nota legal de la calculadora ── */
.cth-calc-nota {
	font-size: 12.5px;
	color: var(--cth-gris-600);
	background: var(--cth-gris-100);
	border-left: 3px solid var(--cth-gris-300);
	border-radius: 0 8px 8px 0;
	padding: 12px 16px;
	margin-top: 24px;
	line-height: 1.6;
}

/* ── Padding mínimo del filo en móvil — las tres herramientas ── */
@media (max-width: 600px) {
	.cth-herramienta {
		padding-left: 12px;
		padding-right: 12px;
	}
	.cth-calc .cth-calc-intro,
	.cth-glosario .cth-glosario-intro,
	.cth-clusters .cth-clusters-intro {
		padding: 28px 20px 24px;
		border-radius: 10px;
		margin-bottom: 28px;
	}
	.cth-calc .cth-calc-titulo,
	.cth-glosario .cth-calc-titulo,
	.cth-clusters .cth-calc-titulo {
		font-size: 22px;
	}
	.cth-calc .cth-calc-intro p,
	.cth-glosario .cth-glosario-intro p,
	.cth-clusters .cth-clusters-intro p {
		font-size: 14px;
	}
}
