/* Comunitaria: estilos del sitio. Colores, tipografías y espaciados vienen de theme.json.
   Sigue el mockup aprobado: https://claude.ai/artifact/QvjSUeFr33NaC1h9F6EJUf */

:root {
	--cm-territorio: var(--wp--preset--color--territorio);
	--cm-territorio-medio: var(--wp--preset--color--territorio-medio);
	--cm-territorio-suave: var(--wp--preset--color--territorio-suave);
	--cm-cobre: var(--wp--preset--color--cobre);
	--cm-cobre-vivo: var(--wp--preset--color--cobre-vivo);
	--cm-cobre-suave: var(--wp--preset--color--cobre-suave);
	--cm-arena: var(--wp--preset--color--arena);
	--cm-superficie: var(--wp--preset--color--superficie);
	--cm-linea: var(--wp--preset--color--linea);
	--cm-carbon: var(--wp--preset--color--carbon);
	--cm-texto-suave: var(--wp--preset--color--texto-suave);
	--cm-favorable: #156c78;
	--cm-favorable-suave: #dceef0;
	--cm-atencion: #8a5a00;
	--cm-atencion-suave: #f8ebcb;
	--cm-margen: var(--wp--style--root--padding-left, clamp(1.25rem, 5vw, 4rem));
	--cm-ancho: var(--wp--style--global--wide-size, 1240px);
	--cm-seccion: clamp(4.5rem, 9vw, 8rem);
	accent-color: var(--cm-territorio);
}

/* ---------- Superficies del navegador ---------- */

html {
	scrollbar-color: var(--cm-territorio-medio) var(--cm-arena);
}

body {
	caret-color: var(--cm-cobre);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--cm-cobre-suave);
	color: var(--cm-carbon);
}

:where(.has-territorio-background-color, .has-carbon-background-color) ::selection {
	background: var(--cm-cobre-vivo);
	color: var(--cm-carbon);
}

a {
	text-underline-offset: 0.2em;
	text-decoration-thickness: 1px;
}

:where(a, button, input, select, textarea, .wp-block-button__link):focus-visible {
	outline: 2px solid var(--cm-territorio);
	outline-offset: 3px;
}

:where(.has-territorio-background-color, .has-carbon-background-color) :where(a, button, .wp-block-button__link):focus-visible {
	outline-color: var(--cm-arena);
}

/* Enlaces sobre fondos oscuros: prioridad real, porque WordPress puede cargar su color de enlace después. */
.has-territorio-background-color a:not(.wp-block-button__link),
.has-carbon-background-color a:not(.wp-block-button__link) {
	color: var(--cm-arena);
}

.has-territorio-background-color a:not(.wp-block-button__link):hover,
.has-carbon-background-color a:not(.wp-block-button__link):hover {
	color: var(--cm-cobre-vivo);
}

h1,
h2,
h3 {
	text-wrap: balance;
}

p,
li {
	text-wrap: pretty;
}

/* ---------- Ritmo: secciones a sangre, sin huecos entre ellas ---------- */

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

.wp-block-post-content > .alignfull,
.cm-principal > .alignfull {
	margin-block: 0 !important;
}

.wp-block-group.cm-seccion {
	padding-block: var(--cm-seccion);
}

.wp-block-group.cm-seccion > * {
	margin-block: 0;
}

.wp-block-group.cm-seccion > * + * {
	margin-block-start: clamp(2.5rem, 4.5vw, 4rem);
}

/* ---------- Textos comunes ---------- */

.cm-etiqueta {
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cm-texto-suave);
}

.wp-block-group.cm-cabeza > * {
	margin-block: 0;
}

.cm-cabeza h1,
.cm-cabeza h2 {
	max-width: 14em;
}

.wp-block-group.cm-cabeza > .cm-etiqueta + * {
	margin-block-start: 1rem;
}

.wp-block-group.cm-cabeza > .cm-intro {
	margin-block-start: 1.25rem;
	max-width: 36em;
	font-size: clamp(1.0625rem, 1.3vw, 1.1875rem);
	line-height: 1.6;
	color: var(--cm-texto-suave);
}

.cm-nota {
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--cm-texto-suave);
}

.cm-insignia {
	display: inline-block;
	margin: 0;
	padding: 0.25rem 0.625rem;
	border-radius: 2px;
	background: var(--cm-cobre-suave);
	color: var(--cm-carbon);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
}

/* Enlace con flecha */
.cm-enlace {
	margin: 0;
	font-size: 1rem;
	line-height: 1.4;
	font-weight: 600;
}

.cm-enlace a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--cm-territorio);
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
}

.cm-enlace a::after {
	content: "";
	flex: 0 0 auto;
	width: 1.125rem;
	height: 1.125rem;
	background: currentColor;
	-webkit-mask: url(../img/flecha.svg) center / contain no-repeat;
	mask: url(../img/flecha.svg) center / contain no-repeat;
}

.cm-enlace-abajo a::after {
	transform: rotate(90deg);
}

/* Botones de las portadas y los cierres */
.wp-block-group.cm-acciones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.75rem;
}

.wp-block-group.cm-acciones > * {
	margin: 0;
}

.cm-acciones .wp-block-button__link {
	padding: 1.0625rem 1.625rem;
	font-size: 1rem;
	line-height: 1;
}

/* ---------- Encabezado ---------- */

.cm-encabezado {
	padding-block: 1.5rem;
	border-bottom: 1px solid var(--cm-territorio-medio);
}

.wp-block-group.cm-encabezado-fila {
	gap: 0.75rem;
	align-items: center;
}

.cm-logo {
	flex: 0 0 auto;
	margin: 0;
}

.cm-encabezado .cm-logo img {
	display: block;
	width: clamp(10.5rem, 14.8vw, 13.3rem) !important;
	height: auto;
}

.wp-block-group.cm-encabezado-acciones {
	gap: clamp(1.25rem, 2.6vw, 2rem);
	align-items: center;
}

.cm-nav {
	font-size: 0.9375rem;
	font-weight: 500;
}

.cm-nav .wp-block-navigation__container {
	gap: 2rem;
}

.cm-encabezado .cm-nav .wp-block-navigation-item__content {
	color: var(--cm-territorio-suave);
	text-decoration: none;
}

.cm-encabezado .cm-nav .wp-block-navigation-item__content:hover {
	color: var(--cm-arena);
	text-decoration: underline;
}

.cm-encabezado-boton .wp-block-button__link {
	padding: 0.75rem clamp(0.875rem, 1.3vw, 1.25rem);
	font-size: clamp(0.875rem, 1.05vw, 0.9375rem);
	line-height: 1;
	white-space: nowrap;
}

/* ---------- Portada: texto a la izquierda y foto a la derecha; en el celular, la foto arriba ---------- */

.wp-block-group.cm-portada {
	display: flex;
	flex-direction: row-reverse;
	flex-wrap: wrap;
	padding: 0;
}

.wp-block-group.cm-portada > * {
	margin: 0;
}

.wp-block-image.cm-portada-foto {
	position: relative;
	flex: 1 1 380px;
	min-height: clamp(16.25rem, 30vw, 22.5rem);
	overflow: hidden;
	background: var(--cm-territorio-medio);
}

.wp-block-image.cm-portada-foto img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cm-portada .cm-foto-inicio img {
	object-position: 50% 62%;
}

.cm-portada .cm-foto-ejecucion img {
	object-position: 15% 50%;
}

.cm-portada .cm-foto-estudios img {
	object-position: 50% 10%;
}

.wp-block-group.cm-portada-texto {
	box-sizing: border-box;
	display: flex;
	flex: 1.3 1 520px;
	flex-direction: column;
	justify-content: center;
	padding: clamp(3.5rem, 7vw, 7rem) var(--cm-margen) clamp(3.5rem, 7vw, 6.5rem) max(var(--cm-margen), calc((100% - var(--cm-ancho)) / 2));
}

.wp-block-group.cm-portada-texto > * {
	margin: 0;
}

.cm-portada-texto .cm-etiqueta {
	margin-block-end: 1rem;
	color: var(--cm-territorio-suave);
}

h1.cm-portada-titulo {
	font-size: clamp(2.375rem, 5.2vw, 4.75rem);
	line-height: 1.08;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--cm-arena);
}

/* El punto cobre: el punto final del manifiesto, eco del símbolo. */
h1.cm-portada-titulo::after {
	content: "";
	display: inline-block;
	width: 0.19em;
	height: 0.19em;
	margin-left: 0.05em;
	border-radius: 50%;
	background: var(--cm-cobre-vivo);
}

.cm-portada-servicio h1.cm-portada-titulo {
	max-width: 15em;
	font-size: clamp(1.875rem, 3.4vw, 3.125rem);
	line-height: 1.1;
	letter-spacing: -0.025em;
}

.cm-portada-servicio h1.cm-portada-titulo::after {
	content: none;
}

.wp-block-group.cm-portada-texto > .cm-portada-bajada {
	margin-block-start: 1.75rem;
	max-width: 30em;
	font-size: clamp(1.125rem, 1.55vw, 1.375rem);
	line-height: 1.5;
	color: var(--cm-territorio-suave);
}

.cm-portada-servicio .wp-block-group.cm-portada-texto > .cm-portada-bajada {
	margin-block-start: 1.5rem;
	max-width: 32em;
	font-size: clamp(1.0625rem, 1.4vw, 1.25rem);
	line-height: 1.55;
}

.wp-block-group.cm-portada-texto > .cm-acciones {
	margin-block-start: 2.5rem;
}

.cm-portada-servicio .wp-block-group.cm-portada-texto > .cm-acciones {
	margin-block-start: 2.25rem;
}

/* ---------- Tarjetas de situaciones (inicio) ---------- */

.wp-block-group.cm-tarjetas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18.75rem), 1fr));
	gap: 2.5rem clamp(2rem, 3vw, 2.5rem);
}

.wp-block-group.cm-tarjetas > *,
.wp-block-group.cm-tarjeta > * {
	margin: 0;
}

.wp-block-group.cm-tarjeta {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
}

.wp-block-group.cm-tarjeta > .cm-tarjeta-foto {
	margin-block-end: 0.375rem;
}

.wp-block-image.cm-tarjeta-foto img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 4px;
	background: var(--cm-territorio-suave);
}

.cm-tarjeta .cm-foto-ejecucion img {
	object-position: 30% 50%;
}

.cm-tarjeta .cm-foto-estudios img {
	object-position: 50% 13%;
}

.cm-tarjeta h3 {
	font-size: clamp(1.25rem, 1.6vw, 1.4375rem);
	line-height: 1.3;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--cm-carbon);
}

.cm-tarjeta p:not([class]) {
	font-size: 1rem;
	line-height: 1.6;
	color: var(--cm-texto-suave);
}

.wp-block-group.cm-tarjeta > .cm-enlace {
	margin-block-start: auto;
	padding-block-start: 0.375rem;
}

/* ---------- Pasos numerados ---------- */

.cm-pasos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: 1.75rem clamp(1.75rem, 2.6vw, 2rem);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: paso;
}

.cm-pasos > li {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 0;
	counter-increment: paso;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--cm-texto-suave);
}

.cm-pasos > li::before {
	content: counter(paso, decimal-leading-zero);
	display: block;
	margin-block-end: 0.5rem;
	background: linear-gradient(var(--cm-linea), var(--cm-linea)) no-repeat right center / calc(100% - 2.25rem) 1px;
	color: var(--cm-territorio-medio);
	font-size: 0.9375rem;
	line-height: 1.125rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}

.cm-pasos > li strong {
	display: block;
	font-size: 1.25rem;
	line-height: 1.3;
	font-weight: 700;
	color: var(--cm-territorio);
}

/* ---------- Dos columnas ---------- */

.wp-block-group.cm-dos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 26.25rem), 1fr));
	gap: clamp(2.5rem, 5vw, 4.5rem);
	align-items: start;
}

.wp-block-group.cm-dos > * {
	margin: 0;
}

.cm-reporte .wp-block-group.cm-dos {
	align-items: center;
}

/* ---------- Reporte de ejemplo ---------- */

.cm-reporte-tarjeta {
	margin: 0;
	padding: clamp(1.5rem, 2.6vw, 2.25rem);
	border: 1px solid var(--cm-linea);
	border-radius: 4px;
	background: var(--cm-superficie);
}

.cm-reporte-tarjeta p,
.cm-reporte-tarjeta h3,
.cm-reporte-tarjeta ul {
	margin: 0;
}

.cm-reporte-cabeza {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem 1rem;
}

.cm-reporte-cabeza .cm-etiqueta {
	color: var(--cm-territorio);
}

.cm-reporte-tarjeta .cm-reporte-titulo {
	margin-block-start: 1rem;
	font-size: 1.1875rem;
	line-height: 1.625rem;
	font-weight: 600;
	letter-spacing: 0;
	color: var(--cm-carbon);
}

.cm-reporte-tarjeta .cm-reporte-fuente {
	margin-block-start: 0.25rem;
	font-size: 0.875rem;
	line-height: 1.3125rem;
	color: var(--cm-texto-suave);
}

.cm-reporte-dato {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 1rem;
	margin-block-start: 1.75rem;
}

.cm-reporte-cifra {
	font-size: clamp(2.75rem, 4vw, 3.5rem);
	line-height: 1;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--cm-cobre);
	font-variant-numeric: tabular-nums;
}

.cm-reporte-que {
	flex: 1 1 11.25rem;
	font-size: 1rem;
	line-height: 1.4;
	color: var(--cm-carbon);
}

.cm-barra {
	position: relative;
	height: 12px;
	margin-block-start: 1.25rem;
	border-radius: 2px;
	background: var(--cm-territorio-suave);
}

.cm-barra span {
	position: absolute;
	top: 0;
	height: 12px;
}

.cm-barra .cm-barra-base {
	left: 0;
	border-radius: 2px 0 0 2px;
	background: var(--cm-territorio-medio);
}

.cm-barra .cm-barra-avance {
	background: var(--cm-cobre);
}

.cm-barra .cm-barra-meta {
	top: -5px;
	width: 2px;
	height: 22px;
	background: var(--cm-carbon);
}

.cm-reporte-tarjeta .cm-leyenda {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem 1.125rem;
	margin-block-start: 0.875rem;
	padding: 0;
	list-style: none;
	font-size: 0.8125rem;
	line-height: 1.125rem;
	color: var(--cm-texto-suave);
}

.cm-leyenda li {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
}

.cm-muestra {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 2px;
}

.cm-muestra-base {
	background: var(--cm-territorio-medio);
}

.cm-muestra-avance {
	background: var(--cm-cobre);
}

.cm-muestra-meta {
	width: 2px;
	height: 12px;
	border-radius: 0;
	background: var(--cm-carbon);
}

.cm-reporte-tarjeta .cm-reporte-filas {
	margin-block-start: 1.75rem;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--cm-linea);
}

.cm-reporte-filas li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.375rem 1rem;
	padding-block: 0.875rem;
	border-bottom: 1px solid var(--cm-linea);
}

.cm-fila-nombre {
	flex: 1 1 12.5rem;
	font-size: 0.9375rem;
	line-height: 1.3125rem;
	font-weight: 500;
	color: var(--cm-carbon);
}

.cm-fila-valores {
	font-size: 0.875rem;
	line-height: 1.25rem;
	color: var(--cm-texto-suave);
	font-variant-numeric: tabular-nums;
}

.cm-estado {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.25rem 0.5rem;
	border-radius: 2px;
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
}

.cm-estado::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
}

.cm-estado-favorable {
	background: var(--cm-favorable-suave);
	color: var(--cm-favorable);
}

.cm-estado-atencion {
	background: var(--cm-atencion-suave);
	color: var(--cm-atencion);
}

.cm-reporte-tarjeta figcaption {
	margin-block-start: 1.25rem;
	font-size: 0.8125rem;
	line-height: 1.125rem;
	color: var(--cm-texto-suave);
}

/* ---------- Listas con filete arriba: señales y compromisos ---------- */

.cm-senales,
.cm-compromisos {
	display: grid;
	gap: 1.75rem clamp(1.75rem, 3vw, 2.5rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cm-senales {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr));
}

.cm-compromisos {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
}

.cm-senales > li,
.cm-compromisos > li {
	margin: 0;
	padding-block-start: 1.25rem;
	border-top: 2px solid var(--cm-territorio);
	font-size: clamp(1.125rem, 1.4vw, 1.25rem);
	line-height: 1.45;
	font-weight: 500;
	color: var(--cm-carbon);
}

.cm-compromisos > li strong {
	display: block;
	margin-block-end: 0.625rem;
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cm-texto-suave);
}

/* ---------- Qué hacemos ---------- */

.wp-block-group.cm-items {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr));
	gap: 1.75rem clamp(1.75rem, 3vw, 2.5rem);
}

.wp-block-group.cm-items > *,
.wp-block-group.cm-item > *,
.wp-block-group.cm-temas-columna > *,
.wp-block-group.cm-columna > * {
	margin: 0;
}

.wp-block-group.cm-item {
	padding-block-start: 1.5rem;
	border-top: 1px solid var(--cm-linea);
}

.cm-item h3,
.cm-temas-columna h3 {
	font-size: 1.25rem;
	line-height: 1.3;
	font-weight: 700;
	color: var(--cm-territorio);
}

.cm-temas-columna h3 {
	font-size: 1.375rem;
}

.wp-block-group.cm-item > p {
	margin-block-start: 0.625rem;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--cm-texto-suave);
}

.wp-block-group.cm-temas-columna > .cm-temas,
.wp-block-group.cm-columna > .cm-entregables {
	margin-block-start: 1rem;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--cm-linea);
}

.cm-temas > li {
	margin: 0;
	padding-block: 1rem;
	border-bottom: 1px solid var(--cm-linea);
	font-size: 1rem;
	line-height: 1.55;
	color: var(--cm-texto-suave);
}

.cm-temas > li strong {
	display: block;
	margin-block-end: 0.25rem;
	font-size: 1.0625rem;
	line-height: 1.4;
	font-weight: 600;
	color: var(--cm-carbon);
}

.wp-block-group.cm-seccion > .cm-ancho:has(> .cm-nota:only-child) {
	margin-block-start: 1.5rem;
}

/* ---------- Qué recibes y cómo se mide ---------- */

h2.cm-titulo-chico {
	font-size: clamp(1.625rem, 2.6vw, 2.375rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
}

.wp-block-group.cm-columna > .cm-entregables {
	margin-block-start: 1.5rem;
}

.cm-entregables > li {
	position: relative;
	margin: 0;
	padding: 1rem 0 1rem 2.25rem;
	border-bottom: 1px solid var(--cm-linea);
	font-size: 1.0625rem;
	line-height: 1.5;
	color: var(--cm-carbon);
}

.cm-entregables > li::before {
	content: "";
	position: absolute;
	top: 1.125rem;
	left: 0;
	width: 1.375rem;
	height: 1.375rem;
	background: var(--cm-territorio);
	-webkit-mask: url(../img/check.svg) center / contain no-repeat;
	mask: url(../img/check.svg) center / contain no-repeat;
}

.wp-block-group.cm-columna > .cm-indicadores {
	margin-block-start: 1.5rem;
	padding: clamp(1.25rem, 2.4vw, 2rem);
	border-radius: 4px;
	background: var(--cm-arena);
}

.wp-block-group.cm-indicadores > *,
.wp-block-group.cm-indicadores-cabeza > * {
	margin: 0;
}

.wp-block-group.cm-indicadores-cabeza {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem 1rem;
}

.cm-indicadores .cm-etiqueta {
	color: var(--cm-territorio);
}

.wp-block-group.cm-indicadores > .cm-indicadores-lista {
	margin-block-start: 0.75rem;
	padding: 0;
	list-style: none;
}

.cm-indicadores-lista > li {
	margin: 0;
	padding-block: 0.875rem;
	border-bottom: 1px solid var(--cm-linea);
	font-size: 0.875rem;
	line-height: 1.4;
	color: var(--cm-texto-suave);
}

.cm-indicadores-lista > li:last-child {
	border-bottom: 0;
}

.cm-indicadores-lista > li strong {
	display: block;
	margin-block-end: 0.25rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--cm-carbon);
}

.wp-block-group.cm-indicadores > .cm-nota {
	margin-block-start: 0.75rem;
	font-size: 0.8125rem;
	line-height: 1.125rem;
}

/* ---------- Preguntas frecuentes ---------- */

.wp-block-group.cm-preguntas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 26.25rem), 1fr));
	column-gap: clamp(2.5rem, 5vw, 4.5rem);
}

.wp-block-group.cm-preguntas > *,
.wp-block-group.cm-pregunta > * {
	margin: 0;
}

.wp-block-group.cm-pregunta {
	padding-block: 1.25rem 1.75rem;
	border-top: 1px solid var(--cm-linea);
}

.cm-pregunta h3 {
	font-size: 1.125rem;
	line-height: 1.4;
	font-weight: 600;
	color: var(--cm-carbon);
}

.wp-block-group.cm-pregunta > p {
	margin-block-start: 0.625rem;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--cm-texto-suave);
}

/* Respuesta que falta: queda a la vista para que nadie publique una inventada. */
.wp-block-group.cm-pregunta > .cm-por-confirmar {
	display: inline-block;
	padding: 0.125rem 0.5rem;
	border-radius: 2px;
	background: var(--cm-cobre-suave);
	color: var(--cm-carbon);
	font-size: 0.8125rem;
	line-height: 1.125rem;
	font-weight: 600;
}

/* ---------- Cierre: invitación a agendar sobre las curvas de nivel ---------- */

.wp-block-group.cm-cierre {
	padding-block: clamp(5rem, 10vw, 9rem);
	background-image: url(../img/curvas-sobre-territorio.svg);
	background-position: 85% 50%;
	background-repeat: no-repeat;
	background-size: cover;
}

.wp-block-group.cm-cierre-contenido > * {
	margin: 0;
}

.cm-cierre h2 {
	max-width: 12em;
	font-size: clamp(2.125rem, 4.6vw, 4.125rem);
	line-height: 1.1;
	font-weight: 800;
	letter-spacing: -0.025em;
	color: var(--cm-arena);
}

/* El claro: cada línea de texto lleva su propio fondo verde, que corta las curvas como los rótulos de una carta topográfica. */
.cm-halo .cm-linea {
	background: var(--cm-territorio);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.wp-block-group.cm-cierre-contenido > h2.cm-halo {
	margin-inline-start: -0.16em;
}

h2.cm-halo .cm-linea {
	padding: 0 0.16em 0.03em;
}

p.cm-halo .cm-linea {
	padding: 0.21em 0.3em;
}

.wp-block-group.cm-cierre-contenido > .cm-cierre-texto {
	margin-block-start: 1.5rem;
	margin-inline-start: -0.3em;
	max-width: 34em;
	font-size: clamp(1.125rem, 1.55vw, 1.375rem);
	line-height: 1.5;
	color: var(--cm-territorio-suave);
}

.wp-block-group.cm-cierre-contenido > .cm-acciones {
	margin-block-start: 2.25rem;
	gap: 1rem 1.5rem;
}

.cm-cierre-correo,
.cm-otras {
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--cm-territorio-suave);
}

.wp-block-group.cm-acciones > .cm-cierre-correo {
	margin-inline-start: -10px;
}

p.cm-cierre-correo .cm-linea,
p.cm-otras .cm-linea {
	padding: 8px 10px;
}

.wp-block-group.cm-cierre-contenido > .cm-otras {
	margin-block-start: 2.75rem;
	margin-inline-start: -10px;
}

.cm-otras a {
	font-weight: 600;
}

/* ---------- Pie ---------- */

.wp-block-group.cm-pie {
	padding-block: clamp(3rem, 5vw, 4.5rem) 2.5rem;
	color: var(--cm-territorio-suave);
}

.wp-block-group.cm-pie-columnas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.75rem), 1fr));
	gap: 2rem 3rem;
}

.wp-block-group.cm-pie-columnas > *,
.wp-block-group.cm-pie-marca > *,
.wp-block-group.cm-pie-bloque > *,
.wp-block-group.cm-pie-legal > * {
	margin: 0;
}

.cm-pie .cm-logo img {
	display: block;
	width: 14.25rem !important;
	height: auto;
}

/* El lema empieza donde empieza el logotipo y nunca es más ancho que él. */
.wp-block-group.cm-pie-marca > .cm-pie-lema {
	margin: 0.625rem 0 0 2.5rem;
	max-width: 11.75rem;
	font-size: 0.875rem;
	line-height: 1.3125rem;
	font-weight: 500;
	color: var(--cm-territorio-suave);
}

.cm-pie .cm-etiqueta {
	color: var(--cm-territorio-suave);
}

.wp-block-group.cm-pie-bloque > .cm-pie-lista {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	margin-block-start: 0.875rem;
	padding: 0;
	list-style: none;
	font-size: 0.9375rem;
	line-height: 1.4375rem;
}

.cm-pie-lista a {
	text-decoration: none;
}

.cm-pie-lista a:hover,
.cm-pie-lista .cm-pie-agendar a {
	text-decoration: underline;
}

.wp-block-group.cm-pie-legal {
	margin-block-start: 3rem;
	padding-block-start: 1.25rem;
	border-top: 1px solid var(--cm-territorio-medio);
	font-size: 0.8125rem;
}

/* ---------- Página no encontrada ---------- */

.cm-error-lista {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
	font-weight: 600;
}

/* ---------- Celular ---------- */

@media (max-width: 781px) {
	.cm-nav {
		display: none !important;
	}
}
