/* ==========================================================================
   CGJ Oficios — hoja de estilos del tema
   --------------------------------------------------------------------------
   · Los TOKENS (colores, fuentes, tamaños, espacios, sombras, radios) viven en
     theme.json y llegan aquí como variables --wp--preset--* / --wp--custom--*.
     Este archivo los renombra en :root (--c-*, --r-*…) y solo hace composición.
   · Para adaptar la plantilla a otro cliente NO hace falta tocar este archivo:
     se cambian los tokens de theme.json (ver docs/DESIGN_SYSTEM.md).
   · Orden: tokens → base → componentes (de arriba a abajo de la página) →
     responsive → editor → interacción → movimiento reducido.
     El orden importa: varias reglas de «interacción» deben ir detrás de las
     de su componente para ganarles con la misma especificidad.
   ========================================================================== */

:root {
	/* Colores (theme.json → settings.color.palette) */
	--c-carbon: var(--wp--preset--color--carbon, #0E1113);
	--c-grafito: var(--wp--preset--color--grafito, #1B2024);
	--c-piedra: var(--wp--preset--color--piedra, #5F656B);
	--c-linea: var(--wp--preset--color--linea, #E4E2DC);
	--c-niebla: var(--wp--preset--color--niebla, #F4F3EF);
	--c-acento: var(--wp--preset--color--acento, #FFC81F);
	--c-acento-suave: var(--wp--preset--color--acento-suave, #FFF4CC);
	/* Colores de detalle (theme.json → settings.custom.color) */
	--c-acento-rgb: var(--wp--custom--color--acento-rgb, 255, 200, 31);     /* el acento en R, G, B para transparencias */
	--c-acento-borde: var(--wp--custom--color--acento-borde, #F2D77B);      /* borde de chips al pasar el ratón */
	--c-aviso-borde: var(--wp--custom--color--aviso-borde, #F0D77A);        /* borde de los avisos [PENDIENTE] */
	--c-pendiente: var(--wp--custom--color--pendiente, #FFE58A);            /* fondo de los textos [PENDIENTE] */
	--c-indice: var(--wp--custom--color--indice, #6F6C64);                  /* «01», «02» delante de las cejas */
	--c-numero: var(--wp--custom--color--numero, #EEECE6);                  /* número grande de marca de agua en tarjetas */
	--c-punto: var(--wp--custom--color--punto, #B8B4AA);                    /* separador «·» de la franja extra */
	--c-borde-hover: var(--wp--custom--color--borde-hover, #D8D4CA);
	--c-texto-largo: var(--wp--custom--color--texto-largo, #3A4045);        /* párrafos largos (Sobre nosotros) */
	--c-texto-legal: var(--wp--custom--color--texto-legal, #30363B);
	/* Tipografía, radios, marco y movimiento */
	--f-display: var(--wp--preset--font-family--display);
	--r-m: var(--wp--custom--radio--m, 16px);
	--r-l: var(--wp--custom--radio--l, 22px);
	--marco: var(--wp--custom--marco, clamp(6px, 0.8vw, 12px));
	--alto-cabecera: 84px;
	--ease: var(--wp--custom--transicion, cubic-bezier(.2, .7, .2, 1));
	--suave: var(--wp--custom--transicion-suave, cubic-bezier(.22,.61,.36,1));
	--sombra-suave: var(--wp--preset--shadow--suave);
	--sombra-elevada: var(--wp--preset--shadow--elevada);
	/* Iconos (trazos de 24×24 usados como máscara: toman el color del texto) */
	--i-flecha: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--i-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' 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");
	--i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	--i-rayo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7z'/%3E%3C/svg%3E");
	--i-casa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5V20a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E");
	--i-doc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13l2.5 2.5L16 10'/%3E%3C/svg%3E");
	--i-enchufe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 2v5M15 2v5M6 7h12v4a6 6 0 0 1-12 0zM12 17v5'/%3E%3C/svg%3E");
	/* Iconos extra para otros oficios (mismos trazos de 24×24; dibujos propios) */
	--i-llave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3a5 5 0 0 0-4.6 6.9l-6.8 6.8a2 2 0 0 0 2.8 2.8l6.8-6.8A5 5 0 0 0 21 9l-3 1-3-3 1-3z'/%3E%3C/svg%3E");
	--i-coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13l2-5a2 2 0 0 1 1.9-1.3h10.2A2 2 0 0 1 19 8l2 5v4a1 1 0 0 1-1 1h-1M3 13v4a1 1 0 0 0 1 1h1M3 13h18M7.5 18a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zM19.5 18a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zM7.5 18h9'/%3E%3C/svg%3E");
	--i-rueda: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18zM12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6zM12 3v6M12 15v6M3 12h6M15 12h6'/%3E%3C/svg%3E");
	--i-gota: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3s6 6.5 6 11a6 6 0 0 1-12 0c0-4.5 6-11 6-11z'/%3E%3C/svg%3E");
	--i-calendario: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16v14H4zM4 10h16M8 3v4M16 3v4'/%3E%3C/svg%3E");
	--i-escudo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8.2-8 9-4.6-.8-8-4.5-8-9V6z'/%3E%3C/svg%3E");
	/* Compatibilidad: el acento se llamaba «tension» hasta la v1.1 */
	--wp--preset--color--tension: var(--c-acento);
	--wp--preset--color--tension-suave: var(--c-acento-suave);
}
/* Compatibilidad con contenido creado con la paleta antigua (slug «tension») */
.has-tension-color { color: var(--c-acento) !important; }
.has-tension-background-color { background-color: var(--c-acento) !important; }
.has-tension-suave-color { color: var(--c-acento-suave) !important; }
.has-tension-suave-background-color { background-color: var(--c-acento-suave) !important; }

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--alto-cabecera) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; overflow-x: clip; }
::selection { background: var(--c-acento); color: var(--c-carbon); }
img { height: auto; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
main.principal { margin-block-start: 0; }
main.principal > .wp-block-post-content > * { margin-block-start: 0; }
:where(a, button, summary, input, select, textarea):focus-visible {
	outline: 2px solid var(--c-carbon);
	outline-offset: 3px;
	box-shadow: 0 0 0 5px var(--c-acento);
	border-radius: 4px;
}
.skip-link.screen-reader-text:focus { background: var(--c-acento); color: var(--c-carbon); padding: .75rem 1rem; z-index: 100000; }
strong { font-weight: 650; }

/* ---------- Aparición al hacer scroll (theme.js añade .anima al <html> y .visible a cada .revela) ---------- */
.anima .revela { opacity: 0; transform: translateY(22px); transition: opacity .75s var(--suave), transform .75s var(--suave); transition-delay: var(--retardo, 0s); }
.anima .revela.visible { opacity: 1; transform: none; }
.anima .revela-img { opacity: 0; transform: translateY(16px); transition: opacity .9s var(--suave), transform .9s var(--suave); }
.anima .revela-img.visible { opacity: 1; transform: none; }

/* ---------- Secciones ---------- */
.seccion { padding-block: var(--wp--preset--spacing--80); position: relative; }
.seccion--compacta { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--80); }
.seccion--compacta-sup { padding-block: 0 var(--wp--preset--spacing--70); }
.seccion--niebla { background: var(--c-niebla); }
.seccion--intro { padding-block: var(--wp--preset--spacing--70); }
.seccion--intro + .seccion--niebla, .seccion--niebla + .seccion--niebla { border-top: 1px solid var(--c-linea); }

.encabezado { margin-bottom: var(--wp--preset--spacing--60); }
.encabezado > * + * { margin-top: 1.1rem; }
.encabezado--centrado { text-align: center; }
.encabezado--centrado .ceja { justify-content: center; }
.seccion__titulo { max-width: 19ch; margin-top: .9rem !important; }
.encabezado--centrado .seccion__titulo, .encabezado--centrado .seccion__intro { margin-inline: auto; }
.seccion__intro { max-width: 58ch; color: var(--c-piedra); font-size: var(--wp--preset--font-size--l); line-height: 1.55; }

/* Ceja (etiqueta superior con raya) */
.ceja {
	display: flex; align-items: center; gap: .8rem;
	font-size: var(--wp--preset--font-size--xs); font-weight: 600;
	letter-spacing: .16em; text-transform: uppercase; color: var(--c-piedra);
	margin: 0;
}
.ceja::before { content: ""; width: 28px; height: 1.5px; background: currentColor; flex: none; }
.ceja--sin-linea::before { display: none; }
.ceja--acento { color: var(--c-acento); }
.ceja--centrada { justify-content: center; }
.ceja .indice { color: var(--c-indice); font-weight: 500; letter-spacing: .04em; margin-right: .1rem; }

/* Titulares a dos tonos: el <mark> transparente del editor */
mark.has-inline-color { background: transparent; }
:where(.cabecera-pagina, .cta-final) mark.has-piedra-color { color: rgba(255,255,255,.55) !important; }

/* ---------- Botones: planos, misma altura (48 px), esquinas de 14 px ----------
   Estilos de bloque: is-style-flecha (principal), is-style-fantasma (secundario), is-style-oscuro.
   Colores base y hover del botón: theme.json → styles.elements.button. */
.wp-block-button__link { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; min-height: 48px; box-sizing: border-box; line-height: 1; border-radius: 14px; }
/* Principal: texto + flecha sencilla */
.is-style-flecha .wp-block-button__link::after {
	content: ""; width: 15px; height: 15px; flex: none; background: currentColor;
	-webkit-mask: var(--i-flecha) center / contain no-repeat; mask: var(--i-flecha) center / contain no-repeat;
	transition: transform .2s ease;
}
.is-style-flecha .wp-block-button__link:hover::after { transform: translateX(2px); }
/* En la portada y cabeceras de página: círculo negro de 24 px con flecha blanca */
:where(.hero, .cabecera-pagina) .is-style-flecha .wp-block-button__link { padding-left: 1.4rem; padding-right: .6rem; gap: .85rem; }
:where(.hero, .cabecera-pagina) .is-style-flecha .wp-block-button__link::after {
	width: 24px; height: 24px; border-radius: 50%; -webkit-mask: none; mask: none;
	background: var(--c-carbon) center / 12px no-repeat;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}

/* Secundario sobre fondo oscuro: borde fino */
.is-style-fantasma .wp-block-button__link {
	background: rgba(255,255,255,.03); color: #fff; border: 1px solid rgba(255,255,255,.22);
	padding-block: .75rem; font-weight: 600;
}
.is-style-fantasma .wp-block-button__link:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.45); color: #fff; }
/* …y sobre fondo claro: borde oscuro */
:where(.seccion:not(.cta-final):not(.cabecera-pagina):not(.pie)) .is-style-fantasma .wp-block-button__link { color: var(--c-carbon); border-color: rgba(14,17,19,.2); background: transparent; }
:where(.seccion:not(.cta-final):not(.cabecera-pagina):not(.pie)) .is-style-fantasma .wp-block-button__link:hover { border-color: var(--c-carbon); background: transparent; }
.is-style-oscuro .wp-block-button__link { background: var(--c-carbon); color: #fff; }
.is-style-oscuro .wp-block-button__link:hover { background: var(--c-grafito); }

/* En la llamada final, WhatsApp y teléfono son enlaces de texto («o llama al…»), no botones */
.cta-final .is-style-fantasma .wp-block-button__link { background: none; border: 0; padding-inline: .6rem; color: rgba(255,255,255,.78); font-weight: 500; min-height: 48px; }
.cta-final .is-style-fantasma .wp-block-button__link:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; background: none; }

/* Icono de teléfono delante de cualquier botón tel: */
.wp-block-button__link[href^="tel:"]::before {
	content: ""; width: 15px; height: 15px; flex: none; background: currentColor;
	-webkit-mask: var(--i-tel) center / contain no-repeat; mask: var(--i-tel) center / contain no-repeat;
}

/* Enlace con flecha */
.enlace-flecha a {
	display: inline-flex; align-items: center; gap: .45rem;
	font-weight: 600; color: var(--c-carbon);
	text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: rgba(14,17,19,.3);
	transition: text-decoration-color .2s ease;
}
.enlace-flecha a::after { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: var(--i-flecha) center / contain no-repeat; mask: var(--i-flecha) center / contain no-repeat; transition: transform .3s var(--suave); }
.enlace-flecha a:hover { text-decoration-color: currentColor; }
.enlace-flecha a:hover::after { transform: translateX(4px); }

/* ---------- Cabecera: logo · menú centrado · idioma + botón, dentro del marco ---------- */
header.wp-block-template-part { position: fixed; inset: 0 0 auto 0; z-index: 60; margin: 0; pointer-events: none; }
.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar header.wp-block-template-part { top: 46px; } }
.cabecera { pointer-events: auto; color: #fff; transition: background-color .3s ease, border-color .3s ease; border-bottom: 1px solid transparent; }
.barra-demo { margin: 0; background: var(--c-acento); color: var(--c-carbon); font-size: .75rem; font-weight: 600; text-align: center; padding: .4rem 1rem; letter-spacing: .02em; }
/* Al bajar: barra oscura sólida y más compacta */
.con-scroll .cabecera { background: rgba(14, 17, 19, .97); border-bottom-color: rgba(255,255,255,.08); }
.cabecera__barra {
	display: grid !important; grid-template-columns: 1fr auto 1fr; align-items: center;
	max-width: 1200px; box-sizing: content-box; margin: 0 auto;
	padding: calc(1.1rem + var(--marco)) clamp(1.25rem, 4vw, 2.5rem) 1.1rem;
	gap: 1.5rem; transition: padding .3s ease;
}
.cabecera__barra > .marca { justify-self: start; }
.cabecera__barra > .menu-principal { justify-self: center; }
.cabecera__barra > .cabecera__acciones { justify-self: end; gap: .75rem; }
.con-scroll .cabecera__barra { padding-block: .7rem; }
/* Páginas interiores: línea fina bajo la cabecera, dentro del marco */
.cabecera::after { content: ""; display: block; height: 1px; margin-inline: calc(var(--marco) + 0px); background: transparent; transition: background-color .3s; }
.wp-site-blocks:not(:has(.hero)) .cabecera::after { background: rgba(255,255,255,.09); }
.con-scroll .cabecera::after { background: transparent; margin-inline: 0; }

.marca { margin: 0; flex: none; line-height: 0; }
.marca img { display: block; height: auto; transition: opacity .25s; }
.marca a:hover img { opacity: .85; }
.cabecera .marca img { width: 172px; }
.pie .marca img { width: 160px; }

/* Menú principal */
.menu-principal { color: #fff; }
.menu-principal .wp-block-navigation__container { gap: clamp(1.4rem, 2.4vw, 2.5rem); }
.menu-principal .wp-block-navigation-item__content { text-decoration: none; transition: color .2s ease; color: rgba(255,255,255,.86); padding-block: .4rem; position: relative; font-weight: 400; font-size: .9375rem; letter-spacing: .005em; }
.menu-principal .wp-block-navigation-item__content:hover { color: #fff; }
/* Subrayado de acento que crece al pasar el ratón (solo menú de escritorio) */
.menu-principal > .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 2px; background: var(--c-acento);
	transform: scaleX(0); transform-origin: left; display: block; transition: transform .35s var(--suave);
}
.menu-principal > .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item > .wp-block-navigation-item__content:hover::after,
.menu-principal .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1) !important; }
/* Desplegable: baja suave */
.menu-principal .wp-block-navigation__submenu-container {
	background: #fff !important; color: var(--c-carbon) !important; border: 0 !important; border-radius: 16px;
	padding: .6rem !important; min-width: 270px !important; box-shadow: 0 24px 60px -20px rgba(14,17,19,.45);
	top: calc(100% + 10px) !important;
	transition: opacity .25s var(--suave), transform .25s var(--suave), visibility .25s !important; transform: translateY(6px);
}
.menu-principal .has-child:hover > .wp-block-navigation__submenu-container,
.menu-principal .has-child:focus-within > .wp-block-navigation__submenu-container { transform: none; }
.menu-principal .wp-block-navigation__submenu-container::before { content: ""; position: absolute; inset: -12px 0 auto; height: 12px; }
.menu-principal .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: var(--c-carbon) !important; padding: .7rem .9rem !important; border-radius: 10px; font-weight: 500; transition: background-color .2s, padding-left .25s var(--suave); }
.menu-principal .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--c-niebla); }
.menu-principal .wp-block-navigation__submenu-icon { margin-left: .3rem; }

.cabecera__acciones { gap: 1.1rem; flex: none; }
.cabecera__acciones p { margin: 0; }
.cabecera__idioma a { color: #fff; text-decoration: none; font-weight: 600; font-size: .75rem; display: inline-flex; align-items: center; gap: .45rem; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; padding: .35rem .7rem; letter-spacing: .08em; }
.cabecera__idioma a:hover { color: var(--c-acento); border-color: var(--c-acento); }
.cabecera__cta { margin: 0; }
.cabecera__cta .wp-block-button__link { padding: .7rem 1.25rem; font-size: .9375rem; min-height: 42px; border-radius: 999px; }
.cabecera__cta .wp-block-button__link::after { display: none; }

/* Menú móvil: la hamburguesa aparece hasta 1080px (el núcleo lo hace solo hasta 600px) */
.menu-principal .wp-block-navigation__responsive-container-open { color: #fff; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 12px; border: 1px solid rgba(255,255,255,.28); }
.menu-principal .wp-block-navigation__responsive-container-open svg { width: 22px; height: 22px; }
@media (max-width: 1080px) {
	.menu-principal .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.menu-principal .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.menu-principal { order: 3; }
	.cabecera__acciones { margin-left: auto; }
	.cabecera__barra { grid-template-columns: auto 1fr auto; }
	.cabecera__barra > .cabecera__acciones { order: 2; justify-self: end; }
	.cabecera__barra > .menu-principal { order: 3; justify-self: end; margin-left: .5rem; }
}
@media (max-width: 560px) {
	.cabecera .cabecera__cta { display: none; }
	.cabecera__barra { gap: .75rem; }
}
.menu-principal .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--c-carbon) !important; color: #fff !important; padding: 1.25rem clamp(1.25rem, 5vw, 2.5rem) 2rem;
	animation: menu-entra .35s var(--ease);
}
@keyframes menu-entra { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.menu-principal .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4.5rem !important; align-items: flex-start !important; }
.menu-principal .is-menu-open .wp-block-navigation__container { gap: .25rem !important; align-items: flex-start !important; width: 100%; }
.menu-principal .is-menu-open .wp-block-navigation-item { width: 100%; align-items: flex-start !important; }
.menu-principal .is-menu-open .wp-block-navigation-item__content { font-family: var(--f-display); font-size: clamp(1.6rem, 6vw, 2.2rem); font-weight: 700; letter-spacing: -.02em; color: #fff !important; padding: .35rem 0 !important; }
.menu-principal .is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; box-shadow: none; padding: 0 0 .75rem .1rem !important; min-width: 0 !important; }
.menu-principal .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-family: inherit; font-size: 1.05rem; font-weight: 500; color: rgba(255,255,255,.72) !important; padding: .35rem 0 !important; }
.menu-principal .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: none; color: var(--c-acento) !important; }
/* (va detrás de la regla anterior: con la misma especificidad, gana la última) */
.menu-principal .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { padding-left: 1.15rem !important; }
.menu-principal .wp-block-navigation__responsive-container-close { color: #fff; top: 1.5rem !important; right: clamp(1.25rem, 5vw, 2.5rem) !important; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.28); border-radius: 12px; }
.admin-bar .menu-principal .is-menu-open { margin-top: 46px; }

/* ---------- Hero enmarcado ---------- */
.wp-block-cover.hero {
	margin: var(--marco) !important; width: auto !important; max-width: none !important;
	border-radius: var(--r-l); overflow: hidden; align-items: flex-end;
	min-height: min(92vh, 940px) !important; min-height: min(92svh, 940px) !important;
	padding: calc(var(--alto-cabecera) + 4rem) clamp(1.25rem, 5vw, 4rem) clamp(2.5rem, 7vw, 5.5rem);
}
.wp-block-cover.hero .wp-block-cover__background {
	opacity: 1 !important;
	background: linear-gradient(180deg, rgba(14,17,19,.62) 0%, rgba(14,17,19,.18) 32%, rgba(14,17,19,.35) 58%, rgba(14,17,19,.9) 100%), linear-gradient(90deg, rgba(14,17,19,.55) 0%, rgba(14,17,19,0) 65%) !important;
}
/* Zoom muy lento de la foto al cargar (se desactiva con «reducir movimiento») */
.wp-block-cover.hero .wp-block-cover__image-background { animation: hero-respira 9s var(--suave) both; }
@keyframes hero-respira { from { transform: scale(1.06); } to { transform: scale(1); } }
.hero .wp-block-cover__inner-container { width: 100%; }
.hero__contenido { max-width: 1200px; margin-inline: auto !important; }
.hero__contenido > * { margin-block: 0; }
.hero__titulo {
	font-size: var(--wp--preset--font-size--hero) !important; color: #fff !important; text-transform: uppercase;
	font-weight: 800; line-height: .94; letter-spacing: -.035em; max-width: 13ch; margin-top: 1.25rem !important; text-wrap: balance;
}
.hero__texto { color: rgba(255,255,255,.86); font-size: var(--wp--preset--font-size--l); max-width: 46ch; margin-top: 1.5rem !important; line-height: 1.55; }
.hero__acciones { margin-top: 2.25rem !important; gap: .75rem; }
.hero__notas { list-style: none; padding: 0; margin-top: 2.5rem !important; display: flex; flex-wrap: wrap; gap: .6rem 1.75rem; font-size: var(--wp--preset--font-size--s); color: rgba(255,255,255,.8); }
.hero__notas li { display: inline-flex; align-items: center; gap: .5rem; }
.hero__notas li::before { content: ""; width: 16px; height: 16px; background: var(--c-acento); -webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat; }
/* Entrada del texto del hero (escalonada) */
.anima .hero__contenido > * { animation: entra-suave .8s var(--suave) both; }
.anima .hero__contenido > *:nth-child(2) { animation-delay: 0.04s; }
.anima .hero__contenido > *:nth-child(3) { animation-delay: 0.09s; }
.anima .hero__contenido > *:nth-child(4) { animation-delay: 0.14s; }
.anima .hero__contenido > *:nth-child(5) { animation-delay: 0.19s; }
@keyframes entra-suave { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* ---------- Cabecera de página interior ---------- */
.cabecera-pagina {
	background: var(--c-carbon); color: #fff; margin: var(--marco) var(--marco) 0 !important; border-radius: var(--r-l);
	width: auto !important; max-width: none !important; overflow: hidden; isolation: isolate;
	padding-top: calc(var(--alto-cabecera) + var(--wp--preset--spacing--60)) !important; padding-bottom: var(--wp--preset--spacing--70) !important;
}
.cabecera-pagina::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: radial-gradient(60% 80% at 85% 0%, rgba(var(--c-acento-rgb), .13), transparent 60%), radial-gradient(40% 60% at 0% 100%, rgba(255,255,255,.05), transparent 70%);
}
.cabecera-pagina__titulo, .cabecera-pagina h1 { color: #fff !important; font-size: clamp(2.25rem, 5vw, 4rem) !important; line-height: 1.02; letter-spacing: -.03em; max-width: 17ch; margin-top: 1.1rem !important; text-wrap: balance; }
.cabecera-pagina__texto { color: rgba(255,255,255,.74); font-size: var(--wp--preset--font-size--l); max-width: 52ch; line-height: 1.55; }
.cabecera-pagina .wp-block-buttons { margin-top: 2rem; gap: .75rem; }
.cabecera-pagina__columnas { gap: clamp(2rem, 5vw, 5rem) !important; }
.cabecera-pagina__imagen { margin: 0; overflow: hidden; border-radius: 18px; }
.cabecera-pagina__imagen img { aspect-ratio: 4 / 3.2; object-fit: cover; width: 100%; border-radius: 18px; box-shadow: 0 40px 80px -30px rgba(0,0,0,.6); }
.cabecera-pagina--corta { padding-bottom: var(--wp--preset--spacing--60) !important; }
.cabecera-pagina--404 { min-height: 70vh; display: flex; flex-direction: column; justify-content: center; text-align: center; }
.cabecera-pagina--404 h1, .cabecera-pagina--404 .cabecera-pagina__texto { margin-inline: auto !important; }
.cabecera-pagina--404 .ceja { justify-content: center; }
.cabecera-pagina .wp-block-post-excerpt__more-text { display: none; }
.cabecera-pagina .wp-block-post-excerpt__excerpt { margin: 1.25rem 0 0; }

/* ---------- Intro + accesos ---------- */
.intro__texto { font-size: clamp(1.25rem, 2.3vw, 1.65rem); line-height: 1.5; color: var(--c-piedra); max-width: 40em; margin: 1.5rem auto 0 !important; letter-spacing: -.01em; text-wrap: pretty; }
.intro__texto strong { color: var(--c-carbon); }
.atajos { margin-top: var(--wp--preset--spacing--60) !important; gap: 1rem !important; --min-col: 13rem; }
.atajo { margin: 0; }
.atajo a {
	display: flex; flex-direction: column; gap: 1.1rem; height: 100%; padding: 1.4rem 1.4rem 1.25rem; box-sizing: border-box;
	border: 1px solid var(--c-linea); border-radius: var(--r-m); text-decoration: none; color: var(--c-carbon); font-weight: 600; line-height: 1.3;
	transition: border-color .3s, transform .4s var(--suave), box-shadow .4s var(--suave); position: relative;
}
.atajo a::after { content: ""; position: absolute; right: 1.25rem; top: 1.5rem; width: 16px; height: 16px; background: var(--c-piedra); -webkit-mask: var(--i-flecha) center / contain no-repeat; mask: var(--i-flecha) center / contain no-repeat; transition: transform .35s var(--suave), background-color .25s; }
.atajo a:hover { border-color: var(--c-carbon); transform: translateY(-3px); box-shadow: var(--sombra-suave); }
.atajo a:hover::after { background: var(--c-carbon); transform: translateX(3px); }
.atajo__icono { width: 44px; height: 44px; border-radius: 12px; background: var(--c-acento-suave); position: relative; display: block; transition: background-color .35s var(--suave), transform .35s var(--suave); }
.atajo__icono::before { content: ""; position: absolute; inset: 11px; background: var(--c-carbon); -webkit-mask: var(--icono) center / contain no-repeat; mask: var(--icono) center / contain no-repeat; }
.atajo a:hover .atajo__icono { background: var(--c-acento); transform: scale(1.05); }
.icono-rayo { --icono: var(--i-rayo); } .icono-casa { --icono: var(--i-casa); } .icono-doc { --icono: var(--i-doc); } .icono-enchufe { --icono: var(--i-enchufe); }
.icono-llave { --icono: var(--i-llave); } .icono-coche { --icono: var(--i-coche); } .icono-rueda { --icono: var(--i-rueda); } .icono-gota { --icono: var(--i-gota); } .icono-calendario { --icono: var(--i-calendario); } .icono-escudo { --icono: var(--i-escudo); }
.intro__registro { margin-top: 2rem !important; font-size: var(--wp--preset--font-size--s); color: var(--c-piedra); }

/* ---------- Tarjetas ---------- */
.tarjeta {
	background: #fff; border-radius: 18px; padding: clamp(1.5rem, 3vw, 2.1rem); position: relative; box-sizing: border-box;
	box-shadow: var(--sombra-suave); transition: transform .45s var(--ease), box-shadow .45s var(--ease);
}
.tarjeta > * { margin-block: 0; }
.tarjeta > * + * { margin-top: .85rem; }
.tarjeta__numero {
	position: absolute; top: 1.1rem; right: 1.5rem; margin: 0 !important; font-family: var(--f-display);
	font-size: clamp(3rem, 5vw, 4rem); font-weight: 800; line-height: 1; letter-spacing: -.04em; color: var(--c-numero); pointer-events: none;
	transition: color .4s var(--ease);
}
/* Tarjetas numeradas (Presupuesto, Puntualidad, Entrega…): se elevan, raya de acento y el número se ilumina */
.tarjeta--numerada { padding-top: clamp(2.25rem, 4vw, 2.75rem); transition: transform .45s var(--suave), box-shadow .45s var(--suave); overflow: hidden; }
.tarjeta--numerada::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--c-acento); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--suave); }
.tarjeta--numerada:hover { transform: translateY(-5px); box-shadow: var(--sombra-elevada); }
.tarjeta--numerada:hover::before { transform: scaleX(1); }
.tarjeta--numerada .tarjeta__numero { transition: color .45s var(--suave), transform .45s var(--suave); }
.tarjeta--numerada:hover .tarjeta__numero { color: var(--c-acento); transform: translateY(-2px); }
.tarjeta--numerada .tarjeta__titulo { margin-top: 1.3rem !important; max-width: 16ch; }
.tarjeta__titulo { font-size: clamp(1.25rem, 2vw, 1.45rem) !important; line-height: 1.2; }
.tarjeta__texto { color: var(--c-piedra); font-size: var(--wp--preset--font-size--s); line-height: 1.65; }
.rejilla-tarjetas { gap: 1.1rem !important; }
.tarjeta--simple { box-shadow: none; border: 1px solid var(--c-linea); transition: transform .4s var(--suave), box-shadow .4s var(--suave), border-color .3s; }
.seccion--niebla .tarjeta--simple { border-color: transparent; box-shadow: var(--sombra-suave); }
.tarjeta--simple:hover { transform: translateY(-3px); box-shadow: var(--sombra-suave); border-color: transparent; }
.tarjeta--simple .tarjeta__titulo { font-size: 1.2rem !important; }
.tarjeta--acento { background: var(--c-carbon); color: rgba(255,255,255,.82); box-shadow: var(--sombra-elevada); }
.tarjeta--acento h2, .tarjeta--acento h3 { color: #fff; }
.tarjeta--acento a { color: var(--c-acento); }
.tarjeta--acento .wp-block-separator { border-color: rgba(255,255,255,.14); opacity: 1; }
.tarjeta--acento .dato__etiqueta { color: rgba(255,255,255,.55); }

/* Precios (patrón opcional «Precios orientativos») */
.tarjeta--precio { display: flex; flex-direction: column; }
.tarjeta--precio > .wp-block-buttons { margin-top: auto !important; padding-top: 1.75rem; }
.precio__importe { font-family: var(--f-display); font-size: clamp(2rem, 3.5vw, 2.6rem); font-weight: 800; letter-spacing: -.03em; line-height: 1; margin-top: 1rem !important; }
.precio__nota { color: var(--c-piedra); font-size: var(--wp--preset--font-size--s); }
.precio__lista { margin-top: 1.25rem !important; grid-template-columns: 1fr !important; }
.tarjeta--precio-destacado { border-color: var(--c-carbon); box-shadow: var(--sombra-elevada); overflow: hidden; }
.tarjeta--precio-destacado::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--c-acento); }
.precio__aviso { text-align: center; }

/* Opiniones (patrón opcional: SOLO opiniones reales) */
.opinion__comillas { font-family: var(--f-display); font-size: 3.5rem; font-weight: 800; line-height: .8; height: 1.6rem; color: var(--c-acento); }
.opinion__texto { font-size: 1.05rem; line-height: 1.65; color: var(--c-carbon); }
.opinion__autor { color: var(--c-piedra); font-size: var(--wp--preset--font-size--s); margin-top: 1.25rem !important; }
.opinion__autor strong { color: var(--c-carbon); }

/* ---------- Servicios en zigzag ---------- */
.servicio { gap: clamp(2rem, 6vw, 6rem) !important; margin-top: var(--wp--preset--spacing--70) !important; }
.encabezado + .servicio { margin-top: 0 !important; }
@media (min-width: 782px) { .servicio--invertido { flex-direction: row-reverse; } }
.servicio__imagen, .tarjeta-servicio__imagen { margin: 0; border-radius: 18px; overflow: hidden; box-shadow: var(--sombra-elevada); }
.servicio__imagen img { aspect-ratio: 16 / 11.5; object-fit: cover; width: 100%; display: block; border-radius: 0 !important; }
.servicio__ceja { margin-bottom: 1rem !important; }
.servicio__titulo { font-size: clamp(1.7rem, 3vw, 2.4rem) !important; line-height: 1.08; letter-spacing: -.025em; max-width: 16ch; }
.servicio__texto { color: var(--c-piedra); max-width: 46ch; }
.servicio .wp-block-column > * + * { margin-top: 1.1rem; }
.datos { gap: .75rem 2.75rem !important; margin-top: 1.75rem !important; }
.dato > * { margin: 0; }
.dato__etiqueta { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--c-piedra); margin: 0; }
.dato__valor { font-weight: 600; margin-top: .3rem !important; }
.servicio .enlace-flecha { margin-top: 1.75rem !important; }

/* Franja «También hacemos» */
.franja-extra {
	background: var(--c-niebla); border: 1px solid var(--c-linea); border-radius: 18px; padding: 1.6rem clamp(1.4rem, 3vw, 2.2rem);
	margin-top: var(--wp--preset--spacing--70) !important; gap: 1.25rem !important;
	transition: border-color .3s, box-shadow .4s var(--suave);
}
.franja-extra:hover { border-color: var(--c-borde-hover); box-shadow: var(--sombra-suave); }
.franja-extra__texto > * { margin: 0; }
.franja-extra__items { margin-top: .5rem !important; font-weight: 600; font-size: clamp(1.05rem, 1.6vw, 1.2rem); letter-spacing: -.01em; }
.franja-extra__items .punto { color: var(--c-punto); margin: 0 .3rem; }
.franja-extra .wp-block-buttons { margin: 0; }

/* Página general de servicios */
.rejilla-servicios { gap: 1.25rem !important; --min-col: 26rem; }
.tarjeta-servicio { padding: .75rem .75rem 1.75rem; transition: transform .45s var(--suave), box-shadow .45s var(--suave); }
.tarjeta-servicio:hover { transform: translateY(-5px); box-shadow: var(--sombra-elevada); }
.tarjeta-servicio > *:not(figure) { margin-inline: 1.1rem !important; }
.tarjeta-servicio .ceja { margin-top: 1.4rem !important; }
.tarjeta-servicio__imagen { box-shadow: none; border-radius: 12px; }
.tarjeta-servicio__imagen img { aspect-ratio: 16/10; object-fit: cover; width: 100%; display: block; border-radius: 0 !important; }
.tarjeta-servicio .enlace-flecha { margin-top: 1.25rem !important; }

/* ---------- Galería ---------- */
.galeria-obra { gap: 1rem !important; }
.galeria-obra .wp-block-image { border-radius: 14px; overflow: hidden; margin: 0; position: relative; }
.galeria-obra .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0 !important; }
.galeria-obra .wp-block-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(14,17,19,.35)); opacity: 0; transition: opacity .5s var(--suave); pointer-events: none; }
.galeria-obra .wp-block-image:hover::after { opacity: 1; }
.seccion--galeria .enlace-flecha { margin-top: 2.25rem !important; }
@media (max-width: 600px) { .galeria-obra.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: calc(50% - .5rem); } }
.nota-fotos { color: var(--c-piedra); font-size: var(--wp--preset--font-size--xs); margin-top: 1.5rem !important; }

/* Fotos: zoom suave al pasar el ratón (servicios, tarjetas, galería, cabeceras) */
.servicio__imagen img, .tarjeta-servicio__imagen img, .galeria-obra .wp-block-image img, .cabecera-pagina__imagen img { transition: transform 1.1s var(--suave), filter .5s; }
.servicio:hover .servicio__imagen img { transform: scale(1.04); }
.cabecera-pagina__imagen:hover img { transform: scale(1.03); }
.galeria-obra .wp-block-image:hover img { transform: scale(1.06); filter: none; }
.tarjeta-servicio:hover img { transform: scale(1.05); }
.tarjeta-servicio:hover .tarjeta__titulo { text-underline-offset: 4px; }   /* (heredado de la v1.1; sin efecto visible) */

/* ---------- Proceso ---------- */
.proceso { counter-reset: paso; }
.paso {
	display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 1.25rem; position: relative; padding-bottom: 2.5rem;
}
.paso > * { margin: 0 !important; }
.paso::before { content: ""; position: absolute; left: 22px; top: 46px; bottom: 4px; width: 1.5px; background: linear-gradient(var(--c-linea), var(--c-linea)) ; }
.paso:last-child { padding-bottom: 0; } .paso:last-child::before { display: none; }
.paso__numero {
	grid-row: span 2; width: 46px; height: 46px; border-radius: 50%; background: var(--c-carbon); color: #fff;
	display: grid; place-items: center; font-size: .82rem; font-weight: 700; letter-spacing: .02em; font-variant-numeric: tabular-nums;
	transition: background-color .35s var(--suave), color .35s, transform .35s var(--suave), box-shadow .35s;
}
/* El paso se ilumina al pasar el ratón */
.paso:hover .paso__numero { background: var(--c-acento); color: var(--c-carbon); transform: scale(1.06); box-shadow: 0 0 0 6px var(--c-acento-suave); }
.paso__titulo { font-size: 1.2rem !important; padding-top: .55rem; line-height: 1.3; transition: color .3s; }
.paso__texto { color: var(--c-piedra); margin-top: .4rem !important; max-width: 60ch; }
@media (min-width: 900px) {
	.paso { grid-template-columns: 52px minmax(0, .9fr) minmax(0, 1.4fr); column-gap: 2rem; padding-bottom: 3rem; }
	.paso__numero { grid-row: auto; }
	.paso__texto { padding-top: .55rem; margin-top: 0 !important; }
}

/* ---------- Cobertura ---------- */
.cobertura { gap: clamp(2rem, 6vw, 5rem) !important; }
.cobertura__tarjeta { padding: clamp(1.75rem, 4vw, 2.75rem); }
.cobertura__localidades { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem !important; }
.chip { display: inline-block; padding: .45rem .85rem; border-radius: 999px; background: var(--c-niebla); border: 1px solid var(--c-linea); font-size: var(--wp--preset--font-size--s); font-weight: 500; transition: background-color .25s, border-color .25s, transform .25s var(--suave); }
.chip:hover { background: var(--c-acento-suave); border-color: var(--c-acento-borde); transform: translateY(-1px); }
.cobertura__tarjeta .wp-block-separator { margin-block: 1.75rem !important; border-color: var(--c-linea); opacity: 1; }
.seccion--cobertura { padding-top: var(--wp--preset--spacing--70); }

/* ---------- FAQ ---------- */
.faq-columnas { gap: clamp(2rem, 6vw, 5rem) !important; }
.faq { border-top: 1px solid var(--c-linea); }
.faq > * { margin: 0 !important; }
.wp-block-details { border-bottom: 1px solid var(--c-linea); }
.wp-block-details summary {
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem;
	padding: 1.35rem 0; font-family: var(--f-display); font-weight: 600; font-size: clamp(1.05rem, 1.6vw, 1.2rem); letter-spacing: -.01em; line-height: 1.35;
	transition: color .25s, padding-left .3s var(--suave);
}
/* la pregunta se desplaza un poco al pasar el ratón */
.wp-block-details summary:hover { padding-left: .35rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: ""; width: 34px; height: 34px; flex: none; border-radius: 50%; border: 1px solid var(--c-linea);
	background: linear-gradient(var(--c-carbon), var(--c-carbon)) center / 12px 1.6px no-repeat, linear-gradient(var(--c-carbon), var(--c-carbon)) center / 1.6px 12px no-repeat;
	transition: transform .35s var(--ease), background-color .25s, border-color .25s;
}
.wp-block-details summary:hover::after { border-color: var(--c-carbon); }
.wp-block-details[open] summary::after { transform: rotate(45deg); background-color: var(--c-acento); border-color: var(--c-acento); }
.wp-block-details > :not(summary) { color: var(--c-piedra); margin: 0 0 1.35rem; max-width: 62ch; padding-right: 3rem; }
.wp-block-details > p + p { margin-top: -.6rem; }
@supports (interpolate-size: allow-keywords) {
	:root { interpolate-size: allow-keywords; }
	.wp-block-details::details-content { height: 0; overflow: clip; transition: height .4s var(--ease), content-visibility .4s allow-discrete; }
	.wp-block-details[open]::details-content { height: auto; }
}

/* ---------- Incluye / listas ---------- */
.incluye { gap: clamp(2rem, 5vw, 4.5rem) !important; }
.lista-check { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: .9rem 2rem; }
@media (min-width: 700px) { .lista-check--2col { grid-template-columns: 1fr 1fr; } }
.lista-check li { position: relative; padding-left: 2.1rem; font-weight: 500; line-height: 1.45; }
.lista-check li::before { content: ""; position: absolute; left: 0; top: .05rem; width: 22px; height: 22px; border-radius: 50%; background: var(--c-acento); }
.lista-check li::after { content: ""; position: absolute; left: 5px; top: calc(.05rem + 5px); width: 12px; height: 12px; background: var(--c-carbon); -webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat; }
.lista-flecha { list-style: none; padding: 0; margin: 1.25rem 0 0; }
.lista-flecha li { padding: .75rem 0 .75rem 1.9rem; position: relative; border-top: 1px solid rgba(255,255,255,.12); }
.lista-flecha li::before { content: ""; position: absolute; left: 0; top: 1.05rem; width: 15px; height: 15px; background: var(--c-acento); -webkit-mask: var(--i-flecha) center / contain no-repeat; mask: var(--i-flecha) center / contain no-repeat; }
.lista-pasos { padding-left: 0; list-style: none; counter-reset: lp; margin: 1.25rem 0 0; }
.lista-pasos li { counter-increment: lp; position: relative; padding: .55rem 0 .55rem 2.6rem; }
.lista-pasos li::before { content: counter(lp); position: absolute; left: 0; top: .5rem; width: 28px; height: 28px; border-radius: 50%; background: var(--c-acento); color: var(--c-carbon); font-size: .8rem; font-weight: 700; display: grid; place-items: center; }

/* ---------- Llamada final (CTA) ---------- */
.cta-final {
	background: var(--c-carbon); color: #fff; margin: 0 var(--marco) var(--marco) !important; border-radius: var(--r-l); width: auto !important; max-width: none !important;
	overflow: hidden; isolation: isolate;
}
.cta-final::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: radial-gradient(60% 60% at 50% 120%, rgba(var(--c-acento-rgb), .12), transparent 70%) !important;
}
.cta-final__titulo { color: #fff !important; font-size: clamp(2rem, 4.6vw, 3.6rem) !important; letter-spacing: -.03em; line-height: 1.04; text-wrap: balance; margin-inline: auto !important; max-width: 20ch; }
.cta-final__texto { color: rgba(255,255,255,.72); font-size: var(--wp--preset--font-size--l); max-width: 46ch; margin-inline: auto !important; }
.cta-final__acciones { margin-top: 2.25rem !important; gap: .75rem; }

/* ---------- Contacto / presupuesto ---------- */
.contacto-columnas, .presupuesto-columnas { gap: clamp(1.5rem, 4vw, 3rem) !important; }
.contacto-tarjetas { display: grid; gap: .9rem; }
.contacto-tarjetas > * { margin: 0 !important; }
.tarjeta--contacto { padding: 1.35rem 1.5rem; box-shadow: none; border: 1px solid var(--c-linea); transition: border-color .3s, transform .35s var(--suave), box-shadow .35s var(--suave); }
.tarjeta--contacto:hover { border-color: var(--c-carbon); transform: translateY(-2px); box-shadow: var(--sombra-suave); }
.contacto-tarjeta__valor { font-size: 1.15rem; font-weight: 600; margin-top: .35rem !important; letter-spacing: -.01em; }
.contacto-tarjeta__valor a { text-decoration: none; }
.contacto-tarjeta__valor a:hover { text-decoration: underline; text-decoration-color: var(--c-acento); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.formulario-caja { background: #fff; border: 1px solid var(--c-linea); border-radius: var(--r-l); padding: clamp(1.4rem, 4vw, 2.75rem); box-shadow: var(--sombra-suave); }
.formulario-caja__titulo { font-size: var(--wp--preset--font-size--xl) !important; }
.formulario-caja__texto { color: var(--c-piedra); font-size: var(--wp--preset--font-size--s); }
.presupuesto__lado { position: sticky; top: calc(var(--alto-cabecera) + 1.5rem); }
.presupuesto__lado .contacto-tarjeta__valor a { color: #fff; }

/* ---------- Gracias ---------- */
.gracias { min-height: 78vh; display: flex; flex-direction: column; justify-content: center; text-align: center; padding-bottom: var(--wp--preset--spacing--80) !important; }
.gracias > * { margin-inline: auto !important; }
.gracias__icono { width: 76px; height: 76px; border-radius: 50%; background: var(--c-acento); color: var(--c-carbon); margin: 0 auto 1.5rem !important; display: grid; place-items: center; font-size: 2rem; font-weight: 700; box-shadow: 0 0 0 10px rgba(var(--c-acento-rgb), .12); }
.gracias .wp-block-buttons { margin-top: 2rem; }
.cabecera-pagina.gracias { margin-bottom: var(--marco) !important; }

/* ---------- Páginas de texto ---------- */
.texto-legal h2, .contenido-libre h2 { font-size: var(--wp--preset--font-size--xl) !important; margin-top: 2.75rem !important; }
.texto-legal p, .texto-legal li { color: var(--c-texto-legal); }
.aviso-pendiente { background: var(--c-acento-suave); border: 1px solid var(--c-aviso-borde); border-radius: 12px; padding: 1rem 1.25rem; font-size: var(--wp--preset--font-size--s); }
.aviso-pendiente p { margin: 0; }
.pendiente { background: var(--c-pendiente); padding: 0 .3em; border-radius: 4px; font-weight: 600; font-size: .92em; }

/* ---------- Pie (enmarcado, a juego con el hero y la llamada final) ---------- */
footer.wp-block-template-part { margin-top: 0; }
.pie {
	background: var(--c-carbon); color: rgba(255,255,255,.7); padding-block: var(--wp--preset--spacing--70) 2rem !important; font-size: var(--wp--preset--font-size--s);
	margin: 0 var(--marco) var(--marco) !important; border-radius: var(--r-l); width: auto !important; max-width: none !important;
}
main.principal + footer .pie, footer.wp-block-template-part > .pie { margin-top: 0 !important; }
.pie a { color: rgba(255,255,255,.82); text-decoration: none; transition: color .2s; }
.pie a:hover { color: var(--c-acento); }
.pie__columnas { gap: 2rem !important; }
.pie__lema { max-width: 34ch; margin-top: 1.4rem !important; line-height: 1.6; }
.pie__titulo { font-family: var(--wp--preset--font-family--texto) !important; font-size: .72rem !important; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.45) !important; font-weight: 600 !important; margin-bottom: 1.1rem !important; }
.pie__lista { list-style: none; padding: 0; margin: 0; display: grid; gap: .65rem; }
.pie__dato { margin: 0 0 .55rem !important; font-weight: 600; }
.pie__dato a { color: #fff; }
.pie__nota { color: rgba(255,255,255,.5); margin-top: .9rem !important; line-height: 1.5; }
.pie__sep { border-color: rgba(255,255,255,.12) !important; opacity: 1; margin-block: var(--wp--preset--spacing--60) 1.5rem !important; }
.pie__inferior { gap: .75rem 2rem !important; font-size: .82rem; }
.pie__inferior p { margin: 0; }
.pie__demo { text-align: center; color: rgba(255,255,255,.4); font-size: .78rem; margin-top: 1.5rem !important; }
@media (max-width: 781px) { .pie__columnas > .wp-block-column:first-child { flex-basis: 100% !important; } }

/* ---------- Llamada final + pie: un único bloque oscuro ---------- */
.wp-block-post-content > :last-child:not(.cta-final) { margin-bottom: var(--marco); }
.wp-block-post-content > .cta-final:last-child { margin-bottom: 0 !important; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.wp-site-blocks:has(.wp-block-post-content > .cta-final:last-child) .pie { border-top-left-radius: 0; border-top-right-radius: 0; }
.wp-site-blocks:has(.wp-block-post-content > .cta-final:last-child) .pie::before { content: ""; position: absolute; top: 0; left: clamp(1rem, 4vw, 2.5rem); right: clamp(1rem, 4vw, 2.5rem); height: 1px; background: rgba(255,255,255,.1); }
/* Si el navegador no entiende :has(), al menos que no se toquen */
@supports not selector(:has(*)) { .wp-block-post-content > .cta-final:last-child { margin-bottom: var(--marco) !important; border-radius: var(--r-l); } }

/* ---------- Rejillas: reparten el ancho entre los elementos que hay (sin columnas vacías) ---------- */
.rejilla-tarjetas.is-layout-grid, .atajos.is-layout-grid, .rejilla-servicios.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(var(--min-col, 16rem), 100%), 1fr)) !important; }

/* ---------- Proceso en horizontal (pasos cortos: Sobre nosotros) ---------- */
.proceso--horizontal { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 2rem 2.5rem; }
.proceso--horizontal .paso { display: block; padding: 0; }
.proceso--horizontal > .paso { margin-block: 0 !important; }
.proceso--horizontal .paso__titulo { padding-top: 1.25rem; }
.proceso--horizontal .paso__texto { padding-top: 0; margin-top: .4rem !important; }
.proceso--horizontal .paso::before { left: 58px; right: -1.5rem; top: 23px; bottom: auto; width: auto; height: 1.5px; }
@media (max-width: 900px) { .proceso--horizontal .paso::before { display: none; } }

/* ---------- Sobre nosotros: textos con el mismo tamaño y color ---------- */
.nosotros__texto { color: var(--c-texto-largo); font-size: 1.125rem; line-height: 1.7; }
.nosotros-intro .wp-block-column > .nosotros__texto + .nosotros__texto { margin-top: 1rem; }
/* Compatibilidad con la página «Sobre nosotros» instalada antes de la v1.1 (sin la clase proceso--horizontal) */
.wp-block-post-content:has(.nosotros-intro) .proceso { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 2rem 2.5rem; }
.wp-block-post-content:has(.nosotros-intro) .proceso > .paso { display: block; padding: 0; margin-block: 0 !important; }
.wp-block-post-content:has(.nosotros-intro) .paso__titulo { padding-top: 1.25rem; }
.wp-block-post-content:has(.nosotros-intro) .paso__texto { padding-top: 0; margin-top: .4rem !important; }
.wp-block-post-content:has(.nosotros-intro) .paso::before { left: 58px; right: -1.5rem; top: 23px; bottom: auto; width: auto; height: 1.5px; }
@media (max-width: 900px) { .wp-block-post-content:has(.nosotros-intro) .paso::before { display: none; } }
.nosotros-intro .wp-block-column:last-child > p { color: var(--c-texto-largo); font-size: 1.125rem; line-height: 1.7; }

/* ==========================================================================
   Responsive
   ========================================================================== */
/* Tablet: las columnas de contenido se apilan */
@media (max-width: 960px) and (min-width: 782px) {
	.faq-columnas, .incluye, .presupuesto-columnas, .cabecera-pagina__columnas, .nosotros-intro { flex-wrap: wrap !important; }
	.nosotros-intro > .wp-block-column, .faq-columnas > .wp-block-column, .incluye > .wp-block-column, .presupuesto-columnas > .wp-block-column, .cabecera-pagina__columnas > .wp-block-column { flex-basis: 100% !important; }
	.presupuesto__lado { position: static; }
}
@media (max-width: 781px) {
	.presupuesto__lado { position: static; }
	.seccion { padding-block: var(--wp--preset--spacing--70); }
	.wp-block-details > :not(summary) { padding-right: 0; }
	.franja-extra .wp-block-buttons, .franja-extra .wp-block-button { width: 100%; }
	.franja-extra .wp-block-button__link { width: 100%; justify-content: space-between; }
}
@media (max-width: 480px) {
	.hero__acciones .wp-block-button, .cta-final__acciones .wp-block-button, .cabecera-pagina .wp-block-button { width: 100%; }
	.hero__acciones .wp-block-button__link, .cta-final__acciones .wp-block-button__link, .cabecera-pagina .wp-block-button__link { width: 100%; justify-content: center; }
	:where(.hero, .cabecera-pagina) .is-style-flecha .wp-block-button__link { justify-content: space-between !important; padding-left: 1.4rem; }
	.datos { gap: 1rem 2rem !important; }
}
@media (max-width: 440px) {
	.cabecera__barra { gap: .6rem; }   /* (el relleno lateral sigue siendo el general) */
	.cabecera .marca img { width: 140px; }
	.cabecera__acciones { gap: .6rem; }
	.barra-demo { font-size: .7rem; padding-block: .3rem; }
}

/* ==========================================================================
   Editor: que el contenido sea legible al editar
   ========================================================================== */
.editor-styles-wrapper header.wp-block-template-part { position: relative; inset: auto; }
.editor-styles-wrapper .cabecera { background: var(--c-carbon); }
.editor-styles-wrapper .revela { opacity: 1 !important; transform: none !important; }
.editor-styles-wrapper .cabecera-pagina, .editor-styles-wrapper .wp-block-cover.hero { padding-top: 4rem !important; }

/* ==========================================================================
   Interacción ligera (siempre activa)
   ========================================================================== */
/* Botones: respuesta ligera */
.wp-block-button__link { transition: background-color .25s var(--suave), color .25s, border-color .25s, transform .25s var(--suave), box-shadow .25s var(--suave); }
.wp-block-button__link:hover { transform: translateY(-1px); }
.is-style-flecha .wp-block-button__link:hover { box-shadow: 0 8px 18px -10px rgba(14,17,19,.45); }
:where(.hero, .cabecera-pagina) .is-style-flecha .wp-block-button__link::after { transition: transform .3s var(--suave); }
:where(.hero, .cabecera-pagina) .is-style-flecha .wp-block-button__link:hover::after { transform: translateX(3px); }
.cta-final .is-style-fantasma .wp-block-button__link:hover, .cabecera__cta .wp-block-button__link:hover { transform: none; }
/* Tarjetas con aparición al hacer scroll: que la aparición no anule el efecto al pasar el ratón */
.anima .revela.visible:is(.tarjeta--numerada, .tarjeta-servicio, .tarjeta--simple, .tarjeta--contacto) { transition: transform .45s var(--suave), box-shadow .45s var(--suave), border-color .3s, opacity .75s var(--suave); transition-delay: 0s; }
.anima .revela.visible.tarjeta--numerada:hover, .anima .revela.visible.tarjeta-servicio:hover { transform: translateY(-5px); }
.anima .revela.visible.tarjeta--simple:hover { transform: translateY(-3px); }
.anima .revela.visible.tarjeta--contacto:hover { transform: translateY(-2px); }
/* Burbuja de WhatsApp (plugin): aparece suave y crece un poco al pasar el ratón */
.cgj-burbuja-wa { animation: burbuja-entra .6s 1s var(--suave) both; transition: transform .3s var(--suave), background-color .2s !important; }
.cgj-burbuja-wa:hover { transform: scale(1.06); }
@keyframes burbuja-entra { from { opacity: 0; transform: translateY(12px) scale(.9); } to { opacity: 1; transform: none; } }

/* ==========================================================================
   Quien ha pedido «reducir movimiento» no ve el zoom del hero ni las entradas
   (los efectos al pasar el ratón se mantienen: son pequeños y los pide el cliente)
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.wp-block-cover.hero .wp-block-cover__image-background, .anima .hero__contenido > *, .cgj-burbuja-wa { animation: none !important; }
	.anima .revela, .anima .revela-img { opacity: 1 !important; transform: none !important; transition: none !important; }
}
