/**
 * Web A: patrones de bloques con el aspecto del clon.
 *
 * Los patrones usan bloques nativos con las mismas clases utilitarias del
 * original (sec-150, padd-0-14, mt-50, tip-50-60, bold, mb-50, btn-cd...), que
 * ya estan en original-4d.css con sus puntos de corte. Aqui solo se define lo
 * que los bloques nativos necesitan para verse igual: tarjetas, rejillas,
 * listas, botones y la cabecera de pagina.
 *
 * Se carga en la web y en el editor de bloques (add_editor_style).
 */

/* ---------- Base: los bloques nativos no deben meter margenes propios ---------- */
.cd-seccion > *,
.cd-rejilla > *,
.cd-tarjeta > *,
.cd-metrica > *,
.cd-caso > *,
.cd-tecnico > *,
.cd-acreditacion > *,
.cd-pie > *,
.cd-pie-inferior > * {
	margin-block-start: 0;
}
.cd-seccion p:last-child,
.cd-tarjeta p:last-child,
.cd-metrica p:last-child,
.cd-caso p:last-child {
	margin-bottom: 0;
}
.cd-seccion h2,
.cd-seccion h3,
.cd-tarjeta h3, .cd-tarjeta h2,
.cd-metrica h3,
.cd-caso h3,
.cd-tecnico h2,
.cd-tecnico h3,
.cd-acreditacion p strong {
	color: #222;
}
.cd-seccion h2,
.cd-seccion h3 {
	margin-top: 0;
}
.cd-seccion .wp-block-image,
.cd-tarjeta .wp-block-image, .cd-tarjeta .wp-block-post-featured-image {
	margin-top: 0;
}
.cd-seccion .wp-block-image img {
	height: auto;
}

/* ---------- Franjas (seccion) ---------- */
.cd-seccion {
	position: relative;
	border-radius: 5px;
	overflow: hidden;
}
.cd-seccion.is-style-cd-franja-lila {
	background-color: #F4F6FB;
}
.cd-seccion.is-style-cd-franja-azul {
	background-color: #FFFFFF;
}
.cd-seccion.is-style-cd-franja-blanca {
	background-color: transparent;
}
.cd-seccion .cd-centrado {
	max-width: 811px;
	margin-left: auto;
	margin-right: auto;
}
.cd-seccion .has-text-align-center.cd-centrado {
	text-align: center;
}

/* ---------- Rejillas de tarjetas (1 columna hasta 1023px, como el original) ---------- */
.cd-rejilla {
	display: grid !important;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: 55px;
	margin-top: 100px;
}
.cd-rejilla.cd-sin-margen {
	margin-top: 0;
}
@media only screen and (min-width: 1024px) {
	.cd-rejilla.is-style-cd-rejilla-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cd-rejilla.is-style-cd-rejilla-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cd-rejilla.is-style-cd-rejilla-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.cd-rejilla.is-style-cd-rejilla-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 1540px) {
	.cd-rejilla { gap: 25px; }
}
@media (max-width: 767px) {
	.cd-rejilla { margin-top: 60px; }
}

/* ---------- Tarjeta (capacidad, producto, servicio, certificacion, sede) ---------- */
.cd-tarjeta {
	background: #fff;
	border-radius: 5px;
	padding: 55px 50px;
	height: 100%;
	box-sizing: border-box;
	text-align: center;
	transition: box-shadow 0.2s ease-in;
}
.cd-tarjeta:hover {
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
.cd-tarjeta .wp-block-image, .cd-tarjeta .wp-block-post-featured-image {
	margin-bottom: 55px;
}
.cd-tarjeta .wp-block-image img, .cd-tarjeta .wp-block-post-featured-image img {
	max-height: 152px;
	width: auto;
}
.cd-tarjeta h3, .cd-tarjeta h2 {
	font-size: 26px;
	line-height: 36px;
	font-weight: 600;
	margin: 0 0 30px;
}
.cd-tarjeta p {
	margin-bottom: 55px;
}
.cd-tarjeta--izquierda {
	text-align: left;
}
.cd-tarjeta--izquierda .wp-block-image, .cd-tarjeta--izquierda .wp-block-post-featured-image {
	margin-bottom: 40px;
}
.cd-tarjeta--izquierda .wp-block-image img, .cd-tarjeta--izquierda .wp-block-post-featured-image img {
	max-height: 78px;
}
@media (max-width: 1540px) {
	.cd-tarjeta { padding: 40px 20px; }
	.cd-tarjeta h3, .cd-tarjeta h2 { font-size: 24px; line-height: 30px; }
	.cd-tarjeta p { margin-bottom: 40px; }
}
@media (max-width: 480px) {
	.cd-tarjeta .wp-block-image, .cd-tarjeta .wp-block-post-featured-image { margin-bottom: 40px; }
}

/* Enlace "Saber mas ->" (mismo aspecto que .btn-cd-plano del original) */
.cd-enlace a {
	position: relative;
	display: inline-block;
	padding-right: 40px;
	font-weight: 700;
	color: #1724A9;
	text-decoration: none;
}
.cd-enlace a::before {
	content: "";
	position: absolute;
	right: 10px;
	top: 9px;
	width: 18px;
	height: 12px;
	background: url("../img/icon-flecha.svg") no-repeat;
	background-size: contain;
	transition: 0.2s ease-in;
}
.cd-enlace a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -3px;
	width: 0;
	height: 2px;
	background: #1724A9;
	transition: 0.2s ease-in;
}
.cd-enlace a:hover {
	color: #1724A9;
	text-decoration: none;
}
.cd-enlace a:hover::before,
.cd-tarjeta:hover .cd-enlace a::before {
	transform: translateX(10px);
}
.cd-enlace a:hover::after,
.cd-tarjeta:hover .cd-enlace a::after {
	width: 100%;
}
p.cd-enlace {
	margin-top: 40px;
	margin-bottom: 0;
}
.cd-tarjeta p.cd-enlace {
	margin-top: 0;
}

/* ---------- Tarjeta de metrica ---------- */
.cd-metrica {
	background: #fff;
	border-radius: 5px;
	padding: 55px 40px;
	height: 100%;
	box-sizing: border-box;
	text-align: center;
}
.cd-metrica .cd-metrica__cifra {
	font-size: 60px;
	line-height: 70px;
	font-weight: 700;
	color: #1724A9;
	margin: 0 0 20px;
}
.cd-metrica h3 {
	font-size: 26px;
	line-height: 36px;
	font-weight: 600;
	margin: 0 0 20px;
}
@media (max-width: 1540px) {
	.cd-metrica { padding: 40px 20px; }
	.cd-metrica .cd-metrica__cifra { font-size: 50px; line-height: 60px; }
	.cd-metrica h3 { font-size: 24px; line-height: 30px; }
}
@media (max-width: 480px) {
	.cd-metrica .cd-metrica__cifra { font-size: 40px; line-height: 45px; }
}

/* ---------- Listas con entradilla en negrita ---------- */
ul.cd-lista {
	list-style: none;
	margin: 0;
	padding: 0;
}
ul.cd-lista li {
	position: relative;
	padding-left: 32px;
	margin: 0 0 15px;
}
ul.cd-lista li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 11px;
	width: 10px;
	height: 10px;
	border-radius: 2px;
	background: #1724A9;
}
ul.cd-lista li:last-child {
	margin-bottom: 0;
}
@media (max-width: 767px) {
	ul.cd-lista li::before { top: 8px; }
}

/* ---------- Bloque tecnico (especializacion, producto o servicio) ---------- */
.cd-tecnico .wp-block-columns {
	margin-bottom: 0;
}
.cd-tecnico .cd-tecnico__icono img {
	max-width: 170px;
	height: auto;
}
.cd-tecnico p.cd-tecnico__entradilla {
	margin-bottom: 30px;
}
.cd-tecnico.is-style-cd-tecnico-especializacion ul.cd-lista li::before {
	background: #71CFEB;
}
.cd-tecnico.is-style-cd-tecnico-producto ul.cd-lista li::before {
	background: #1724A9;
}
.cd-tecnico.is-style-cd-tecnico-servicio ul.cd-lista li::before {
	background: #71CFEB;
}
hr.cd-separador,
.cd-seccion hr.cd-separador {
	border: 0;
	border-top: 1px solid #fff;
	margin: 70px 0;
	opacity: 1;
	width: 100%;
	max-width: none;
}
.cd-seccion.is-style-cd-franja-blanca hr.cd-separador {
	border-top-color: #e4e4e4;
}
@media (max-width: 767px) {
	hr.cd-separador { margin: 45px 0; }
}

/* ---------- Caso de exito ---------- */
.cd-caso {
	background: #fff;
	border-radius: 5px;
	padding: 50px;
	margin-top: 25px;
}
.cd-caso .wp-block-columns {
	margin-bottom: 0;
	align-items: center !important;
}
.cd-caso .wp-block-image {
	margin: 0;
}
.cd-caso .wp-block-image img {
	border-radius: 5px;
	width: 100%;
	height: auto;
}
.cd-caso p.cd-caso__ambito {
	font-size: 17px;
	line-height: 25px;
	color: #1724A9;
	font-weight: 700;
	margin-bottom: 20px;
}
@media (max-width: 767px) {
	.cd-caso { padding: 30px 20px; }
}

/* ---------- Fila de acreditacion ---------- */
.cd-acreditacion {
	border-bottom: 1px solid #fff;
	padding: 30px 0;
}
.cd-acreditacion .wp-block-columns {
	margin-bottom: 0;
	align-items: center !important;
}
.cd-acreditacion .wp-block-image {
	margin: 0;
}
.cd-acreditacion .wp-block-image img {
	max-height: 78px;
	width: auto;
}
.cd-acreditacion p {
	margin: 0;
}
.cd-acreditacion p.cd-acreditacion__entidad {
	font-size: 17px;
	line-height: 25px;
	color: #616161;
}

/* ---------- Franja de avales (logos) ---------- */
.cd-avales {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 40px 60px;
	margin-top: 60px;
}
.cd-avales .wp-block-image {
	margin: 0;
}
.cd-avales .wp-block-image img {
	height: 78px;
	width: auto;
}

/* ---------- Botones (mismo aspecto que .btn-cd del original) ---------- */
.wp-block-buttons.cd-botones {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin-top: 50px;
}
.wp-block-buttons.cd-botones.is-content-justification-center,
.cd-cabecera .wp-block-buttons,
.page-header .wp-block-buttons {
	justify-content: center;
}
.wp-block-button[class*="is-style-cd-"] .wp-block-button__link {
	position: relative;
	display: inline-block;
	padding: 15px 40px;
	font-family: inherit;
	font-size: 20px;
	line-height: 30px;
	font-weight: 700;
	color: #fff;
	background: none;
	border: 1px solid #fff;
	border-radius: 5px;
	overflow: hidden;
	z-index: 1;
	text-decoration: none;
	transition: 0.08s ease-in;
}
.wp-block-button[class*="is-style-cd-"] .wp-block-button__link::before {
	content: "";
	position: absolute;
	top: 100%;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	background: #1724A9;
	transition: top 0.09s ease-in;
}
.wp-block-button[class*="is-style-cd-"] .wp-block-button__link:hover::before {
	top: 0;
}
.wp-block-button[class*="is-style-cd-"] .wp-block-button__link:hover {
	color: #fff;
	text-decoration: none;
}
/* Morado (btn-cd lila) */
.wp-block-button.is-style-cd-morado .wp-block-button__link {
	background: #1724A9;
	border-color: #1724A9;
}
.wp-block-button.is-style-cd-morado .wp-block-button__link::before {
	background: #fff;
}
.wp-block-button.is-style-cd-morado .wp-block-button__link:hover {
	background: transparent;
	color: #1724A9;
}
/* Blanco (btn-cd blanco) */
.wp-block-button.is-style-cd-blanco .wp-block-button__link {
	background: #fff;
	border-color: #fff;
	color: #1724A9;
}
.wp-block-button.is-style-cd-blanco .wp-block-button__link:hover {
	background: #1724A9;
	border-color: #1724A9;
	color: #fff;
}
/* Contorno blanco (btn-cd): el estilo base */
@media (max-width: 767px) {
	.wp-block-button[class*="is-style-cd-"] .wp-block-button__link {
		padding: 15px 30px;
	}
}
@media (max-width: 1540px) {
	.wp-block-button[class*="is-style-cd-"] .wp-block-button__link {
		font-size: inherit;
		line-height: inherit;
	}
}

/* ---------- Cabecera de pagina ----------
 * En la web se muestra dentro del banner del tema (.page-header), igual que el
 * del original. Estas reglas son para el editor y por si el bloque se coloca
 * en otra posicion.
 */
.cd-cabecera {
	position: relative;
	border-radius: 5px;
	overflow: hidden;
	padding: 180px 15px 140px;
	margin-bottom: 50px;
	text-align: center;
	color: #fff;
	background: #f7f7f7 url("/wp-content/uploads/2022/02/bg-general-scaled.jpg") center center / cover no-repeat;
}
.cd-cabecera h1 {
	font-size: 60px;
	line-height: 70px;
	font-weight: 700;
	color: #fff;
	margin: 0 0 45px;
}
.cd-cabecera p {
	font-size: 23px;
	line-height: 33px;
	font-weight: 300;
	color: #fff;
	padding: 0 15%;
	margin: 0;
}
.page-header .wp-block-buttons,
.cd-cabecera .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin-top: 50px;
}
@media (max-width: 959px) {
	.cd-cabecera { padding: 190px 15px 100px; }
	.cd-cabecera h1 { font-size: 40px; line-height: 45px; }
	.cd-cabecera p { padding: 0; font-size: 20px; line-height: 30px; }
}

/* ---------- Pie como patron sincronizado ----------
 * Misma rejilla que el vc_row del original: columnas con 15px de relleno y
 * la fila con -15px de margen, sin hueco entre columnas.
 */
#footer-builder .cd-pie.wp-block-columns {
	margin: 0 -15px;
	gap: 0;
}
#footer-builder .cd-pie > .wp-block-column {
	padding-left: 15px;
	padding-right: 15px;
}
#footer-builder .cd-pie .cd-pie__titulo {
	color: #fff;
	margin-top: 0;
}
#footer-builder .cd-pie .wp-block-buttons {
	margin-top: 50px;
}
#footer-builder .cd-pie .cd-pie__datos.wp-block-columns {
	margin: 0 -15px;
	gap: 0;
}
#footer-builder .cd-pie .cd-pie__datos > .wp-block-column {
	padding: 0 15px;
}
#footer-builder .vc_col-sm-8 p {
	margin-top: 0;
}
#footer-builder .cd-pie hr.sep-footer {
	border: 0;
	border-bottom: 1px solid #fff;
	width: 100%;
	max-width: 100%;
	opacity: 1;
}
#footer-builder ul.cd-menu-legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	list-style: none;
	margin: 0;
	padding: 0;
}
#footer-builder ul.cd-menu-legal li {
	margin: 0;
}
#footer-builder ul.cd-menu-legal a {
	font-size: 17px;
	line-height: 20px;
	color: #fff;
	text-decoration: none;
}
#footer-builder ul.cd-menu-legal a:hover {
	text-decoration: underline;
}
@media (max-width: 1540px) {
	#footer-builder .cd-pie p {
		font-size: 17px;
		line-height: 27px;
	}
}
@media (max-width: 767px) {
	#footer-builder .cd-pie .wp-block-buttons { margin-top: 30px; }
	#footer-builder .cd-pie .cd-pie__titulo.widgettitle { margin-top: 25px; }
}
@media (max-width: 670px) {
	#footer-builder ul.cd-menu-legal { flex-direction: column; }
}
/* Franja inferior: sellos y texto en linea, como el original (centrado en
   movil y a la izquierda desde 768px por las clases de #footer-bottom). */
#footer-bottom .cd-pie-inferior {
	display: block;
	margin: 0;
}
#footer-bottom .cd-pie-inferior > figure.wp-block-image {
	display: inline-block;
	vertical-align: middle;
	margin: 0;
}
#footer-bottom .cd-pie-inferior > figure.wp-block-image img {
	vertical-align: middle;
}
#footer-bottom .cd-pie-inferior > figure.cd-sello-ue {
	margin-left: 20px;
}
#footer-bottom .cd-pie-inferior .cd-sello-ue img {
	height: 78px;
	width: auto;
}
#footer-bottom .cd-pie-inferior > p {
	display: inline;
	margin: 0;
}


/* ---------- Cabecera de la tabla de acreditaciones ---------- */
.cd-acreditacion.cd-acreditacion--cabecera {
	padding: 0 0 20px;
}
.cd-acreditacion.cd-acreditacion--cabecera p {
	font-size: 17px;
	line-height: 25px;
}
@media (max-width: 781px) {
	.cd-acreditacion.cd-acreditacion--cabecera { display: none; }
}

/* ---------- Tamanos de imagen: los fija el propio bloque (ancho/alto) ---------- */
.cd-tarjeta .wp-block-image img,
.cd-tarjeta--izquierda .wp-block-image img,
.cd-acreditacion .wp-block-image img,
.cd-avales .wp-block-image img,
.cd-tecnico .cd-tecnico__icono img, .cd-tarjeta .wp-block-post-featured-image img, .cd-tarjeta--izquierda .wp-block-post-featured-image img {
	max-height: none;
	max-width: 100%;
}
.cd-tarjeta.cd-tarjeta--producto .wp-block-image img,
.cd-caso .wp-block-image img, .cd-tarjeta.cd-tarjeta--producto .wp-block-post-featured-image img {
	width: 100%;
	height: auto;
}

/* ---------- Separacion entre columnas (igual en la web y en el editor) ---------- */
body .wp-block-columns {
	column-gap: 50px;
	row-gap: 30px;
}
body .cd-acreditacion .wp-block-columns {
	column-gap: 30px;
}
@media (max-width: 1540px) {
	body .wp-block-columns { column-gap: 30px; }
}

/* Primer bloque de una franja: sin margen superior propio */
.cd-seccion > .cd-avales:first-child,
.cd-seccion > .cd-caso:first-child,
.cd-seccion > .cd-rejilla:first-child {
	margin-top: 0;
}

/* Rejilla de 5: tarjetas mas estrechas, menos relleno */
.cd-rejilla.is-style-cd-rejilla-5 {
	gap: 25px;
}
.cd-rejilla.is-style-cd-rejilla-5 .cd-tarjeta {
	padding: 40px 20px;
}

/* Palabras largas en tarjetas estrechas: se parten en vez de salirse (igual que en el editor) */
.cd-seccion,
.cd-tarjeta,
.cd-metrica {
	overflow-wrap: break-word;
}

/* ---------- Megamenu con los nombres largos del docx ----------
 * Mismo aspecto (fondo blanco a todo el ancho, icono y texto), pero el
 * submenu ocupa el ancho de la cabecera y reparte las opciones en una fila,
 * para que las etiquetas largas no se partan palabra a palabra.
 * Solo con el menu de escritorio (≥ 1200px).
 */
@media (min-width: 1200px) {
	#site-navigation li.megamenu > ul.sub-menu {
		left: auto;
		right: 0;
		width: calc(100vw - 120px);
		max-width: 1480px;
		display: flex;
	}
	#site-navigation li.megamenu.col-4 > ul.sub-menu > li {
		flex: 1 1 0;
		width: auto;
		float: none;
		clear: none;
	}
	#menu-principal li.megamenu .sub-menu a .link-inner {
		max-width: none;
	}
}

/* Lista dentro de una tarjeta: mismo espacio inferior que un parrafo de tarjeta */
.cd-tarjeta ul.cd-lista {
	margin-bottom: 55px;
}
@media (max-width: 1540px) {
	.cd-tarjeta ul.cd-lista { margin-bottom: 40px; }
}

/* Imagen a todo el ancho en tarjeta de producto y caso (la figura centrada de
   WordPress usa display:table y se encogeria) */
.cd-tarjeta--producto .wp-block-image,
.cd-caso .wp-block-image, .cd-tarjeta--producto .wp-block-post-featured-image {
	display: block;
	width: 100%;
}
/* Rejilla de 5: titulo algo menor para que las palabras largas quepan enteras */
.cd-rejilla.is-style-cd-rejilla-5 .cd-tarjeta h3, .cd-rejilla.is-style-cd-rejilla-5 .cd-tarjeta h2 {
	font-size: 22px;
	line-height: 30px;
}

/* Icono de "Desarrollo de Software Llave en Mano" en el menu: el llave-mano.svg
   del original es una ilustracion en degradado que no se ve a este tamano.
   Se usa la llave de la home (icon-llave-mano) en linea negra, como los demas. */
#menu-principal .sub-menu li.m-llave-mano a::before {
	background: url("../img/llave-mano-menu.svg") no-repeat;
	background-size: contain;
}
#menu-principal .sub-menu li.current-menu-item.m-llave-mano a::before {
	background: url("../img/llave-mano-menu.svg") no-repeat;
	background-size: contain;
	filter: invert(100%);
}

/* ---------- Cabecera de inicio (mismo marcado de clases que el #banner de la home) ---------- */
.cd-cabecera-inicio {
	padding-left: 15px;
	padding-right: 15px;
	text-align: center;
}
.cd-cabecera-inicio h1 {
	color: #fff;
	margin-top: 0;
}
.cd-cabecera-inicio p.azul {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}
.cd-cabecera-inicio .wp-block-buttons.cd-botones {
	margin-top: 0;
	justify-content: center;
}

/* ---------- Pie de foto de los avales ---------- */
.cd-avales figure.wp-block-image {
	text-align: center;
}
.cd-avales figcaption.wp-element-caption {
	margin: 12px 0 0;
	font-size: 15px;
	line-height: 20px;
	color: #222;
	text-align: center;
}

/* Rejilla de 4: el relleno reducido que el original usa por debajo de 1540px,
   para que los textos largos no se partan */
.cd-rejilla.is-style-cd-rejilla-4 .cd-tarjeta,
.cd-rejilla.is-style-cd-rejilla-4 .cd-metrica {
	padding: 40px 20px;
}
/* Titulos de franja: pueden ocupar mas que la entradilla */
.cd-seccion h2.cd-centrado {
	max-width: 1100px;
}

/* Rejillas de 4 y 5: pasos intermedios para que no se partan las palabras
   en tabletas y portatiles pequenos (la de 3 sigue como el original). */
@media only screen and (min-width: 768px) {
	.cd-rejilla.is-style-cd-rejilla-2,
	.cd-rejilla.is-style-cd-rejilla-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cd-rejilla.is-style-cd-rejilla-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media only screen and (min-width: 1280px) {
	.cd-rejilla.is-style-cd-rejilla-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.cd-rejilla.is-style-cd-rejilla-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media only screen and (min-width: 768px) and (max-width: 1023px) {
	.cd-rejilla.is-style-cd-rejilla-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media only screen and (min-width: 1024px) and (max-width: 1459px) {
	.cd-rejilla.is-style-cd-rejilla-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Filas de navegacion de seccion (especializaciones, productos...) ----------
 * Usa las clases del filtro de Referencias (ul.vcex-filter-links): pastillas
 * blancas y la activa con borde morado. Aqui solo: franja baja y centrada.
 */
.cd-nav-franja {
	padding-top: 30px;
	padding-bottom: 25px;
}
.cd-nav-franja ul.vcex-filter-links {
	margin: 0 !important;
	padding: 0;
	text-align: center !important;
}
.cd-nav-franja ul.vcex-filter-links li {
	margin: 0 10px 10px !important;
}
.cd-nav-franja ul.vcex-filter-links li a {
	text-decoration: none;
}
@media (max-width: 991px) {
	.cd-nav-franja ul.vcex-filter-links li {
		margin: 0 5px 10px !important;
	}
}

/* Ficha de producto: imagen a todo el ancho de su columna */
.cd-ficha-producto .wp-block-image,
.cd-ficha-producto .wp-block-image img {
	width: 100%;
	margin: 0;
}
.cd-ficha-producto .wp-block-image img {
	height: auto;
	border-radius: 5px;
}

/* Cabecera editable en el banner: margen lateral para que los titulos largos no toquen el borde */
.page-header .cd-cabecera-contenido {
	padding-left: 8%;
	padding-right: 8%;
}
@media (max-width: 767px) {
	.page-header .cd-cabecera-contenido {
		padding-left: 0;
		padding-right: 0;
	}
}

/* ---------- Listado de proyectos (bucle de consulta + filtro por sector) ----------
 * Una columna, como Referencias: tema.js coloca los casos y los anima al filtrar.
 */
.cd-listado-proyectos ul.cd-casos {
	list-style: none;
	margin: 0;
	padding: 0;
	max-width: none;
}
.cd-listado-proyectos ul.cd-casos > li {
	width: 100%;
	margin: 0 0 25px;
}
.cd-listado-proyectos .cd-caso {
	margin-top: 0;
}
.cd-caso .wp-block-post-featured-image {
	margin: 0;
}
.cd-caso .wp-block-post-featured-image img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 5px;
}
.cd-caso .wp-block-post-title {
	margin-top: 0;
}
.cd-caso .wp-block-post-title a {
	color: #222;
	text-decoration: none;
}
.cd-caso .wp-block-post-excerpt {
	margin: 0 0 20px;
}
.cd-caso .wp-block-post-excerpt__excerpt {
	margin: 0;
}
.cd-caso a.wp-block-read-more {
	position: relative;
	display: inline-block;
	padding-right: 40px;
	font-weight: 700;
	color: #1724A9;
	text-decoration: none;
}
.cd-caso a.wp-block-read-more::before {
	content: "";
	position: absolute;
	right: 10px;
	top: 9px;
	width: 18px;
	height: 12px;
	background: url("../img/icon-flecha.svg") no-repeat;
	background-size: contain;
	transition: 0.2s ease-in;
}
.cd-caso a.wp-block-read-more::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -3px;
	width: 0;
	height: 2px;
	background: #1724A9;
	transition: 0.2s ease-in;
}
.cd-caso a.wp-block-read-more:hover::before {
	transform: translateX(10px);
}
.cd-caso a.wp-block-read-more:hover::after {
	width: 100%;
}

/* Anclas de seccion (#cultura, #certificaciones, #sedes...): que la cabecera
   fija (solo escritorio, ≥ 1200px) no tape el titulo al saltar */
.cd-seccion[id] {
	scroll-margin-top: 30px;
}
@media (min-width: 1200px) {
	.cd-seccion[id] {
		scroll-margin-top: 140px;
	}
}

/* Tarjeta de sede: mapa (imagen enlazada) a todo el ancho */
.cd-tarjeta--sede .wp-block-image,
.cd-tarjeta--sede .wp-block-image img, .cd-tarjeta--sede .wp-block-post-featured-image, .cd-tarjeta--sede .wp-block-post-featured-image img {
	width: 100%;
	height: auto;
}
.cd-tarjeta--sede .wp-block-image, .cd-tarjeta--sede .wp-block-post-featured-image {
	margin-bottom: 30px;
}
.cd-tarjeta--sede .wp-block-image img, .cd-tarjeta--sede .wp-block-post-featured-image img {
	border-radius: 5px;
}

/* ---------- Panel (contenido libre en caja blanca: contacto, empleo) ---------- */
.cd-panel {
	background: #fff;
	border-radius: 5px;
	padding: 50px;
	height: 100%;
	box-sizing: border-box;
}
.cd-panel > *:last-child {
	margin-bottom: 0;
}
.cd-panel ul.cd-lista {
	margin-bottom: 30px;
}
.cd-panel ul.cd-lista ul {
	list-style: none;
	margin: 10px 0 0;
	padding: 0;
}
.cd-panel ul.cd-lista ul li::before {
	display: none;
}
.cd-panel ul.cd-lista ul li {
	padding-left: 0;
	margin-bottom: 5px;
}
.cd-contacto-columnas.wp-block-columns {
	align-items: stretch !important;
	margin-bottom: 0;
}
.wp-block-column[id] {
	scroll-margin-top: 30px;
}
@media (min-width: 1200px) {
	.wp-block-column[id] { scroll-margin-top: 140px; }
}
@media (max-width: 767px) {
	.cd-panel { padding: 30px 20px; }
}

/* ---------- Formularios (Contact Form 7, clase cd-formulario) ---------- */
.cd-panel { display: flow-root; }
.cd-panel .wpcf7 { margin-top: 30px; }
.formulario input[type="url"] { color: #000 !important; margin-bottom: 10px; width: 100%; padding: 10px 13px; }
.formulario input[type="url"]::placeholder { color: #000 !important; opacity: 1 !important; }
.cd-formulario .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.cd-formulario label { display: block; }
.cd-formulario .col1 > p > label { font-size: inherit; }
/* Campo trampa antispam: fuera de la vista y del teclado. */
.cd-trampa { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
/* El botón crece con su texto para no partir «Solicitar Evaluación». */
.formulario.claro.cd-formulario button,
.formulario.claro.cd-formulario button:hover { width: auto; min-width: 49.5%; }
.cd-formulario .btn-cd .theme-button-inner { white-space: nowrap; }
@media (max-width: 767px) {
	.formulario.claro.cd-formulario button,
	.formulario.claro.cd-formulario button:hover { width: 100%; }
}
/* Móvil estrecho: que los textos de ayuda quepan enteros (16px evita el zoom de iOS). */
@media (max-width: 480px) {
	.cd-formulario input[type="text"],
	.cd-formulario input[type="email"],
	.cd-formulario input[type="url"],
	.cd-formulario textarea { font-size: 16px; padding-left: 10px; padding-right: 10px; }
}

/* Política de cookies (Complianz): en móvil la primera columna de la tabla se ajusta
   a su texto para que «Caducidad» no se parta. */
@media only screen and (max-width: 600px) {
	#cmplz-document.cmplz-document .cmplz-dropdown.cmplz-dropdown-cookiepolicy .cookies-per-purpose { grid-template-columns: max-content 1fr; }
}


/* =====================================================================================
   DISEÑO DE LA WEB B
   Mismo marcado y mismas clases que la web A; aquí solo cambia el aspecto, según el
   manual de identidad: azul Pantone 2736 C (#1724a9), azul claro 0821 C (#71cfeb),
   violeta 265 C (#9363cc) y magenta Rhodamine (#e70094) solo como acento.
   Tipografía Century Gothic (respaldo Questrial autoalojada). Minimalista y corporativo:
   secciones a todo el ancho, fondos planos, filetes finos y mucho aire.
   ===================================================================================== */
:root {
	--b-azul: #1724a9;
	--b-azul-hover: #101a86;
	--b-azul-noche: #0f1566;
	--b-cian: #71cfeb;
	--b-violeta: #9363cc;
	--b-magenta: #e70094;
	--b-tinta: #161a3a;
	--b-texto: #3b4057;
	--b-suave: #6b7089;
	--b-gris: #f4f6fb;
	--b-linea: #e1e5f0;
	--b-fuente: "Century Gothic", CenturyGothic, AppleGothic, Questrial, sans-serif;
	--b-ancho: 1240px;
}

/* ---------- Base ---------- */
body { margin: 0 !important; font-family: var(--b-fuente) !important; font-size: 18px; line-height: 1.65; color: var(--b-texto); background: #fff; -webkit-font-smoothing: antialiased; }
body button, body input, body select, body textarea, .btn-cd, .theme-button-inner { font-family: var(--b-fuente) !important; }
h1, h2, h3, h4, h5, h6, .wp-block-heading { font-family: var(--b-fuente); color: var(--b-tinta); font-weight: 400 !important; letter-spacing: -0.01em; }
.bold, strong, b { font-weight: 700; }
h1.bold, h2.bold, h3.bold, h4.bold, .wp-block-heading.bold { font-weight: 400 !important; }
a { color: var(--b-azul); }
a:hover { color: var(--b-violeta); }
::selection { background: var(--b-cian); color: var(--b-tinta); }
body.wpex-responsive .container, .container { max-width: var(--b-ancho) !important; width: calc(100% - 64px); margin-left: auto; margin-right: auto; }
.bordes-5, .bordes-5 .vc_column-inner { border-radius: 0 !important; }

/* Escala tipográfica (mismas clases del original, tamaños más contenidos). */
.tip-75 { font-size: 56px !important; line-height: 1.12 !important; }
.tip-50-60 { font-size: 40px !important; line-height: 1.2 !important; }
.tip-35-45 { font-size: 28px !important; line-height: 1.3 !important; }
.tip-23-33 { font-size: 20px !important; line-height: 1.55 !important; color: var(--b-texto); }

/* ---------- Cabecera: blanca, fija arriba, logo en positivo ---------- */
#overlay-header-wrap { position: static; }
/* La cabecera va fija (tema.js); su contenedor reserva siempre su altura. */
#site-header-sticky-wrapper, .wpex-sticky-header-holder, body.has-overlay-header .wpex-sticky-header-holder { height: 77px !important; }
#outer-wrap { overflow: clip !important; }
#site-header, #site-header.overlay-header, .wpex-sticky-header-holder.is-sticky #site-header, #site-header-sticky-wrapper.is-sticky #site-header {
	position: relative !important; top: 0 !important; left: 0; width: 100%; background: #fff !important; box-shadow: none !important; border-bottom: 1px solid var(--b-linea);
}
#site-header-sticky-wrapper.is-sticky #site-header { position: fixed !important; box-shadow: 0 1px 0 var(--b-linea), 0 8px 24px rgba(22, 26, 58, 0.06) !important; }
#site-header-sticky-wrapper.is-sticky #site-header::before { display: none !important; }
#site-header #site-header-inner.container { height: 76px !important; padding: 0 !important; display: flex; align-items: center; max-width: var(--b-ancho) !important; width: calc(100% - 64px) !important; margin: 0 auto !important; }
#site-header #site-navigation-wrap { margin-left: auto !important; }
/* Logo: 48 px de alto (mínimo del manual: 24 px) y zona de protección libre alrededor. */
#site-logo { float: none; padding: 0 !important; margin: 0 24px 0 0 !important; height: auto !important; display: flex; align-items: center; }
#site-logo-inner, #site-logo-link { display: flex !important; align-items: center; height: auto !important; padding: 8px 0; }
#site-logo img.logo-img { height: 48px !important; width: auto !important; max-height: none !important; margin: 0 !important; }
#site-header #site-logo img.logo-img[data-nonsticky-logo] { display: block !important; }
#site-header #site-logo img.logo-img[data-sticky-logo] { display: none !important; }
#site-navigation-wrap { position: static !important; float: none !important; height: auto !important; top: auto !important; right: auto !important; margin: 0 !important; }
#site-header #site-navigation .dropdown-menu > li > a, #site-header.overlay-header.white-style.dyn-styles #site-navigation .dropdown-menu > li:not(.btn-menu) > a {
	color: var(--b-tinta) !important; font-size: 15px !important; font-weight: 400 !important; letter-spacing: 0.01em; opacity: 1 !important; padding: 0 16px !important; height: 76px !important; line-height: 88px !important; background: none !important;
}
#site-header #site-navigation .dropdown-menu > li:not(.btn-menu) > a > span { position: relative; }
#site-header #site-navigation .dropdown-menu > li:not(.btn-menu) > a:hover, #site-header #site-navigation .dropdown-menu > li.current-menu-item > a, #site-header #site-navigation .dropdown-menu > li.current-menu-ancestor > a, #site-header #site-navigation .dropdown-menu > li.current-menu-parent > a { color: var(--b-azul) !important; box-shadow: inset 0 -2px 0 var(--b-azul); }
#site-header #site-navigation .dropdown-menu > li > a .nav-arrow, #site-header #site-navigation .dropdown-menu > li > a .ticon { color: inherit !important; }
/* Botón «Contacto» del menú */
#site-header #site-navigation .dropdown-menu > li.btn-menu { margin-left: 16px; display: flex; align-items: center; height: 76px; }
#site-header #site-navigation .dropdown-menu > li.btn-menu > a { height: auto !important; line-height: 1 !important; padding: 14px 24px !important; background: var(--b-azul) !important; color: #fff !important; border: 0 !important; border-radius: 2px !important; box-shadow: none !important; }
#site-header #site-navigation .dropdown-menu > li.btn-menu > a:hover { background: var(--b-azul-hover) !important; }
#site-header #site-navigation .dropdown-menu > li.btn-menu > a span, #site-header-sticky-wrapper.is-sticky #site-header .btn-menu span { color: #fff !important; padding: 0 !important; height: auto !important; line-height: 1 !important; background: none !important; border: 0 !important; }
/* Submenús y megamenú: panel blanco con filete */
#site-header #site-navigation .dropdown-menu ul.sub-menu { background: #fff !important; border: 1px solid var(--b-linea) !important; border-top: 2px solid var(--b-azul) !important; border-radius: 0 !important; box-shadow: 0 16px 40px rgba(22, 26, 58, 0.10) !important; }
#site-header #site-navigation .dropdown-menu ul.sub-menu > li.menu-item > a, #menu-principal .sub-menu li a { color: var(--b-tinta) !important; background: none !important; border-radius: 0 !important; font-size: 15px !important; }
#site-header #site-navigation .dropdown-menu ul.sub-menu > li.menu-item > a:hover, #site-header #site-navigation .dropdown-menu ul.sub-menu > li.menu-item.current-menu-item > a { color: var(--b-azul) !important; background: var(--b-gris) !important; }
/* Botón de menú móvil */
#mobile-menu .wpex-bars span, #mobile-menu .wpex-bars span::before, #mobile-menu .wpex-bars span::after, .wpex-bars > span, .wpex-bars > span::before, .wpex-bars > span::after { background: var(--b-azul) !important; }
#mobile-menu { position: static !important; transform: none !important; }
#mobile-menu a { color: var(--b-azul) !important; }

/* ---------- Banner de página: azul plano, título a la izquierda ---------- */
.page-header, .page-header.centered-page-header.wpex-supports-mods { background: var(--b-azul) !important; background-image: none !important; border-radius: 0 !important; margin: 0 !important; padding: 52px 0 !important; min-height: 176px; display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; }
.page-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--b-cian), var(--b-violeta)); }
.page-header .page-header-inner { text-align: left !important; max-width: var(--b-ancho) !important; width: calc(100% - 64px); margin: 0 auto; }
.page-header .page-header-content, .page-header .cd-cabecera-contenido, body[class*="page-id-"] .page-header-content { padding: 0 !important; text-align: left !important; max-width: 900px; }
.page-header-content h1::before { display: none !important; }
.page-header .page-header-title, .page-header-content .page-header-title { color: #fff !important; font-size: 48px !important; line-height: 1.15 !important; font-weight: 400 !important; margin: 0 0 20px !important; text-align: left !important; }
.page-header .page-header-title img { display: none; }
.page-header .page-subheading, .page-header-content .page-subheading, .page-header .cd-cabecera-contenido p { color: rgba(255, 255, 255, 0.86) !important; font-size: 20px !important; line-height: 1.55 !important; padding: 0 !important; text-align: left !important; }
.page-header .wp-block-buttons { justify-content: flex-start !important; margin-top: 32px; }

/* ---------- Hero de la home ---------- */
.cd-cabecera-inicio, #banner.cd-cabecera-inicio, #banner { background: var(--b-azul-noche) !important; background-image: radial-gradient(120% 90% at 85% 0%, rgba(113, 207, 235, 0.22) 0%, rgba(113, 207, 235, 0) 55%), linear-gradient(135deg, var(--b-azul) 0%, var(--b-azul-noche) 100%) !important; border-radius: 0 !important; padding: 150px max(32px, calc((100% - var(--b-ancho)) / 2)) 140px !important; }
.cd-cabecera-inicio > * { max-width: 900px; margin-left: 0 !important; margin-right: 0 !important; }
.cd-cabecera-inicio .has-text-align-center, .cd-cabecera-inicio h1, .cd-cabecera-inicio p { text-align: left !important; }
.cd-cabecera-inicio h1 { color: #fff !important; margin-bottom: 28px !important; }
.cd-cabecera-inicio p { color: rgba(255, 255, 255, 0.86) !important; font-size: 20px !important; line-height: 1.6 !important; }
.cd-cabecera-inicio .wp-block-buttons { justify-content: flex-start !important; margin-top: 40px !important; }

/* ---------- Secciones: a todo el ancho, fondos planos alternos ---------- */
.cd-seccion, .cd-seccion.mt-50 { margin: 0 !important; border-radius: 0 !important; }
.cd-seccion.sec-150 { padding-top: 112px !important; padding-bottom: 112px !important; }
.cd-seccion.is-style-cd-franja-lila { background: var(--b-gris) !important; }
.cd-seccion.is-style-cd-franja-azul, .cd-seccion.is-style-cd-franja-blanca { background: #fff !important; }
.cd-seccion.is-style-cd-franja-azul + .cd-seccion.is-style-cd-franja-azul, .cd-seccion.is-style-cd-franja-blanca + .cd-seccion.is-style-cd-franja-blanca { border-top: 1px solid var(--b-linea); }
#content-wrap { max-width: none !important; width: 100% !important; }
.page-header + #content-wrap, #main > #content-wrap { padding-top: 0; }
/* Títulos de sección: acento magenta corto encima */
.cd-seccion h2.cd-centrado, .cd-seccion > h2.tip-50-60 { color: var(--b-tinta); margin-bottom: 20px !important; }
.cd-seccion h2.cd-centrado::before, .cd-seccion > h2.tip-50-60::before { content: ""; display: block; width: 40px; height: 3px; background: var(--b-magenta); margin: 0 auto 28px; }
.cd-seccion > p.cd-centrado, .cd-seccion p.tip-23-33.cd-centrado { max-width: 760px; margin-left: auto; margin-right: auto; color: var(--b-suave); }

/* ---------- Tarjetas ---------- */
.cd-tarjeta { background: #fff !important; border: 1px solid var(--b-linea) !important; border-radius: 0 !important; box-shadow: none !important; padding: 36px 32px !important; transition: border-color 0.2s ease, transform 0.2s ease; }
.cd-tarjeta:hover { border-color: var(--b-azul) !important; }
.cd-seccion.is-style-cd-franja-azul .cd-tarjeta, .cd-seccion.is-style-cd-franja-blanca .cd-tarjeta { background: #fff !important; }
.cd-tarjeta h3, .cd-tarjeta h2, .cd-tarjeta .wp-block-heading { color: var(--b-tinta) !important; }
.cd-tarjeta p { color: var(--b-texto); }
.cd-metrica .cd-cifra, .cd-metrica > p:first-child, .cd-metrica h3 + p.cd-cifra, .cd-tarjeta .cd-cifra { color: var(--b-azul) !important; font-weight: 400 !important; }
/* Enlaces «Saber más» */
.cd-enlace a, a.cd-enlace, .cd-tarjeta .read-more a, .cd-listado-proyectos .wp-block-read-more { color: var(--b-azul) !important; font-weight: 400 !important; text-transform: uppercase; letter-spacing: 0.08em; font-size: 13px !important; }
.cd-enlace a:hover, a.cd-enlace:hover { color: var(--b-violeta) !important; }

/* ---------- Botones ---------- */
.wp-block-button .wp-block-button__link, .btn-cd, .btn-cd.lila, .theme-button, .vcex-button { border-radius: 2px !important; font-weight: 400 !important; letter-spacing: 0.02em; }
.wp-block-button.is-style-cd-morado .wp-block-button__link, .btn-cd.lila, .formulario .btn-cd { background: var(--b-azul) !important; border: 1px solid var(--b-azul) !important; color: #fff !important; }
.wp-block-button.is-style-cd-morado .wp-block-button__link:hover, .btn-cd.lila:hover, .formulario button:hover .btn-cd { background: var(--b-azul-hover) !important; border-color: var(--b-azul-hover) !important; }
.btn-cd::before { display: none !important; }
.wp-block-button.is-style-cd-contorno .wp-block-button__link { background: transparent !important; border: 1px solid currentColor !important; color: var(--b-azul) !important; }
.cd-cabecera-inicio .wp-block-button.is-style-cd-contorno .wp-block-button__link, .page-header .wp-block-button.is-style-cd-contorno .wp-block-button__link, .typography-white .wp-block-button.is-style-cd-contorno .wp-block-button__link { color: #fff !important; border-color: rgba(255, 255, 255, 0.7) !important; }
.cd-cabecera-inicio .wp-block-button.is-style-cd-morado .wp-block-button__link, .page-header .wp-block-button.is-style-cd-morado .wp-block-button__link { background: #fff !important; border-color: #fff !important; color: var(--b-azul) !important; }
.wp-block-button.is-style-cd-blanco .wp-block-button__link { background: #fff !important; color: var(--b-azul) !important; border: 1px solid #fff !important; }

/* ---------- Listas ---------- */
.cd-lista li::before, ul.cd-lista > li::before { background: var(--b-cian) !important; border-radius: 0 !important; }
.cd-lista li { color: var(--b-texto); }

/* ---------- Filas de navegación de sección y filtros: pestañas sobrias ---------- */
.cd-nav-franja { background: #fff !important; border-bottom: 1px solid var(--b-linea); padding-top: 0 !important; padding-bottom: 0 !important; }
.cd-nav-franja ul.vcex-filter-links, ul.vcex-filter-links.cd-filtro-sectores { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 28px; margin: 0 auto !important; padding: 0 !important; }
.cd-nav-franja ul.vcex-filter-links li, ul.vcex-filter-links.cd-filtro-sectores li { margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; float: none !important; }
.cd-nav-franja ul.vcex-filter-links li a, ul.vcex-filter-links.cd-filtro-sectores li a { display: block; background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; color: var(--b-suave) !important; font-size: 15px !important; padding: 22px 0 18px !important; border-bottom: 2px solid transparent !important; }
.cd-nav-franja ul.vcex-filter-links li a:hover, ul.vcex-filter-links.cd-filtro-sectores li a:hover { color: var(--b-azul) !important; }
.cd-nav-franja ul.vcex-filter-links li.active a, ul.vcex-filter-links.cd-filtro-sectores li.active a { color: var(--b-azul) !important; border-bottom-color: var(--b-azul) !important; }
ul.vcex-filter-links.cd-filtro-sectores { border-bottom: 1px solid var(--b-linea); margin-bottom: 48px !important; }

/* ---------- Pie: azul corporativo ---------- */
#footer-builder, #footer-builder .cd-pie { background: var(--b-azul) !important; border-radius: 0 !important; margin: 0 !important; }
#footer-builder { color: rgba(255, 255, 255, 0.85); }
#footer-builder .cd-pie.sec-160 { padding-top: 96px !important; padding-bottom: 80px !important; }
#footer-builder h2, #footer-builder h3, #footer-builder h4, #footer-builder .wp-block-heading { color: #fff !important; }
#footer-builder a { color: #fff !important; }
#footer-builder a:hover { color: var(--b-cian) !important; }
#footer-builder hr, #footer-builder .wp-block-separator { border-color: rgba(255, 255, 255, 0.25) !important; background: rgba(255, 255, 255, 0.25) !important; }
#footer-builder .wp-block-button.is-style-cd-morado .wp-block-button__link { background: #fff !important; border-color: #fff !important; color: var(--b-azul) !important; }
#footer-bottom { background: #fff !important; color: var(--b-suave) !important; border-radius: 0 !important; margin: 0 !important; border-top: 1px solid var(--b-linea); }
#footer-bottom a { color: var(--b-suave) !important; }

/* ---------- Formularios ---------- */
.cd-panel { background: #fff !important; border: 1px solid var(--b-linea); border-radius: 0 !important; }
.formulario input[type="text"], .formulario input[type="email"], .formulario input[type="url"], .formulario input[type="tel"], .formulario textarea, .formulario select { border: 1px solid #cfd5e4 !important; border-radius: 0 !important; background: #fff !important; color: var(--b-tinta) !important; font-size: 16px !important; }
.formulario input:focus, .formulario textarea:focus { border-color: var(--b-azul) !important; box-shadow: 0 0 0 3px rgba(23, 36, 169, 0.12) !important; outline: none; }
.formulario input::placeholder, .formulario textarea::placeholder { color: var(--b-suave) !important; }
.formulario.claro .wpcf7-form-control.wpcf7-acceptance input[type=checkbox] + span:before { border-color: var(--b-azul) !important; }
.formulario.claro .wpcf7-form-control.wpcf7-acceptance label a { color: var(--b-azul) !important; border-bottom-color: var(--b-azul) !important; }
.formulario #archivoadjuntoboton:hover { background: var(--b-azul); }

/* Márgenes laterales alineados con la cabecera (en lugar del 14 % del original). */
.padd-0-14, #footer-builder, #footer-bottom { padding-left: max(32px, calc((100% - var(--b-ancho)) / 2)) !important; padding-right: max(32px, calc((100% - var(--b-ancho)) / 2)) !important; }
#footer-builder .footer-builder-content.container, #footer-bottom-inner.container { width: 100% !important; max-width: none !important; }
.header-one.wpex-full-width, #site-header { border-radius: 0 !important; }

/* ---------- Navegación de sección como barra lateral (las tres secciones) ----------
   Escritorio (≥1024 px): columna izquierda fija con la lista, contenido a la derecha.
   Móvil y tableta: fila arriba, desplazable en horizontal. */
@media (min-width: 1024px) {
	.single-page-content:has(> .cd-nav-franja .cd-nav-barra) { display: grid; grid-template-columns: calc(max(32px, (100% - var(--b-ancho)) / 2) + 300px) minmax(0, 1fr); align-items: start; }
	.single-page-content:has(> .cd-nav-franja .cd-nav-barra) > * { grid-column: 2; min-width: 0; }
	.single-page-content:has(> .cd-nav-franja .cd-nav-barra) > .cd-nav-franja { grid-column: 1; grid-row: 1 / span 60; align-self: stretch; border-bottom: 0; border-right: 1px solid var(--b-linea); padding: 64px 32px 64px max(32px, calc((100vw - var(--b-ancho)) / 2)) !important; }
	.single-page-content:has(> .cd-nav-franja .cd-nav-barra) > .cd-seccion.padd-0-14 { padding-left: 72px !important; padding-right: max(32px, calc((100vw - var(--b-ancho)) / 2)) !important; }
	.single-page-content > .cd-nav-franja { overflow: visible !important; }
	.cd-nav-franja ul.cd-nav-barra { position: sticky; top: 120px; flex-direction: column; flex-wrap: nowrap; justify-content: flex-start; gap: 0; }
	.cd-nav-franja ul.cd-nav-barra li a { text-align: left; padding: 14px 16px !important; border-bottom: 0 !important; border-left: 2px solid var(--b-linea) !important; line-height: 1.4; }
	.cd-nav-franja ul.cd-nav-barra li a:hover { background: var(--b-gris) !important; }
	.cd-nav-franja ul.cd-nav-barra li.active a { border-left-color: var(--b-azul) !important; background: var(--b-gris) !important; }
}
@media (max-width: 1023px) {
	.cd-nav-franja ul.vcex-filter-links { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 0 24px; }
	.cd-nav-franja ul.vcex-filter-links::-webkit-scrollbar { display: none; }
	.cd-nav-franja ul.vcex-filter-links li a { white-space: nowrap; }
}

/* Megamenú: panel del ancho del contenedor de la cabecera. */
#site-header #site-header-inner.container { position: relative; }
@media (min-width: 1200px) {
	#site-navigation li.megamenu > ul.sub-menu { top: 100% !important; margin-top: 0 !important; left: 0 !important; right: 0 !important; width: 100% !important; max-width: none !important; padding: 24px 12px !important; }
	#site-header #site-navigation .dropdown-menu ul.sub-menu { margin-top: 0 !important; }
	#site-navigation li.megamenu.col-4 > ul.sub-menu > li > a { padding: 18px 20px !important; }
	.megamenu.wpex-active > a .link-inner::before { display: none !important; }
}

/* Menú móvil: botón a la derecha y panel blanco a pantalla completa. */
@media (max-width: 1199px) {
	#site-header #mobile-menu { margin-left: auto !important; position: static !important; margin-top: 0 !important; height: auto !important; line-height: 1 !important; }
	#site-header #site-header-inner.container { height: 72px !important; }
	#site-header-sticky-wrapper, .wpex-sticky-header-holder, body.has-overlay-header .wpex-sticky-header-holder { height: 73px !important; }
	#site-logo img.logo-img { height: 40px !important; }
}
.full-screen-overlay-nav, .full-screen-overlay-nav.white { background: #fff !important; color: var(--b-tinta) !important; }
.full-screen-overlay-nav-menu li a, .full-screen-overlay-nav-menu li a span.link-inner { color: var(--b-tinta) !important; font-family: var(--b-fuente) !important; font-weight: 400 !important; }
.full-screen-overlay-nav-menu li a:hover, .full-screen-overlay-nav-menu li a:hover span.link-inner { color: var(--b-azul) !important; }
.full-screen-overlay-nav-menu li.btn-menu a { background: var(--b-azul) !important; border-radius: 2px !important; padding-left: 32px !important; padding-right: 32px !important; }
.full-screen-overlay-nav-menu li.btn-menu a, .full-screen-overlay-nav-menu li.btn-menu a span { color: #fff !important; }
.full-screen-overlay-nav button.full-screen-overlay-nav-close { color: var(--b-azul) !important; opacity: 1; }

/* Pie: columnas alineadas con el contenedor; línea inferior flexible en móvil. */
#footer-builder .cd-pie { margin-left: 0 !important; margin-right: 0 !important; }
#footer-bottom .footer-bottom-flex { flex-wrap: wrap; gap: 12px 24px; }

/* Cabecera de página en el editor (en la web va dentro del banner): mismo aspecto que el banner de B. */
.cd-cabecera { background: var(--b-azul) !important; background-image: none !important; border-radius: 0 !important; margin: 0 !important; padding: 52px max(32px, calc((100% - var(--b-ancho)) / 2)) !important; min-height: 176px; display: flex; flex-direction: column; justify-content: center; text-align: left !important; }
.cd-cabecera::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--b-cian), var(--b-violeta)); }
.cd-cabecera > * { max-width: 900px; margin-left: 0 !important; margin-right: 0 !important; }
.cd-cabecera h1, .cd-cabecera .has-text-align-center { text-align: left !important; }
.cd-cabecera h1 { color: #fff !important; font-size: 48px !important; line-height: 1.15 !important; margin: 0 0 20px !important; }
.cd-cabecera p { color: rgba(255, 255, 255, 0.86) !important; font-size: 20px !important; line-height: 1.55 !important; padding: 0 !important; }
.cd-cabecera .wp-block-buttons { justify-content: flex-start !important; margin-top: 32px; }
@media (max-width: 767px) {
	.cd-cabecera, .page-header, .page-header.centered-page-header.wpex-supports-mods { padding-top: 36px !important; padding-bottom: 36px !important; min-height: 132px; }
	.cd-cabecera h1, .page-header .page-header-title, .page-header-content .page-header-title { font-size: 34px !important; }
	.cd-cabecera-inicio, #banner.cd-cabecera-inicio, #banner { padding-top: 88px !important; padding-bottom: 80px !important; }
	.tip-75 { font-size: 38px !important; }
	.tip-50-60 { font-size: 30px !important; }
	.cd-seccion.sec-150 { padding-top: 72px !important; padding-bottom: 72px !important; }
}

/* Páginas antiguas (legales, blog, entradas y proyectos no rehechos): sin secciones de
   patrones, así que su contenido va dentro del contenedor, con aire arriba y abajo. */
#content-wrap:not(:has(.cd-seccion)) { max-width: var(--b-ancho) !important; width: calc(100% - 64px) !important; margin-left: auto !important; margin-right: auto !important; padding-top: 72px; padding-bottom: 96px; }
#content-wrap:not(:has(.cd-seccion)) .vc_row, #content-wrap:not(:has(.cd-seccion)) .vc_section { border-radius: 0 !important; }
.meta-category a, .wpex-card-terms-list a, .entry-meta a[rel="category tag"], .blog-entry .meta-category a { border-radius: 2px !important; }

/* Accesibilidad (WCAG 2.4.7): foco visible al navegar con teclado. */
a:focus-visible, button:focus-visible, .wp-block-button__link:focus-visible, #site-header #site-navigation .dropdown-menu > li > a:focus-visible { outline: 2px solid var(--b-cian) !important; outline-offset: 3px; }
#site-header #site-navigation .dropdown-menu > li.btn-menu > a:focus-visible { outline-color: var(--b-azul) !important; }
.formulario input[type="text"]:focus, .formulario input[type="email"]:focus, .formulario input[type="url"]:focus, .formulario input[type="tel"]:focus, .formulario textarea:focus { outline: none !important; border-color: var(--b-azul) !important; box-shadow: 0 0 0 3px rgba(23, 36, 169, 0.2) !important; }
.formulario .wpcf7-acceptance input[type="checkbox"]:focus-visible + span::before { outline: 2px solid var(--b-azul); outline-offset: 2px; }

/* Contraste WCAG AA (≥ 4,5:1) en piezas heredadas del tema original. */
:root { --wpex-brands-twitter: #1670AD; --wpex-brands-facebook: #1466D2; }
.post-pagination a, .tagcloud a, .post-tags a { color: #5f5f5f; }

/* Móvil: el copyright va en su propia línea, entero («© 2026 - Cuatro Digital» no se parte). */
@media (max-width: 480px) {
	#footer-bottom .cd-pie-inferior > p { display: block !important; white-space: nowrap; margin-top: 12px !important; }
}

/* ---------- Distintivo tipográfico (acreditación o aval sin logo) ----------
   Párrafo con el estilo «Distintivo»: mismo hueco que un logo (110 × 78). Filete fino
   azul, nombre en la tipografía del manual y detalle en versalitas; acento azul claro. */
p.is-style-cd-distintivo,
.cd-seccion p.is-style-cd-distintivo {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 110px;
	height: 78px;
	margin: 0 !important;
	padding: 8px;
	border: 1px solid var(--b-linea);
	border-top: 2px solid var(--b-azul);
	border-radius: 0;
	background: #fff;
	text-align: center;
	font-size: 10px;
	line-height: 1.25;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--b-suave);
}
p.is-style-cd-distintivo strong {
	display: block;
	margin-bottom: 4px;
	font-size: 15px;
	line-height: 1.15;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--b-azul);
}
.cd-avales .cd-distintivo-aval { display: flex; flex-direction: column; align-items: center; margin: 0; }
.cd-avales .cd-distintivo-aval .cd-aval-pie { margin: 12px 0 0 !important; font-size: 15px; line-height: 20px; color: var(--b-texto); text-align: center; }

/* ---------- Páginas legales (bloques nativos) ---------- */
.cd-seccion h2.cd-legal-titulo { font-size: 26px !important; line-height: 1.3 !important; margin: 48px 0 18px !important; color: var(--b-tinta); }
.cd-seccion h2.cd-legal-titulo:first-child { margin-top: 0 !important; }
.cd-seccion.is-style-cd-franja-blanca:has(.cd-legal-titulo) { padding-top: 88px !important; padding-bottom: 96px !important; }
.cd-seccion:has(.cd-legal-titulo) > p, .cd-seccion:has(.cd-legal-titulo) > ul { max-width: 860px; }
.cd-seccion:has(.cd-legal-titulo) > h3, .cd-seccion:has(.cd-legal-titulo) > figure, .cd-seccion:has(.cd-legal-titulo) > .cd-gestionar-cookies { max-width: 860px; }
.cd-seccion h3.cd-legal-subtitulo { font-size: 20px !important; line-height: 1.35 !important; margin: 32px 0 12px !important; color: var(--b-tinta); }
.cd-seccion p.cd-legal-fecha { font-size: 15px; color: var(--b-suave); margin-bottom: 32px; }
/* Tabla de cookies de la política de cookies */
.cd-tabla-cookies { margin: 24px 0 28px; }
.cd-tabla-cookies table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.45; }
.cd-tabla-cookies th, .cd-tabla-cookies td { padding: 10px 12px; border: 1px solid var(--b-linea); text-align: left; vertical-align: top; }
.cd-tabla-cookies thead th { background: var(--b-gris); color: var(--b-tinta); font-weight: 700; }
.cd-tabla-cookies code { font-size: 14px; overflow-wrap: anywhere; }
.cd-tabla-cookies th:first-child { width: 32%; }
.cd-tabla-cookies th:last-child { width: 18%; }
@media (max-width: 767px) {
	.cd-tabla-cookies table { font-size: 14px; }
	.cd-tabla-cookies th, .cd-tabla-cookies td { padding: 8px; }
	.cd-tabla-cookies th:first-child { width: 34%; }
	.cd-tabla-cookies th:last-child { width: 24%; }
	.cd-tabla-cookies code { font-size: 13px; }
}
/* Botón «Cambiar mi decisión sobre las cookies» (bloque del tema, reabre el aviso de Complianz) */
.cd-gestionar-cookies { margin: 8px 0 24px; }
.cd-gestionar-cookies button.wp-block-button__link { cursor: pointer; }
/* Formularios: información básica de protección de datos junto a la casilla */
.cd-formulario .cd-rgpd-capa { font-size: 13px; line-height: 1.5; color: var(--b-suave); margin: 2px 0 14px; }
.cd-formulario .cd-rgpd-capa p { margin: 0; font-size: inherit; line-height: inherit; }
.cd-formulario .cd-rgpd-capa a { color: inherit; text-decoration: underline; }

/* ---------- Menú: iconos elegidos en Apariencia → Menús (campo «Icono») ----------
   El tema pone la URL del icono en --cd-icono; así no hacen falta clases CSS. */
#menu-principal .sub-menu li.cd-con-icono > a::before,
#menu-principal .sub-menu li.cd-con-icono:hover > a::before,
#menu-principal .sub-menu li.cd-con-icono.current-menu-item > a::before {
	background: var(--cd-icono) no-repeat center / contain !important;
	filter: none !important;
}
/* En B el fondo al pasar el ratón es claro: el icono no se invierte. */
#menu-principal .sub-menu li a:hover::before,
#menu-principal .sub-menu li.current-menu-item a::before { filter: none !important; }

/* =====================================================================================
   REPASO (22/09/2026): ajustes de diseño de la web B
   ===================================================================================== */
/* Entradas, proyectos y páginas antiguas: aire entre el banner y el contenido. */
.page-header ~ #content-wrap:not(:has(.cd-seccion)) { padding-top: 72px !important; }
@media (max-width: 767px) { .page-header ~ #content-wrap:not(:has(.cd-seccion)) { padding-top: 40px !important; } }
/* La barra lateral mide lo que su contenido (antes se estiraba sobre 60 filas y dejaba un
   hueco blanco bajo el contenido) y se queda fija al desplazarse. Cabecera de 77 px. */
@media (min-width: 1024px) {
	.single-page-content:has(> .cd-nav-franja .cd-nav-barra) > .cd-nav-franja { align-self: start !important; position: sticky; top: 77px; border-right: 0 !important; }
	.single-page-content:has(> .cd-nav-franja .cd-nav-barra) > :not(.cd-nav-franja) { border-left: 1px solid var(--b-linea); }
	.cd-nav-franja ul.cd-nav-barra { position: static; }
	.admin-bar .single-page-content:has(> .cd-nav-franja .cd-nav-barra) > .cd-nav-franja { top: 109px; }
	.single-page-content:has(> .cd-nav-franja .cd-nav-barra) { align-content: start; grid-auto-rows: min-content; }
}
/* Tarjetas: misma altura en cada fila (la rejilla ya las estira) y el enlace «Saber más»
   siempre abajo, alineado entre tarjetas vecinas. */
.cd-rejilla > .cd-tarjeta, .cd-rejilla > li > .cd-tarjeta { display: flex !important; flex-direction: column; }
.cd-rejilla > .cd-tarjeta > .cd-enlace:last-child, .cd-rejilla > li > .cd-tarjeta > .cd-enlace:last-child { margin-top: auto !important; padding-top: 12px; }
/* Tarjetas de producto: todas las imágenes en una caja del mismo alto. */
.cd-tarjeta.cd-tarjeta--producto .wp-block-image img, .cd-tarjeta.cd-tarjeta--producto .wp-block-post-featured-image img { width: 100% !important; height: 180px !important; aspect-ratio: auto !important; object-fit: contain !important; }
.cd-rejilla.is-style-cd-rejilla-4 .cd-tarjeta.cd-tarjeta--producto .wp-block-image img, .cd-rejilla.is-style-cd-rejilla-4 .cd-tarjeta.cd-tarjeta--producto .wp-block-post-featured-image img { height: 120px !important; }
/* Claves de la tarjeta (wireframe): etiquetas breves, sin viñetas. */
ul.cd-claves { list-style: none !important; margin: 4px 0 24px !important; padding: 0 !important; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
ul.cd-claves li { margin: 0 !important; padding: 5px 12px !important; border: 1px solid var(--b-linea); background: var(--b-gris); color: var(--b-azul); font-size: 13px; line-height: 1.4; letter-spacing: 0.02em; }
ul.cd-claves li::before { display: none !important; content: none !important; }
/* Avales de Inicio: un poco más grandes, que se lean bien. */
.cd-avales { gap: 40px 72px; }
.cd-avales .wp-block-image img { height: 96px; }
.cd-avales p.is-style-cd-distintivo { width: 136px; height: 96px; }
.cd-avales p.is-style-cd-distintivo strong { font-size: 17px; }
/* Nosotros: núcleos efr / ISO en dos tarjetas lado a lado. */
.cd-nucleos { margin-top: 64px !important; }
.cd-nucleos .cd-tarjeta h3, .cd-nucleos .cd-tarjeta h2 { font-size: 24px; line-height: 1.3; margin: 24px 0 16px; }
.cd-nucleos .cd-tarjeta p.is-style-cd-distintivo { margin: 0 !important; }
@media (max-width: 600px) {
	.cd-avales { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; justify-items: center; }
}
/* Títulos que pasan de h3 a h2 por jerarquía: mismo tamaño que antes. */
h2.social-share-title { font-size: 1.385em; }
.vcex-blog-grid h2.entry-title { font-size: 24px; line-height: 1.3; margin: 0 0 12px; }
/* Manual de identidad: fuera los últimos colores heredados (grises y azules del tema
   original, colores de marca de redes sociales). Todo con la paleta de la web B. */
.page-header, .page-header.wpex-border-t, .page-header.wpex-border-b { border: 0 !important; }
a.skip-to-content, .skip-to-content:focus { color: var(--b-azul) !important; }
.cd-seccion h2, .cd-seccion h3, .cd-tarjeta h3, .cd-tarjeta h2, .cd-metrica h3, .cd-caso h3, .cd-tecnico h2, .cd-tecnico h3, .cd-acreditacion p strong, .entry-title, .single-post-title { color: var(--b-tinta) !important; }
#footer-bottom, #footer-bottom p, #footer-bottom .cd-copyright { color: var(--b-suave) !important; }
.cd-acreditacion p.cd-acreditacion__entidad, time.updated, .meta, .meta a, .post-tags a, .tagcloud a, .post-pagination a { color: var(--b-suave) !important; }
input.field, .searchform input[type="search"], .wpex-social-share .theme-heading, .theme-heading.border-bottom { border-color: var(--b-linea) !important; }
.wpex-social-share__link, .wpex-social-share .wpex-social-share__link.wpex-social-bg { background: var(--b-azul) !important; color: #fff !important; }
.wpex-social-share__link:hover { background: var(--b-azul-hover) !important; }
.cd-avales figcaption.wp-element-caption, figcaption.wp-element-caption { color: var(--b-texto) !important; }
.wpex-widget-recent-posts-li, .tagcloud a, .tag-cloud-link, .blog-entry, .wpex-border-gray-200 { border-color: var(--b-linea) !important; }
.blog-entry p, .blog-entry-excerpt, .blog-entry-excerpt p { color: var(--b-texto) !important; }
/* Campos de formulario: borde con contraste suficiente (WCAG 1.4.11, ≥ 3:1). */
.formulario input[type="text"], .formulario input[type="email"], .formulario input[type="url"], .formulario input[type="tel"], .formulario textarea, .formulario select, .formulario .archivo-adjunto, .searchform input[type="search"], input.field { border-color: #858ba3 !important; }
/* Foco con teclado: azul sobre fondos claros y azul claro sobre fondos oscuros (contraste ≥ 3:1). */
a:focus-visible, button:focus-visible, .wp-block-button__link:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, #site-header #site-navigation .dropdown-menu > li > a:focus-visible { outline: 2px solid var(--b-azul) !important; outline-offset: 3px; }
.cd-cabecera-inicio :focus-visible, .page-header :focus-visible, #footer-builder :focus-visible { outline-color: var(--b-cian) !important; }
/* Guía de edición (página privada): capturas enmarcadas y pasos numerados. */
.cd-guia-captura { margin: 8px 0 40px !important; }
.cd-guia-captura img { border: 1px solid var(--b-linea); box-shadow: 0 8px 24px rgba(22, 26, 58, 0.08); width: 100% !important; max-width: 1000px !important; height: auto !important; }
ol.cd-guia-pasos { margin: 0 0 24px 1.4em !important; }
ol.cd-guia-pasos li { margin-bottom: 8px; padding-left: 4px; }
/* Con la barra de administración (sesión iniciada), la cabecera fija se coloca debajo de ella. */
.admin-bar #site-header-sticky-wrapper.is-sticky #site-header { top: 32px !important; }
@media (max-width: 782px) { .admin-bar #site-header-sticky-wrapper.is-sticky #site-header { top: 46px !important; } }
/* Filtro de Referencias: las mismas pestañas sobrias que el filtro de Proyectos. */
ul.vcex-blog-filter.vcex-filter-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 28px; margin: 0 auto 48px !important; padding: 0 !important; border-bottom: 1px solid var(--b-linea); }
ul.vcex-blog-filter.vcex-filter-links li { margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; float: none !important; }
ul.vcex-blog-filter.vcex-filter-links li a { display: block; color: var(--b-suave) !important; font-size: 15px !important; padding: 22px 0 18px !important; border-bottom: 2px solid transparent !important; text-shadow: none !important; }
ul.vcex-blog-filter.vcex-filter-links li.active a, ul.vcex-blog-filter.vcex-filter-links li a:hover { color: var(--b-azul) !important; }
ul.vcex-blog-filter.vcex-filter-links li.active a { border-bottom-color: var(--b-azul) !important; }

/* ---------- Megamenú (escritorio, ≥ 1200 px) ----------
   El panel ocupa exactamente el contenedor de la cabecera. Las opciones se reparten en
   columnas iguales (sirve para cualquier número de opciones) con el mismo hueco entre
   ellas. Cada opción: caja de icono de 48 × 48 (el icono se ajusta dentro sin deformarse),
   16 px hasta el texto, y el conjunto centrado en vertical; todas las opciones tienen la
   misma altura, así que un texto de dos líneas no descoloca iconos ni textos. */
@media (min-width: 1200px) {
	#site-navigation li.megamenu > ul.sub-menu {
		display: grid !important;
		grid-auto-flow: column;
		grid-auto-columns: minmax(0, 1fr);
		column-gap: 16px;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		max-width: none !important;
		padding: 20px 0 !important;
		box-sizing: border-box;
	}
	#site-navigation li.megamenu > ul.sub-menu::before,
	#site-navigation li.megamenu > ul.sub-menu::after { display: none !important; }
	#site-navigation li.megamenu > ul.sub-menu > li.menu-item,
	#site-navigation li.megamenu.col-4 > ul.sub-menu > li.menu-item {
		display: flex !important;
		width: auto !important;
		float: none !important;
		clear: none !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
	}
	#menu-principal li.megamenu .sub-menu li > a,
	#site-navigation li.megamenu.col-4 > ul.sub-menu > li > a {
		display: flex !important;
		align-items: center;
		gap: 16px;
		flex: 1 1 auto;
		min-height: 88px;
		box-sizing: border-box;
		padding: 12px 16px !important;
		margin: 0 !important;
	}
	#menu-principal li.megamenu .sub-menu li > a::before {
		content: "";
		display: block !important;
		flex: 0 0 48px;
		width: 48px !important;
		height: 48px !important;
		min-width: 48px !important;
		margin: 0 !important;
		float: none !important;
		background-position: center !important;
		background-size: contain !important;
		background-repeat: no-repeat !important;
	}
	/* Opción sin icono: sin hueco a la izquierda. */
	#menu-principal li.megamenu .sub-menu li:not(.cd-con-icono) > a::before { display: none !important; }
	#menu-principal li.megamenu .sub-menu li > a .link-inner {
		flex: 1 1 auto;
		max-width: none !important;
		font-size: 15px;
		line-height: 1.35;
		font-weight: 400;
		padding: 0 !important;
	}
}

/* Listados automáticos (bloque Consulta en Especializaciones, Productos y Servicios IT):
   la lista de la consulta hace de rejilla; cada tarjeta ocupa su celda entera. */
ul.wp-block-post-template.cd-rejilla { list-style: none; margin: 0 !important; padding: 0 !important; }
ul.wp-block-post-template.cd-rejilla > li { display: flex; margin: 0 !important; padding: 0 !important; }
ul.wp-block-post-template.cd-rejilla > li::before { display: none !important; }
ul.wp-block-post-template.cd-rejilla > li > .cd-tarjeta { flex: 1 1 auto; }
.cd-tarjeta .wp-block-post-featured-image { margin-left: auto; margin-right: auto; }
.cd-tarjeta .wp-block-post-featured-image img { margin: 0 auto; }

/* ---------- Selector de idioma ES/EN ----------
   Es una opción más del menú (así sale sola en el menú móvil). En escritorio va junto al
   botón «Contacto», con el mismo tipo de letra del menú. */
#site-header #site-navigation .dropdown-menu > li.cd-idiomas { display: flex; align-items: center; margin-left: 16px; height: 76px; }
.cd-idiomas__grupo { display: inline-flex; align-items: center; gap: 6px; }
.cd-idiomas__opcion {
	color: var(--b-texto) !important;
	font-size: 14px !important;
	letter-spacing: 0.04em;
	line-height: 1 !important;
	padding: 7px 9px !important;
	border: 1px solid var(--b-linea);
	border-radius: 3px;
	text-decoration: none !important;
	background: none !important;
}
.cd-idiomas__opcion:hover { color: var(--b-azul) !important; border-color: var(--b-azul); }
.cd-idiomas__opcion--actual {
	color: #fff !important;
	background: var(--b-tinta) !important;
	border-color: var(--b-tinta);
	cursor: default;
}
.cd-idiomas__opcion--actual:hover { color: #fff !important; border-color: var(--b-tinta); }
/* El texto va dentro de un span (.link-inner), que en el menú móvil hereda su propio color. */
.cd-idiomas__opcion .link-inner { color: inherit !important; }
.cd-idiomas__opcion--actual .link-inner,
.full-screen-overlay-nav .cd-idiomas__opcion--actual .link-inner,
.full-screen-overlay-nav-menu li a.cd-idiomas__opcion--actual span.link-inner,
#site-header #site-navigation .dropdown-menu .cd-idiomas__opcion--actual .link-inner { color: #fff !important; }

/* Menú móvil: el selector, centrado y con aire bajo las opciones. */
.full-screen-overlay-nav li.cd-idiomas { margin-top: 24px; }
.full-screen-overlay-nav li.cd-idiomas .cd-idiomas__grupo { justify-content: center; gap: 10px; }
.full-screen-overlay-nav li.cd-idiomas .cd-idiomas__opcion { font-size: 17px !important; padding: 10px 16px !important; }

/* ---------- «Contacto»: botón del menú con desplegable (proyecto / empleo) ----------
   El botón sigue llevando a /contacto/; el desplegable es pequeño y cuelga del propio
   botón (no megamenú). En móvil, las dos opciones se ven sin desplegar nada. */
/* El original pintaba de negro el botón al pasar el ratón (capa ::before); con el azul del
   manual sobra. */
#site-header #site-navigation .dropdown-menu > li.btn-menu > a::before { display: none !important; content: none !important; }
#site-header #site-navigation .dropdown-menu > li.cd-boton-desplegable { position: relative; }
#site-header #site-navigation .dropdown-menu > li.cd-boton-desplegable > ul.sub-menu {
	top: 100% !important;
	left: auto !important;
	right: 0 !important;
	margin-top: 0 !important;
	min-width: 240px !important;
	width: auto !important;
	padding: 6px 0 !important;
}
#site-header #site-navigation .dropdown-menu > li.cd-boton-desplegable > ul.sub-menu > li.menu-item > a {
	padding: 12px 20px !important;
	line-height: 1.4 !important;
	white-space: nowrap;
}
#site-header #site-navigation .dropdown-menu > li.cd-boton-desplegable > a .nav-arrow { margin-left: 6px; }
/* El panel blanco ancho y el pico del megamenú no pintan en este desplegable pequeño. */
#site-header #site-navigation .dropdown-menu > li.cd-boton-desplegable > ul.sub-menu::before,
#site-header #site-navigation .dropdown-menu > li.cd-boton-desplegable > ul.sub-menu::after { display: none !important; content: none !important; }
/* Las opciones del desplegable NO son botones: el CSS del original pinta en azul cualquier
   enlace dentro de .btn-menu; aquí se devuelve el aspecto de submenú normal. */
#site-header #site-navigation .dropdown-menu > li.cd-boton-desplegable ul.sub-menu a,
.full-screen-overlay-nav li.cd-abierto > ul.sub-menu a {
	background: none !important;
	color: var(--b-tinta) !important;
	font-weight: 400 !important;
	border-radius: 0 !important;
	overflow: visible !important;
	text-align: left;
}
#site-header #site-navigation .dropdown-menu > li.cd-boton-desplegable ul.sub-menu a span,
.full-screen-overlay-nav li.cd-abierto > ul.sub-menu a span { color: inherit !important; }
#site-header #site-navigation .dropdown-menu > li.cd-boton-desplegable ul.sub-menu a::before,
#site-header #site-navigation .dropdown-menu > li.cd-boton-desplegable ul.sub-menu a::after,
.full-screen-overlay-nav li.cd-abierto > ul.sub-menu a::before,
.full-screen-overlay-nav li.cd-abierto > ul.sub-menu a::after { display: none !important; content: none !important; }
#site-header #site-navigation .dropdown-menu > li.cd-boton-desplegable ul.sub-menu a:hover {
	color: var(--b-azul) !important;
	background: var(--b-gris) !important;
}
/* Menú móvil: «Contacto» muestra sus dos opciones abiertas, sin flecha ni toque extra. */
.full-screen-overlay-nav li.cd-abierto > a .nav-arrow { display: none !important; }
.full-screen-overlay-nav li.cd-abierto > ul.sub-menu { display: block !important; height: auto !important; padding: 2px 0 0 !important; }
/* Mismo aspecto que las opciones de los otros desplegables del menú móvil (22 px, sin caja). */
.full-screen-overlay-nav li.cd-abierto > ul.sub-menu > li > a { padding: 7px 0 !important; line-height: normal !important; text-align: center !important; }
.full-screen-overlay-nav li.cd-abierto > ul.sub-menu > li > a:hover { color: var(--b-azul) !important; }

/* ---------- Contacto en móvil: que se vean dos bloques distintos ----------
   Cada columna (#contacto y #empleo) es una tarjeta con el filete de color del manual
   arriba, sombra suave y más separación entre ellas. */
@media (max-width: 767px) {
	.cd-contacto-columnas.wp-block-columns > .wp-block-column + .wp-block-column { margin-top: 40px !important; }
	.cd-contacto-columnas .cd-panel {
		position: relative;
		overflow: hidden;
		box-shadow: 0 8px 24px rgba(22, 26, 58, 0.08);
	}
	.cd-contacto-columnas .cd-panel::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		height: 4px;
		background: linear-gradient(90deg, var(--b-cian), var(--b-violeta));
	}
}

/* =====================================================================================
   PÁGINAS INTERIORES: banner centrado y menos hueco hasta el contenido (24/09/2026, 1.14.0)
   Solo tres espacios: el banner, el primer hueco bajo el banner y el filtro de Proyectos.
   ===================================================================================== */
/* 1. Banner: el título queda centrado (antes 52 px arriba y 72 abajo por su margen). Con dos
   líneas mide 194 px (antes 234); con una, 176 px como antes, ahora centrado. */
.page-header, .page-header.centered-page-header.wpex-supports-mods, .cd-cabecera { padding-top: 40px !important; padding-bottom: 44px !important; min-height: 176px; }
.page-header .page-header-title, .page-header-content .page-header-title, .cd-cabecera h1 { margin-bottom: 0 !important; }
.page-header .page-header-content > * + *, .cd-cabecera > h1 ~ * { margin-top: 20px !important; }
@media (max-width: 767px) {
	.page-header, .page-header.centered-page-header.wpex-supports-mods, .cd-cabecera { padding-top: 28px !important; padding-bottom: 32px !important; min-height: 132px; }
}
/* 2. Primer contenido bajo el banner: 112 → 48 px (móvil 72 → 32). */
.single-page-content > .cd-seccion.sec-150:first-child { padding-top: 48px !important; }
.page-header ~ #content-wrap:not(:has(.cd-seccion)) { padding-top: 48px !important; }
@media (min-width: 1024px) {
	.single-page-content:has(> .cd-nav-franja .cd-nav-barra) > .cd-nav-franja { padding-top: 48px !important; }
	.single-page-content:has(> .cd-nav-franja .cd-nav-barra) > .cd-nav-franja + .cd-seccion.sec-150 { padding-top: 48px !important; }
}
@media (max-width: 1023px) {
	.single-page-content > .cd-nav-franja + .cd-seccion.sec-150 { padding-top: 32px !important; }
}
@media (max-width: 767px) {
	.single-page-content > .cd-seccion.sec-150:first-child { padding-top: 32px !important; }
	.page-header ~ #content-wrap:not(:has(.cd-seccion)) { padding-top: 32px !important; }
}
/* 3. Filtro de Proyectos: menos aire encima del texto (22 → 8 px) y hasta la primera
   tarjeta (48 → 24 px). La raya de la opción activa y su separación no cambian. */
ul.vcex-filter-links.cd-filtro-sectores li a { padding-top: 8px !important; }
ul.vcex-filter-links.cd-filtro-sectores { margin-bottom: 24px !important; }

/* =====================================================================================
   PORTADA (hero) más compacta (24/09/2026, 1.15.0): el hero entero cabe en 1600×900 y se
   intuye el contenido de debajo. Mismo tamaño de letra; menos aire arriba, interlineado del
   título 1,12 → 1,1, título a 1100 px de ancho (4 → 3 líneas) y botones con aire debajo.
   ===================================================================================== */
.cd-cabecera-inicio, #banner.cd-cabecera-inicio, #banner { padding-top: 96px !important; padding-bottom: 88px !important; }
.cd-cabecera-inicio h1 { max-width: 1100px !important; line-height: 1.1 !important; margin-bottom: 24px !important; }
.cd-cabecera-inicio p { margin-bottom: 0 !important; }
.cd-cabecera-inicio .wp-block-buttons { margin-top: 40px !important; }
@media (max-width: 767px) {
	.cd-cabecera-inicio, #banner.cd-cabecera-inicio, #banner { padding-top: 56px !important; padding-bottom: 56px !important; }
	.cd-cabecera-inicio .wp-block-buttons { margin-top: 32px !important; }
}

/* =====================================================================================
   NOSOTROS (24/09/2026, 1.15.0)
   ===================================================================================== */
/* Separaciones: la línea entre «Filosofía y Propósito Corporativo» y las tarjetas era blanca
   sobre el gris (casi invisible) con 70 px arriba y abajo. Ahora es gris suave, del ancho
   de las tarjetas que separa, con 40 px a cada lado. El separador solo existe en Nosotros. */
hr.cd-separador, .cd-seccion hr.cd-separador { margin: 40px 0 !important; border-top-color: var(--b-linea) !important; }
#cultura hr.cd-separador + .cd-rejilla { margin-top: 0 !important; }
/* Mismo criterio en las otras secciones: título de sección → su bloque, 40 px. */
#certificaciones > h2 + .cd-acreditacion, #sedes > h2 + .cd-rejilla { margin-top: 20px !important; }

/* Tabla de acreditaciones: más aire, filas separadas por una línea suave y todo alineado
   arriba. Mismos tamaños de letra y textos. */
.cd-acreditacion { padding: 32px 0 !important; border-bottom: 1px solid var(--b-linea) !important; }
.cd-acreditacion:last-child { border-bottom: 0 !important; }
.cd-acreditacion.cd-acreditacion--cabecera { padding: 0 0 20px !important; margin-bottom: 8px; border-bottom: 2px solid var(--b-linea) !important; }
body .cd-acreditacion .wp-block-columns { column-gap: 48px !important; align-items: flex-start !important; }
.cd-acreditacion .wp-block-column.is-vertically-aligned-center { align-self: flex-start !important; }
/* Sellos sin logo: más margen interior para que el texto no toque el filete. */
.cd-acreditacion p.is-style-cd-distintivo { width: 128px !important; height: 88px !important; padding: 10px 12px !important; }
@media (max-width: 1540px) {
	body .cd-acreditacion .wp-block-columns { column-gap: 32px !important; }
}
@media (max-width: 781px) {
	body .cd-acreditacion .wp-block-columns { row-gap: 12px !important; }
}

/* =====================================================================================
   MEGAMENÚ versión A (elegida el 24/09/2026, 1.16.0): prolongación blanca de la cabecera,
   a todo el ancho, sin caja, sombra suave abajo y apertura de 180 ms.
   ===================================================================================== */
@media (min-width: 1200px) {
	/* El panel se coloca respecto a toda la cabecera, no a su contenedor: ancho completo. */
	#site-header #site-header-inner.container { position: static !important; }
	#site-header #site-navigation li.megamenu > ul.sub-menu {
		top: 100% !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		margin: 0 !important;
		/* Opciones dentro del contenedor de la cabecera, con el icono alineado con el logo */
		padding: 24px calc(max(62px, (100% - var(--b-ancho)) / 2) - 16px) 28px !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: 0 20px 24px -20px rgba(22, 26, 58, 0.22) !important;
		transform: translateY(-6px);
		transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease !important;
	}
	#site-header #site-navigation li.megamenu:hover > ul.sub-menu,
	#site-header #site-navigation li.megamenu:focus-within > ul.sub-menu,
	#site-header #site-navigation li.megamenu.wpex-active > ul.sub-menu { transform: none; }
	/* Con un megamenú abierto, la cabecera y el panel son una sola superficie. */
	#site-header:has(li.megamenu:hover, li.megamenu.wpex-active, li.megamenu:focus-within) { border-bottom-color: transparent !important; }
}
@media (min-width: 1200px) {
	#site-header #site-navigation li.megamenu > ul.sub-menu { background: #fff !important; }
}

/* =====================================================================================
   PORTADA: el hero ocupa exactamente la pantalla visible (24/09/2026, 1.16.0)
   Alto = ventana menos la cabecera (77 px desde 1200 px, 73 por debajo). dvh sigue a las
   barras del navegador móvil al aparecer y desaparecer; vh queda como respaldo. Es un alto
   mínimo: si el contenido no cabe, el hero crece. Contenido centrado en vertical.
   ===================================================================================== */
.cd-cabecera-inicio, #banner.cd-cabecera-inicio {
	--cd-cabecera: 73px;
	position: relative;
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
	min-height: calc(100vh - var(--cd-cabecera));
	min-height: calc(100dvh - var(--cd-cabecera));
}
@media (min-width: 1200px) {
	.cd-cabecera-inicio, #banner.cd-cabecera-inicio { --cd-cabecera: 77px; }
}
/* Indicador «hay más contenido» (lo añade tema.js): línea fina blanca con un punto que baja. */
.cd-hero-mas {
	position: absolute;
	left: 50%;
	bottom: 20px;
	width: 44px;
	height: 44px;
	margin-left: -22px;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	opacity: 0.55;
	transition: opacity 180ms ease;
	text-decoration: none;
}
.cd-hero-mas:hover, .cd-hero-mas:focus-visible { opacity: 0.9; }
.cd-hero-mas::before {
	content: "";
	width: 1px;
	height: 36px;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, #fff 100%);
}
.cd-hero-mas::after {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 5px;
	height: 5px;
	margin-left: -2.5px;
	border-radius: 50%;
	background: #fff;
	animation: cd-hero-mas 2.2s ease-in-out infinite;
}
@keyframes cd-hero-mas {
	0% { transform: translateY(0); opacity: 0; }
	30% { opacity: 1; }
	80% { transform: translateY(32px); opacity: 0; }
	100% { transform: translateY(32px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.cd-hero-mas::after { animation: none; transform: translateY(32px); opacity: 1; }
}
/* Móvil: aire bajo los botones para el indicador (64 px) sin que lo toquen. */
@media (max-width: 767px) {
	.cd-cabecera-inicio, #banner.cd-cabecera-inicio, #banner { padding-bottom: 88px !important; }
}

/* =====================================================================================
   NOSOTROS: «Acreditaciones y Solvencia» por encima de la raya magenta (24/09/2026, 1.17.2)
   Solo en esta sección: título → 28 px → raya → 48 px → cabecera de la tabla, para que el
   título no quede pegado a la tabla. La tabla sigue como en 1.15.0.
   ===================================================================================== */
#certificaciones > h2.cd-centrado::before { content: none; }
#certificaciones > h2.cd-centrado::after { content: ""; display: block; width: 40px; height: 3px; background: var(--b-magenta); margin: 28px auto 0; }
#certificaciones > h2.cd-centrado { margin-bottom: 0 !important; }
#certificaciones > h2 + .cd-acreditacion { margin-top: 48px !important; }
@media (max-width: 781px) {
	#certificaciones > h2 + .cd-acreditacion { margin-top: 32px !important; }
}

/* =====================================================================================
   PANTALLAS GRANDES (25/09/2026, 1.18.0): 27" (2560 px), Full HD (1920 px) y 4K.
   - El CSS del tema original daba 30 px de margen a cada opción del menú desde 1851 px: con
     la cabecera nueva no cabían y el menú se partía en dos líneas (se salía por arriba y
     ES/EN bajaban). Fuera ese margen: la cabecera se ve igual que en un portátil.
   - El contenido se ensancha por tramos para no quedar como una columna estrecha en el
     centro, y los títulos crecen un poco. Todo cuelga de --b-ancho (cabecera, secciones,
     banners, pie y megamenú se alinean solos).
   ===================================================================================== */
@media (min-width: 1851px) {
	#site-header #menu-principal > li:not(.btn-menu):not(.cd-idiomas) { margin-left: 0 !important; }
}
@media (min-width: 1800px) {
	:root { --b-ancho: 1400px; }
}
/* Fichas con menú lateral (Especializaciones, Productos, Servicios IT): la lista se alinea
   con el logo; antes quedaba pegada al borde izquierdo y con 2560 px dejaba un hueco enorme. */
@media (min-width: 1800px) {
	body .single-page-content:has(> .cd-nav-franja .cd-nav-barra) > .cd-nav-franja.cd-seccion { padding-left: calc((100vw - var(--b-ancho)) / 2) !important; padding-right: 32px !important; }
}
@media (min-width: 2200px) {
	:root { --b-ancho: 1560px; }
	body { font-size: 19px; }
	.tip-75 { font-size: 64px !important; }
	.tip-50-60 { font-size: 44px !important; }
	.tip-23-33 { font-size: 21px !important; }
	.cd-cabecera-inicio h1, #banner h1 { max-width: 1240px !important; }
}
/* 4K sin escalar (3000 px o más de ancho útil; lo normal es que Windows y macOS escalen a
   2560): contenido más ancho y letra mayor. */
@media (min-width: 3000px) {
	:root { --b-ancho: 1840px; }
	body { font-size: 21px; }
	.tip-75 { font-size: 76px !important; }
	.tip-50-60 { font-size: 52px !important; }
	.tip-35-45 { font-size: 32px !important; }
	.tip-23-33 { font-size: 24px !important; }
	.cd-cabecera-inicio h1, #banner h1 { max-width: 1500px !important; }
	#site-header #site-navigation .dropdown-menu > li > a { font-size: 17px !important; }
	#site-logo img.logo-img { height: 56px !important; }
}
