/*
Theme Name:   Cisterbona Moderno
Theme URI:    https://cisterbona.com
Description:  Tema hijo de Divi para CTB Cisterbona. Moderniza cabecera, menú, tipografía, botones, blog, formularios y pie, y añade una plantilla de portada ("Portada moderna") editable desde el Personalizador.
Author:       Cisterbona
Template:     Divi
Version:      1.3.4
Text Domain:  cisterbona-moderno
*/

/* =========================================================
   1. TOKENS
   Colores del logotipo CTB: celeste, verde y azul.
   (se sobrescriben desde el Personalizador)
   ========================================================= */
:root {
	--cb-sky: #47bfe1;      /* hoja 1 del logo */
	--cb-green: #8abb00;    /* hoja 2 del logo */
	--cb-blue: #0090bf;     /* hoja 3 del logo */
	--cb-blue-ink: #00739a; /* azul del logo oscurecido para texto pequeño sobre blanco */
	--cb-navy: #06364b;     /* azul profundo derivado del azul del logo (fondos oscuros) */
	--cb-navy-2: #00739a;
	--cb-ink: #0f1b2a;
	--cb-text: #3d4b5c;
	--cb-muted: #6b7a8c;
	--cb-line: #e3e8ee;
	--cb-bg: #f4f6f9;
	--cb-white: #ffffff;
	--cb-accent: var(--cb-green);
	--cb-accent-ink: #0f1b2a;
	--cb-brand-bar: linear-gradient(90deg, var(--cb-sky) 0 33.33%, var(--cb-green) 33.33% 66.66%, var(--cb-blue) 66.66% 100%);
	--cb-radius: 14px;
	--cb-radius-sm: 8px;
	--cb-shadow: 0 1px 2px rgba(15, 27, 42, .06), 0 8px 24px rgba(15, 27, 42, .08);
	--cb-shadow-lg: 0 24px 60px rgba(11, 34, 57, .18);
	--cb-font-head: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--cb-font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--cb-ease: cubic-bezier(.2, .7, .2, 1);
	--cb-wrap: 1200px;
}

/* =========================================================
   2. BASE
   ========================================================= */
body,
body.et_pb_pagebuilder_layout,
.et_pb_text,
input, textarea, select, button {
	font-family: var(--cb-font-body) !important;
}
body {
	color: var(--cb-text);
	font-size: 16px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	background: var(--cb-white);
}
h1, h2, h3, h4, h5, h6,
.et_pb_module_header,
.entry-title,
.et_pb_slide_title {
	font-family: var(--cb-font-head) !important;
	color: var(--cb-ink);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.15;
	padding-bottom: .4em;
}
a { color: var(--cb-navy-2); transition: color .2s var(--cb-ease); }
a:hover { color: var(--cb-blue); }
::selection { background: var(--cb-sky); color: var(--cb-ink); }
img { max-width: 100%; height: auto; }

:focus-visible {
	outline: 3px solid var(--cb-blue);
	outline-offset: 3px;
	border-radius: 4px;
}

/* =========================================================
   3. BARRA SUPERIOR (#top-header)
   ========================================================= */
#top-header {
	background: var(--cb-navy) !important;
	border-top: 4px solid transparent;
	border-image: var(--cb-brand-bar) 1;
	font-size: 13px;
	letter-spacing: .01em;
}
#top-header,
#top-header a,
#top-header .et-social-icon a { color: rgba(255, 255, 255, .78) !important; }
#top-header a:hover { color: var(--cb-sky) !important; }
#et-info-phone::before,
#et-info-email::before { color: var(--cb-sky); }

/* =========================================================
   4. CABECERA PRINCIPAL Y MENÚ
   ========================================================= */
#main-header {
	background: rgba(255, 255, 255, .92) !important;
	-webkit-backdrop-filter: saturate(180%) blur(14px);
	backdrop-filter: saturate(180%) blur(14px);
	box-shadow: 0 1px 0 var(--cb-line) !important;
	transition: box-shadow .3s var(--cb-ease), background .3s var(--cb-ease);
}
body.cb-scrolled #main-header {
	box-shadow: 0 8px 30px rgba(15, 27, 42, .10) !important;
}
#logo { transition: max-height .3s var(--cb-ease); }

#top-menu li a,
.et_header_style_left #et-top-navigation nav > ul > li > a {
	font-family: var(--cb-font-head) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--cb-ink) !important;
	position: relative;
}
#top-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 22px;
	height: 2px;
	background: var(--cb-accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s var(--cb-ease);
}
.et-fixed-header #top-menu > li > a::after { bottom: 14px; }
#top-menu > li > a:hover,
#top-menu > li.current-menu-item > a { opacity: 1 !important; color: var(--cb-navy-2) !important; }
#top-menu > li > a:hover::after,
#top-menu > li.current-menu-item > a::after { transform: scaleX(1); }

/* "CONTACTO" como botón destacado (añade la clase cb-menu-cta al elemento en Apariencia › Menús) */
#top-menu li.cb-menu-cta > a {
	background: var(--cb-accent);
	color: var(--cb-accent-ink) !important;
	padding: 10px 18px !important;
	border-radius: 999px;
	margin-top: -10px;
}
#top-menu li.cb-menu-cta > a::after { display: none; }

#top-menu li ul.sub-menu {
	border-top: 3px solid var(--cb-blue) !important;
	border-radius: 0 0 var(--cb-radius-sm) var(--cb-radius-sm);
	box-shadow: var(--cb-shadow-lg);
}

/* Menú móvil */
.mobile_menu_bar::before { color: var(--cb-ink) !important; }
.et_mobile_menu {
	border-top: 3px solid var(--cb-blue) !important;
	border-radius: 0 0 var(--cb-radius) var(--cb-radius);
	box-shadow: var(--cb-shadow-lg);
}
.et_mobile_menu li a {
	font-family: var(--cb-font-head);
	font-weight: 700;
	color: var(--cb-ink) !important;
	border-bottom: 1px solid var(--cb-line) !important;
}
.et_mobile_menu li a:hover { background: var(--cb-bg) !important; opacity: 1 !important; }

/* =========================================================
   5. BOTONES (Divi y propios)
   ========================================================= */
.et_pb_button,
.et_pb_contact_submit,
.et_pb_more_button,
.more-link,
.cb-btn,
input[type="submit"],
button[type="submit"] {
	font-family: var(--cb-font-head) !important;
	font-weight: 800 !important;
	font-size: 15px !important;
	letter-spacing: .02em;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 14px 28px !important;
	background: var(--cb-accent) !important;
	color: var(--cb-accent-ink) !important;
	box-shadow: 0 6px 18px rgba(138, 187, 0, .30);
	transition: transform .2s var(--cb-ease), box-shadow .2s var(--cb-ease), background .2s;
	cursor: pointer;
	line-height: 1.2 !important;
}
.et_pb_button:hover,
.et_pb_contact_submit:hover,
.cb-btn:hover,
input[type="submit"]:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(138, 187, 0, .42);
	padding: 14px 28px !important;
}
.et_pb_button::after { display: none !important; }

/* =========================================================
   6. SLIDER / CARRUSEL DE DIVI
   ========================================================= */
.et_pb_slider,
.et_pb_gallery_slider { border-radius: var(--cb-radius); overflow: hidden; }
.et-pb-arrow-prev,
.et-pb-arrow-next {
	width: 48px; height: 48px; line-height: 48px !important;
	text-align: center;
	background: rgba(255, 255, 255, .9);
	color: var(--cb-ink) !important;
	border-radius: 50%;
	font-size: 32px !important;
}
.et-pb-controllers a { background: rgba(255, 255, 255, .5); width: 28px; height: 4px; border-radius: 2px; }
.et-pb-controllers .et-pb-active-control { background: var(--cb-accent); }

/* =========================================================
   7. BLOG (módulo de blog de Divi y entradas)
   ========================================================= */
.et_pb_blog_grid .et_pb_post,
.et_pb_posts .et_pb_post.has-post-thumbnail {
	background: var(--cb-white);
	border: 1px solid var(--cb-line) !important;
	border-radius: var(--cb-radius);
	overflow: hidden;
	box-shadow: var(--cb-shadow);
	transition: transform .3s var(--cb-ease), box-shadow .3s var(--cb-ease);
}
.et_pb_blog_grid .et_pb_post:hover {
	transform: translateY(-4px);
	box-shadow: var(--cb-shadow-lg);
}
.et_pb_post .entry-featured-image-url img { transition: transform .6s var(--cb-ease); }
.et_pb_post:hover .entry-featured-image-url img { transform: scale(1.04); }
.et_pb_post .post-meta {
	font-size: 12px; text-transform: uppercase; letter-spacing: .08em;
	color: var(--cb-muted);
}
.et_pb_post .entry-title a { color: var(--cb-ink); }
.et_pb_post .entry-title a:hover { color: var(--cb-navy-2); }
.et_pb_post .more-link {
	display: inline-block; margin-top: 12px;
	padding: 0 !important; background: none !important; box-shadow: none;
	color: var(--cb-navy-2) !important;
}
.et_pb_post .more-link::after { content: " →"; }

/* Entrada individual */
.single-post #main-content .container { max-width: 820px; }
.single-post .entry-content { font-size: 18px; }
.single-post .et_post_meta_wrapper img { border-radius: var(--cb-radius); }
#main-content .container::before { display: none; } /* quita la línea vertical del sidebar */

/* Paginación */
.pagination a, .wp-pagenavi a, .wp-pagenavi span {
	display: inline-block; padding: 10px 18px; border-radius: 999px;
	border: 1px solid var(--cb-line); font-weight: 700;
}

/* =========================================================
   8. FORMULARIOS
   ========================================================= */
.et_pb_contact_form input.input,
.et_pb_contact_form textarea,
.et_pb_contact_form select,
.comment-form input, .comment-form textarea,
.wpcf7 input:not([type="submit"]), .wpcf7 textarea {
	background: var(--cb-white) !important;
	border: 1.5px solid var(--cb-line) !important;
	border-radius: var(--cb-radius-sm) !important;
	padding: 14px 16px !important;
	color: var(--cb-ink) !important;
	font-size: 15px !important;
	transition: border-color .2s, box-shadow .2s;
}
.et_pb_contact_form input.input:focus,
.et_pb_contact_form textarea:focus {
	border-color: var(--cb-blue) !important;
	box-shadow: 0 0 0 4px rgba(0, 144, 191, .15);
}
.et_pb_contact_captcha_question { font-weight: 700; color: var(--cb-ink); }

/* =========================================================
   9. MÓDULOS DE DIVI COMUNES (blurbs, imágenes, toggles)
   ========================================================= */
.et_pb_blurb {
	transition: transform .3s var(--cb-ease);
}
.et_pb_image img,
.et_pb_gallery_image img { border-radius: var(--cb-radius-sm); }
.et_pb_toggle {
	border: 1px solid var(--cb-line) !important;
	border-radius: var(--cb-radius-sm);
	background: var(--cb-white) !important;
}
.et_pb_toggle_title { font-family: var(--cb-font-head); font-weight: 800; }
.et_pb_section { position: relative; }

/* =========================================================
   10. PIE
   ========================================================= */
#main-footer {
	background: var(--cb-navy) !important;
	border-top: 4px solid transparent;
	border-image: var(--cb-brand-bar) 1;
	color: rgba(255, 255, 255, .72);
}
#main-footer .footer-widget h4,
#main-footer .title { color: var(--cb-white) !important; }
#main-footer a { color: rgba(255, 255, 255, .85); }
#main-footer a:hover { color: var(--cb-sky); }
#et-footer-nav { background: rgba(255, 255, 255, .04) !important; }
#et-footer-nav .bottom-nav a {
	color: rgba(255, 255, 255, .8) !important;
	font-family: var(--cb-font-head);
	font-weight: 700;
	letter-spacing: .04em;
}
#et-footer-nav .bottom-nav a:hover { color: var(--cb-sky) !important; opacity: 1; }
#footer-bottom {
	background: rgba(0, 0, 0, .25) !important;
	border-top: 1px solid rgba(255, 255, 255, .06);
}
#footer-info, #footer-info a { color: rgba(255, 255, 255, .55) !important; font-size: 13px; }
#footer-bottom .et-social-icon a { color: rgba(255, 255, 255, .7) !important; }

/* Botón volver arriba */
.et_pb_scroll_top.et-pb-icon {
	background: var(--cb-accent) !important;
	color: var(--cb-accent-ink) !important;
	border-radius: 50% !important;
	right: 20px; bottom: 20px;
	padding: 10px;
}

/* Banner de cookies (plugin GDPR Cookie Compliance) */
#moove_gdpr_cookie_info_bar {
	border-radius: var(--cb-radius) var(--cb-radius) 0 0;
	box-shadow: 0 -10px 40px rgba(0, 0, 0, .15);
}

/* =========================================================
   11. PORTADA MODERNA (plantilla page-portada.php)
   ========================================================= */
.cb-home { overflow: hidden; }
.cb-wrap {
	width: min(var(--cb-wrap), 100% - 40px);
	margin-inline: auto;
}
.cb-eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--cb-font-head);
	font-size: 13px; font-weight: 800;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--cb-blue-ink);
	margin-bottom: 14px;
}
.cb-eyebrow::before {
	content: ""; width: 28px; height: 2px; background: currentColor;
}
.cb-section { padding: clamp(64px, 9vw, 120px) 0; }
.cb-section--alt { background: var(--cb-bg); }
.cb-section--dark { background: var(--cb-navy); color: rgba(255, 255, 255, .78); }
.cb-section--dark h2, .cb-section--dark h3 { color: var(--cb-white); }
.cb-section--dark .cb-eyebrow, .cb-hero .cb-eyebrow { color: var(--cb-sky); }
.cb-h2 {
	font-size: clamp(30px, 4vw, 46px) !important;
	max-width: 18ch;
}
.cb-lead { font-size: clamp(17px, 1.5vw, 19px); max-width: 60ch; }
.cb-section-head {
	display: flex; justify-content: space-between; align-items: end;
	gap: 32px; margin-bottom: 48px; flex-wrap: wrap;
}

/* --- Hero / slider --- */
.cb-hero {
	position: relative;
	display: grid;              /* las diapositivas se apilan en la misma celda */
	color: var(--cb-white);
	background: var(--cb-navy);
	overflow: hidden;
	isolation: isolate;
}
.cb-slide {
	grid-area: 1 / 1;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: min(88vh, 820px);
	display: flex; align-items: center;
	padding: 120px 0 170px;
	opacity: 0; visibility: hidden;
	transition: opacity 1s var(--cb-ease), visibility 0s linear 1s;
}
.cb-slide.is-active {
	opacity: 1; visibility: visible; z-index: 1;
	transition: opacity 1s var(--cb-ease);
}
.cb-hero__bg {
	position: absolute; inset: 0; z-index: -2;
	background-size: cover; background-position: center;
	transform: scale(1.08);
}
.cb-slide.is-active .cb-hero__bg { animation: cb-zoom 9s linear forwards; }
@keyframes cb-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.cb-slide::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(100deg, rgba(3, 36, 51, .78) 0%, rgba(3, 36, 51, .5) 45%, rgba(3, 36, 51, .05) 100%),
		linear-gradient(0deg, rgba(3, 36, 51, .4), transparent 35%);
}
/* Diapositiva sin título: la imagen se ve limpia (útil si ya lleva texto) */
.cb-slide--plain::before { background: linear-gradient(0deg, rgba(3, 36, 51, .55), transparent 30%); }
.cb-slide__link { position: absolute; inset: 0; z-index: 0; }

/* Entrada escalonada del texto al cambiar de diapositiva */
.cb-js .cb-slide .cb-wrap > * {
	opacity: 0; transform: translateY(18px);
	transition: opacity .7s var(--cb-ease), transform .7s var(--cb-ease);
}
.cb-js .cb-slide.is-active .cb-wrap > * { opacity: 1; transform: none; }
.cb-js .cb-slide.is-active .cb-wrap > :nth-child(2) { transition-delay: .12s; }
.cb-js .cb-slide.is-active .cb-wrap > :nth-child(3) { transition-delay: .24s; }
.cb-js .cb-slide.is-active .cb-wrap > :nth-child(4) { transition-delay: .36s; }
.cb-js .cb-slide.is-active .cb-wrap > :nth-child(5) { transition-delay: .48s; }

/* Controles: flechas + barras de progreso */
.cb-slider__nav {
	position: absolute; z-index: 3;
	left: 0; right: 0; bottom: 104px;
	pointer-events: none;
}
.cb-slider__nav .cb-wrap {
	display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.cb-slider__dots, .cb-slider__arrows { display: flex; gap: 10px; pointer-events: auto; }
.cb-slider__dot {
	position: relative; overflow: hidden;
	width: 56px; height: 4px; padding: 0 !important; border: 0; border-radius: 2px;
	background: rgba(255, 255, 255, .28); cursor: pointer;
}
.cb-slider__dot::before { content: ""; position: absolute; inset: -12px 0; } /* zona táctil más grande */
.cb-slider__dot span {
	position: absolute; inset: 0; transform-origin: left; transform: scaleX(0);
	background: var(--cb-green);
}
.cb-slider__dot.is-done span { transform: scaleX(1); }
.cb-slider__dot.is-active span { animation: cb-progress var(--cb-slide-time, 7s) linear forwards; }
.cb-hero.is-paused .cb-slider__dot.is-active span { animation-play-state: paused; }
@keyframes cb-progress { to { transform: scaleX(1); } }
.cb-slider__arrow {
	width: 46px; height: 46px; border-radius: 50%; padding: 0 !important;
	display: grid; place-items: center; cursor: pointer;
	color: var(--cb-white);
	background: rgba(255, 255, 255, .08);
	border: 1.5px solid rgba(255, 255, 255, .35);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	transition: background .2s, border-color .2s;
}
.cb-slider__arrow:hover { background: var(--cb-green); border-color: var(--cb-green); color: var(--cb-ink); }
.cb-slider__arrow svg { width: 20px; height: 20px; }
.cb-slider__arrow--prev svg { transform: rotate(180deg); }
.cb-slider__count {
	font-family: var(--cb-font-head); font-weight: 700; font-size: 13px;
	color: rgba(255, 255, 255, .7); letter-spacing: .08em;
	font-variant-numeric: tabular-nums; margin-left: 6px; align-self: center;
}
.cb-hero .cb-slide__title {
	color: var(--cb-white) !important;
	font-size: clamp(38px, 6vw, 72px) !important;
	max-width: 14ch;
	margin-bottom: 18px;
}
.cb-hero .cb-slide__title em { font-style: normal; color: var(--cb-accent); }
.cb-hero p,
.cb-hero .cb-slide__text {
	display: block;
	font-size: clamp(17px, 1.6vw, 20px);
	max-width: 52ch;
	color: rgba(255, 255, 255, .82);
	margin-bottom: 34px;
}
.cb-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; }
.cb-btn { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; white-space: nowrap; }
.cb-btn svg { width: 18px; height: 18px; flex: none; transition: transform .2s var(--cb-ease); }
.cb-btn:hover svg { transform: translateX(3px); }
.cb-btn--ghost {
	background: rgba(255, 255, 255, .08) !important;
	color: var(--cb-white) !important;
	box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .45) !important;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.cb-btn--ghost:hover { background: rgba(255, 255, 255, .16) !important; color: var(--cb-white) !important; }
.cb-btn--dark { background: var(--cb-navy) !important; color: var(--cb-white) !important; box-shadow: none; }
.cb-btn--dark:hover { color: var(--cb-white) !important; }

.cb-hero__badges {
	display: flex; gap: 10px; flex-wrap: wrap; margin-top: 40px;
}
.cb-hero__badges span {
	font-size: 12px; font-weight: 700; letter-spacing: .08em;
	padding: 7px 12px; border-radius: 999px;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .18);
	color: rgba(255, 255, 255, .9);
}

/* --- Cifras --- */
.cb-stats {
	position: relative; z-index: 2;
	margin-top: -72px;
}
.cb-stats__grid {
	display: grid; grid-template-columns: repeat(4, 1fr);
	background: var(--cb-white);
	border-radius: var(--cb-radius);
	box-shadow: var(--cb-shadow-lg);
	overflow: hidden;
}
.cb-stat {
	padding: 32px 28px;
	border-right: 1px solid var(--cb-line);
}
.cb-stat:last-child { border-right: 0; }
.cb-stat__num {
	font-family: var(--cb-font-head);
	font-size: clamp(34px, 3.6vw, 46px);
	font-weight: 800;
	color: var(--cb-ink);
	line-height: 1;
	letter-spacing: -0.03em;
}
.cb-stat__num small { font-size: .5em; color: var(--cb-blue); margin-left: 2px; }
.cb-stat__label { margin-top: 8px; font-size: 14px; color: var(--cb-muted); line-height: 1.4; }

/* --- Servicios --- */
.cb-services {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.cb-service {
	position: relative;
	background: var(--cb-white);
	border: 1px solid var(--cb-line);
	border-radius: var(--cb-radius);
	padding: 30px 28px 28px;
	transition: transform .3s var(--cb-ease), box-shadow .3s var(--cb-ease), border-color .3s;
}
.cb-service:hover {
	transform: translateY(-4px);
	box-shadow: var(--cb-shadow-lg);
	border-color: transparent;
}
.cb-service__icon {
	width: 52px; height: 52px; border-radius: 12px;
	display: grid; place-items: center;
	background: var(--cb-sky); color: var(--cb-navy);
	border-radius: 50% 50% 50% 6px; /* forma de hoja, como el logo */
	margin-bottom: 20px;
}
.cb-service:nth-child(3n+2) .cb-service__icon { background: var(--cb-green); }
.cb-service:nth-child(3n) .cb-service__icon { background: var(--cb-blue); color: var(--cb-white); }
.cb-service__icon svg { width: 26px; height: 26px; }
.cb-service h3 { font-size: 20px !important; margin-bottom: 6px; }
.cb-service p { font-size: 15px; margin: 0; color: var(--cb-text); }

/* --- Ubicación / Sobre nosotros --- */
.cb-split {
	display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(32px, 6vw, 80px);
	align-items: center;
}
.cb-split__media {
	position: relative; border-radius: var(--cb-radius); overflow: hidden;
	aspect-ratio: 4 / 3; box-shadow: var(--cb-shadow-lg);
}
.cb-split__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cb-split__tag {
	position: absolute; left: 20px; bottom: 20px;
	background: var(--cb-white); color: var(--cb-ink);
	border-radius: 12px; padding: 14px 18px;
	box-shadow: var(--cb-shadow);
	font-family: var(--cb-font-head); font-weight: 800; font-size: 15px; line-height: 1.3;
}
.cb-split__tag small { display: block; font-family: var(--cb-font-body); font-weight: 500; color: var(--cb-muted); font-size: 13px; }
.cb-checklist { list-style: none !important; padding: 0 !important; margin: 24px 0 32px; }
.cb-checklist li {
	position: relative; padding: 0 0 12px 34px; color: var(--cb-text);
}
.cb-checklist li::before {
	content: ""; position: absolute; left: 0; top: 4px;
	width: 20px; height: 20px; border-radius: 50%;
	background: var(--cb-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2306364b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* --- Calidad --- */
.cb-quality {
	display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(32px, 6vw, 80px); align-items: start;
}
.cb-pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cb-pillar {
	padding: 22px; border-radius: var(--cb-radius);
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .10);
}
.cb-pillar strong {
	display: block; font-family: var(--cb-font-head); color: var(--cb-white);
	font-size: 17px; margin-bottom: 4px;
}
.cb-pillar span { font-size: 14px; line-height: 1.55; }
.cb-certs {
	display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px;
}
.cb-certs span {
	font-family: var(--cb-font-head); font-weight: 800; font-size: 13px; letter-spacing: .06em;
	color: var(--cb-sky);
	border: 1.5px solid currentColor; border-radius: 999px; padding: 6px 14px;
}

/* --- Noticias --- */
.cb-news { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.cb-card {
	display: flex; flex-direction: column;
	background: var(--cb-white); border-radius: var(--cb-radius);
	overflow: hidden; border: 1px solid var(--cb-line);
	text-decoration: none !important; color: inherit;
	transition: transform .3s var(--cb-ease), box-shadow .3s var(--cb-ease);
}
.cb-card:hover { transform: translateY(-4px); box-shadow: var(--cb-shadow-lg); color: inherit; }
.cb-card__img { aspect-ratio: 16 / 10; overflow: hidden; background: var(--cb-bg); }
.cb-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--cb-ease); }
.cb-card:hover .cb-card__img img { transform: scale(1.05); }
.cb-card__body { padding: 22px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.cb-card__date { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--cb-muted); }
.cb-card h3 { font-size: 19px !important; margin: 8px 0 10px; }
.cb-card p, .cb-card__excerpt { display: block; font-size: 15px; margin: 0 0 16px; }
.cb-card__more { margin-top: auto; font-family: var(--cb-font-head); font-weight: 800; color: var(--cb-navy-2); font-size: 14px; }

/* --- Empleo (banda CTA) --- */
.cb-cta {
	position: relative; isolation: isolate; overflow: hidden;
	border-radius: calc(var(--cb-radius) * 1.5);
	background: var(--cb-accent);
	color: var(--cb-accent-ink);
	padding: clamp(36px, 6vw, 72px);
	display: grid; grid-template-columns: 1.4fr auto; gap: 32px; align-items: center;
}
.cb-cta::before,
.cb-cta::after {
	content: ""; position: absolute; z-index: -1;
	width: 220px; height: 220px;
	border-radius: 50% 50% 50% 18px; /* hojas del logo */
	opacity: .9;
}
.cb-cta::before { right: 150px; top: -110px; background: var(--cb-sky); }
.cb-cta::after { right: -70px; top: -60px; background: var(--cb-blue); }
.cb-cta h2 { color: var(--cb-accent-ink) !important; font-size: clamp(28px, 3.6vw, 42px) !important; }
.cb-cta p { margin: 0; max-width: 56ch; color: var(--cb-accent-ink); }
.cb-cta .cb-eyebrow { color: var(--cb-accent-ink); }

/* --- Contacto --- */
.cb-contact { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cb-contact__item {
	background: var(--cb-white); border: 1px solid var(--cb-line);
	border-radius: var(--cb-radius); padding: 26px;
	display: flex; gap: 16px; align-items: flex-start;
	text-decoration: none !important; color: inherit;
}
a.cb-contact__item:hover { border-color: var(--cb-blue); color: inherit; }
.cb-contact__item svg { width: 24px; height: 24px; color: var(--cb-blue); flex: none; margin-top: 3px; }
.cb-contact__item strong { display: block; font-family: var(--cb-font-head); color: var(--cb-ink); font-size: 16px; }
.cb-contact__item span { font-size: 15px; }

/* --- Sellos / ayudas (logos) --- */
.cb-logos {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
	gap: clamp(24px, 4vw, 56px);
	padding: 36px 0;
	border-top: 1px solid var(--cb-line);
}
.cb-logos img { max-height: 56px; width: auto; filter: grayscale(1); opacity: .75; transition: .3s; }
.cb-logos img:hover { filter: none; opacity: 1; }
.cb-legal { font-size: 12px; color: var(--cb-muted); text-align: center; max-width: 90ch; margin: 0 auto; padding-bottom: 40px; line-height: 1.6; }

/* --- Contenido extra del editor dentro de la portada --- */
.cb-extra { padding: 0; }

/* --- Animación de entrada --- */
.cb-js .cb-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--cb-ease), transform .8s var(--cb-ease); }
.cb-js .cb-reveal.is-in { opacity: 1; transform: none; }

/* =========================================================
   12. RESPONSIVE
   ========================================================= */
@media (max-width: 980px) {
	.cb-cta::before, .cb-cta::after { width: 130px; height: 130px; }
	.cb-cta::before { right: 60px; top: -80px; }
	.cb-cta::after { right: -50px; top: -60px; }
	.cb-stats__grid { grid-template-columns: repeat(2, 1fr); }
	.cb-stat:nth-child(2) { border-right: 0; }
	.cb-stat:nth-child(-n+2) { border-bottom: 1px solid var(--cb-line); }
	.cb-services, .cb-news { grid-template-columns: repeat(2, 1fr); }
	.cb-split, .cb-quality { grid-template-columns: 1fr; }
	.cb-cta { grid-template-columns: 1fr; }
	.cb-contact { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.cb-slide { min-height: 0; padding: 80px 0 150px; }
	.cb-slider__nav { bottom: 96px; }
	.cb-slider__arrows { display: none; }
	.cb-slider__dot { width: 40px; }
	.cb-services, .cb-news, .cb-pillars { grid-template-columns: 1fr; }
	.cb-stat { padding: 22px 18px; }
	.cb-section-head { margin-bottom: 32px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.cb-reveal { opacity: 1; transform: none; }
}

/* =========================================================
   13. PÁGINAS DE BLOQUES (Seguridad y calidad, Contacto…)
   Cada banda es un bloque "Grupo" con la clase cb-band; dentro,
   otro "Grupo" con la clase cb-wrap limita el ancho.
   ========================================================= */
.cb-block-page #main-content .container { width: 100% !important; max-width: none !important; padding: 0 !important; }
.cb-block-page #main-content .container::before { display: none !important; }
.cb-block-page #content-area, .cb-block-page .entry-content { width: 100%; max-width: none; }
.cb-block-page #left-area { width: 100% !important; padding: 0 !important; margin: 0 !important; float: none !important; }
.cb-block-page #sidebar { display: none; }
.cb-block-page .main_title,
.cb-block-page .et_post_meta_wrapper { display: none; }
.cb-block-page article.et_pb_post { margin: 0; padding: 0; }
.cb-block-page .entry-content { font-size: 16px; }
.cb-block-page .entry-content > * { margin-block: 0; }
.cb-block-page { overflow-x: clip; }

.cb-band { padding-block: clamp(64px, 9vw, 112px); padding-inline: 0; margin: 0 !important; }
.cb-band--alt { background: var(--cb-bg); }
.cb-band--dark { background: var(--cb-navy); color: rgba(255, 255, 255, .8); }
.cb-band--dark h2, .cb-band--dark h3, .cb-band--dark strong { color: var(--cb-white); }
.cb-band--dark .cb-eyebrow, .cb-pagehero .cb-eyebrow { color: var(--cb-sky); }
.cb-band--tight { padding-top: 0; }
.cb-band .wp-block-heading { margin-top: 0; }
.cb-band .cb-wrap > * + * { margin-top: 0; }
p.cb-eyebrow { padding-bottom: 0; }
h2.cb-h2 { margin-bottom: 18px; }
.cb-band .wp-block-columns { gap: clamp(24px, 5vw, 72px); margin-bottom: 0; }

/* Cabecera de página: un Grupo cb-pagehero con una Imagen (cb-bgimg) de fondo */
.cb-pagehero {
	position: relative; isolation: isolate; overflow: hidden;
	background: var(--cb-navy); color: var(--cb-white);
	padding-block: clamp(80px, 11vw, 140px) clamp(72px, 9vw, 112px);
	margin: 0 !important;
}
.cb-pagehero::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(100deg, rgba(3, 36, 51, .78) 0%, rgba(3, 36, 51, .5) 50%, rgba(3, 36, 51, .1) 100%),
		linear-gradient(0deg, rgba(3, 36, 51, .35), transparent 45%);
}
.cb-pagehero .cb-bgimg { position: absolute; inset: 0; z-index: -2; margin: 0 !important; }
.cb-pagehero .cb-bgimg img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.cb-pagehero h1 {
	color: var(--cb-white) !important;
	font-size: clamp(38px, 5.4vw, 64px) !important;
	max-width: 16ch; margin: 0 0 14px;
}
.cb-pagehero h1 em, .cb-pagehero h1 mark { font-style: normal; color: var(--cb-green); background: none; }
.cb-pagehero p { font-size: clamp(17px, 1.6vw, 20px); max-width: 56ch; color: rgba(255, 255, 255, .82); }
.cb-crumbs { font-size: 13px !important; color: rgba(255, 255, 255, .6) !important; margin-bottom: 26px !important; }
.cb-crumbs a { color: rgba(255, 255, 255, .85); text-decoration: none; }
.cb-crumbs a:hover { color: var(--cb-sky); }

/* Chips (certificaciones, mercancías): Lista con la clase cb-chips */
ul.cb-chips {
	list-style: none !important; padding: 0 !important; margin: 24px 0 0 !important;
	display: flex; flex-wrap: wrap; gap: 10px;
}
ul.cb-chips li {
	font-family: var(--cb-font-head); font-weight: 800; font-size: 12px; letter-spacing: .08em;
	padding: 7px 13px; border-radius: 999px; margin: 0 !important;
	background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .2);
	color: rgba(255, 255, 255, .92);
}
.cb-band:not(.cb-band--dark) ul.cb-chips li {
	background: var(--cb-white); border-color: var(--cb-line); color: var(--cb-ink);
	letter-spacing: .02em; font-size: 14px; font-weight: 700; padding: 9px 15px;
}

/* Botones de bloque */
.cb-block-page .wp-block-buttons { gap: 12px; margin-top: 28px; }
.cb-block-page .wp-block-button__link {
	font-family: var(--cb-font-head); font-weight: 800; font-size: 15px;
	border-radius: 999px; padding: 14px 28px;
	background: var(--cb-green); color: var(--cb-accent-ink);
	box-shadow: 0 6px 18px rgba(138, 187, 0, .30);
	text-decoration: none;
	transition: transform .2s var(--cb-ease), box-shadow .2s var(--cb-ease);
}
.cb-block-page .wp-block-button__link:hover { transform: translateY(-2px); color: var(--cb-accent-ink); }
.cb-block-page .wp-block-button__link::after { content: " →"; }
.cb-btn-dark .wp-block-button__link { background: var(--cb-navy); color: var(--cb-white); box-shadow: none; }
.cb-btn-dark .wp-block-button__link:hover { color: var(--cb-white); }
.cb-btn-ghost .wp-block-button__link { background: rgba(255, 255, 255, .08); color: var(--cb-white); box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .45); }
.cb-btn-ghost .wp-block-button__link:hover { color: var(--cb-white); background: rgba(255, 255, 255, .16); }

/* Tarjetas genéricas: Grupo con la clase cb-box */
.cb-box {
	background: var(--cb-white); border: 1px solid var(--cb-line);
	border-radius: var(--cb-radius); padding: 26px 28px;
}
.cb-box h3 { font-size: 18px !important; margin: 0 0 6px; }
.cb-box p { margin: 0; padding: 0; }

/* Empresas del grupo (Grupo cb-companies con Grupos cb-company) */
.cb-companies { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 28px; }
.cb-company {
	border-radius: var(--cb-radius); padding: 20px 20px 18px;
	background: var(--cb-white); border: 1px solid var(--cb-line);
	border-top: 4px solid var(--cb-sky);
}
.cb-company:nth-child(3n+2) { border-top-color: var(--cb-green); }
.cb-company:nth-child(3n) { border-top-color: var(--cb-blue); }
.cb-company h3, .cb-company strong { font-size: 16px !important; margin: 0 0 4px; display: block; color: var(--cb-ink); }
.cb-company p { margin: 0; padding: 0; font-size: 14px; color: var(--cb-muted); }

/* Principios numerados (Grupo cb-principles con Grupos cb-principle).
   La numeración es automática: si reordenas o añades uno, se renumera. */
.cb-principles { counter-reset: cb-principle; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cb-principle {
	counter-increment: cb-principle;
	position: relative;
	background: var(--cb-white); border: 1px solid var(--cb-line);
	border-radius: var(--cb-radius);
	padding: 26px 28px 26px 92px;
	margin: 0 !important;
}
.cb-principle::before {
	content: counter(cb-principle, decimal-leading-zero);
	position: absolute; left: 24px; top: 24px;
	width: 48px; height: 48px; border-radius: 50% 50% 50% 6px;
	display: grid; place-items: center;
	font-family: var(--cb-font-head); font-weight: 800; font-size: 16px;
	background: var(--cb-sky); color: var(--cb-navy);
	font-variant-numeric: tabular-nums;
}
.cb-principle:nth-child(3n+2)::before { background: var(--cb-green); }
.cb-principle:nth-child(3n)::before { background: var(--cb-blue); color: var(--cb-white); }
.cb-principle h3 { font-size: 18px !important; margin: 4px 0 8px; text-transform: none; }
.cb-principle p { margin: 0; padding: 0; font-size: 15px; }
.cb-principle--key { background: var(--cb-navy); border-color: var(--cb-navy); color: rgba(255, 255, 255, .82); }
.cb-principle--key h3 { color: var(--cb-white) !important; }

/* Firma de la política (Grupo cb-signoff) */
.cb-signoff {
	background: var(--cb-white); color: var(--cb-text);
	border-radius: calc(var(--cb-radius) * 1.3);
	padding: clamp(28px, 4vw, 44px);
	box-shadow: var(--cb-shadow-lg);
	margin: 0 !important;
}
.cb-signoff .cb-signoff__quote {
	font-family: var(--cb-font-head); font-weight: 700; color: var(--cb-ink);
	font-size: clamp(19px, 2vw, 23px); line-height: 1.4; letter-spacing: -0.01em;
	border-left: 4px solid var(--cb-green); padding: 0 0 0 20px; margin: 0 0 28px;
}
.cb-signoff .cb-signoff__place { font-size: 13px; color: var(--cb-muted); margin: 0; padding: 0; }
.cb-signoff .cb-signoff__name { font-family: var(--cb-font-head); font-weight: 800; color: var(--cb-ink); font-size: 18px; margin: 4px 0 0; padding: 0; }
.cb-signoff .cb-signoff__role { margin: 0; padding: 0; color: var(--cb-muted); }
.cb-band--dark .cb-signoff strong { color: var(--cb-ink); }

/* Contacto: tarjetas con icono (Grupo cb-contact-cards con Grupos cb-contact-card) */
.cb-contact-cards { display: grid; gap: 14px; }
.cb-contact-card {
	position: relative;
	background: var(--cb-white); border: 1px solid var(--cb-line);
	border-radius: var(--cb-radius); padding: 22px 22px 22px 76px;
	margin: 0 !important;
}
.cb-contact-card::before {
	content: ""; position: absolute; left: 22px; top: 22px;
	width: 38px; height: 38px; border-radius: 50% 50% 50% 6px;
	background: var(--cb-sky) var(--cb-ico) center / 18px no-repeat;
}
.cb-contact-card--phone { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2306364b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2Z'/%3E%3C/svg%3E"); }
.cb-contact-card--mail { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2306364b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
.cb-contact-card--mail::before { background-color: var(--cb-green); }
.cb-contact-card--pin { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.cb-contact-card--pin::before { background-color: var(--cb-blue); }
.cb-contact-card--jobs { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2306364b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2'/%3E%3C/svg%3E"); }
.cb-contact-card h3 { font-size: 16px !important; margin: 0 0 4px; padding: 0; }
.cb-contact-card p { margin: 0; padding: 0; font-size: 15px; }
.cb-contact-card a { color: var(--cb-ink); font-weight: 600; text-decoration: none; }
.cb-contact-card a:hover { color: var(--cb-blue); }

/* Mapa (bloque HTML personalizado con div.cb-map) */
.cb-map { border-radius: var(--cb-radius); overflow: hidden; box-shadow: var(--cb-shadow); aspect-ratio: 16 / 7; background: var(--cb-bg); max-width: 100%; }
.cb-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Formulario [cisterbona_contacto] */
.cb-form {
	background: var(--cb-white); border-radius: calc(var(--cb-radius) * 1.3);
	padding: clamp(24px, 4vw, 40px); box-shadow: var(--cb-shadow-lg);
	border: 1px solid var(--cb-line);
}
.cb-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.cb-form__field { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0 !important; min-width: 0; }
.cb-form__field--full { grid-column: 1 / -1; }
.cb-form label { font-family: var(--cb-font-head); font-weight: 700; font-size: 14px; color: var(--cb-ink); }
.cb-form input[type="text"], .cb-form input[type="email"], .cb-form input[type="tel"],
.cb-form input[type="number"], .cb-form select, .cb-form textarea {
	width: 100%; box-sizing: border-box;
	background: var(--cb-white); border: 1.5px solid var(--cb-line); border-radius: var(--cb-radius-sm);
	padding: 13px 15px; font-size: 15px; color: var(--cb-ink); font-family: inherit;
	transition: border-color .2s, box-shadow .2s;
}
.cb-form textarea { resize: vertical; min-height: 140px; }
.cb-form input:focus, .cb-form select:focus, .cb-form textarea:focus {
	outline: none; border-color: var(--cb-blue); box-shadow: 0 0 0 4px rgba(0, 144, 191, .15);
}
.cb-form [aria-invalid="true"] { border-color: #c2410c !important; }
.cb-form__error { color: #b42318; font-size: 13px; font-weight: 600; }
.cb-form__check { flex-direction: row; flex-wrap: wrap; align-items: flex-start; gap: 10px; }
.cb-form__check input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--cb-blue); flex: none; }
.cb-form__check label { flex: 1; font-family: var(--cb-font-body); font-weight: 500; color: var(--cb-text); }
.cb-form__check .cb-form__error { flex-basis: 100%; padding-left: 30px; }
.cb-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cb-form__info { font-size: 12px; line-height: 1.55; color: var(--cb-muted); margin: 20px 0; padding: 0; }
.cb-form__ok, .cb-form__alert { border-radius: var(--cb-radius-sm); padding: 14px 16px; margin-bottom: 20px; font-weight: 600; }
.cb-form__ok { background: #eef7d6; color: #2f4300; border: 1px solid #c9e27a; }
.cb-form__alert { background: #fdecea; color: #8a1c12; border: 1px solid #f5b8b0; }

@media (max-width: 980px) {
	.cb-principles, .cb-companies { grid-template-columns: 1fr; }
	.cb-map { aspect-ratio: 4 / 3; }
}
@media (max-width: 640px) {
	.cb-form__grid { grid-template-columns: 1fr; }
	.cb-principle { padding: 84px 22px 22px; }
	.cb-principle::before { left: 22px; top: 22px; }
}
.cb-pillar h3 { font-size: 17px !important; margin: 0 0 4px; color: var(--cb-white) !important; }
.cb-pillar p { margin: 0; padding: 0; font-size: 14px; line-height: 1.55; }
.cb-signoff .cb-signoff__img { margin: 24px 0 0 !important; }
.cb-signoff .cb-signoff__img img { border-radius: var(--cb-radius-sm); }
.cb-block-page .cb-section-head > .wp-block-group { min-width: 0; }
.cb-block-page .cb-cta > .wp-block-buttons { margin-top: 0; }


/* =========================================================
   14. PORTADA DE BLOQUES
   ========================================================= */
/* Cifras: Grupo cb-stats > cb-wrap > cb-stats__grid > Grupos cb-stat (dos párrafos) */
.cb-block-page .cb-stats { margin: -72px 0 0 !important; padding: 0; }
.cb-stat p { margin: 0; padding: 0; }
p.cb-stat__label { margin-top: 8px; }

/* Servicios: Grupo cb-services > Grupos cb-service cb-service--ICONO (título + párrafo).
   Iconos disponibles: fuel, flask, wheat, snow, pill, globe, truck, shield */
.cb-service { margin: 0 !important; padding-top: 96px; }
.cb-service::before {
	content: ""; position: absolute; left: 28px; top: 30px;
	width: 52px; height: 52px; border-radius: 50% 50% 50% 6px;
	background: var(--cb-sky);
}
.cb-service::after {
	content: ""; position: absolute; left: 41px; top: 43px; width: 26px; height: 26px;
	background: var(--cb-navy);
	-webkit-mask: var(--cb-ico) center / contain no-repeat; mask: var(--cb-ico) center / contain no-repeat;
}
.cb-service:nth-child(3n+2)::before { background: var(--cb-green); }
.cb-service:nth-child(3n)::before { background: var(--cb-blue); }
.cb-service:nth-child(3n)::after { background: var(--cb-white); }
.cb-service h3 { margin-top: 0; }
.cb-service p { padding: 0; }
.cb-service--fuel   { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 22V5a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2v17'/%3E%3Cpath d='M2 22h13'/%3E%3Cpath d='M14 10h2a2 2 0 0 1 2 2v4a1.5 1.5 0 0 0 3 0V8l-3-3'/%3E%3Cpath d='M6 8h5'/%3E%3C/svg%3E"); }
.cb-service--flask  { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6'/%3E%3Cpath d='M10 3v6L4.5 18.5A2 2 0 0 0 6.2 21.5h11.6a2 2 0 0 0 1.7-3L14 9V3'/%3E%3Cpath d='M7 15h10'/%3E%3C/svg%3E"); }
.cb-service--wheat  { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22V8'/%3E%3Cpath d='M12 8c0-3 2-5 5-5 0 3-2 5-5 5Z'/%3E%3Cpath d='M12 8c0-3-2-5-5-5 0 3 2 5 5 5Z'/%3E%3Cpath d='M12 14c0-3 2-5 5-5 0 3-2 5-5 5Z'/%3E%3Cpath d='M12 14c0-3-2-5-5-5 0 3 2 5 5 5Z'/%3E%3C/svg%3E"); }
.cb-service--snow   { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v20'/%3E%3Cpath d='m4.9 4.9 14.2 14.2'/%3E%3Cpath d='M2 12h20'/%3E%3Cpath d='m4.9 19.1 14.2-14.2'/%3E%3Cpath d='m9 4 3 3 3-3'/%3E%3Cpath d='m9 20 3-3 3 3'/%3E%3C/svg%3E"); }
.cb-service--pill   { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z'/%3E%3Cpath d='m8.5 8.5 7 7'/%3E%3C/svg%3E"); }
.cb-service--globe  { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20'/%3E%3Cpath d='M12 2a15 15 0 0 1 0 20 15 15 0 0 1 0-20Z'/%3E%3C/svg%3E"); }
.cb-service--truck  { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2'/%3E%3Cpath d='M15 18H9'/%3E%3Cpath d='M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62L18.3 9.38a1 1 0 0 0-.78-.38H14'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3C/svg%3E"); }
.cb-service--shield { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }

/* Imagen con etiqueta (Grupo cb-split__media: Imagen + párrafo cb-split__tag) */
.cb-split__media { margin: 0 !important; }
.cb-split__media .wp-block-image { margin: 0; height: 100%; }
.cb-split__media .wp-block-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
p.cb-split__tag { margin: 0; }
.cb-split__tag br + * , .cb-split__tag small { display: block; }
.cb-block-page .wp-block-columns.are-vertically-aligned-center,
.cb-block-page .cb-columns-center { align-items: center; }

/* Pillars y chips en franja oscura */
.cb-band--dark ul.cb-chips li { background: transparent; border: 1.5px solid var(--cb-sky); color: var(--cb-sky); }

/* Contacto en fila (portada) */
.cb-contact-cards--row { grid-template-columns: repeat(3, 1fr); }

/* Sellos y ayudas (Grupo cb-logos con Imágenes) */
.cb-logos .wp-block-image { margin: 0 !important; }
.cb-logos .wp-block-image img { max-height: 56px; width: auto; border-radius: 0; }
p.cb-legal { padding: 0; }

@media (max-width: 980px) {
	.cb-contact-cards--row { grid-template-columns: 1fr; }
}

/* =========================================================
   15. CONTACTO: formulario + mapa
   ========================================================= */
.cb-pagehero--compact { padding-block: clamp(56px, 7vw, 88px) clamp(130px, 13vw, 170px); }
.cb-pagehero--compact h1 { font-size: clamp(34px, 4.6vw, 54px) !important; max-width: 20ch; }

.cb-contact-split { position: relative; z-index: 2; margin-top: -110px !important; padding-top: 0 !important; }
.cb-block-page .cb-contact-cols { gap: 24px; align-items: stretch !important; }
.cb-contact-cols > .wp-block-column { display: flex; flex-direction: column; }

/* Tarjeta del formulario */
.cb-formcard {
	flex: 1;
	background: var(--cb-white); border-radius: calc(var(--cb-radius) * 1.4);
	box-shadow: var(--cb-shadow-lg);
	padding: clamp(24px, 4vw, 44px);
	margin: 0 !important;
}
.cb-formcard h2 { font-size: clamp(24px, 2.4vw, 30px) !important; margin: 0 0 6px; }
.cb-formcard > p { margin: 0 0 24px; padding: 0; color: var(--cb-muted); }
.cb-formcard .cb-form { box-shadow: none; border: 0; padding: 0; background: none; border-radius: 0; }
.cb-formcard .cb-form input[type="text"], .cb-formcard .cb-form input[type="email"],
.cb-formcard .cb-form input[type="tel"], .cb-formcard .cb-form input[type="number"],
.cb-formcard .cb-form select, .cb-formcard .cb-form textarea {
	background: var(--cb-bg); border-color: transparent;
}
.cb-formcard .cb-form input:focus, .cb-formcard .cb-form select:focus, .cb-formcard .cb-form textarea:focus { background: var(--cb-white); }
.cb-formcard .cb-form label { font-size: 13px; }

/* Mapa con tarjeta flotante */
.cb-mapcard {
	flex: 1; position: relative; overflow: hidden;
	min-height: 560px;
	border-radius: calc(var(--cb-radius) * 1.4);
	box-shadow: var(--cb-shadow-lg);
	background: var(--cb-bg);
	margin: 0 !important;
}
.cb-mapcard .cb-map { position: absolute; inset: 0; aspect-ratio: auto; border-radius: 0; box-shadow: none; }
.cb-mapinfo {
	position: absolute; left: 16px; right: 16px; bottom: 16px; z-index: 2;
	background: rgba(255, 255, 255, .96);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	border-radius: var(--cb-radius);
	box-shadow: 0 12px 32px rgba(6, 54, 75, .18);
	padding: 20px 22px;
	display: grid; grid-template-columns: 1fr 1fr; gap: 14px 20px;
	margin: 0 !important;
}
.cb-mapinfo__item { margin: 0 !important; min-width: 0; }
.cb-mapinfo__item h3 {
	font-size: 11px !important; letter-spacing: .12em; text-transform: uppercase;
	color: var(--cb-blue-ink) !important; margin: 0 0 2px; padding: 0;
}
.cb-mapinfo__item p { margin: 0; padding: 0; font-size: 15px; font-weight: 600; color: var(--cb-ink); line-height: 1.45; }
.cb-mapinfo__item a { color: var(--cb-ink); text-decoration: none; }
.cb-mapinfo__item a:hover { color: var(--cb-blue); }
.cb-mapinfo__item--wide { grid-column: 1 / -1; }
.cb-mapinfo .wp-block-buttons { margin: 0 !important; align-self: end; justify-content: flex-end; }
.cb-mapinfo .wp-block-button__link { padding: 11px 20px; font-size: 14px; }

p.cb-note-line { text-align: center; margin: 40px 0 0; padding: 0; color: var(--cb-muted); }
p.cb-note-line a { font-weight: 700; color: var(--cb-blue-ink); text-decoration: none; }
p.cb-note-line a:hover { color: var(--cb-blue); }

@media (max-width: 781px) {
	.cb-contact-split { margin-top: -90px !important; }
	.cb-mapcard { min-height: 0; display: flex; flex-direction: column; }
	.cb-mapcard .cb-map { position: relative; inset: auto; aspect-ratio: 4 / 3; }
	.cb-mapinfo { position: static; border-radius: 0; box-shadow: none; grid-template-columns: 1fr; }
	.cb-mapinfo .wp-block-buttons { justify-content: flex-start; }
}
.cb-form p.cb-form__field, .cb-form p.cb-form__info { margin-bottom: 0 !important; }
.cb-formcard .cb-form__grid { gap: 16px 18px; }

/* =========================================================
   16. CONTACTO v2: pantalla dividida + mapa a todo el ancho
   ========================================================= */
.cb-splitscreen-band { margin: 0 !important; padding: 0 !important; }
.cb-block-page .cb-splitscreen { gap: 0 !important; margin: 0 !important; align-items: stretch !important; }
.cb-splitscreen > .wp-block-column { display: flex; flex-direction: column; }
.cb-splitscreen > .wp-block-column > .wp-block-group { flex: 1; margin: 0 !important; }

/* Panel oscuro (izquierda) */
.cb-panel-dark {
	position: relative; isolation: isolate; overflow: hidden;
	background: var(--cb-navy); color: rgba(255, 255, 255, .8);
	padding-block: clamp(56px, 8vw, 104px);
	padding-left: max(20px, calc((100vw - 1200px) / 2));
	padding-right: clamp(24px, 5vw, 72px);
}
.cb-panel-dark::after { /* las tres hojas del logo, como marca de agua */
	content: ""; position: absolute; z-index: -1;
	right: 184px; bottom: 44px; width: 64px; height: 64px;
	border-radius: 50% 50% 50% 10px;
	background: var(--cb-sky);
	box-shadow: 72px 0 0 var(--cb-green), 144px 0 0 var(--cb-blue);
	opacity: .2;
}
.cb-panel-dark h1 {
	color: var(--cb-white) !important;
	font-size: clamp(36px, 4.4vw, 56px) !important;
	margin: 0 0 16px; max-width: 13ch;
}
.cb-panel-dark h1 em { font-style: normal; color: var(--cb-green); }
.cb-panel-dark .cb-eyebrow { color: var(--cb-sky); }
.cb-panel-dark > p:not([class]) { font-size: 18px; color: rgba(255, 255, 255, .78); max-width: 40ch; }
.cb-panel-dark .cb-crumbs { margin-bottom: 40px !important; }

/* Lista de datos de contacto (Grupo cb-dlist con Grupos cb-dlist__item) */
.cb-dlist { display: grid; gap: 0; margin-top: 40px !important; }
.cb-dlist__item {
	margin: 0 !important;
	padding-block: 18px;
	border-top: 1px solid rgba(255, 255, 255, .12);
}
.cb-dlist__item:last-child { border-bottom: 1px solid rgba(255, 255, 255, .12); }
.cb-dlist__item h3 {
	font-size: 11px !important; letter-spacing: .14em; text-transform: uppercase;
	color: var(--cb-sky) !important; margin: 0 0 4px; padding: 0;
}
.cb-dlist__item p {
	margin: 0; padding: 0;
	font-family: var(--cb-font-head); font-weight: 700; font-size: clamp(18px, 1.7vw, 22px);
	color: var(--cb-white); line-height: 1.35; letter-spacing: -0.01em;
}
.cb-dlist__item a { color: var(--cb-white); text-decoration: none; transition: color .2s; }
.cb-dlist__item a:hover { color: var(--cb-green); }
.cb-dlist__item--small p { font-family: var(--cb-font-body); font-weight: 500; font-size: 16px; color: rgba(255, 255, 255, .85); }

/* Panel claro (derecha) con el formulario */
.cb-panel-light {
	background: var(--cb-bg);
	padding-block: clamp(40px, 6vw, 80px);
	padding-right: max(20px, calc((100vw - 1200px) / 2));
	padding-left: clamp(24px, 5vw, 72px);
	display: flex; flex-direction: column; justify-content: center;
}
.cb-panel-light .cb-formcard { flex: none; }

/* Mapa a todo el ancho con tarjeta */
.cb-mapband { position: relative; margin: 0 !important; padding: 0 !important; }
.cb-mapband .cb-map { aspect-ratio: auto; height: clamp(380px, 42vw, 520px); border-radius: 0; box-shadow: none; }
.cb-mapband__card {
	position: absolute; z-index: 2; top: 50%; transform: translateY(-50%);
	left: max(20px, calc((100vw - 1200px) / 2));
	width: min(380px, calc(100% - 40px));
	background: var(--cb-white); border-radius: calc(var(--cb-radius) * 1.3);
	box-shadow: var(--cb-shadow-lg);
	padding: 28px 30px; margin: 0 !important;
}
.cb-mapband__card h2 { font-size: 24px !important; margin: 0 0 8px; }
.cb-mapband__card p:not([class]) { margin: 0; padding: 0; font-size: 15px; }
.cb-mapband__card .wp-block-buttons { margin-top: 20px; }

/* Dos accesos al final */
.cb-contact-cards--two { grid-template-columns: repeat(2, 1fr); }
.cb-contact-card--shield { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.cb-contact-card--shield::before { background-color: var(--cb-blue); }
.cb-contact-card--jobs::before { background-color: var(--cb-green); }
.cb-contact-card { transition: border-color .2s, transform .2s var(--cb-ease); }
.cb-contact-card:hover { border-color: var(--cb-sky); transform: translateY(-2px); }

@media (max-width: 781px) {
	.cb-panel-dark, .cb-panel-light { padding-inline: 20px; }
	.cb-panel-dark::after { right: 116px; width: 40px; height: 40px; box-shadow: 46px 0 0 var(--cb-green), 92px 0 0 var(--cb-blue); bottom: 10px; }
	.cb-mapband .cb-map { height: 340px; }
	.cb-mapband__card { position: static; transform: none; width: auto; border-radius: 0; box-shadow: none; }
	.cb-contact-cards--two { grid-template-columns: 1fr; }
}

/* =========================================================
   17. CONTACTO v3: cabecera con foto baja + franja de datos
       + formulario (izquierda) y mapa (derecha)
   ========================================================= */
.cb-pagehero--photo {
	padding-block: clamp(56px, 6vw, 84px) clamp(96px, 9vw, 120px);
	min-height: 0;
}
.cb-pagehero--photo::before {
	background: linear-gradient(90deg, rgba(3, 36, 51, .78) 0%, rgba(3, 36, 51, .5) 45%, rgba(3, 36, 51, .05) 100%);
}
.cb-pagehero--photo .cb-bgimg img { object-position: center 60%; }
.cb-pagehero--photo h1 { font-size: clamp(32px, 4.2vw, 52px) !important; max-width: 18ch; }
.cb-pagehero--photo p { margin: 0; }

/* Franja de datos que monta sobre la cabecera */
.cb-infostrip-band { position: relative; z-index: 2; margin: -56px 0 0 !important; padding: 0 !important; }
.cb-infostrip {
	display: grid; grid-template-columns: repeat(3, 1fr);
	background: var(--cb-white); border-radius: calc(var(--cb-radius) * 1.3);
	box-shadow: var(--cb-shadow-lg); overflow: hidden;
	margin: 0 !important;
}
.cb-infostrip .cb-contact-card {
	border: 0; border-radius: 0; background: none;
	border-right: 1px solid var(--cb-line);
	padding: 26px 24px 26px 80px;
}
.cb-infostrip .cb-contact-card:last-child { border-right: 0; }
.cb-infostrip .cb-contact-card::before { left: 24px; top: 24px; }
.cb-infostrip .cb-contact-card:hover { transform: none; }
.cb-infostrip .cb-contact-card h3 {
	font-size: 11px !important; letter-spacing: .12em; text-transform: uppercase; color: var(--cb-blue-ink) !important;
}
.cb-infostrip .cb-contact-card p { font-family: var(--cb-font-head); font-weight: 700; font-size: 17px; color: var(--cb-ink); line-height: 1.4; }

/* Formulario + mapa */
.cb-formmap-band { padding-top: clamp(40px, 5vw, 64px) !important; }
.cb-block-page .cb-formmap { gap: 28px; align-items: stretch !important; }
.cb-formmap > .wp-block-column { display: flex; flex-direction: column; }
.cb-formmap .cb-formcard { flex: 1; }
.cb-formmap .cb-mapcard { flex: 1; min-height: 520px; }
.cb-mapcard .cb-map-btn {
	position: absolute; z-index: 2; top: 16px; right: 16px; margin: 0 !important;
}
.cb-mapcard .cb-map-btn .wp-block-button__link { padding: 11px 20px; font-size: 14px; }

@media (max-width: 980px) {
	.cb-infostrip { grid-template-columns: 1fr; }
	.cb-infostrip .cb-contact-card { border-right: 0; border-bottom: 1px solid var(--cb-line); }
	.cb-infostrip .cb-contact-card:last-child { border-bottom: 0; }
}
@media (max-width: 781px) {
	.cb-formmap .cb-mapcard { min-height: 380px; }
	.cb-mapcard .cb-map { position: absolute; inset: 0; aspect-ratio: auto; }
}

/* =========================================================
   18. CONTACTO (diseño final): tipográfico y limpio
   ========================================================= */
/* Intro: titular grande + hojas del logo como gráfico */
.cb-c4-intro {
	position: relative; isolation: isolate; overflow: hidden;
	padding-block: clamp(64px, 9vw, 128px) clamp(56px, 7vw, 96px) !important;
}
.cb-c4-intro::after {
	content: ""; position: absolute; z-index: -1;
	right: max(-60px, calc((100vw - 1200px) / 2 - 60px)); top: clamp(48px, 7vw, 96px);
	width: clamp(220px, 34vw, 460px); aspect-ratio: 260 / 120;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 120'%3E%3Cpath d='M10 110V60a50 50 0 0 1 50-50 50 50 0 0 1 50 50 50 50 0 0 1-50 50Z' fill='%2347bfe1'/%3E%3Cpath d='M80 110V60a50 50 0 0 1 50-50 50 50 0 0 1 50 50 50 50 0 0 1-50 50Z' fill='%238abb00' fill-opacity='.92'/%3E%3Cpath d='M150 110V60a50 50 0 0 1 50-50 50 50 0 0 1 50 50 50 50 0 0 1-50 50Z' fill='%230090bf' fill-opacity='.92'/%3E%3C/svg%3E") center / contain no-repeat;
}
.cb-c4-intro .cb-crumbs { color: var(--cb-muted) !important; }
.cb-c4-intro .cb-crumbs a { color: var(--cb-ink); text-decoration: none; }
.cb-c4-intro .cb-crumbs a:hover { color: var(--cb-blue); }
.cb-c4-intro h1 {
	font-size: clamp(56px, 10vw, 128px) !important;
	letter-spacing: -0.045em; line-height: .95;
	margin: 0 0 20px; padding: 0;
}
.cb-c4-intro h1 em { font-style: normal; color: var(--cb-green); }
p.cb-c4-lead { font-size: clamp(18px, 1.8vw, 22px); max-width: 34ch; color: var(--cb-text); margin: 0; padding: 0; }

/* Líneas directas: Grupo cb-lines con Grupos cb-line (etiqueta + valor) */
.cb-lines {
	display: grid; grid-template-columns: repeat(4, 1fr);
	margin-top: clamp(48px, 6vw, 80px) !important;
	border-top: 1px solid var(--cb-line);
}
.cb-line { margin: 0 !important; padding: 24px 24px 0 0; min-width: 0; }
.cb-line + .cb-line { padding-left: 24px; border-left: 1px solid var(--cb-line); }
p.cb-line__label {
	font-family: var(--cb-font-head); font-weight: 800; font-size: 11px;
	letter-spacing: .14em; text-transform: uppercase; color: var(--cb-blue-ink);
	margin: 0 0 8px; padding: 0;
}
p.cb-line__value {
	font-family: var(--cb-font-head); font-weight: 700;
	font-size: clamp(19px, 1.9vw, 26px); letter-spacing: -0.02em; line-height: 1.25;
	color: var(--cb-ink); margin: 0; padding: 0; overflow-wrap: anywhere;
}
p.cb-line__value a { color: var(--cb-ink); text-decoration: none; background: linear-gradient(var(--cb-green), var(--cb-green)) 0 100% / 0 2px no-repeat; transition: background-size .3s var(--cb-ease); }
p.cb-line__value a:hover { background-size: 100% 2px; color: var(--cb-ink); }
.cb-line--small p.cb-line__value { font-size: clamp(16px, 1.4vw, 18px); font-weight: 600; letter-spacing: 0; }

/* Formulario + mapa con forma de hoja */
.cb-c4-main { background: var(--cb-bg); }
.cb-block-page .cb-c4-cols { gap: clamp(32px, 6vw, 96px); align-items: stretch !important; }
.cb-c4-cols h2 { font-size: clamp(30px, 3.4vw, 42px) !important; margin: 0 0 8px; }
.cb-c4-cols h2 + p { color: var(--cb-muted); margin: 0 0 36px; padding: 0; max-width: 46ch; }

.cb-formline .cb-form { background: none; border: 0; box-shadow: none; padding: 0; border-radius: 0; }
.cb-formline .cb-form__grid { gap: 28px 32px; }
.cb-formline .cb-form label {
	font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--cb-muted);
}
.cb-formline .cb-form input[type="text"], .cb-formline .cb-form input[type="email"],
.cb-formline .cb-form input[type="tel"], .cb-formline .cb-form input[type="number"],
.cb-formline .cb-form select, .cb-formline .cb-form textarea {
	background: transparent; border: 0; border-bottom: 1.5px solid #c9d3dd; border-radius: 0;
	padding: 10px 0 12px; font-size: 18px; color: var(--cb-ink);
}
.cb-formline .cb-form textarea { min-height: 120px; }
.cb-formline .cb-form input:focus, .cb-formline .cb-form select:focus, .cb-formline .cb-form textarea:focus {
	box-shadow: none; border-bottom-color: var(--cb-blue); background: transparent;
}
.cb-formline .cb-form__check label { text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--cb-text); }
.cb-formline .cb-form .cb-btn { margin-top: 4px; }

.cb-leafmap { display: flex; flex-direction: column; gap: 16px; height: 100%; margin: 0 !important; }
.cb-leafmap .cb-map {
	flex: 1; min-height: 480px; aspect-ratio: auto;
	border-radius: 48% 48% 48% 18px / 34% 34% 34% 18px; /* forma de hoja, como el logo */
	box-shadow: 0 30px 60px rgba(6, 54, 75, .16);
}
p.cb-leafmap__caption { margin: 0; padding: 0 0 0 4px; font-size: 15px; color: var(--cb-text); }
p.cb-leafmap__caption a { font-weight: 700; color: var(--cb-blue-ink); text-decoration: none; white-space: nowrap; }
p.cb-leafmap__caption a:hover { color: var(--cb-blue); }

@media (max-width: 980px) {
	.cb-lines { grid-template-columns: 1fr 1fr; }
	.cb-line:nth-child(3) { padding-left: 0; border-left: 0; }
	.cb-line { padding-bottom: 24px; }
	.cb-c4-intro::after { opacity: .9; }
}
@media (max-width: 640px) {
	.cb-c4-intro::after { width: 150px; top: 28px; right: -24px; }
	.cb-lines { grid-template-columns: 1fr; }
	.cb-line, .cb-line + .cb-line { padding: 18px 0; border-left: 0; border-bottom: 1px solid var(--cb-line); }
	.cb-formline .cb-form__grid { grid-template-columns: 1fr; }
	.cb-leafmap .cb-map { min-height: 360px; border-radius: 40% 40% 40% 16px / 28% 28% 28% 16px; }
}

/* Contacto final: foto en forma de hoja + ajustes */
.cb-c4-intro::after { display: none; }
.cb-block-page .cb-c4-introcols { gap: clamp(32px, 6vw, 96px); align-items: center !important; margin: 0 !important; }
.cb-leafphoto { position: relative; margin: 0 !important; }
.cb-leafphoto img {
	width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block;
	border-radius: 50% 50% 50% 24px; /* forma de hoja, como el logo */
	box-shadow: 0 30px 60px rgba(6, 54, 75, .18);
}
.cb-leafphoto::after { /* las tres hojas, pequeñas, como firma */
	content: ""; position: absolute; left: -18px; bottom: -18px;
	width: 132px; aspect-ratio: 260 / 120;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 120'%3E%3Cpath d='M10 110V60a50 50 0 0 1 50-50 50 50 0 0 1 50 50 50 50 0 0 1-50 50Z' fill='%2347bfe1' stroke='%23fff' stroke-width='6'/%3E%3Cpath d='M80 110V60a50 50 0 0 1 50-50 50 50 0 0 1 50 50 50 50 0 0 1-50 50Z' fill='%238abb00' stroke='%23fff' stroke-width='6'/%3E%3Cpath d='M150 110V60a50 50 0 0 1 50-50 50 50 0 0 1 50 50 50 50 0 0 1-50 50Z' fill='%230090bf' stroke='%23fff' stroke-width='6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.cb-lines { grid-template-columns: 1fr 1fr 1.6fr 1.3fr; }
p.cb-line__value { overflow-wrap: break-word; }
.cb-leafmap .cb-map { border-radius: 28px 28px 28px 6px; }
@media (max-width: 980px) {
	.cb-lines { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 781px) {
	.cb-leafphoto { max-width: 420px; }
}
@media (max-width: 640px) {
	.cb-lines { grid-template-columns: 1fr; }
	.cb-leafmap .cb-map { border-radius: 22px 22px 22px 6px; }
	.cb-leafphoto::after { width: 100px; left: -8px; bottom: -12px; }
}
.cb-line--email p.cb-line__value { font-size: clamp(16px, 1.45vw, 21px); }
@media (max-width: 640px) { .cb-leafphoto { max-width: 300px; } }

/* =========================================================
   19. CONTACTO con el lenguaje visual de la portada
   ========================================================= */
.cb-pagehero--home {
	min-height: min(64vh, 600px);
	display: flex; align-items: center;
	padding-block: 110px 160px;
}
.cb-pagehero--home > .cb-wrap { width: min(var(--cb-wrap), 100% - 40px); }
.cb-pagehero--home::before {
	background:
		linear-gradient(100deg, rgba(3, 36, 51, .78) 0%, rgba(3, 36, 51, .5) 45%, rgba(3, 36, 51, .05) 100%),
		linear-gradient(0deg, rgba(3, 36, 51, .4), transparent 35%);
}
.cb-pagehero--home h1 { font-size: clamp(38px, 6vw, 72px) !important; max-width: 14ch; margin-bottom: 18px; }
.cb-pagehero--home p { margin: 0; }
.cb-pagehero--home .wp-block-buttons { margin-top: 32px; }
.cb-pagehero--home ul.cb-chips { margin-top: 36px !important; }

/* Celda de cifras con texto largo (email) */
.cb-stat--text p.cb-stat__num { font-size: clamp(18px, 1.7vw, 22px); letter-spacing: -0.01em; line-height: 1.3; padding-top: 8px; overflow-wrap: anywhere; }
.cb-stat p.cb-stat__num a { color: var(--cb-ink); text-decoration: none; }
.cb-stat p.cb-stat__num a:hover { color: var(--cb-blue); }

/* Tarjetas de formulario y mapa con el estilo de las tarjetas de servicios */
.cb-formmap .cb-formcard--line {
	box-shadow: none; border: 1px solid var(--cb-line); border-radius: var(--cb-radius);
	transition: box-shadow .3s var(--cb-ease);
}
.cb-formmap .cb-formcard--line:focus-within { box-shadow: var(--cb-shadow-lg); border-color: transparent; }
.cb-formmap .cb-mapcard--line { border-radius: var(--cb-radius); box-shadow: none; border: 1px solid var(--cb-line); }
.cb-stats--contact .cb-stats__grid { grid-template-columns: 1fr 1fr 1.35fr 1fr; }
.cb-stats--contact p.cb-stat__num { font-size: clamp(24px, 2.5vw, 34px); white-space: nowrap; }
.cb-stats--contact .cb-stat--text p.cb-stat__num { font-size: clamp(16px, 1.35vw, 19px); white-space: normal; overflow-wrap: normal; word-break: normal; padding-top: 10px; }
@media (max-width: 980px) { .cb-stats--contact .cb-stats__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .cb-stats--contact .cb-stats__grid { grid-template-columns: 1fr; } .cb-stats--contact .cb-stat { border-right: 0; border-bottom: 1px solid var(--cb-line); } }

/* =========================================================
   20. EMPLEO
   ========================================================= */
.cb-service--users  { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
.cb-service--trend  { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 7-8.5 8.5-5-5L2 17'/%3E%3Cpath d='M16 7h6v6'/%3E%3C/svg%3E"); }
.cb-service--euro   { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10h12'/%3E%3Cpath d='M4 14h9'/%3E%3Cpath d='M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2'/%3E%3C/svg%3E"); }
.cb-service--school { --cb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5Z'/%3E%3Cpath d='M6 12v5c3 3 9 3 12 0v-5'/%3E%3C/svg%3E"); }

/* Tarjeta lateral oscura (Grupo cb-sidecard), con la lista cb-dlist dentro */
.cb-sidecard {
	flex: 1; position: relative; overflow: hidden; isolation: isolate;
	background: var(--cb-navy); color: rgba(255, 255, 255, .8);
	border-radius: var(--cb-radius); padding: clamp(28px, 4vw, 44px);
	margin: 0 !important;
}
.cb-sidecard::after { /* las tres hojas, como en la banda de empleo */
	content: ""; position: absolute; z-index: -1; right: 156px; bottom: -36px;
	width: 72px; height: 72px; border-radius: 50% 50% 50% 10px;
	background: var(--cb-sky); box-shadow: 80px 0 0 var(--cb-green), 160px 0 0 var(--cb-blue); opacity: .22;
}
.cb-sidecard h2, .cb-sidecard h3 { color: var(--cb-white) !important; }
.cb-sidecard h2 { font-size: clamp(24px, 2.4vw, 30px) !important; margin: 0 0 8px; }
.cb-sidecard > p:not([class]) { color: rgba(255, 255, 255, .78); margin: 0; padding: 0; }
.cb-sidecard .cb-eyebrow { color: var(--cb-sky); }
.cb-sidecard .cb-dlist { margin-top: 28px !important; }
.cb-sidecard p.cb-sidecard__note {
	margin: 24px 0 0; padding: 14px 16px; border-radius: var(--cb-radius-sm);
	background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12);
	font-size: 14px; color: rgba(255, 255, 255, .85);
}
.cb-formmap > .wp-block-column > .cb-sidecard { flex: 1; }

/* Empleo: tarjeta lateral clara (texto oscuro, se lee siempre) */
.cb-sidecard--light { background: var(--cb-white); border: 1px solid var(--cb-line); color: var(--cb-text); }
.cb-sidecard--light::after { opacity: .14; }
.cb-sidecard--light h2, .cb-sidecard--light h3 { color: var(--cb-ink) !important; }
.cb-sidecard--light > p:not([class]) { color: var(--cb-text); }
.cb-sidecard--light .cb-eyebrow { color: var(--cb-blue-ink); }
.cb-sidecard--light .cb-dlist__item { border-color: var(--cb-line); }
.cb-sidecard--light .cb-dlist__item h3 { color: var(--cb-blue-ink) !important; }
.cb-sidecard--light .cb-dlist__item p, .cb-sidecard--light .cb-dlist__item a { color: var(--cb-ink); }
.cb-sidecard--light .cb-dlist__item a:hover { color: var(--cb-blue); }
.cb-sidecard--light p.cb-sidecard__note { background: var(--cb-bg); border-color: var(--cb-line); color: var(--cb-text); }

/* Oferta activa: cartel + requisitos */
.cb-block-page .cb-offer-cols { gap: clamp(28px, 5vw, 64px); align-items: center !important; }
.cb-offer-img { margin: 0 !important; }
.cb-offer-img img { width: 100%; height: auto; border-radius: var(--cb-radius); box-shadow: var(--cb-shadow-lg); display: block; }
.cb-offer-boxes { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0 !important; }
.cb-offer-boxes .cb-box h3 { margin-bottom: 14px; }
.cb-offer-boxes ul.cb-checklist { margin: 0 !important; }
.cb-offer-boxes ul.cb-checklist li { padding-bottom: 10px; font-size: 15px; }
.cb-offer-boxes .cb-box--offer ul.cb-checklist li::before { background-color: var(--cb-sky); }
p.cb-offer-tag {
	display: inline-block; margin: 0 0 16px; padding: 6px 14px; border-radius: 999px;
	background: var(--cb-green); color: var(--cb-accent-ink);
	font-family: var(--cb-font-head); font-weight: 800; font-size: 12px; letter-spacing: .1em; text-transform: uppercase;
}
@media (max-width: 640px) { .cb-offer-boxes { grid-template-columns: 1fr; } }

/* =========================================================
   21. SEGURIDAD Y CALIDAD (estilo portada)
   ========================================================= */
.cb-stats--certs p.cb-stat__num { color: var(--cb-navy); }
.cb-stats--certs .cb-stat:nth-child(1) p.cb-stat__num { color: var(--cb-blue-ink); }
.cb-stats--certs .cb-stat:nth-child(2) p.cb-stat__num { color: #5a7a00; }
.cb-stats--certs .cb-stat:nth-child(3) p.cb-stat__num { color: var(--cb-blue-ink); }
.cb-sidephoto { margin: 0 !important; height: 100%; }
.cb-sidephoto img {
	width: 100%; height: 100%; min-height: 420px; max-height: 620px; object-fit: cover; object-position: center 45%;
	border-radius: var(--cb-radius); box-shadow: var(--cb-shadow-lg); display: block;
}
.cb-block-page .cb-about-cols { gap: clamp(28px, 5vw, 64px); align-items: stretch !important; }
.cb-about-cols ul.cb-chips { margin-top: 18px !important; }
.cb-about-cols h3.cb-small-title { font-size: 13px !important; letter-spacing: .12em; text-transform: uppercase; color: var(--cb-blue-ink) !important; margin: 32px 0 0; }
.cb-band--dark .cb-pillars .cb-pillar p { color: rgba(255, 255, 255, .78); }
p.cb-pillar__ref { margin-top: 8px !important; font-size: 12px !important; color: var(--cb-sky) !important; letter-spacing: .02em; }
@media (max-width: 781px) { .cb-sidephoto img { min-height: 320px; max-height: 420px; } }

/* Política completa como documento (Grupo cb-policy) */
.cb-policy {
	max-width: 880px; margin: 0 auto !important;
	background: var(--cb-white); border: 1px solid var(--cb-line);
	border-radius: calc(var(--cb-radius) * 1.3);
	box-shadow: var(--cb-shadow);
	padding: clamp(28px, 6vw, 72px);
	position: relative; overflow: hidden;
}
.cb-policy::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--cb-brand-bar); }
.cb-policy h2 {
	font-size: clamp(22px, 2.6vw, 30px) !important; text-transform: uppercase; letter-spacing: .02em;
	margin: 0 0 24px; padding: 0 0 20px; border-bottom: 1px solid var(--cb-line);
}
.cb-policy p { font-size: 16px; line-height: 1.75; color: var(--cb-text); margin: 0 0 16px; padding: 0; }
.cb-policy ol.cb-policy__list { counter-reset: cb-pol; list-style: none !important; margin: 24px 0 32px !important; padding: 0 !important; display: grid; gap: 18px; }
.cb-policy ol.cb-policy__list li {
	counter-increment: cb-pol; position: relative; padding: 0 0 0 52px !important; margin: 0 !important;
	line-height: 1.75; color: var(--cb-text);
}
.cb-policy ol.cb-policy__list li::before {
	content: counter(cb-pol); position: absolute; left: 0; top: 0;
	width: 34px; height: 34px; border-radius: 50% 50% 50% 6px;
	display: grid; place-items: center;
	font-family: var(--cb-font-head); font-weight: 800; font-size: 14px;
	background: var(--cb-sky); color: var(--cb-navy);
}
.cb-policy ol.cb-policy__list li:nth-child(3n+2)::before { background: var(--cb-green); }
.cb-policy ol.cb-policy__list li:nth-child(3n)::before { background: var(--cb-blue); color: var(--cb-white); }
.cb-policy ol.cb-policy__list strong { color: var(--cb-ink); font-family: var(--cb-font-head); font-weight: 800; }
.cb-policy__sign { margin-top: 40px !important; padding-top: 28px; border-top: 1px solid var(--cb-line); text-align: right; }
.cb-policy__sign p { margin: 0; }
p.cb-policy__date { color: var(--cb-muted); font-size: 15px; margin-bottom: 18px; }
p.cb-policy__name { font-family: var(--cb-font-head); font-weight: 800; font-size: 19px; color: var(--cb-ink); }
p.cb-policy__role { color: var(--cb-muted); }
.cb-pillars--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px) { .cb-pillars--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .cb-pillars--4 { grid-template-columns: 1fr; } .cb-policy ol.cb-policy__list li { padding-left: 46px !important; } }

/* Degradado más claro: sombra suave en el texto para que siga leyéndose bien sobre la foto */
.cb-hero .cb-slide__title, .cb-hero .cb-slide__text, .cb-hero .cb-eyebrow,
.cb-pagehero h1, .cb-pagehero p, .cb-pagehero .cb-eyebrow {
	text-shadow: 0 1px 2px rgba(3, 36, 51, .45), 0 2px 18px rgba(3, 36, 51, .35);
}
