/* ==========================================================================
   Tema EXACTO
   Identidad: la X del logo. Bandas y cortes a 45°, carbón y azul corporativo.
   ========================================================================== */

:root {
	--ex-azul: var(--wp--preset--color--azul, #0085B4);
	--ex-azul-claro: var(--wp--preset--color--azul-claro, #0097CC);
	--ex-carbon: var(--wp--preset--color--carbon, #373935);
	--ex-grafito: var(--wp--preset--color--grafito, #545653);
	--ex-gris: var(--wp--preset--color--gris, #70726F);
	--ex-niebla: var(--wp--preset--color--niebla, #EEF1F2);
	--ex-linea: var(--wp--preset--color--linea, #D8DCDE);
	--ex-suave: #5E605D;
	--ex-panel: #41433F;
	--ex-corte: 56px;
	--ex-sec: var(--wp--preset--spacing--70, clamp(72px, 9vw, 120px));
}

html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { -webkit-font-smoothing: antialiased; }
:focus-visible { outline: 3px solid var(--ex-azul-claro); outline-offset: 3px; }

/* Las secciones se tocan entre sí: sin separación vertical automática */
.wp-site-blocks > * + * { margin-block-start: 0; }
.ex-main > * { margin-block-start: 0; margin-block-end: 0; }

/* --------------------------------------------------------------------------
   Botones: el borde izquierdo cortado a 45° replica las bandas del logo
   -------------------------------------------------------------------------- */
.wp-block-button:not(.is-style-linea) .wp-block-button__link {
	clip-path: polygon(14px 0, 100% 0, 100% 100%, 0 100%);
	transition: background-color .2s;
}
.wp-block-button.is-style-linea .wp-block-button__link {
	background: transparent;
	color: inherit;
	padding: 14px 4px;
	border-bottom: 2px solid currentColor;
}
.wp-block-button.is-style-linea .wp-block-button__link:hover { color: var(--ex-azul-claro); background: transparent; }

/* --------------------------------------------------------------------------
   Encabezado
   -------------------------------------------------------------------------- */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, .96);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid transparent;
	transition: border-color .2s;
}
.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar header.wp-block-template-part { top: 46px; } }
header.wp-block-template-part.ex-desplazado { border-color: var(--ex-linea); }

.ex-top-barra { min-height: 76px; gap: 28px; }
.ex-logo { flex: none; line-height: 0; }
.ex-logo img { height: 34px; width: auto; display: block; }
.ex-nav { margin-left: auto; }
.ex-nav .wp-block-navigation__container { gap: 22px; }
.ex-nav .wp-block-navigation-item__content { white-space: nowrap; color: var(--ex-carbon); }
.ex-nav .wp-block-navigation-item__content:hover { color: var(--ex-azul); }
.ex-nav .ex-ayuda .wp-block-navigation-item__content { color: var(--ex-gris); }
.ex-top-cta { flex: none; }
.ex-top-cta .wp-block-button__link { padding: 11px 20px 11px 26px; font-size: 15px; white-space: nowrap; }

/* El menú del núcleo pasa a hamburguesa en 600px; aquí lo adelantamos a 1180px */
@media (max-width: 1180px) {
	.ex-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ex-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.ex-top-cta { display: none; }
}
.ex-nav .wp-block-navigation__responsive-container.is-menu-open { background: #fff; padding: 28px clamp(20px, 4vw, 48px); }
.ex-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 18px; }
.ex-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 20px; }

/* --------------------------------------------------------------------------
   Secciones y cortes a 45°
   El corte se dibuja con un triángulo del color de la sección vecina
   (--ex-vecina), así nunca deja ver un fondo equivocado.
   -------------------------------------------------------------------------- */
.ex-sec { padding-top: var(--ex-sec); padding-bottom: var(--ex-sec); position: relative; }
.ex-oscuro { background: var(--ex-carbon); color: #fff; }
.ex-niebla { background: var(--ex-niebla); }
.ex-sobre-niebla { --ex-vecina: var(--ex-niebla); }

.ex-corte-sup, .ex-corte-inf { position: relative; }
.ex-corte-sup::before,
.ex-corte-inf::after {
	content: "";
	position: absolute;
	width: var(--ex-corte);
	height: var(--ex-corte);
	background: var(--ex-vecina, #fff);
	pointer-events: none;
}
.ex-corte-sup::before { top: 0; left: 0; clip-path: polygon(0 0, 100% 0, 0 100%); }
.ex-corte-inf::after { bottom: 0; right: 0; clip-path: polygon(100% 0, 100% 100%, 0 100%); }

.ex-cabecera { gap: 40px; align-items: flex-end !important; margin-bottom: 56px !important; }
.ex-cabecera p { margin: 0; }
.ex-lead { font-size: var(--wp--preset--font-size--large); color: var(--ex-suave); max-width: 60ch; }
.ex-oscuro .ex-lead,
.ex-oscuro .wp-block-list li { color: #C9CCCA; }
.ex-nota { font-size: 14px; color: var(--ex-gris); }

/* --------------------------------------------------------------------------
   Portada
   -------------------------------------------------------------------------- */
.ex-hero { padding-top: 56px; padding-bottom: 96px; overflow: hidden; }
.ex-hero > .wp-block-columns { min-height: min(72vh, 640px); align-items: center !important; gap: 40px; }
.ex-lema { font-family: var(--wp--preset--font-family--display); font-weight: 500; color: var(--ex-azul-claro); font-size: 18px; }
.ex-hero h1 { max-width: 14ch; margin-top: 18px; margin-bottom: 26px; color: #fff; }
.ex-hero .ex-lead { color: #C9CCCA; margin-bottom: 34px; }
.ex-hero .wp-block-buttons { gap: 22px; align-items: center; }
.ex-hero .is-style-linea .wp-block-button__link { color: #fff; }
.ex-gancho { margin-top: 46px !important; padding-top: 22px; border-top: 1px solid var(--ex-grafito); max-width: 52ch; color: #B7BAB8; font-size: 16px; }
.ex-gancho a { color: #fff; font-weight: 600; text-decoration-color: var(--ex-azul-claro); text-underline-offset: 4px; }
.ex-x { width: 100%; max-width: 520px; margin-left: auto; }
.ex-x .sup { animation: ex-baja 1.1s cubic-bezier(.2, .8, .2, 1) both; }
.ex-x .inf { animation: ex-sube 1.1s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes ex-baja { from { transform: translateY(-140px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes ex-sube { from { transform: translateY(140px); opacity: 0; } to { transform: none; opacity: 1; } }

/* Clientes */
.ex-clientes { padding-top: 46px; padding-bottom: 34px; }
.ex-clientes .ex-nota { font-size: 15px; margin: 0 0 18px; }
.ex-marcas { gap: 14px 40px !important; align-items: center; }
.ex-marcas p { margin: 0; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 19px; color: #9A9C99; white-space: nowrap; }
.ex-marcas img { max-height: 44px; width: auto; filter: grayscale(1); opacity: .7; transition: opacity .2s, filter .2s; }
.ex-marcas img:hover { filter: none; opacity: 1; }

/* --------------------------------------------------------------------------
   Servicios
   -------------------------------------------------------------------------- */
.ex-servicios { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--ex-carbon); gap: 0 !important; }
.ex-servicios > * { margin: 0 !important; }
.ex-serv { padding: 30px 28px 34px 0; border-bottom: 1px solid var(--ex-linea); }
.ex-serv:not(:nth-child(3n+1)) { padding-left: 28px; border-left: 1px solid var(--ex-linea); }
.ex-serv svg { width: 40px; height: 40px; margin-bottom: 18px; display: block; }
.ex-serv h3 { margin: 0 0 10px; }
.ex-serv p { font-size: 16px; color: var(--ex-suave); margin: 0 0 14px; }
.ex-enlace a { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 15px; text-decoration: none; }
.ex-enlace a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* --------------------------------------------------------------------------
   Bloques destacados (hiperconvergencia, IA)
   -------------------------------------------------------------------------- */
.ex-destacado { gap: clamp(36px, 6vw, 88px); align-items: center !important; }
.ex-puntos { list-style: none; padding: 0 !important; margin: 24px 0 32px !important; }
.ex-puntos li { padding: 12px 0 12px 30px; border-top: 1px solid var(--ex-linea); position: relative; font-size: 16.5px; margin: 0; }
.ex-oscuro .ex-puntos li { border-color: var(--ex-grafito); }
.ex-puntos li::before {
	content: ""; position: absolute; left: 0; top: 20px; width: 14px; height: 10px;
	background: var(--ex-azul); clip-path: polygon(40% 0, 100% 0, 60% 100%, 0 100%);
}
.ex-figura { background: #fff; padding: 26px; border: 1px solid var(--ex-linea); margin: 0; }
.ex-figura svg { width: 100%; height: auto; display: block; }
.ex-figura .ex-pie-figura { font-size: 14px; color: var(--ex-gris); margin-top: 14px; }
.ex-oscuro .ex-figura { background: var(--ex-panel); border-color: var(--ex-grafito); }
.ex-oscuro .ex-figura .ex-pie-figura { color: #A9ACAA; }
.ex-tit-figura { font-family: var(--wp--preset--font-family--display); font-weight: 700; margin: 0 0 4px; }
.ex-sub-figura { font-size: 14px; color: #A9ACAA; margin: 0; }
.ex-barras { margin: 16px 0 26px; }
.ex-barras .fila { display: grid; grid-template-columns: 150px 1fr; gap: 16px; align-items: center; margin-bottom: 16px; font-size: 15px; }
.ex-barras .b { height: 38px; display: flex; align-items: center; padding-left: 12px; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 15px; white-space: nowrap; }
.ex-flujo { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 0; padding: 0; list-style: none; }
.ex-flujo li { font-size: 14px; padding: 7px 12px; background: var(--ex-grafito); color: #E6E8E7; }
.ex-flujo li.h { background: var(--ex-azul); }

/* --------------------------------------------------------------------------
   Método por etapas
   -------------------------------------------------------------------------- */
.ex-pasos { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px !important; }
.ex-pasos > * { margin: 0 !important; }
.ex-paso .ex-num { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 56px; line-height: 1; color: var(--ex-linea); margin: 0 0 14px; }
.ex-paso .ex-num::after {
	content: ""; display: block; height: 6px; margin-top: 14px; background: var(--ex-azul);
	clip-path: polygon(0 0, calc(100% - 6px) 0, 100% 100%, 0 100%);
}
.ex-paso:nth-child(1) .ex-num::after { opacity: .35; }
.ex-paso:nth-child(2) .ex-num::after { opacity: .55; }
.ex-paso:nth-child(3) .ex-num::after { opacity: .78; }
.ex-paso h3 { margin: 22px 0 10px; }
.ex-paso p { font-size: 16px; color: var(--ex-suave); }

/* Diferenciales */
.ex-dif { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 46px 64px !important; }
.ex-dif > * { margin: 0 !important; }
.ex-dif h3 { margin: 0 0 10px; }
.ex-dif p { color: var(--ex-suave); font-size: 16.5px; max-width: 52ch; }
.ex-mision { font-family: var(--wp--preset--font-family--display); font-weight: 500; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.35; max-width: 34ch; }

/* --------------------------------------------------------------------------
   Eventos
   -------------------------------------------------------------------------- */
.ex-eventos { gap: 28px !important; }
.ex-evento { background: var(--ex-niebla); padding: 34px; border-top: 6px solid var(--ex-carbon); display: flex; flex-direction: column; gap: 12px; }
.ex-evento > * { margin: 0 !important; }
.ex-evento.ex-azul { border-top-color: var(--ex-azul); }
.ex-evento p { color: var(--ex-suave); font-size: 16px; }
.ex-meta { gap: 8px !important; }
.ex-meta p { font-size: 13.5px !important; padding: 5px 10px; background: #fff; color: var(--ex-grafito) !important; font-weight: 600; margin: 0; }


/* --------------------------------------------------------------------------
   Blog
   -------------------------------------------------------------------------- */
.ex-notas .wp-block-post-template { gap: 36px; }
.ex-notas .wp-block-post-featured-image { margin-bottom: 18px; background: #fff; }
.ex-notas .wp-block-post-featured-image img { aspect-ratio: 16 / 9; object-fit: cover; }
.ex-notas .wp-block-post-terms { font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.ex-notas .wp-block-post-terms a { text-decoration: none; }
.ex-notas .wp-block-post-title { font-size: 20px; line-height: 1.25; margin: 0; }
.ex-notas .wp-block-post-title a { color: var(--ex-carbon); text-decoration: none; }
.ex-notas .wp-block-post-title a:hover { text-decoration: underline; text-decoration-color: var(--ex-azul); text-underline-offset: 4px; }

/* --------------------------------------------------------------------------
   Contacto
   -------------------------------------------------------------------------- */
.ex-datos { list-style: none; padding: 0 !important; margin: 32px 0 0 !important; }
.ex-datos li { padding: 14px 0; border-top: 1px solid var(--ex-grafito); font-size: 16px; color: #D5D7D6; margin: 0; }
.ex-datos li strong { display: block; font-family: var(--wp--preset--font-family--display); font-size: 14px; color: #A9ACAA; font-weight: 500; margin-bottom: 2px; }
.ex-oscuro a { color: #fff; }

/* --------------------------------------------------------------------------
   Componentes del plugin "EXACTO: funciones"
   -------------------------------------------------------------------------- */
.ex-cuenta { display: flex; align-items: baseline; gap: 16px; margin: 28px 0 10px; }
.ex-cuenta strong { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: clamp(64px, 8vw, 104px); line-height: 1; color: var(--ex-azul); letter-spacing: -.04em; }
.ex-cuenta span { font-family: var(--wp--preset--font-family--display); font-size: 18px; color: var(--ex-grafito); max-width: 16ch; line-height: 1.3; }

.ex-test { background: #fff; padding: 34px 34px 30px; border-left: 6px solid var(--ex-azul); }
.ex-test h3 { margin: 0 0 6px; }
.ex-test > p { color: var(--ex-suave); font-size: 16px; }
.ex-test label { display: flex; gap: 14px; padding: 14px 0; border-top: 1px solid var(--ex-linea); cursor: pointer; font-size: 16px; line-height: 1.45; }
.ex-test input { width: 20px; height: 20px; accent-color: var(--ex-azul); flex: none; margin-top: 2px; }
.ex-resultado { margin-top: 18px; padding: 18px 20px; background: var(--ex-niebla); font-size: 16px; min-height: 60px; }
.ex-resultado.alto { background: var(--ex-carbon); color: #fff; }
.ex-resultado.alto a { color: #fff; font-weight: 600; }

.ex-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; background: var(--ex-panel); padding: 34px; color: #D5D7D6; }
.ex-form label { display: flex; flex-direction: column; gap: 6px; font-size: 14.5px; font-weight: 500; }
.ex-form .ancho { grid-column: 1 / -1; }
.ex-form input, .ex-form select, .ex-form textarea { width: 100%; min-width: 0; font: inherit; font-size: 16px; padding: 12px 13px; background: #fff; border: 0; color: var(--ex-carbon); border-radius: 0; }
.ex-form textarea { min-height: 120px; resize: vertical; }
.ex-form .habeas { flex-direction: row; gap: 12px; font-weight: 400; font-size: 14px; color: #BFC2C0; line-height: 1.45; }
.ex-form .habeas input { width: 18px; min-width: 18px; height: 18px; margin-top: 2px; accent-color: var(--ex-azul-claro); }
.ex-form .habeas a { color: #fff; }
.ex-form .enviar { grid-column: 1 / -1; }
.ex-trampa { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.ex-btn {
	display: inline-flex; align-items: center; border: 0; cursor: pointer;
	font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 16px;
	padding: 15px 28px 15px 34px; background: var(--ex-azul); color: #fff;
	clip-path: polygon(14px 0, 100% 0, 100% 100%, 0 100%); transition: background-color .2s;
}
.ex-btn:hover { background: var(--ex-azul-claro); }

.ex-suscribir { display: flex; }
.ex-suscribir input[type="email"] { flex: 1; min-width: 0; font: inherit; font-size: 16px; padding: 13px 14px; border: 1px solid var(--ex-linea); border-right: 0; background: #fff; }
.ex-suscribir .ex-btn { padding: 13px 20px 13px 26px; font-size: 15px; }

.ex-aviso { padding: 14px 18px; font-size: 15px; margin: 0 0 16px; }
.ex-aviso.ok { background: #E3F2F8; color: #04506C; }
.ex-aviso.error { background: #FBEAEA; color: #7A1F1F; }
.ex-form .ex-aviso { grid-column: 1 / -1; margin: 0; }

.ex-wa {
	position: fixed; right: 20px; bottom: 20px; z-index: 60; background: #fff; color: var(--ex-carbon);
	display: flex; align-items: center; gap: 10px; padding: 10px 16px 10px 10px;
	font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 15px;
	text-decoration: none; box-shadow: 0 6px 24px rgba(55, 57, 53, .25);
}
.ex-wa:hover { color: var(--ex-azul); }
.ex-wa i { width: 36px; height: 36px; background: #25D366; display: grid; place-items: center; }

/* --------------------------------------------------------------------------
   Interiores: título de página, entradas, pie
   -------------------------------------------------------------------------- */
.ex-titulo { padding-top: clamp(56px, 7vw, 96px); padding-bottom: clamp(56px, 7vw, 96px); }
.ex-titulo h1 { color: #fff; font-size: clamp(36px, 4.6vw, 60px); max-width: 20ch; }
.ex-meta-entrada { font-size: 15px; color: #B7BAB8; gap: 16px !important; }
.ex-meta-entrada a { color: #fff; }
.ex-contenido { padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(56px, 7vw, 96px); }
.ex-contenido h2 { font-size: clamp(26px, 2.8vw, 34px); margin-top: 1.6em; }
.ex-contenido h3 { margin-top: 1.4em; }
.ex-contenido blockquote { border-left: 6px solid var(--ex-azul); padding-left: 22px; margin-left: 0; }
.ex-paginacion { margin-top: 48px; }

footer.wp-block-template-part { background: #2E302D; color: #B7BAB8; }
.ex-pie { padding-top: 64px; padding-bottom: 28px; font-size: 15px; }
.ex-pie img { height: 30px; width: auto; margin-bottom: 16px; }
.ex-pie h4 { font-size: 15px; color: #fff; margin: 0 0 12px; }
.ex-pie ul { list-style: none; padding: 0; margin: 0; }
.ex-pie li { margin-bottom: 8px; }
.ex-pie a { color: #B7BAB8; text-decoration: none; }
.ex-pie a:hover { color: #fff; }
.ex-legal { border-top: 1px solid #454744; margin-top: 48px !important; padding-top: 22px; font-size: 14px; gap: 12px 20px !important; }
.ex-legal p { margin: 0; }

/* --------------------------------------------------------------------------
   Responsivo
   -------------------------------------------------------------------------- */
@media (max-width: 1040px) {
	.ex-servicios { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ex-serv, .ex-serv:not(:nth-child(3n+1)) { padding: 28px 24px 30px 0; border-left: 0; }
	.ex-serv:nth-child(2n) { padding-left: 24px; border-left: 1px solid var(--ex-linea); }
	.ex-pasos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 36px !important; }
}
@media (max-width: 781px) {
	:root { --ex-corte: 28px; }
	.ex-hero { padding-top: 32px; }
	.ex-hero > .wp-block-columns { min-height: 0; }
	.ex-hero .ex-col-x { order: -1; }
	.ex-x { max-width: 220px; margin-left: 0; }
	.ex-servicios, .ex-pasos, .ex-dif { grid-template-columns: minmax(0, 1fr); }
	.ex-serv, .ex-serv:nth-child(2n) { padding-left: 0; border-left: 0; }
	.ex-form { grid-template-columns: minmax(0, 1fr); padding: 24px; }
	.ex-evento { padding: 26px 22px; }
	.ex-suscribir { flex-wrap: wrap; gap: 10px; }
	.ex-suscribir input[type="email"] { flex-basis: 100%; border-right: 1px solid var(--ex-linea); }
	.ex-barras .fila { grid-template-columns: 1fr; gap: 6px; }
	.ex-wa b { display: none; }
	.ex-wa { padding: 10px; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.ex-x .sup, .ex-x .inf { animation: none; }
}

/* Franja de llamado a diagnóstico */
.ex-cta { padding-top: 56px; padding-bottom: 56px; background: var(--ex-azul); color: #fff; }
.ex-cta-titulo { color: #fff; font-size: clamp(26px, 2.8vw, 36px); }
.ex-cta p { margin: 8px 0 0; color: #E3F2F8; }
.ex-cta .wp-block-button__link:hover { background: var(--ex-grafito) !important; }

/* Listados y búsqueda */
.ex-titulo .wp-block-query-title, .ex-titulo .wp-block-post-title { color: #fff; }
.ex-titulo .wp-block-term-description { color: #C9CCCA; max-width: 60ch; }
.ex-notas .wp-block-post-excerpt { font-size: 16px; color: var(--ex-suave); margin-top: 8px; }
.wp-block-search__input { border: 1px solid var(--ex-linea); padding: 12px 14px; font: inherit; }
.wp-block-search__button { border-radius: 0; }

/* Inscripción a eventos */
.ex-evento .ex-suscribir-form { margin-top: auto !important; padding-top: 10px; }
.ex-autoriza { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; color: var(--ex-suave); margin-top: 10px; line-height: 1.4; }
.ex-autoriza input { margin-top: 2px; accent-color: var(--ex-azul); }

/* ==========================================================================
   Páginas interiores (v1.1)
   ========================================================================== */
.ex-hero-int { padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(72px, 8vw, 104px); }
.ex-hero-int > .wp-block-columns { min-height: 0; }
.ex-hero-int h1 { font-size: clamp(36px, 4.6vw, 60px); max-width: 18ch; margin-top: 0; }
.ex-esquema { width: 100%; max-width: 460px; margin-left: auto; display: block; }
.ex-hero-int .ex-x { max-width: 380px; }
.ex-ancho-texto { max-width: 70ch; }
.ex-arriba { align-items: flex-start !important; }

/* Sección oscura: textos secundarios legibles */
.ex-oscuro .ex-cabecera .ex-lead,
.ex-oscuro .ex-paso p,
.ex-oscuro .ex-celda p,
.ex-oscuro .ex-nota { color: #C9CCCA; }
.ex-oscuro .ex-paso .ex-num { color: var(--ex-grafito); }

/* Rejilla de celdas separadas por líneas (sin cajas) */
.ex-rejilla { display: grid !important; gap: 0 !important; border-top: 2px solid var(--ex-carbon); }
.ex-rejilla > * { margin: 0 !important; }
.ex-rejilla-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ex-rejilla-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ex-rejilla-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ex-celda { padding: 26px 26px 30px 0; border-bottom: 1px solid var(--ex-linea); }
.ex-rejilla-2 .ex-celda:nth-child(2n),
.ex-rejilla-3 .ex-celda:not(:nth-child(3n+1)),
.ex-rejilla-4 .ex-celda:not(:nth-child(4n+1)) { padding-left: 26px; border-left: 1px solid var(--ex-linea); }
.ex-celda h3 { margin: 0 0 10px; font-size: 20px; }
.ex-celda p { margin: 0; font-size: 16px; color: var(--ex-suave); }
.ex-oscuro .ex-rejilla { border-top-color: #fff; }
.ex-oscuro .ex-celda, .ex-oscuro .ex-celda:not(:first-child) { border-color: var(--ex-grafito); }

/* Contraste antes / después */
.ex-contraste { gap: clamp(32px, 5vw, 72px); }
.ex-contraste h3 { padding-bottom: 12px; border-bottom: 2px solid var(--ex-azul); margin-bottom: 4px; }
.ex-contraste > .wp-block-column:first-child h3 { border-color: var(--ex-gris); }
.ex-puntos-gris li::before { background: var(--ex-gris); }
.ex-secuencia { padding-left: 1.4em !important; margin: 18px 0 !important; }
.ex-secuencia li { padding: 8px 0 8px 6px; border-top: 1px solid var(--ex-linea); font-size: 16.5px; }
.ex-secuencia li::marker { font-family: var(--wp--preset--font-family--display); font-weight: 800; color: var(--ex-azul); }
.ex-tiempo { font-family: var(--wp--preset--font-family--display); font-size: 18px; padding: 14px 18px; background: var(--ex-niebla); }
.ex-tiempo-azul { background: var(--ex-azul); color: #fff; }

/* Etapas de 3 y 5 */
.ex-pasos-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ex-pasos-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px !important; }

/* Línea de tiempo */
.ex-linea-tiempo { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; position: relative; }
.ex-linea-tiempo::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 2px; background: var(--ex-linea); }
.ex-linea-tiempo li { position: relative; padding-top: 30px; }
.ex-linea-tiempo li::before { content: ""; position: absolute; top: 0; left: 0; width: 16px; height: 16px; background: var(--ex-azul); clip-path: polygon(40% 0, 100% 0, 60% 100%, 0 100%); }
.ex-linea-tiempo li.futuro::before { background: var(--ex-carbon); }
.ex-linea-tiempo b { display: block; font-family: var(--wp--preset--font-family--display); color: var(--ex-azul); font-size: 15px; }
.ex-linea-tiempo li.futuro b { color: var(--ex-carbon); }
.ex-linea-tiempo span { display: block; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 18px; margin: 4px 0 6px; line-height: 1.25; }
.ex-linea-tiempo p { font-size: 15px; color: var(--ex-suave); margin: 0; }

/* Cifras */
.ex-cifras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 56px; border-top: 2px solid var(--ex-carbon); }
.ex-cifras > div { padding: 24px 24px 24px 0; }
.ex-cifras > div + div { padding-left: 24px; border-left: 1px solid var(--ex-linea); }
.ex-cifras strong { display: block; font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: clamp(36px, 4vw, 52px); line-height: 1; color: var(--ex-azul); letter-spacing: -.03em; }
.ex-cifras .t { font-family: var(--wp--preset--font-family--display); font-weight: 700; margin: 12px 0 4px; }
.ex-cifras p { font-size: 15px; color: var(--ex-suave); margin: 0; }

/* Tablas comparativas */
.ex-tabla { margin: 0; overflow-x: auto; }
.ex-tabla table { border-collapse: collapse; width: 100%; min-width: 640px; font-size: 15.5px; background: #fff; }
.ex-tabla th { text-align: left; font-family: var(--wp--preset--font-family--display); font-weight: 700; padding: 16px 18px; background: var(--ex-carbon); color: #fff; border: 0; }
.ex-tabla th:nth-child(2) { background: var(--ex-azul); }
.ex-tabla td { padding: 16px 18px; border: 0; border-bottom: 1px solid var(--ex-linea); vertical-align: top; color: var(--ex-suave); }
.ex-tabla td:first-child { font-weight: 600; color: var(--ex-carbon); }
.ex-tabla td:nth-child(2) { color: var(--ex-azul); font-weight: 600; }
.ex-oscuro .ex-tabla table { background: var(--ex-panel); }
.ex-oscuro .ex-tabla th { background: #2E302D; }
.ex-oscuro .ex-tabla th:nth-child(2) { background: var(--ex-azul); }
.ex-oscuro .ex-tabla td { border-color: var(--ex-grafito); color: #C9CCCA; }
.ex-oscuro .ex-tabla td:first-child { color: #fff; }
.ex-oscuro .ex-tabla td:nth-child(2) { color: #7FCCEA; }

/* Preguntas frecuentes */
.ex-faq { border-top: 2px solid var(--ex-carbon); }
.ex-faq > * { margin: 0 !important; }
.ex-faq details { border-bottom: 1px solid var(--ex-linea); padding: 0; }
.ex-faq summary { cursor: pointer; list-style: none; padding: 20px 40px 20px 0; position: relative; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 18px; }
.ex-faq summary::-webkit-details-marker { display: none; }
.ex-faq summary::after { content: ""; position: absolute; right: 6px; top: 26px; width: 12px; height: 12px; border-right: 2px solid var(--ex-azul); border-bottom: 2px solid var(--ex-azul); transform: rotate(45deg); transition: transform .2s; }
.ex-faq details[open] summary::after { transform: rotate(-135deg); top: 32px; }
.ex-faq details p { margin: 0 0 22px; color: var(--ex-suave); max-width: 64ch; }

/* Páginas legales */
.ex-legal-texto h2 { font-size: 24px; margin-top: 2em; }
.ex-legal-texto li { margin-bottom: 8px; }
.ex-aviso-borrador { background: #FFF4D6; border-left: 6px solid #C58A00; padding: 16px 20px; }

/* Responsivo de interiores */
@media (max-width: 1040px) {
	.ex-rejilla-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ex-rejilla-4 .ex-celda:not(:nth-child(4n+1)) { padding-left: 0; border-left: 0; }
	.ex-rejilla-4 .ex-celda:nth-child(2n) { padding-left: 26px; border-left: 1px solid var(--ex-linea); }
	.ex-rejilla-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ex-rejilla-3 .ex-celda:not(:nth-child(3n+1)) { padding-left: 0; border-left: 0; }
	.ex-rejilla-3 .ex-celda:nth-child(2n) { padding-left: 26px; border-left: 1px solid var(--ex-linea); }
	.ex-pasos-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ex-linea-tiempo { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 36px; }
}
@media (max-width: 781px) {
	.ex-rejilla-2, .ex-rejilla-3, .ex-rejilla-4, .ex-pasos-3, .ex-pasos-5, .ex-cifras { grid-template-columns: minmax(0, 1fr); }
	.ex-celda, .ex-rejilla .ex-celda:nth-child(n) { padding-left: 0 !important; border-left: 0 !important; }
	.ex-cifras > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--ex-linea); }
	.ex-linea-tiempo { grid-template-columns: minmax(0, 1fr); padding-left: 28px; }
	.ex-linea-tiempo::before { left: 7px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; }
	.ex-linea-tiempo li { padding-top: 0; }
	.ex-linea-tiempo li::before { left: -28px; top: 4px; }
	.ex-esquema { max-width: 260px; margin-left: 0; }
	.ex-hero-int .wp-block-column:last-child { order: -1; }
	.ex-hero-int .ex-x { max-width: 200px; margin-left: 0; }
}

/* Secciones dentro del contenido de una página: sin separación automática */
.wp-block-post-content > .alignfull { margin-block-start: 0; margin-block-end: 0; }
.ex-contraste .ex-puntos { margin-top: 0 !important; }
.ex-contraste .ex-puntos li:first-child { border-top: 0; }

/* ==========================================================================
   Versión 1.2: conversión
   ========================================================================== */
.ex-int { max-width: 1200px; margin-left: auto; margin-right: auto; padding-left: clamp(20px, 4vw, 48px); padding-right: clamp(20px, 4vw, 48px); }
.ex-int > h2 { margin: 0 0 32px; }

/* Servicios que suelen ir juntos */
.ex-relacionados { padding-top: 0; }
.ex-relacionados::before { content: ""; display: block; max-width: 1200px; margin: 0 auto clamp(48px, 6vw, 72px); border-top: 1px solid var(--ex-linea); }
.ex-rel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ex-rel-item { display: flex; flex-direction: column; gap: 8px; padding: 26px 26px 28px; background: #fff; border-top: 4px solid var(--ex-azul); text-decoration: none; color: var(--ex-carbon); transition: transform .2s, box-shadow .2s; }
.ex-rel-item:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(55, 57, 53, .12); color: var(--ex-carbon); }
.ex-rel-item .t { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 20px; }
.ex-rel-item .t::after { content: ""; display: inline-block; width: 12px; height: 9px; margin-left: 10px; background: var(--ex-azul); clip-path: polygon(40% 0, 100% 0, 60% 100%, 0 100%); }
.ex-rel-item .d { font-size: 15.5px; color: var(--ex-suave); }

/* Siga leyendo (notas relacionadas) */
.ex-siga-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.ex-siga-item { text-decoration: none; color: var(--ex-carbon); display: flex; flex-direction: column; }
.ex-siga-item .img { display: block; aspect-ratio: 16 / 9; background: #fff; overflow: hidden; margin-bottom: 16px; }
.ex-siga-item .img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ex-siga-vacia { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, transparent 49%, var(--ex-linea) 49%, var(--ex-linea) 51%, transparent 51%); }
.ex-siga-item .cat { font-size: 14px; font-weight: 600; color: var(--ex-azul); margin-bottom: 6px; }
.ex-siga-item .t { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 20px; line-height: 1.25; }
.ex-siga-item:hover .t { text-decoration: underline; text-decoration-color: var(--ex-azul); text-underline-offset: 4px; }

/* Franja de llamado a la acción por tema */
.ex-cta-int { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.ex-cta-int > div { max-width: 720px; }
.ex-cta-int .ex-cta-titulo { margin: 0; }
.ex-btn-oscuro { background: var(--ex-carbon); color: #fff !important; text-decoration: none; flex: none; }
.ex-btn-oscuro:hover { background: var(--ex-grafito); }

/* Fecha de la conferencia y agenda directa */
.ex-evento-fecha { margin: 0 0 12px !important; padding: 12px 14px; background: #fff; border-left: 4px solid var(--ex-azul); font-size: 15px; color: var(--ex-carbon) !important; }
.ex-agenda { grid-column: 1 / -1; margin: 0; padding: 12px 14px; background: rgba(255, 255, 255, .06); border-left: 4px solid var(--ex-azul-claro); font-size: 15px; }
.ex-agenda a { color: #fff; font-weight: 600; }

/* Barra fija en el celular */
.ex-barra-movil { display: none; }
@media (max-width: 781px) {
	.ex-barra-movil { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; background: var(--ex-carbon); padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); gap: 10px; box-shadow: 0 -6px 20px rgba(0, 0, 0, .18); }
	.ex-barra-agenda { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 48px; background: var(--ex-azul); color: #fff; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 16px; text-decoration: none; clip-path: polygon(12px 0, 100% 0, 100% 100%, 0 100%); }
	.ex-barra-wa { flex: none; width: 48px; min-height: 48px; display: grid; place-items: center; background: #25D366; }
	body { padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)); }
	.ex-wa { display: none; }
	.ex-rel, .ex-siga-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 782px) and (max-width: 1040px) {
	.ex-rel, .ex-siga-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
