/*
Theme Name: San Román de los Montes
Description: Tema de bloques nativo para la web del Ayuntamiento de San Román de los Montes. Identidad «Piedra y Sierra». Sin constructores ni plugins: todo se edita desde el Editor del sitio.
Version: 2.3.1
Requires at least: 6.9
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: sanroman
*/

/* ---------- Básicos ---------- */
.antetitulo {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--oro-texto);
}
.antetitulo--claro { color: #f0c98a; }

:where(.wp-site-blocks) :focus-visible {
	outline: 3px solid var(--wp--preset--color--rojo);
	outline-offset: 2px;
}

/* Palabras largas en títulos grandes (p. ej. una búsqueda): se parten en vez de salirse en el móvil */
h1, h2 { overflow-wrap: break-word; hyphens: auto; }

/* Cabecera, contenido y pie van pegados */
.wp-site-blocks > * { margin-block-start: 0; }

/* ---------- Cabecera ---------- */
.barra-superior p { margin: 0; }
.barra-superior a { color: #fff; text-decoration: none; }
.barra-superior a:hover { text-decoration: underline; }
.cabecera .wp-block-navigation a { text-decoration: none; }
.cabecera .wp-block-navigation a:hover { color: var(--wp--preset--color--rojo); }
.cabecera .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--linea) !important;
	border-radius: 8px;
	padding: 0.5rem 0;
	box-shadow: 0 8px 24px rgb(30 42 47 / 0.12);
}
.cabecera .wp-block-navigation__submenu-container a { padding: 0.5rem 1.25rem !important; font-weight: 500; }
@media (max-width: 781px) {
	.barra-superior p:first-child { display: none; }
}

/* ---------- Estilos de bloque propios ---------- */
.is-style-tarjeta {
	position: relative;
	background: var(--wp--preset--color--blanco);
	border: 1px solid var(--wp--preset--color--linea);
	border-radius: 10px;
	padding: 1.375rem;
	overflow: hidden;
	transition: border-color 0.15s ease, transform 0.15s ease;
}
.is-style-tarjeta:has(a):hover { border-color: var(--wp--preset--color--rojo); }

.wp-block-button.is-style-pildora .wp-block-button__link,
.is-style-filtros a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 1rem;
	border: 1px solid #bdb7ad;
	border-radius: 999px;
	background: var(--wp--preset--color--blanco);
	color: var(--wp--preset--color--pizarra);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
}
.wp-block-button.is-style-pildora .wp-block-button__link:hover,
.is-style-filtros a:hover,
.is-style-filtros .current-cat a {
	background: var(--wp--preset--color--pizarra);
	border-color: var(--wp--preset--color--pizarra);
	color: #fff;
}
.is-style-filtros {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ---------- Portada: bienvenida ---------- */
.bienvenida h1 { margin-block: 0.5rem 0.75rem; }
.buscador-portada { max-width: 34rem; }
.buscador-portada .wp-block-search__label { font-weight: 600; }
.buscador-portada .wp-block-search__input {
	min-height: 3rem;
	padding: 0 1rem;
	border: 1px solid #bdb7ad;
	border-radius: 6px;
	background: #fff;
}
.buscador-portada .wp-block-search__button {
	min-height: 3rem;
	margin-left: 0.5rem;
	border-radius: 6px;
	background: var(--wp--preset--color--pizarra);
	color: #fff;
	font-weight: 600;
}
.mas-buscado p { margin: 0; }
.foto-portada img { width: 100%; height: clamp(16rem, 34vw, 27.5rem); object-fit: cover; object-position: 50% 30%; }
.foto-portada { position: relative; }
.foto-portada figcaption {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	margin: 0;
	padding: 0.375rem 0.75rem;
	border-radius: 4px;
	background: rgb(30 42 47 / 0.82);
	color: #fff;
	font-size: var(--wp--preset--font-size--x-small);
}

/* ---------- Canal de WhatsApp ---------- */
.franja-whatsapp h2 { margin-block: 0.5rem 0.75rem; font-size: clamp(1.75rem, 3vw, 2.375rem); }
.pasos {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem 1.5rem;
	list-style: none;
	counter-reset: paso;
	margin: 1.5rem 0;
	padding: 0;
}
.pasos li { display: flex; align-items: center; gap: 0.625rem; counter-increment: paso; }
.pasos li::before {
	content: counter(paso);
	display: grid;
	place-items: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	background: #fff;
	color: var(--wp--preset--color--whatsapp);
	font-weight: 700;
	font-size: 0.875rem;
}
.boton-canal .wp-block-button__link { font-size: var(--wp--preset--font-size--large); font-weight: 700; }
.qr img { background: #fff; padding: 0.875rem; }
.qr figcaption { color: #fff; text-align: center; font-weight: 600; }
@media (max-width: 781px) {
	.columna-qr { display: none; } /* En el móvil el QR no sirve: basta el botón */
	.franja-whatsapp { padding: 1.5rem 1.25rem !important; }
	.boton-canal, .boton-canal .wp-block-button__link { width: 100%; }
}

/* ---------- Accesos rápidos ---------- */
.acceso { gap: 1rem; }
.acceso .icono { flex: 0 0 48px; margin: 0; }
.acceso .icono img { background: var(--wp--preset--color--rojo-claro); padding: 0.625rem; box-sizing: border-box; height: 48px; }
.acceso h3 { margin: 0; }
.acceso h3 a { color: var(--wp--preset--color--pizarra); text-decoration: none; }
.acceso h3 a::after { content: ""; position: absolute; inset: 0; } /* toda la tarjeta es clicable */
.acceso p { margin: 0; }
.acceso:hover { transform: translateY(-2px); }

/* ---------- Urgencias ---------- */
.urgencias p { margin: 0; }
.urgencias a { color: #fff; text-decoration: none; }
.urgencias a span { color: #c9ced0; }
.urgencias strong { font-size: 1.1875rem; }
.urgencias__titulo {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #f0c98a;
}

/* ---------- Carteles de subvenciones ---------- */
.cartel img { display: block; width: 100%; height: auto; }
.cartel__texto {
	margin: 0;
	padding: 0.875rem 1.125rem 1.125rem;
	border-top: 1px solid var(--wp--preset--color--linea);
	color: var(--wp--preset--color--gris);
}
.cartel__texto strong { color: var(--wp--preset--color--pizarra); }

/* ---------- Bandomóvil ---------- */
.bandomovil__app { display: flex; flex-wrap: wrap; align-items: center; gap: 0.375rem 0.625rem; margin: 0.5rem 0 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--gris); }
.bandomovil__app a { font-weight: 600; }
.bandomovil__sello { padding: 0.1875rem 0.625rem; border-radius: 999px; background: var(--wp--preset--color--granito); color: var(--wp--preset--color--pizarra); font-weight: 600; }
.bandomovil__lista { list-style: none; margin: 0; padding: 0; }
.bandomovil__aviso { display: flex; gap: 1.25rem; padding: 1.25rem 0; border-bottom: 1px solid var(--wp--preset--color--linea); }
.bandomovil__fecha { flex: 0 0 4rem; text-align: center; font-family: var(--wp--preset--font-family--titulares); line-height: 1.1; }
.bandomovil__dia { display: block; font-size: 1.75rem; font-weight: 600; color: var(--wp--preset--color--rojo); }
.bandomovil__mes { font-size: 0.8125rem; text-transform: uppercase; color: var(--wp--preset--color--gris); }
.bandomovil__categoria { display: block; margin-bottom: 0.25rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--oro-texto); }
.bandomovil__titulo { display: block; color: var(--wp--preset--color--pizarra); font-weight: 600; font-size: 1.1875rem; line-height: 1.35; text-decoration: none; }
.bandomovil__titulo:hover { color: var(--wp--preset--color--rojo); text-decoration: underline; }
.bandomovil__pdf { display: inline-block; margin-top: 0.25rem; font-size: var(--wp--preset--font-size--small); }

/* ---------- Calendario de fiestas ---------- */
.calendario-fiestas { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--wp--preset--color--linea); }
.calendario-fiestas li { position: relative; padding: 1rem 0 1rem 1.5rem; font-weight: 600; font-size: 1.125rem; line-height: 1.4; }
.calendario-fiestas li::before { content: ""; position: absolute; left: -7px; top: 1.5rem; width: 12px; height: 12px; border-radius: 50%; background: var(--wp--preset--color--oro); }
.calendario-fiestas li.es-patronal::before { background: var(--wp--preset--color--rojo); }
.calendario-fiestas strong { display: block; font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--oro-texto); }
.calendario-fiestas span { font-weight: 400; font-size: 0.9375rem; color: var(--wp--preset--color--gris); }

/* ---------- Noticias ---------- */
.noticia-destacada .wp-block-post,
.noticia-mini {
	background: #fff;
	border: 1px solid var(--wp--preset--color--linea);
	border-radius: 12px;
	overflow: hidden;
}
.noticia-mini { padding: 1rem; }
.noticia-mini .wp-block-post-featured-image { flex: 0 0 104px; margin: 0; }
.wp-block-post-title a { color: var(--wp--preset--color--pizarra); text-decoration: none; }
.wp-block-post-title a:hover { color: var(--wp--preset--color--rojo); text-decoration: underline; }
.noticia__cuerpo .wp-block-post-title { margin: 0; }
.etiqueta-categoria a {
	display: inline-block;
	padding: 0.125rem 0.625rem;
	border-radius: 999px;
	background: var(--wp--preset--color--rojo-claro);
	color: var(--wp--preset--color--rojo);
	text-decoration: none;
}
.etiqueta-categoria .wp-block-post-terms__separator { display: none; }
.categoria-texto a { color: var(--wp--preset--color--oro-texto); text-decoration: none; }
.wp-block-post-featured-image:not(:has(img)) { display: none; }
.tarjeta-noticia > :not(.wp-block-post-featured-image) { margin-inline: 1.25rem; }
.tarjeta-noticia .wp-block-post-featured-image { margin: 0 0 0.75rem; }
.tarjeta-noticia__titulo { margin-top: 0.25rem; }

/* ---------- Carteles verticales ----------
   Casi todo lo que publica el Ayuntamiento son carteles verticales: se muestran enteros, sin recortar. */
.wp-block-post-featured-image.cartel { background: var(--wp--preset--color--granito); }

/* Portada: la destacada, con el cartel a la izquierda y el texto a la derecha */
.noticia-destacada .wp-block-post-featured-image { margin: 0; background: var(--wp--preset--color--granito); }
.noticia-destacada .wp-block-post-featured-image img { aspect-ratio: 3 / 4 !important; height: auto !important; object-fit: contain !important; }
@media (min-width: 600px) {
	.noticia-destacada .wp-block-post:has(.wp-block-post-featured-image img) { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr); align-items: start; }
}
@media (max-width: 599px) {
	.noticia-destacada .wp-block-post-featured-image img { aspect-ratio: auto !important; width: 100% !important; height: 22rem !important; }
}
/* Portada: miniaturas verticales que enseñan la cabecera del cartel */
.noticia-mini .wp-block-post-featured-image { flex: 0 0 72px; width: 72px !important; height: 96px !important; }
.noticia-mini .wp-block-post-featured-image img { width: 72px !important; height: 96px !important; object-fit: cover; object-position: top; }

/* Noticia: texto a la izquierda y cartel completo a la derecha */
.noticia-con-cartel { display: grid; gap: var(--wp--preset--spacing--50); }
.noticia-con-cartel > .noticia-texto { width: 100%; max-width: 760px; margin-inline: auto; }
.noticia-texto > * + * { margin-block-start: 1rem; }
.noticia-cartel { margin: 0; width: 100%; max-width: 22rem; justify-self: center; }
.noticia-cartel img { display: block; width: 100%; height: auto; border-radius: 10px; box-shadow: 0 6px 24px rgba(30, 42, 47, 0.12); }
.noticia-cartel__ampliar { margin-top: 0.5rem; text-align: center; font-size: var(--wp--preset--font-size--small); }
.noticia-cartel__ampliar a { display: inline-flex; align-items: center; min-height: 44px; }
@media (min-width: 900px) {
	.noticia-con-cartel:has(.noticia-cartel img) { grid-template-columns: minmax(0, 1fr) 22rem; align-items: start; }
	.noticia-con-cartel:has(.noticia-cartel img) > .noticia-texto { margin-inline: 0; }
	.noticia-cartel { position: sticky; top: 1.5rem; }
}

/* ---------- Conoce San Román ---------- */
.ficha-foto > :not(.wp-block-image) { margin-inline: 1.25rem; }
.ficha-foto .wp-block-image { margin: 0 0 0.75rem; }
.ficha-foto__titulo { margin-bottom: 0; }
.ficha-foto__titulo a { color: var(--wp--preset--color--pizarra); text-decoration: none; }
.ficha-foto__titulo a::after { content: ""; position: absolute; inset: 0; }
.ficha-foto__texto { margin-top: 0.25rem; }

/* ---------- Cita ---------- */
.cita-alcaldesa { border: 0; margin: 0; padding: 0; text-align: center; }
.cita-alcaldesa::before { content: "“"; display: block; font-family: var(--wp--preset--font-family--titulares); font-size: 4rem; line-height: 1; color: var(--wp--preset--color--oro); }
.cita-alcaldesa cite { display: block; margin-top: 1rem; font-family: var(--wp--preset--font-family--texto); font-size: var(--wp--preset--font-size--medium); font-style: normal; color: var(--wp--preset--color--gris); }

/* La alcaldesa «hablando» sobre el rojo del escudo */
.columna-alcaldesa { align-self: flex-end; }
.foto-alcaldesa { margin: 0; line-height: 0; }
.foto-alcaldesa img { display: block; filter: drop-shadow(0 10px 24px rgb(0 0 0 / 0.25)); }
.columna-bocadillo { padding-bottom: var(--wp--preset--spacing--50); }
.bocadillo {
	position: relative;
	margin: 0;
	padding: 2rem 2.25rem;
	border: 0;
	border-radius: 28px;
	background: #fff;
	color: var(--wp--preset--color--pizarra);
	box-shadow: 0 12px 32px rgb(0 0 0 / 0.18);
}
.bocadillo::before {
	content: "“";
	position: absolute;
	top: -0.35em;
	left: 1.5rem;
	font-family: var(--wp--preset--font-family--titulares);
	font-size: 5rem;
	line-height: 1;
	color: var(--wp--preset--color--oro);
}
/* El pico del bocadillo apunta a la alcaldesa */
.bocadillo::after {
	content: "";
	position: absolute;
	left: -22px;
	bottom: 2.5rem;
	border-style: solid;
	border-width: 14px 24px 14px 0;
	border-color: transparent #fff transparent transparent;
}
.bocadillo p { margin: 0; font-family: var(--wp--preset--font-family--titulares); font-size: clamp(1.375rem, 2.4vw, 1.875rem); line-height: 1.35; }
.firma-alcaldesa { margin-top: 1.25rem; color: #f6dcdd; }
.firma-alcaldesa strong { color: #fff; }
.firma-alcaldesa a { color: #fff; font-weight: 600; text-decoration-thickness: 1px; }
.firma-alcaldesa a:hover { color: #fff; text-decoration-thickness: 2px; }
@media (max-width: 781px) {
	/* En el móvil: primero lo que dice, debajo ella */
	.franja-cita .wp-block-columns { flex-direction: column-reverse; }
	.columna-bocadillo { padding-bottom: 1.5rem; }
	.bocadillo::after { left: 50%; bottom: -22px; transform: translateX(-50%); border-width: 24px 14px 0 14px; border-color: #fff transparent transparent transparent; }
	.foto-alcaldesa img { width: 240px !important; }
}

/* ---------- Energía ---------- */
.sol { margin: 0; }
.sol img { filter: drop-shadow(0 6px 18px rgb(242 183 5 / 0.35)); }
@media (max-width: 781px) {
	.columna-sol .sol img { width: 140px !important; }
	.franja-energia .wp-block-buttons { justify-content: flex-start; }
}

/* ---------- Teléfonos ---------- */
.saltos-telefonos { margin-bottom: 2rem; }
.grupo-telefonos { scroll-margin-top: 1rem; }
.ficha-telefono { gap: 1rem; padding: 1rem 1.125rem !important; }
.ficha-telefono p { margin: 0; }
.ficha-telefono .wp-block-buttons { flex: 0 0 auto; }
.ficha-telefono .wp-block-button__link { padding: 0.625rem 1rem; font-size: var(--wp--preset--font-size--small); }

/* ---------- Búsqueda: atajos, Sede y transparencia ---------- */
.bloque-busqueda { margin: 1.5rem 0 1rem; padding: 1.25rem; background: var(--wp--preset--color--granito); border-radius: 10px; }
.bloque-busqueda__titulo { margin: 0 0 0.75rem; font-family: var(--wp--preset--font-family--texto); font-size: var(--wp--preset--font-size--small); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--oro-texto); }
.bloque-busqueda ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
.bloque-busqueda li a { display: flex; flex-direction: column; gap: 0.25rem; min-height: 44px; height: 100%; box-sizing: border-box; padding: 1rem 1.125rem; background: var(--wp--preset--color--blanco); border: 1px solid var(--wp--preset--color--linea); border-radius: 10px; text-decoration: none; color: var(--wp--preset--color--pizarra); }
.bloque-busqueda li a:hover, .bloque-busqueda li a:focus-visible { border-color: var(--wp--preset--color--rojo); }
.bloque-busqueda strong { color: var(--wp--preset--color--rojo); font-size: var(--wp--preset--font-size--medium); }
.bloque-busqueda span { color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--small); }
.bloque-busqueda small { margin-top: auto; padding-top: 0.25rem; color: var(--wp--preset--color--oro-texto); font-size: var(--wp--preset--font-size--x-small); font-weight: 600; }
.bloque-busqueda__todo { margin: 0.875rem 0 0; font-size: var(--wp--preset--font-size--small); }
.bloque-busqueda__todo a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.titulo-en-esta-web { margin-top: 2rem; }
.bloque-busqueda__mas { margin-top: 0.75rem; }
.bloque-busqueda__mas summary { display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; border: 1px solid #bdb7ad; border-radius: 999px; background: var(--wp--preset--color--blanco); font-size: var(--wp--preset--font-size--small); font-weight: 600; cursor: pointer; }
.bloque-busqueda__mas summary:hover { border-color: var(--wp--preset--color--rojo); }
.bloque-busqueda__mas[open] summary { margin-bottom: 0.75rem; }

/* ---------- Pie ---------- */
.titulo-pie { margin: 0 0 0.625rem; font-family: var(--wp--preset--font-family--texto); font-size: var(--wp--preset--font-size--small); letter-spacing: 0.06em; text-transform: uppercase; }
.lista-pie { list-style: none; margin: 0; padding: 0; }
.lista-pie li + li { margin-top: 0.375rem; }
.creditos { margin-top: var(--wp--preset--spacing--40); padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--linea); }

/* ---------- Tablas ---------- */
.wp-block-table td:last-child { white-space: nowrap; }
@media (max-width: 600px) {
	.wp-block-table td:last-child { white-space: normal; }
	/* En el móvil la tabla se ajusta al ancho en vez de desplazarse de lado (no se podría mover con el teclado) */
	.wp-block-table { overflow-x: visible; }
	.wp-block-table table { table-layout: fixed; width: 100%; }
	.wp-block-table th, .wp-block-table td { padding: 0.5em 0.375em; font-size: var(--wp--preset--font-size--small); overflow-wrap: anywhere; }
}

/* ---------- Paginación ---------- */
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; box-sizing: border-box; }

/* =========================================================
   MÓVIL (hasta 781 px; el menú se pliega por debajo de 600 px)
   ========================================================= */

/* Botones de abrir y cerrar menú: 44 px para el dedo */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	border: 1px solid var(--wp--preset--color--linea);
	border-radius: 8px;
	background: #fff;
}
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }

/* Menú desplegado: lista a la izquierda, grupos con título y enlaces grandes */
.cabecera .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1rem 1.5rem 2.5rem;
	background: #fff;
}
.cabecera .is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: stretch !important;
	padding-top: 3.75rem !important;
}
.cabecera .is-menu-open .wp-block-navigation__container {
	align-items: stretch !important;
	gap: 0 !important;
	width: 100%;
}
.cabecera .is-menu-open .wp-block-navigation-item {
	align-items: flex-start !important;
	width: 100%;
	border-bottom: 1px solid var(--wp--preset--color--linea);
}
.cabecera .is-menu-open .wp-block-navigation-item__content {
	display: flex !important;
	align-items: center;
	min-height: 48px;
	padding: 0.5rem 0 !important;
	font-size: 1.25rem;
	font-weight: 600;
}
.cabecera .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content {
	min-height: 0;
	padding: 1rem 0 0.25rem !important;
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gris);
}
.cabecera .is-menu-open .wp-block-navigation__submenu-container {
	width: 100%;
	padding: 0 0 0.5rem !important;
	border: 0 !important;
	box-shadow: none !important;
}
.cabecera .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; }
.cabecera .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.375rem 0 !important;
	font-size: 1.125rem;
	font-weight: 500;
}
@media (max-width: 599px) {
	.cabecera .is-menu-open .wp-block-navigation-submenu__toggle { display: none; }
}

@media (max-width: 599px) {
	/* Cabecera compacta: la Sede ya está en los accesos y en el menú */
	.cabecera .boton-sede { display: none !important; }
}

@media (max-width: 781px) {
	/* Zonas táctiles de al menos 44 px */
	.wp-block-button.is-style-pildora .wp-block-button__link,
	.is-style-filtros a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		padding: 0 1rem;
	}

	/* Textos pequeños, un punto más grandes */
	.antetitulo,
	.bandomovil__categoria,
	.bandomovil__mes,
	.wp-block-post-terms,
	.wp-block-post-date { font-size: 0.875rem !important; }

	/* Bienvenida: foto más baja y sin pie */
	.foto-portada img { height: 13.5rem; }
	.foto-portada figcaption { display: none; }

	/* Accesos rápidos: dos columnas, solo icono y título */
	.rejilla-accesos { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0.75rem !important; }
	.acceso { flex-direction: column !important; align-items: flex-start !important; gap: 0.625rem !important; padding: 1rem !important; }
	.acceso h3 { font-size: 1.0625rem !important; line-height: 1.25; }
	.acceso p { display: none; }

	/* Urgencias: una fila por teléfono, número a la derecha */
	.urgencias { flex-direction: column; align-items: stretch !important; gap: 0 !important; padding: 1rem 1.25rem !important; }
	.urgencias p:not(.urgencias__titulo) a { display: flex; justify-content: space-between; align-items: center; min-height: 44px; }
	.urgencias p:not(.urgencias__titulo) + p { border-top: 1px solid rgb(255 255 255 / 0.12); }
	.urgencias__titulo { margin-bottom: 0.25rem !important; }

	/* Avisos: fecha más estrecha */
	.bandomovil__aviso { gap: 0.875rem; }
	.bandomovil__fecha { flex-basis: 3.25rem; }
	.bandomovil__titulo { font-size: 1.0625rem; }

	/* Fichas de teléfonos y empresas: botón más compacto y siempre a la vista */
	.ficha-telefono { align-items: center !important; }
	.ficha-telefono .wp-block-button__link { min-height: 44px; display: inline-flex; align-items: center; }

	/* Noticias: titulares algo menores */
	.noticia__cuerpo .wp-block-post-title { font-size: 1.5rem !important; }

	/* Pie: dos columnas para los enlaces */
	.pie .wp-block-columns { gap: 1.5rem; }
}

/* Texto solo para lectores de pantalla */
.solo-lector {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* Botón de llamada: el número con un icono de teléfono */
.boton-llamar .wp-block-button__link { display: inline-flex; align-items: center; gap: 0.5rem; white-space: nowrap; }
.boton-llamar .wp-block-button__link::before {
	content: "";
	flex: 0 0 auto;
	width: 1.125em;
	height: 1.125em;
	background: currentColor;
	-webkit-mask: url(assets/iconos/telefono.svg) center / contain no-repeat;
	mask: url(assets/iconos/telefono.svg) center / contain no-repeat;
}

/* Tablas de datos: encabezado de fila a la izquierda */
.tabla-datos th[scope="row"] { width: 34%; text-align: left; vertical-align: top; }
.tabla-poblacion { max-width: 22rem; }
.tabla-poblacion td:last-child, .tabla-poblacion th:last-child { text-align: right; }

/* Portada: las secciones van pegadas, cada una trae su propio espacio */
.contenido-portada > * { margin-block-start: 0; margin-block-end: 0; }

/* =========================================================
   CABECERA EN TABLETA Y PORTÁTIL PEQUEÑO (600–1179 px)
   ========================================================= */
.cabecera > .wp-block-group { flex-wrap: nowrap !important; }
.cabecera .escudo { flex: 0 0 auto; }
.cabecera .escudo img { max-width: 100%; }

@media (max-width: 1179px) {
	/* La Sede sigue en «Accesos rápidos» y en el menú Servicios */
	.cabecera .boton-sede { display: none !important; }
	.cabecera .wp-block-navigation { --wp--style--block-gap: 1.125rem; gap: 1.125rem; }
	.cabecera .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content { font-size: 0.9375rem; }
}

/* Entre 600 y 859 px el menú completo no cabe: se usa el botón de menú, como en el móvil */
@media (min-width: 600px) and (max-width: 859px) {
	.cabecera .wp-block-navigation__responsive-container-open:not(.always-shown) { display: grid !important; }
	.cabecera .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.cabecera .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;
		display: flex !important;
		flex-direction: column;
		overflow: auto;
		z-index: 100000;
	}
	.cabecera .wp-block-navigation__responsive-container-close:not(.always-shown) { display: grid !important; }
	.cabecera .is-menu-open .wp-block-navigation__container { flex-direction: column !important; }
	.cabecera .is-menu-open .wp-block-navigation__submenu-container {
		position: static !important;
		opacity: 1 !important;
		visibility: visible !important;
		height: auto !important;
		width: 100% !important;
		min-width: 0 !important;
	}
	/* El botón del grupo hace de título: «MUNICIPIO», «AYUNTAMIENTO»… */
	.cabecera .is-menu-open .wp-block-navigation-submenu__toggle {
		pointer-events: none;
		min-height: 0 !important;
		padding: 1rem 0 0.25rem !important;
		font-size: 0.8125rem !important;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--wp--preset--color--gris) !important;
		background: none !important;
		border: 0 !important;
	}
	.cabecera .is-menu-open .wp-block-navigation-submenu__toggle + .wp-block-navigation__submenu-icon,
	.cabecera .is-menu-open .wp-block-navigation-submenu__toggle svg { display: none !important; }
}
