/*
Theme Name: Cerrajeros Embajadores FSE
Theme URI: https://cerrajerosembajadores.com/
Description: Tema hijo de bloques (Full Site Editing) para Cerrajeros Embajadores, inspirado en los rótulos cerámicos de las calles del centro de Madrid. Paleta azulejo, tipografías Fraunces y DM Sans autoalojadas, patrones para portada, servicios, quiénes somos, contacto y textos legales, y preguntas frecuentes con microdata schema.org.
Author: Cerrajeros Embajadores
Template: prime-fse
Version: 1.0.0
Requires at least: 6.6
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cerrajeros-embajadores-fse
Tags: full-site-editing, block-patterns, block-styles, custom-colors, editor-style, one-column, wide-blocks
*/

/* ==========================================================================
   0. Tokens
   ========================================================================== */

:root {
	--ce-navy: var(--wp--preset--color--azulejo-navy, #172d50);
	--ce-navy-deep: #0f1f3a;
	--ce-cream: var(--wp--preset--color--ceramic-cream, #f2e8d5);
	--ce-gold: var(--wp--preset--color--antique-gold, #c99a36);
	--ce-terracotta: var(--wp--preset--color--madrid-terracotta, #a94d35);
	--ce-ink: var(--wp--preset--color--ink, #242833);
	--ce-paper: var(--wp--preset--color--paper, #faf7f0);
	--ce-white: var(--wp--preset--color--white, #fff);
	--ce-rule: rgba(23, 45, 80, 0.22);
	--ce-rule-light: rgba(242, 232, 213, 0.18);
	--ce-radius: var(--wp--custom--tile--radius, 4px);
	--ce-inset: var(--wp--custom--tile--inset, 7px);
	--ce-strip-h: var(--wp--custom--header--strip-height, 2.375rem);
	--ce-sticky-offset: 0px;

	/*
	 * El tema padre usa estos colores en su style.css. Se redirigen a la
	 * paleta cerámica para que cualquier estilo heredado encaje.
	 */
	--wp--preset--color--color-1: var(--ce-terracotta);
	--wp--preset--color--color-2: var(--ce-gold);
	--wp--preset--color--color-4: var(--ce-navy);
	--wp--preset--color--color-6: var(--ce-cream);
	--wp--preset--color--color-7: var(--ce-rule);
	--wp--preset--color--color-9: var(--ce-paper);

	/* Ornamentos cerámicos (SVG en línea, sin peticiones externas). */
	--ce-svg-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E %3Crect width='32' height='32' fill='%23F2E8D5'/%3E %3Cpath fill='%23172D50' d='M16 4C18.6 8.6 18.6 11.4 16 16C13.4 11.4 13.4 8.6 16 4ZM16 28C13.4 23.4 13.4 20.6 16 16C18.6 20.6 18.6 23.4 16 28ZM4 16C8.6 13.4 11.4 13.4 16 16C11.4 18.6 8.6 18.6 4 16ZM28 16C23.4 18.6 20.6 18.6 16 16C20.6 13.4 23.4 13.4 28 16Z'/%3E %3Ccircle cx='16' cy='16' r='2.4' fill='%23C99A36'/%3E %3Cpath fill='%23A94D35' d='M0 0H5A5 5 0 0 1 0 5ZM32 0V5A5 5 0 0 1 27 0ZM32 32H27A5 5 0 0 1 32 27ZM0 32V27A5 5 0 0 1 5 32Z'/%3E %3Cpath d='M.25 0V32' stroke='%23172D50' stroke-opacity='.35' stroke-width='.5'/%3E %3C/svg%3E");
	--ce-svg-lattice-navy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E %3Cpath d='M32 0L64 32L32 64L0 32Z' fill='none' stroke='%23F2E8D5' stroke-opacity='.07'/%3E %3Ccircle cx='32' cy='32' r='6' fill='none' stroke='%23C99A36' stroke-opacity='.18'/%3E %3Ccircle cx='32' cy='32' r='1.6' fill='%23C99A36' fill-opacity='.35'/%3E %3Ccircle cx='0' cy='0' r='1.6' fill='%23C99A36' fill-opacity='.35'/%3E%3Ccircle cx='64' cy='0' r='1.6' fill='%23C99A36' fill-opacity='.35'/%3E %3Ccircle cx='0' cy='64' r='1.6' fill='%23C99A36' fill-opacity='.35'/%3E%3Ccircle cx='64' cy='64' r='1.6' fill='%23C99A36' fill-opacity='.35'/%3E %3C/svg%3E");
	--ce-svg-lattice-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E %3Cpath d='M32 0L64 32L32 64L0 32Z' fill='none' stroke='%23172D50' stroke-opacity='.06'/%3E %3Ccircle cx='32' cy='32' r='1.4' fill='%23172D50' fill-opacity='.12'/%3E %3C/svg%3E");
	--ce-svg-corner-tl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg transform='rotate(0 13 13)'%3E %3Cpath d='M3 23V10a7 7 0 0 1 7-7h13' fill='none' stroke='%23172D50' stroke-opacity='1' stroke-width='1.6'/%3E %3Cpath d='M10 6.5L13.5 10L10 13.5L6.5 10Z' fill='%23C99A36'/%3E %3C/g%3E%3C/svg%3E");
	--ce-svg-corner-tr: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg transform='rotate(90 13 13)'%3E %3Cpath d='M3 23V10a7 7 0 0 1 7-7h13' fill='none' stroke='%23172D50' stroke-opacity='1' stroke-width='1.6'/%3E %3Cpath d='M10 6.5L13.5 10L10 13.5L6.5 10Z' fill='%23C99A36'/%3E %3C/g%3E%3C/svg%3E");
	--ce-svg-corner-br: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg transform='rotate(180 13 13)'%3E %3Cpath d='M3 23V10a7 7 0 0 1 7-7h13' fill='none' stroke='%23172D50' stroke-opacity='1' stroke-width='1.6'/%3E %3Cpath d='M10 6.5L13.5 10L10 13.5L6.5 10Z' fill='%23C99A36'/%3E %3C/g%3E%3C/svg%3E");
	--ce-svg-corner-bl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg transform='rotate(270 13 13)'%3E %3Cpath d='M3 23V10a7 7 0 0 1 7-7h13' fill='none' stroke='%23172D50' stroke-opacity='1' stroke-width='1.6'/%3E %3Cpath d='M10 6.5L13.5 10L10 13.5L6.5 10Z' fill='%23C99A36'/%3E %3C/g%3E%3C/svg%3E");
	--ce-svg-corner-azul-tl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg transform='rotate(0 13 13)'%3E %3Cpath d='M3 23V10a7 7 0 0 1 7-7h13' fill='none' stroke='%23F2E8D5' stroke-opacity='.7' stroke-width='1.6'/%3E %3Cpath d='M10 6.5L13.5 10L10 13.5L6.5 10Z' fill='%23C99A36'/%3E %3C/g%3E%3C/svg%3E");
	--ce-svg-corner-azul-tr: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg transform='rotate(90 13 13)'%3E %3Cpath d='M3 23V10a7 7 0 0 1 7-7h13' fill='none' stroke='%23F2E8D5' stroke-opacity='.7' stroke-width='1.6'/%3E %3Cpath d='M10 6.5L13.5 10L10 13.5L6.5 10Z' fill='%23C99A36'/%3E %3C/g%3E%3C/svg%3E");
	--ce-svg-corner-azul-br: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg transform='rotate(180 13 13)'%3E %3Cpath d='M3 23V10a7 7 0 0 1 7-7h13' fill='none' stroke='%23F2E8D5' stroke-opacity='.7' stroke-width='1.6'/%3E %3Cpath d='M10 6.5L13.5 10L10 13.5L6.5 10Z' fill='%23C99A36'/%3E %3C/g%3E%3C/svg%3E");
	--ce-svg-corner-azul-bl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg transform='rotate(270 13 13)'%3E %3Cpath d='M3 23V10a7 7 0 0 1 7-7h13' fill='none' stroke='%23F2E8D5' stroke-opacity='.7' stroke-width='1.6'/%3E %3Cpath d='M10 6.5L13.5 10L10 13.5L6.5 10Z' fill='%23C99A36'/%3E %3C/g%3E%3C/svg%3E");
	--ce-svg-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 2.5L4.4 2.9C3.4 3.1 2.7 4 2.8 5C3.4 13.8 10.2 20.6 19 21.2C20 21.3 20.9 20.6 21.1 19.6L21.5 17.4C21.6 16.8 21.3 16.2 20.7 16L17 14.4C16.5 14.2 15.9 14.3 15.5 14.7L13.9 16.4C11 15 9 13 7.6 10.1L9.3 8.5C9.7 8.1 9.8 7.5 9.6 7L8 3.3C7.8 2.7 7.2 2.4 6.6 2.5Z'/%3E%3C/svg%3E");
}

.admin-bar {
	--ce-sticky-offset: 32px;
}

@media (max-width: 782px) {
	.admin-bar {
		--ce-sticky-offset: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar {
		--ce-sticky-offset: 0px;
	}
}

/* ==========================================================================
   1. Base
   ========================================================================== */

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--ce-sticky-offset) + 6.5rem);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--ce-gold);
	color: var(--ce-navy);
}

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

:where(.wp-site-blocks) a:where(:not(.wp-element-button)) {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	text-decoration-color: var(--ce-gold);
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

:where(.wp-site-blocks) a:where(:not(.wp-element-button)):hover {
	text-decoration-color: currentColor;
}

:where(.wp-site-blocks) :focus-visible {
	outline: 3px solid var(--ce-gold);
	outline-offset: 3px;
	border-radius: 2px;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	-webkit-clip-path: inset(50%);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

h1,
h2,
h3,
h4,
.wp-block-post-title {
	font-optical-sizing: auto;
	overflow-wrap: break-word;
	hyphens: manual;
}

img {
	height: auto;
}

/* ==========================================================================
   2. Botones
   ========================================================================== */

.wp-element-button,
.wp-block-button__link {
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.wp-block-button__link:active {
	transform: translateY(1px);
}

/* Botón de llamada con icono de teléfono */
.wp-block-button.is-style-telefono .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
}

.wp-block-button.is-style-telefono .wp-block-button__link::before {
	content: "";
	flex: 0 0 auto;
	width: 1.2em;
	height: 1.2em;
	background-color: currentColor;
	-webkit-mask: var(--ce-svg-phone) center / contain no-repeat;
	mask: var(--ce-svg-phone) center / contain no-repeat;
}

.wp-block-button.ce-boton-grande .wp-block-button__link {
	font-size: 1.0625rem;
	padding: 1.05em 1.75em;
}

/* Contorno: azul sobre fondos claros, crema sobre paneles azules */
.wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent;
	border-color: currentColor;
	color: var(--ce-navy);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
	background-color: var(--ce-navy);
	border-color: var(--ce-navy);
	color: var(--ce-paper) !important;
}

.is-style-panel-azul .wp-block-button.is-style-outline .wp-block-button__link,
.is-style-azulejo-azul .wp-block-button.is-style-outline .wp-block-button__link,
.ce-footer .wp-block-button.is-style-outline .wp-block-button__link {
	color: var(--ce-cream);
}

.is-style-panel-azul .wp-block-button.is-style-outline .wp-block-button__link:hover,
.is-style-azulejo-azul .wp-block-button.is-style-outline .wp-block-button__link:hover,
.ce-footer .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--ce-gold);
	border-color: var(--ce-gold);
	color: var(--ce-navy) !important;
}

/* ==========================================================================
   3. Estilos de bloque cerámicos
   ========================================================================== */

/* 3.1 Etiqueta (párrafo): rótulo corto en mayúsculas espaciadas */
p.is-style-etiqueta,
.wp-block-post-terms.is-style-etiqueta {
	display: flex;
	align-items: center;
	gap: 0.65em;
	margin-block-end: 0;
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--ce-terracotta);
}

p.is-style-etiqueta::before {
	content: "";
	flex: 0 0 auto;
	width: 0.55em;
	height: 0.55em;
	background: var(--ce-gold);
	outline: 1px solid var(--ce-navy);
	outline-offset: 2px;
	transform: rotate(45deg);
	margin-inline: 0.2em 0.25em;
}

p.is-style-etiqueta.has-text-align-center {
	justify-content: center;
}

p.is-style-etiqueta.has-text-align-center::after {
	content: "";
	flex: 0 0 auto;
	width: 0.55em;
	height: 0.55em;
	background: var(--ce-gold);
	outline: 1px solid var(--ce-navy);
	outline-offset: 2px;
	transform: rotate(45deg);
	margin-inline: 0.25em 0.2em;
}

.is-style-panel-azul p.is-style-etiqueta,
.is-style-azulejo-azul p.is-style-etiqueta,
.ce-footer p.is-style-etiqueta {
	color: var(--ce-gold);
}

.is-style-panel-azul p.is-style-etiqueta::before,
.is-style-panel-azul p.is-style-etiqueta::after,
.ce-footer p.is-style-etiqueta::before {
	outline-color: var(--ce-cream);
}

.wp-block-post-terms.is-style-etiqueta a {
	text-decoration: none;
	color: inherit;
}

/* 3.2 Marco de azulejo (grupo) */
.wp-block-group.is-style-azulejo,
.wp-block-group.is-style-azulejo-azul {
	position: relative;
	isolation: isolate;
}

.wp-block-group.is-style-azulejo::before,
.wp-block-group.is-style-azulejo-azul::before {
	content: "";
	position: absolute;
	inset: var(--ce-inset);
	z-index: -1;
	pointer-events: none;
	border: 1px solid var(--ce-rule);
	border-radius: 2px;
	background:
		var(--ce-svg-corner-tl) top left / 26px 26px no-repeat,
		var(--ce-svg-corner-tr) top right / 26px 26px no-repeat,
		var(--ce-svg-corner-br) bottom right / 26px 26px no-repeat,
		var(--ce-svg-corner-bl) bottom left / 26px 26px no-repeat;
}

.wp-block-group.is-style-azulejo-azul::before {
	border-color: rgba(201, 154, 54, 0.45);
	background:
		var(--ce-svg-corner-azul-tl) top left / 26px 26px no-repeat,
		var(--ce-svg-corner-azul-tr) top right / 26px 26px no-repeat,
		var(--ce-svg-corner-azul-br) bottom right / 26px 26px no-repeat,
		var(--ce-svg-corner-azul-bl) bottom left / 26px 26px no-repeat;
}

.wp-block-group.is-style-azulejo-azul {
	background-image: var(--ce-svg-lattice-navy);
	background-size: 64px 64px;
}

/* 3.3 Rótulo de calle (grupo): placa cerámica como las del centro de Madrid */
.wp-block-group.is-style-rotulo {
	position: relative;
	text-align: center;
	box-shadow:
		inset 0 0 0 3px var(--ce-paper),
		inset 0 0 0 4px var(--ce-gold),
		0 10px 22px -16px rgba(23, 45, 80, 0.6);
}

.wp-block-group.is-style-rotulo > * {
	margin-block: 0;
}

.ce-rotulos > .wp-block-group.is-style-rotulo {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.ce-rotulo__via {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ce-terracotta);
}

.ce-rotulo__nombre {
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.05rem, 0.8rem + 1.2vw, 1.3rem);
	overflow-wrap: normal;
	hyphens: none;
	font-weight: 600;
	line-height: 1.15;
	color: var(--ce-navy);
	text-wrap: balance;
}

/* 3.4 Panel azul con trama */
.wp-block-group.is-style-panel-azul {
	background-color: var(--ce-navy);
	background-image: var(--ce-svg-lattice-navy);
	background-size: 64px 64px;
	color: var(--ce-cream);
}

/* 3.5 Cenefa de azulejos (separador) */
.wp-block-separator.is-style-cenefa {
	height: 26px !important;
	border: 0 !important;
	opacity: 1;
	width: 100% !important;
	background:
		linear-gradient(var(--ce-navy), var(--ce-navy)) top / 100% 2px no-repeat,
		linear-gradient(var(--ce-navy), var(--ce-navy)) bottom / 100% 2px no-repeat,
		var(--ce-svg-tile) center / 22px 22px repeat-x;
	background-color: var(--ce-cream) !important;
}

.wp-block-separator.ce-cenefa-borde {
	margin-block: 0 !important;
}

/* 3.6 Marco cerámico (imagen y destacada) */
.wp-block-image.is-style-rajola img,
.wp-block-post-featured-image.is-style-rajola img {
	border: 3px solid var(--ce-navy);
	border-radius: var(--ce-radius);
	padding: 7px;
	background: var(--ce-paper);
	outline: 1px solid var(--ce-gold);
	outline-offset: -6px;
	box-shadow: 0 1px 0 rgba(23, 45, 80, 0.1), 0 22px 40px -26px rgba(23, 45, 80, 0.55);
}

.wp-block-post-featured-image.is-style-rajola {
	overflow: visible;
}

/* La rajola de la llave ya trae su propio marco: sin marco extra */
.wp-block-image.ce-foto-propia img[src*="clau-cavall-rajola"],
.ce-foto-pagina--por-defecto img {
	padding: 0;
	border: 0;
	outline: 0;
	background: none;
	aspect-ratio: 1;
	object-fit: contain;
	box-shadow: 0 24px 44px -28px rgba(23, 45, 80, 0.6);
}

.ce-foto-pagina--por-defecto {
	max-width: 22rem;
	margin-inline: auto;
}

/* 3.7 Listas: viñetas de rombo y pasos numerados */
.wp-block-list.is-style-rombos {
	list-style: none;
	padding-inline-start: 0;
}

.wp-block-list.is-style-rombos > li {
	position: relative;
	padding-inline-start: 1.6em;
	margin-block: 0.35em;
}

.wp-block-list.is-style-rombos > li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0.2em;
	top: 0.55em;
	width: 0.5em;
	height: 0.5em;
	background: var(--ce-gold);
	outline: 1px solid currentColor;
	outline-offset: 2px;
	transform: rotate(45deg);
}

.wp-block-list.is-style-pasos {
	list-style: none;
	counter-reset: ce-paso;
	padding-inline-start: 0;
	display: grid;
	gap: 1.1rem;
}

.wp-block-list.is-style-pasos > li {
	counter-increment: ce-paso;
	position: relative;
	padding-inline-start: 3.6rem;
	min-height: 2.6rem;
}

.wp-block-list.is-style-pasos > li::before {
	content: counter(ce-paso);
	position: absolute;
	inset-inline-start: 0;
	top: -0.1rem;
	display: grid;
	place-items: center;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: var(--ce-radius);
	background: var(--ce-navy);
	color: var(--ce-cream);
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 1.2rem;
	font-weight: 600;
	box-shadow: inset 0 0 0 3px var(--ce-navy), inset 0 0 0 4px var(--ce-gold);
}

.wp-block-list.is-style-pasos > li strong:first-child {
	display: block;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--ce-navy);
}

/* 3.8 Enlace con flecha */
p.ce-enlace-flecha a {
	font-weight: 700;
	text-decoration: none;
	border-bottom: 2px solid var(--ce-gold);
	padding-bottom: 0.1em;
}

p.ce-enlace-flecha a::after {
	content: " →";
	display: inline-block;
	transition: transform 0.2s ease;
}

p.ce-enlace-flecha a:hover::after {
	transform: translateX(3px);
}

/* 3.9 Número de servicio en azulejo */
p.ce-numero {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	margin: 0;
	border-radius: var(--ce-radius);
	background: var(--ce-navy);
	color: var(--ce-cream);
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 1.15rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	box-shadow: inset 0 0 0 3px var(--ce-navy), inset 0 0 0 4px var(--ce-gold);
}

.is-style-azulejo-azul p.ce-numero {
	background: var(--ce-gold);
	color: var(--ce-navy);
	box-shadow: inset 0 0 0 3px var(--ce-gold), inset 0 0 0 4px var(--ce-navy);
}

/* ==========================================================================
   4. Cabecera
   ========================================================================== */

header.wp-block-template-part {
	position: sticky;
	top: calc(var(--ce-sticky-offset) - var(--ce-strip-h));
	z-index: 100;
}

.ce-topbar {
	height: var(--ce-strip-h);
	display: flex;
	align-items: center;
	font-size: 0.8125rem;
	letter-spacing: 0.03em;
	overflow: hidden;
}

.ce-topbar__inner {
	width: 100%;
}

.ce-topbar p {
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ce-topbar a {
	text-decoration: none;
}

.ce-topbar__tel a strong {
	color: var(--ce-gold);
	letter-spacing: 0.06em;
}

.ce-header__bar {
	border-bottom: 1px solid var(--ce-rule);
	box-shadow: 0 10px 24px -22px rgba(23, 45, 80, 0.55);
	position: relative;
}

.ce-header__bar::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -4px;
	height: 3px;
	background: linear-gradient(90deg, var(--ce-navy) 0 33.33%, var(--ce-gold) 33.33% 66.66%, var(--ce-terracotta) 66.66% 100%);
	opacity: 0.9;
}

.ce-marca {
	flex-shrink: 0;
}

.ce-marca .wp-block-image {
	margin: 0;
}

.ce-marca__emblema img {
	display: block;
	width: 108px !important;
	height: auto;
}

p.ce-marca__nombre {
	margin: 0;
	font-family: var(--wp--preset--font-family--fraunces);
	line-height: 1;
	text-transform: uppercase;
}

p.ce-marca__nombre a {
	display: block;
	color: var(--ce-navy);
	text-decoration: none;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.34em;
}

p.ce-marca__nombre strong {
	display: block;
	margin-top: 0.2rem;
	font-size: 1.55rem;
	font-weight: 700;
	letter-spacing: 0.035em;
}

p.ce-marca__nombre a:hover {
	color: var(--ce-terracotta);
}

.ce-header__acciones {
	flex-shrink: 1;
	min-width: 0;
}

.ce-header__llamar {
	flex-shrink: 0;
	gap: 0.5rem;
}

.ce-header__llamar .wp-block-button__link {
	white-space: nowrap;
	font-size: 0.875rem;
	padding: 0.85em 1.2em;
}

/* Navegación */
.ce-nav .wp-block-navigation-item__content {
	padding: 0.5rem 0.15rem;
	position: relative;
}

@media (min-width: 1080px) {
	.ce-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
		content: "";
		position: absolute;
		left: 0.15rem;
		right: 0.15rem;
		bottom: 0.2rem;
		height: 2px;
		background: var(--ce-gold);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.25s ease;
	}

	.ce-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover::after,
	.ce-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[aria-current="page"]::after {
		transform: scaleX(1);
	}

	.ce-nav .wp-block-navigation__submenu-container {
		background: var(--ce-paper) !important;
		border: 2px solid var(--ce-navy) !important;
		border-radius: var(--ce-radius) !important;
		box-shadow: 0 18px 32px -18px rgba(23, 45, 80, 0.55) !important;
		min-width: 19rem !important;
		padding: 0.4rem !important;
		text-transform: none;
		letter-spacing: 0;
		font-size: 0.95rem;
	}

	.ce-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 0.7rem 0.85rem !important;
		border-radius: 2px;
		color: var(--ce-navy);
	}

	.ce-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
		background: var(--ce-cream);
		color: var(--ce-terracotta);
	}

	.ce-nav .has-child li::after {
		display: none !important;
	}
}

/* Menú desplegable (móvil y tableta) */
.ce-nav .wp-block-navigation__responsive-container-open {
	width: 2.75rem;
	height: 2.75rem;
	place-items: center;
	border: 2px solid var(--ce-navy);
	border-radius: var(--ce-radius);
	color: var(--ce-navy);
}

.ce-nav .wp-block-navigation__responsive-container.is-menu-open {
	background-image: var(--ce-svg-lattice-navy);
	background-size: 64px 64px;
	padding: calc(var(--ce-sticky-offset) + 1.5rem) 1.5rem 2rem;
}

.ce-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3.5rem;
	gap: 1.25rem;
}

.ce-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 1.1rem;
}

.ce-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 1.6rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-transform: none;
	padding: 0.15rem 0;
}

.ce-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	padding: 0.5rem 0 0 1rem !important;
	margin: 0 !important;
	border-left: 2px solid var(--ce-gold) !important;
	gap: 0.6rem;
}

.ce-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: 1.05rem;
	font-weight: 500;
}

.ce-nav .wp-block-navigation__responsive-container-close {
	width: 2.75rem;
	height: 2.75rem;
	display: grid;
	place-items: center;
	border: 2px solid var(--ce-cream);
	border-radius: var(--ce-radius);
}

/* El menú completo solo cabe a partir de 1080 px: por debajo, botón de menú */
@media (max-width: 599px) {
	.ce-nav .wp-block-navigation__responsive-container-open {
		display: grid;
	}
}

@media (min-width: 600px) and (max-width: 1079px) {
	.ce-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: grid;
	}

	.ce-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

.ce-solo-movil {
	display: none !important;
}

@media (max-width: 1079px) {
	.ce-solo-escritorio {
		display: none !important;
	}

	.ce-solo-movil {
		display: block !important;
	}

	.ce-header__acciones .ce-nav {
		order: 2;
	}
}

@media (max-width: 782px) {
	.ce-topbar__lema {
		display: none;
	}

	.ce-topbar__inner {
		justify-content: center !important;
	}
}

@media (max-width: 599px) {
	.ce-marca__emblema img {
		width: 80px !important;
	}

	p.ce-marca__nombre a {
		font-size: 0.6rem;
		letter-spacing: 0.28em;
	}

	p.ce-marca__nombre strong {
		font-size: 1.12rem;
		letter-spacing: 0.02em;
	}

	.ce-header__llamar .wp-block-button__link {
		padding: 0.8em 0.95em;
	}
}

@media (max-width: 419px) {
	p.ce-marca__nombre {
		display: none;
	}
}

/* ==========================================================================
   5. Secciones de portada
   ========================================================================== */

/* Fondos con trama sutil */
.ce-hero,
.ce-cabecera-pagina {
	background-image:
		radial-gradient(ellipse at 85% 40%, rgba(250, 247, 240, 0.9) 0%, rgba(250, 247, 240, 0) 60%),
		var(--ce-svg-lattice-light);
	background-size: auto, 64px 64px;
}

.ce-hero__titulo {
	font-size: clamp(2.375rem, 1.4rem + 3.1vw, 3.875rem);
	letter-spacing: -0.018em;
	text-wrap: balance;
}

.ce-hero__nota {
	color: var(--ce-ink);
	opacity: 0.88;
}

.ce-hero__marco {
	max-width: 36rem;
	margin-inline: auto;
}

.ce-hero__imagen img {
	aspect-ratio: 760 / 530;
	width: 100%;
}

.ce-hero__marco .wp-block-image {
	margin: 0;
}

/* Franja de confianza */
.ce-confianza__item {
	position: relative;
	padding-inline-start: 1.6rem;
}

.ce-confianza__item::before {
	content: "";
	position: absolute;
	inset-inline-start: 0.15rem;
	top: 0.45rem;
	width: 0.6rem;
	height: 0.6rem;
	background: var(--ce-gold);
	outline: 1px solid var(--ce-cream);
	outline-offset: 2px;
	transform: rotate(45deg);
}

.ce-confianza__item p {
	margin: 0;
}

p.ce-confianza__titulo {
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--ce-paper);
}

.ce-confianza__item a {
	color: var(--ce-gold);
	font-weight: 700;
}

/* Servicios */
.ce-servicio__azulejo > * {
	margin-block: 0;
}

.ce-servicio__azulejo .ce-enlace-flecha {
	margin-top: auto !important;
	padding-top: 0.5rem;
}

.ce-servicio__azulejo h3 {
	font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.6rem);
}

@media (min-width: 782px) {
	.ce-servicio--destacado {
		transform: translateY(-0.75rem);
	}
}

.is-style-azulejo-azul .wp-block-list.is-style-rombos > li::before {
	outline-color: var(--ce-cream);
}

/* Cómo te ayudamos */
.ce-ayuda__imagen .wp-block-image {
	max-width: 30rem;
	margin-inline: auto;
}

/* Barrio */
.ce-rotulos .is-style-rotulo:nth-child(3n + 2) {
	transform: rotate(-0.6deg);
}

.ce-rotulos .is-style-rotulo:nth-child(4n) {
	transform: rotate(0.5deg);
}

/* ==========================================================================
   6. Preguntas frecuentes (microdata en bloque HTML)
   ========================================================================== */

.ce-faq {
	border-top: 2px solid var(--ce-navy);
}

.ce-faq__item {
	border-bottom: 1px solid var(--ce-rule);
}

.ce-faq__pregunta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.15rem 0;
	cursor: pointer;
	list-style: none;
}

.ce-faq__pregunta::-webkit-details-marker {
	display: none;
}

.ce-faq__pregunta h3 {
	margin: 0;
	font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem);
	line-height: 1.3;
}

.ce-faq__pregunta::after {
	content: "+";
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 2.1rem;
	height: 2.1rem;
	border-radius: var(--ce-radius);
	background: var(--ce-navy);
	color: var(--ce-cream);
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: 1.35rem;
	font-weight: 500;
	line-height: 1;
	box-shadow: inset 0 0 0 3px var(--ce-navy), inset 0 0 0 4px var(--ce-gold);
	transition: background-color 0.2s ease;
}

.ce-faq__item[open] > .ce-faq__pregunta::after {
	content: "−";
	background: var(--ce-terracotta);
	box-shadow: inset 0 0 0 3px var(--ce-terracotta), inset 0 0 0 4px var(--ce-cream);
}

.ce-faq__pregunta:hover h3 {
	color: var(--ce-terracotta);
}

.ce-faq__respuesta {
	padding: 0 3.25rem 1.35rem 0;
}

.ce-faq__respuesta p {
	margin: 0;
}

/* ==========================================================================
   7. Llamada a la acción
   ========================================================================== */

.ce-cta__azulejo {
	text-align: center;
}

.ce-cta__azulejo::before {
	inset: 10px !important;
}

.ce-cta h2 {
	text-wrap: balance;
}

/* ==========================================================================
   8. Páginas interiores
   ========================================================================== */

.ce-cabecera-pagina .wp-block-post-title {
	font-size: clamp(2.125rem, 1.4rem + 2.6vw, 3.5rem);
	line-height: 1.06;
	text-wrap: balance;
}

.ce-cabecera-pagina--sencilla .wp-block-post-title,
.ce-cabecera-pagina--sencilla .wp-block-query-title,
.ce-cabecera-pagina--sencilla h1 {
	font-size: clamp(2rem, 1.4rem + 2vw, 3rem);
}

.ce-cabecera-pagina__lema {
	margin-top: 0.75rem;
}

.ce-foto-pagina img {
	width: 100%;
}

.ce-contenido--legal h2 {
	font-size: var(--wp--preset--font-size--x-large);
	margin-top: var(--wp--preset--spacing--50);
}

.ce-contenido--legal h3 {
	font-size: var(--wp--preset--font-size--large);
}

/* Bloque de datos (aviso legal, contacto) */
.wp-block-list.ce-datos {
	list-style: none;
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--ce-rule);
}

.wp-block-list.ce-datos > li {
	padding: 0.6rem 0;
	border-bottom: 1px solid var(--ce-rule);
}

.is-style-azulejo-azul .wp-block-list.ce-datos,
.is-style-azulejo-azul .wp-block-list.ce-datos > li {
	border-color: var(--ce-rule-light);
}

/* Teléfono grande */
p.ce-telefono-grande {
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(2.25rem, 1.6rem + 2.5vw, 3.25rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.01em;
}

p.ce-telefono-grande a {
	text-decoration: none;
	color: inherit;
}

/* Aviso destacado */
.ce-aviso {
	border-left: 4px solid var(--ce-terracotta);
}

/* Blog */
.ce-tarjeta .wp-block-post-featured-image {
	margin: 0;
}

.ce-tarjeta .wp-block-post-featured-image img {
	border-radius: 2px;
}

.ce-tarjeta .wp-block-post-title a {
	color: var(--ce-navy);
}

.ce-tarjeta .wp-block-post-excerpt__more-link {
	font-weight: 700;
}

.ce-navegacion-entradas a {
	font-weight: 700;
}

/* ==========================================================================
   9. Pie de página
   ========================================================================== */

.ce-footer {
	background-image: var(--ce-svg-lattice-navy);
	background-size: 64px 64px;
	position: relative;
}

.ce-footer::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 12px;
	background: var(--ce-svg-tile) center / 12px 12px repeat-x;
}

.ce-footer__cta h2 {
	margin: 0;
	font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem);
	max-width: 24ch;
	text-wrap: balance;
}

.ce-footer h2.ce-footer__titulo {
	font-family: var(--wp--preset--font-family--dm-sans);
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ce-gold);
	margin-bottom: 0.9rem;
}

.ce-footer .wp-block-list.ce-footer__lista,
.ce-footer .wp-block-list.ce-footer__legal {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ce-footer__lista > li {
	margin-block: 0.45rem;
}

.ce-footer__lista a {
	text-decoration: none;
}

.ce-footer__legal > li {
	margin-block: 0.35rem;
	line-height: 1.5;
}

.ce-footer__legal strong {
	color: var(--ce-paper);
}

.ce-footer__placa {
	max-width: 19rem;
	padding: 0.75rem !important;
}

.ce-footer__placa .wp-block-image {
	margin: 0;
}

.ce-footer__placa img {
	aspect-ratio: 760 / 530;
	width: 100%;
}

.ce-footer__base {
	border-top: 1px solid var(--ce-rule-light);
	padding-top: var(--wp--preset--spacing--30);
}

.ce-footer__base p {
	margin: 0;
	opacity: 0.85;
}

.ce-footer__base a strong {
	color: var(--ce-gold);
}

/* ==========================================================================
   10. 404
   ========================================================================== */

.ce-404__rotulo {
	max-width: 22rem;
	margin-inline: auto !important;
	padding: 1.25rem 1.5rem !important;
	transform: rotate(-1.2deg);
}

.ce-404__rotulo .ce-rotulo__nombre {
	font-size: clamp(2rem, 1.5rem + 2vw, 2.75rem);
}

/* ==========================================================================
   11. Ajustes móviles generales
   ========================================================================== */

@media (max-width: 781px) {
	.ce-hero .wp-block-buttons,
	.ce-cabecera-pagina .wp-block-buttons {
		flex-direction: column;
		align-items: stretch;
	}

	.ce-hero .wp-block-button,
	.ce-cabecera-pagina .wp-block-button {
		width: 100%;
	}

	.ce-hero .wp-block-button__link,
	.ce-cabecera-pagina .wp-block-button__link {
		width: 100%;
	}

	.ce-hero__marco {
		max-width: 26rem;
	}

	.ce-faq__respuesta {
		padding-right: 0;
	}

	.wp-block-button.ce-boton-grande .wp-block-button__link,
	.ce-hero .wp-block-button__link,
	.ce-cabecera-pagina .wp-block-button__link {
		font-size: 0.95rem;
		letter-spacing: 0.035em;
		padding: 1em 1.1em;
		white-space: nowrap;
	}

	.wp-block-button.is-style-telefono .wp-block-button__link {
		white-space: nowrap;
		letter-spacing: 0.03em;
		padding-inline: 1.1em;
	}

	.ce-foto-pagina--por-defecto {
		max-width: 13rem;
	}

	.ce-rotulos > .wp-block-group.is-style-rotulo {
		padding-inline: 0.5rem !important;
	}

	.ce-footer__placa {
		max-width: 15rem;
	}

	.ce-footer__cta .wp-block-buttons,
	.ce-footer__cta .wp-block-button,
	.ce-footer__cta .wp-block-button__link {
		width: 100%;
	}
}

/* ==========================================================================
   12. Editor
   ========================================================================== */

.editor-styles-wrapper header.wp-block-template-part,
.block-editor-iframe__body header.wp-block-template-part {
	position: relative;
	top: auto;
}

.editor-styles-wrapper .ce-solo-movil {
	display: none !important;
}
