/* ==========================================================================
   AUGE Municipal — tema público (0.2.0, AM-TEC-4)

   Colores: variables --c-* generadas por el tema a partir de la paleta y los colores de cada
   componente (Apariencia → Personalizar → Personalización municipal → Colores). Los valores de
   :root son los de la paleta «Azul institucional» y solo se usan si falta la hoja en línea.
   Los textos sobre cada fondo (--c-*-texto) y los estados activos (--c-*-activo) se calculan para
   mantener el contraste.

   Puntos de corte: móvil < 600 px · tableta 600–1023 px · escritorio ≥ 1024 px.
   ========================================================================== */

:root {
	--c-primario: #1d4f73;
	--c-acento: #b5651d;
	--c-fondo: #f4f6f8;
	--c-fondo-texto: #1a1a1a;
	--c-fondo-suave: #4f5357;
	--c-superficie: #ffffff;
	--c-superficie-texto: #1a1a1a;
	--c-texto-suave: #5f5f5f;
	--c-titulares: #133650;
	--c-enlaces: #1d4f73;
	--c-borde: #d1d1d1;
	--c-marco-imagen: #eff3f6;
	--c-cabecera: #ffffff;
	--c-cabecera-texto: #1a1a1a;
	--c-cabecera-suave: #5f5f5f;
	--c-cabecera-acento: #1d4f73;
	--c-menu: #1d4f73;
	--c-menu-texto: #ffffff;
	--c-menu-activo: #163d59;
	--c-accesos-superiores: #133650;
	--c-accesos-superiores-texto: #ffffff;
	--c-accesos-superiores-activo: #0f2a3e;
	--c-accesos-inferiores: #e8f0f6;
	--c-accesos-inferiores-texto: #1a1a1a;
	--c-accesos-inferiores-acento: #1d4f73;
	--c-botones: #1d4f73;
	--c-botones-texto: #ffffff;
	--c-botones-activo: #163d59;
	--c-tablon: #e8f0f6;
	--c-tablon-texto: #1a1a1a;
	--c-tablon-suave: #4f5357;
	--c-tablon-acento: #1d4f73;
	--c-pie: #133650;
	--c-pie-texto: #ffffff;
	--c-pie-legal: #0e283c;
	--c-foco: #ffdd00;
	--c-foco-borde: #0b0c0c;

	/* Tipografía del sistema: sin descargas de fuentes externas. */
	--fuente: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--texto-base: 1.0625rem;
	--interlineado: 1.6;

	/* Espaciado y medidas. */
	--espacio-1: 0.25rem;
	--espacio-2: 0.5rem;
	--espacio-3: 1rem;
	--espacio-4: 1.5rem;
	--espacio-5: 2.5rem;
	--espacio-6: 4rem;
	--margen-lateral: 1rem;
	--ancho-maximo: 1280px;
	--ancho-lectura: 750px;
	--ancho-archivo: 1200px;
	--radio: 10px;
	--radio-pequeno: 6px;
	--sombra: 0 1px 2px rgba(16, 24, 32, 0.06), 0 6px 20px rgba(16, 24, 32, 0.07);
	--sombra-alta: 0 2px 4px rgba(16, 24, 32, 0.08), 0 12px 32px rgba(16, 24, 32, 0.1);
}

/* --- Base ---------------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--fuente);
	font-size: var(--texto-base);
	line-height: var(--interlineado);
	color: var(--c-fondo-texto);
	background: var(--c-fondo);
	overflow-wrap: break-word;
}

img, svg, video { max-width: 100%; height: auto; }

a { color: var(--c-enlaces); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }

h1, h2, h3, h4 { line-height: 1.2; margin: 0 0 var(--espacio-3); color: var(--c-titulares); letter-spacing: -0.01em; }
h1 { font-size: clamp(1.85rem, 1.45rem + 1.7vw, 2.6rem); font-weight: 800; }
h2 { font-size: clamp(1.4rem, 1.25rem + 0.7vw, 1.8rem); font-weight: 750; }
h3 { font-size: 1.2rem; font-weight: 700; }

p { margin: 0 0 var(--espacio-3); }

/* Foco visible: doble anillo (color del foco + borde contrastado), legible sobre fondos claros u oscuros. */
:focus-visible {
	outline: 3px solid var(--c-foco);
	outline-offset: 2px;
	box-shadow: 0 0 0 6px var(--c-foco-borde);
	border-radius: 2px;
}
#contenido:focus { outline: none; box-shadow: none; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.salto {
	position: absolute; left: var(--espacio-3); top: -100px; z-index: 1000;
	padding: var(--espacio-2) var(--espacio-3);
	background: var(--c-foco); color: var(--c-foco-borde); font-weight: 700;
}
.salto:focus { top: var(--espacio-2); }

.contenedor { width: 100%; max-width: calc(var(--ancho-maximo) + 2 * var(--margen-lateral)); margin: 0 auto; padding: 0 var(--margen-lateral); }
.contenedor--estrecho { max-width: calc(var(--ancho-lectura) + 2 * var(--margen-lateral)); }
/* Archivos (noticias, categorías, búsqueda): más anchos que la columna de lectura de una noticia. */
.contenedor--archivo { max-width: calc(var(--ancho-archivo) + 2 * var(--margen-lateral)); }
.lectura { max-width: var(--ancho-lectura); margin-left: auto; margin-right: auto; }

.icono { width: 1.25em; height: 1.25em; flex: none; vertical-align: -0.2em; }
.icono--pequeno { width: 1em; height: 1em; }

/* Lámina de contenido: con fondo ambiental, el contenido se presenta sobre una superficie opaca. */
.principal { display: block; background: var(--c-fondo); }
body.con-fondo-ambiental .principal {
	max-width: calc(var(--ancho-maximo) + 2 * var(--margen-lateral) + 2rem);
	margin: var(--espacio-4) auto;
	border-radius: var(--radio);
	box-shadow: var(--sombra-alta);
	overflow: hidden;
}

/* --- Botones y enlaces destacados ------------------------------------------ */

.boton {
	display: inline-flex; align-items: center; gap: var(--espacio-2);
	min-height: 44px; padding: var(--espacio-2) var(--espacio-4);
	border: 2px solid var(--c-botones); border-radius: var(--radio-pequeno);
	font-weight: 650; text-decoration: none; line-height: 1.2; cursor: pointer; font-size: 1rem;
}
.boton--principal, .boton--sede { background: var(--c-botones); color: var(--c-botones-texto); }
.boton--principal:hover, .boton--sede:hover { background: var(--c-botones-activo); border-color: var(--c-botones-activo); color: var(--c-botones-texto); text-decoration: underline; }
.boton--secundario { background: var(--c-superficie); color: var(--c-enlaces); border-color: currentColor; }
.boton--secundario:hover { text-decoration: underline; }
.boton__meta { font-weight: 400; font-size: 0.875rem; } /* Sin opacidad: mantiene el contraste del botón (TEC-5D). */

.boton-icono {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; padding: 0;
	border: 2px solid var(--c-botones); border-radius: 50%;
	background: var(--c-superficie); color: var(--c-enlaces); cursor: pointer;
}
.boton-icono:hover:not(:disabled) { background: var(--c-botones); color: var(--c-botones-texto); }
.boton-icono:disabled { opacity: 0.35; cursor: default; }

.enlace-flecha { font-weight: 650; }
.enlace-flecha::after { content: " →"; }

.seccion__titulo {
	display: flex; align-items: center; gap: var(--espacio-2);
	position: relative;
	font-size: clamp(1.3rem, 1.18rem + 0.5vw, 1.6rem);
	padding-bottom: var(--espacio-2); margin-bottom: var(--espacio-4);
	border-bottom: 1px solid var(--c-borde);
}
/* Filete de acento bajo el título (decorativo). */
.seccion__titulo::after {
	content: ""; position: absolute; left: 0; bottom: -2px;
	width: 3.5rem; height: 4px; border-radius: 2px; background: var(--c-acento);
}
.seccion__icono { color: var(--c-enlaces); }
.seccion__mas { margin-top: var(--espacio-4); margin-bottom: 0; }

/* --- Cabecera --------------------------------------------------------------- */

.cabecera { background: var(--c-cabecera); position: relative; z-index: 20; }

.accesos--superior { background: var(--c-accesos-superiores); color: var(--c-accesos-superiores-texto); font-size: 0.92rem; }
.accesos--superior .accesos__lista { justify-content: flex-end; gap: 0 var(--espacio-2); }
.accesos--superior .accesos__enlace {
	color: var(--c-accesos-superiores-texto); min-height: 40px; padding: var(--espacio-1) var(--espacio-2);
	border-radius: var(--radio-pequeno);
}
.accesos--superior .accesos__enlace:hover { background: var(--c-accesos-superiores-activo); color: var(--c-accesos-superiores-texto); text-decoration: underline; }

.accesos__lista { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.accesos__enlace { display: inline-flex; align-items: center; gap: var(--espacio-2); text-decoration: none; }
.accesos__externo { opacity: 0.85; }

.cabecera__institucional { background: var(--c-cabecera); color: var(--c-cabecera-texto); }
.cabecera__fila { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--espacio-3) var(--espacio-4); padding-top: var(--espacio-4); padding-bottom: var(--espacio-4); }
.marca { display: flex; align-items: center; gap: var(--espacio-3); min-width: 0; }
.marca__escudo img { display: block; max-height: 88px; width: auto; }
.marca__logo img { display: block; max-height: 72px; width: auto; }
.marca__nombre { margin: 0; font-size: clamp(1.45rem, 1.15rem + 1.2vw, 2.1rem); font-weight: 800; line-height: 1.1; letter-spacing: -0.015em; }
.marca__nombre a { color: var(--c-cabecera-texto); text-decoration: none; }
.marca__nombre a:hover { text-decoration: underline; }
.marca__lema { margin: var(--espacio-1) 0 0; color: var(--c-cabecera-suave); font-size: 0.98rem; }

.cabecera__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-3); }

.buscador { display: flex; align-items: stretch; }
.buscador__campo {
	min-width: 0; width: 16rem; min-height: 46px; padding: 0 var(--espacio-3);
	border: 2px solid var(--c-borde); border-right: 0; border-radius: var(--radio-pequeno) 0 0 var(--radio-pequeno);
	font: inherit; background: var(--c-superficie); color: var(--c-superficie-texto);
}
.buscador__boton {
	min-width: 46px; min-height: 46px; border: 2px solid var(--c-botones);
	border-radius: 0 var(--radio-pequeno) var(--radio-pequeno) 0; background: var(--c-botones); color: var(--c-botones-texto); cursor: pointer;
}
.buscador__boton:hover { background: var(--c-botones-activo); }

/* Navegación principal */
.navegacion { background: var(--c-menu); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12); }
.navegacion__alternar {
	display: none; align-items: center; gap: var(--espacio-2);
	min-height: 50px; padding: 0 var(--espacio-3); margin: 0 calc(-1 * var(--espacio-3));
	border: 0; background: transparent; color: var(--c-menu-texto); font: inherit; font-weight: 650; cursor: pointer;
}
.navegacion__icono-cerrar { display: none; }

.menu-principal { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.menu-principal__elemento { position: relative; display: flex; align-items: center; }
.menu-principal__enlace {
	display: block; padding: var(--espacio-3) var(--espacio-3); min-height: 52px;
	color: var(--c-menu-texto); font-weight: 650; text-decoration: none;
}
.menu-principal__enlace:hover, .menu-principal__elemento.es-actual > .menu-principal__enlace { background: var(--c-menu-activo); color: var(--c-menu-texto); text-decoration: underline; }
.menu-principal__desplegar {
	display: inline-flex; align-items: center; justify-content: center;
	width: 36px; min-height: 52px; margin-left: -0.5rem; padding: 0;
	border: 0; background: transparent; color: var(--c-menu-texto); cursor: pointer;
}
.menu-principal__desplegar[aria-expanded="true"] .icono { transform: rotate(180deg); }
.menu-principal__submenu {
	display: none; position: absolute; top: 100%; left: 0; z-index: 50;
	min-width: 17rem; list-style: none; margin: 0; padding: var(--espacio-2) 0;
	background: var(--c-superficie); border: 1px solid var(--c-borde); border-radius: 0 0 var(--radio) var(--radio); box-shadow: var(--sombra-alta);
}
.menu-principal__submenu .menu-principal__elemento { display: block; }
.menu-principal__submenu .menu-principal__enlace { color: var(--c-superficie-texto); padding: var(--espacio-2) var(--espacio-3); min-height: 44px; font-weight: 600; }
.menu-principal__submenu .menu-principal__enlace:hover { background: var(--c-marco-imagen); color: var(--c-superficie-texto); }
.menu-principal__submenu .menu-principal__submenu { position: static; box-shadow: none; border: 0; padding-left: var(--espacio-3); }
.menu-principal__submenu .menu-principal__desplegar { color: var(--c-superficie-texto); }

/* Con JavaScript: los submenús se abren con su botón (clic, toque, Intro o Espacio). */
.js .menu-principal__elemento.esta-abierto > .menu-principal__submenu { display: block; }
/* Sin JavaScript: se muestran al pasar el ratón o al recibir el foco. */
.no-js .menu-principal__elemento:hover > .menu-principal__submenu,
.no-js .menu-principal__elemento:focus-within > .menu-principal__submenu { display: block; }

/* --- Portada: actualidad (noticia principal + tablón) -------------------------- */

.actualidad { padding: var(--espacio-5) 0 var(--espacio-4); }
.actualidad__rejilla { display: grid; gap: var(--espacio-4); grid-template-columns: minmax(0, 1fr); }
.actualidad__principal, .actualidad__tablon { min-width: 0; }

/* Noticia principal: IMAGEN(ES) A LA IZQUIERDA + FECHA, TÍTULO, ENTRADILLA Y ENLACE A LA DERECHA. */
.destacada {
	display: grid; gap: var(--espacio-4); align-items: start;
	grid-template-columns: minmax(0, 1fr);
	padding: var(--espacio-4); background: var(--c-superficie); color: var(--c-superficie-texto);
	border-radius: var(--radio); box-shadow: var(--sombra);
}
.destacada__imagenes { display: flex; flex-direction: column; gap: var(--espacio-3); min-width: 0; }
.destacada__imagen { margin: 0; background: var(--c-marco-imagen); border-radius: var(--radio-pequeno); overflow: hidden; }
/* Proporción natural (width/height reservan el espacio): nunca se recorta ni se deforma. */
.destacada__imagen .imagen { display: block; width: 100%; height: auto; }
.destacada__imagen.es-cartel .imagen { width: auto; max-width: 100%; max-height: 70vh; margin: 0 auto; }
.destacada__texto { min-width: 0; display: flex; flex-direction: column; }
.destacada__fecha { display: block; order: 0; font-size: 0.95rem; font-weight: 600; color: var(--c-texto-suave); margin-bottom: var(--espacio-2); text-transform: none; }
.destacada__titulo { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.15rem); line-height: 1.15; margin-bottom: var(--espacio-3); }
.destacada__titulo a { color: var(--c-titulares); text-decoration: none; }
.destacada__titulo a:hover { text-decoration: underline; }
.destacada__entradilla { font-size: 1.12rem; line-height: 1.55; margin-bottom: var(--espacio-4); }
.destacada__mas { margin: 0; }

/* Tablón */
.tablon { background: var(--c-tablon); color: var(--c-tablon-texto); border-radius: var(--radio); padding: var(--espacio-3) var(--espacio-4); }
.tablon .seccion__titulo { color: var(--c-tablon-texto); border-bottom-color: color-mix(in srgb, var(--c-tablon-texto) 25%, transparent); }
.tablon .seccion__icono { color: var(--c-tablon-acento); }
.tablon a { color: var(--c-tablon-texto); }
.listado .tablon { background: none; padding: 0; color: inherit; }
.listado .tablon a { color: var(--c-enlaces); }
.tablon__lista { list-style: none; margin: 0; padding: 0; }
.tablon__anuncio { padding: var(--espacio-2) 0; border-bottom: 1px solid color-mix(in srgb, currentColor 22%, transparent); }
.tablon__anuncio:first-child { padding-top: 0; }
.tablon__anuncio:last-child { border-bottom: 0; }
.tablon__titulo { font-size: 1rem; line-height: 1.3; margin-bottom: 2px; color: inherit; }
.tablon__titulo a { text-decoration: none; }
.tablon__titulo a:hover { text-decoration: underline; }
.tablon__fechas { display: flex; flex-wrap: wrap; gap: 0 var(--espacio-2); margin: 0; font-size: 0.875rem; }
.tablon__documento { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-2); margin: 2px 0 0; font-size: 0.9rem; }
.tablon__documento a { display: inline-flex; align-items: center; gap: var(--espacio-1); font-weight: 650; }
.tablon__vacio { margin: 0; }
/* Acceso al tablón oficial de la sede (TEC-5D): banner horizontal compacto; todo él es el enlace. */
.tablon .tablon-oficial, .tablon-oficial {
	display: flex; align-items: center; gap: var(--espacio-2) var(--espacio-3); flex-wrap: wrap; margin: 0 0 var(--espacio-3);
	padding: var(--espacio-2) var(--espacio-3); min-height: 56px; background: var(--c-tablon-oficial); color: var(--c-tablon-oficial-texto);
	border-radius: var(--radio-pequeno); text-decoration: none; box-shadow: 0 1px 2px rgba(16, 24, 32, 0.12);
	transition: background-color 0.15s ease;
}
.tablon .tablon-oficial:hover, .tablon-oficial:hover { background: var(--c-tablon-oficial-activo); color: var(--c-tablon-oficial-texto); }
.tablon-oficial:hover .tablon-oficial__enlace { text-decoration: underline; }
.tablon-oficial__icono { width: 1.6rem; height: 1.6rem; color: currentColor; flex: none; }
.tablon-oficial__texto { display: flex; flex-direction: column; flex: 1 1 12rem; min-width: 0; }
.tablon-oficial__titulo { font-weight: 700; font-size: 1rem; line-height: 1.25; }
.tablon-oficial__descripcion { font-size: 0.875rem; }
.tablon-oficial__enlace { display: inline-flex; align-items: center; gap: var(--espacio-1); font-weight: 650; font-size: 0.92rem; white-space: nowrap; }
.tablon__historico { font-weight: 600; }

/* Enlaces de interés en la columna lateral de «Noticias recientes y carteles» (TEC-5D). */
.enlaces-interes { margin: 0; }
.enlaces-interes__lista { list-style: none; margin: 0; padding: 0; }
.enlaces-interes__lista li { border-bottom: 1px solid var(--c-borde); }
.enlaces-interes__lista li:last-child { border-bottom: 0; }
.enlaces-interes__lista a { display: flex; align-items: center; gap: var(--espacio-1); padding: var(--espacio-2) 0; color: var(--c-enlaces); font-weight: 600; min-height: 44px; }
/* Anuncio histórico migrado (Core 0.5.0): aviso de finalizado sin depender solo del color. */
.anuncio__historico { display: flex; flex-wrap: wrap; gap: 0 var(--espacio-2); margin: 0 0 var(--espacio-2); padding: var(--espacio-2) var(--espacio-3); border-left: 4px solid currentColor; background: color-mix(in srgb, currentColor 6%, transparent); font-size: 0.95rem; }
.archivo__meta { font-size: 0.875rem; }

/* --- Tarjetas de noticia ---------------------------------------------------- */

.tarjeta { position: relative; display: grid; gap: var(--espacio-3); min-width: 0; }
.tarjeta__texto { min-width: 0; }
.tarjeta__titulo { margin-bottom: var(--espacio-1); }
.tarjeta__titulo a { color: var(--c-titulares); text-decoration: none; }
.tarjeta__titulo a:hover { text-decoration: underline; }
/* Toda la tarjeta es pulsable a través del enlace del titular (un único enlace por tarjeta). */
.tarjeta--secundaria .tarjeta__titulo a::after, .tarjeta--lista .tarjeta__titulo a::after { content: ""; position: absolute; inset: 0; }
.tarjeta__fecha { display: block; font-size: 0.875rem; color: var(--c-texto-suave); margin-bottom: var(--espacio-2); }
.tarjeta__entradilla { color: var(--c-texto-suave); margin-bottom: 0; }

/* Imágenes: nunca se recortan. En las tarjetas se muestran con su proporción natural y una altura
   máxima; en los marcos de proporción fija (carrusel, galería, visor) se encajan con object-fit: contain. */
.tarjeta__imagen, .noticia__imagen, .servicio__imagen, .pagina__imagen, .anuncio__imagen, .servicio-tarjeta__imagen, .institucional__imagen {
	margin: 0; background: var(--c-marco-imagen); border-radius: var(--radio-pequeno); overflow: hidden;
}
.imagen { display: block; width: 100%; height: auto; object-fit: contain; }
.tarjeta__imagen .imagen { margin: 0 auto; width: auto; max-width: 100%; }

/* Secundarias: IMAGEN A LA IZQUIERDA + TEXTO A LA DERECHA (también en móvil). */
.secundarias { padding: var(--espacio-2) 0 var(--espacio-5); }
.secundarias__lista { display: grid; gap: var(--espacio-4); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }
.tarjeta--secundaria {
	grid-template-columns: minmax(96px, 40%) minmax(0, 1fr); align-items: start;
	height: 100%; padding: var(--espacio-3); background: var(--c-superficie); color: var(--c-superficie-texto);
	border-radius: var(--radio); box-shadow: var(--sombra);
}
.tarjeta--secundaria:hover { box-shadow: var(--sombra-alta); }
.tarjeta--secundaria.tarjeta--sin-imagen { grid-template-columns: minmax(0, 1fr); }
.tarjeta--secundaria .tarjeta__imagen .imagen { max-height: 260px; }
.tarjeta--secundaria .tarjeta__titulo { font-size: 1.12rem; line-height: 1.25; }
.tarjeta--secundaria .tarjeta__entradilla { font-size: 0.97rem; }

/* Lista: fila compacta con imagen opcional a la izquierda. */
.listado-noticias__lista { list-style: none; margin: 0; padding: 0; }
.listado-noticias__lista > li { padding: var(--espacio-3) 0; border-bottom: 1px solid var(--c-borde); }
.listado-noticias__lista > li:first-child { padding-top: 0; }
.listado-noticias__lista > li:last-child { border-bottom: 0; }
.tarjeta--lista { grid-template-columns: minmax(88px, 30%) minmax(0, 1fr); align-items: start; }
.tarjeta--lista.tarjeta--sin-imagen { grid-template-columns: minmax(0, 1fr); }
.tarjeta--lista .tarjeta__imagen .imagen { max-height: 190px; }
.tarjeta--lista .tarjeta__titulo { font-size: 1.12rem; }

/* --- Accesos rápidos de portada --------------------------------------------- */

.accesos--portada { background: var(--c-accesos-inferiores); color: var(--c-accesos-inferiores-texto); padding: var(--espacio-5) 0; }
.accesos--portada .seccion__titulo { color: var(--c-accesos-inferiores-texto); border-bottom-color: color-mix(in srgb, var(--c-accesos-inferiores-texto) 25%, transparent); }
/*
 * Tarjetas compactas en una cuadrícula equilibrada: el número de columnas lo calcula la plantilla
 * según cuántos accesos haya (variables --accesos-col-*), de modo que no quedan filas descompensadas.
 * Sin subrayado permanente: la tarjeta entera es el enlace (borde, acento y flecha la identifican) y
 * los estados hover y foco son visibles.
 */
.accesos--portada .accesos__lista {
	--accesos-col: var(--accesos-col-movil, 2); --accesos-hueco: var(--espacio-2);
	display: flex; flex-wrap: wrap; justify-content: center; gap: var(--accesos-hueco);
}
/* Cada tarjeta ocupa 1/N del ancho; la última fila incompleta queda centrada (7 → 4 + 3). */
.accesos--portada .accesos__elemento {
	flex: 0 0 calc((100% - (var(--accesos-col) - 1) * var(--accesos-hueco)) / var(--accesos-col)); min-width: 0;
}
.accesos--portada .accesos__enlace {
	display: flex; flex-direction: row; align-items: center; gap: var(--espacio-2); text-align: left; height: 100%;
	min-height: 64px; padding: var(--espacio-2) var(--espacio-3); background: var(--c-superficie); color: var(--c-superficie-texto);
	border: 1px solid var(--c-borde); border-left: 3px solid var(--c-accesos-inferiores-acento); border-radius: var(--radio);
	font-weight: 650; font-size: 0.98rem; line-height: 1.25; text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
.accesos--portada .accesos__enlace:hover {
	border-color: var(--c-enlaces); border-left-color: var(--c-enlaces);
	background: color-mix(in srgb, var(--c-enlaces) 6%, var(--c-superficie)); box-shadow: 0 1px 3px rgba(16, 24, 32, 0.12);
}
.accesos--portada .accesos__enlace:hover .accesos__titulo-texto { text-decoration: underline; }
.accesos--portada .accesos__icono { flex: 0 0 auto; width: 26px; height: 26px; color: var(--c-enlaces); }
.accesos--portada .accesos__texto { display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; }
.accesos--portada .accesos__descripcion { font-weight: 400; font-size: 0.85rem; color: var(--c-texto-suave); }
.accesos--portada .accesos__elemento { position: relative; }
/* Indicador visible de enlace externo, en la esquina de la tarjeta (el texto lo anuncia a los lectores). */
.accesos--portada .accesos__externo { position: absolute; top: var(--espacio-1); right: var(--espacio-1); color: var(--c-texto-suave); }
@media (max-width: 359px) {
	.accesos--portada .accesos__lista { --accesos-col: 1; }
}
@media (min-width: 600px) {
	.accesos--portada .accesos__lista { --accesos-col: var(--accesos-col-tableta, 3); --accesos-hueco: var(--espacio-3); }
}
@media (min-width: 1024px) {
	.accesos--portada .accesos__lista { --accesos-col: var(--accesos-col-escritorio, 4); }
	/* Con muchas columnas, icono encima del texto para no estrechar los títulos. */
	.accesos--portada[style*="escritorio:5;"] .accesos__enlace,
	.accesos--portada[style*="escritorio:6;"] .accesos__enlace { flex-direction: column; text-align: center; justify-content: center; gap: var(--espacio-1); padding: var(--espacio-2); }
}

/* Contenido incrustado de un servicio externo sin consentimiento (Externos, AM-TEC-6B.2). */
.contenido-externo { margin: var(--espacio-3) 0; padding: var(--espacio-3); border: 1px solid var(--c-borde); border-radius: var(--radio); background: var(--c-superficie); color: var(--c-superficie-texto); }
.contenido-externo p { margin: 0 0 var(--espacio-2); }
.contenido-externo p:last-child { margin-bottom: 0; }
.contenido-externo__enlace { display: inline-flex; align-items: center; min-height: 44px; font-weight: 650; }

/* --- Bando Móvil (servicio externo) ----------------------------------------- */

.bando-seccion { padding: var(--espacio-5) 0; }
.bando-movil { min-width: 0; max-width: 100%; }
.recientes__lateral .bando-movil, .recientes__lateral .bando-movil-envoltorio { margin-top: var(--espacio-4); }
/* Sin consentimiento (6B.4): tarjeta compacta del Core en lugar del widget; al permitirlo, el widget la sustituye. */
.bando-movil-envoltorio { min-width: 0; max-width: 100%; }
.bando-movil-envoltorio .bando-movil, .bando-movil-envoltorio .auge-externo { margin-top: 0; }
.bando-movil-envoltorio .seccion__titulo { margin-top: 0; }
/* Botón «Preferencias de cookies» del pie (Core): con el color de los demás enlaces legales. */
.pie__legal .auge-preferencias-abrir { color: var(--c-pie-texto); font-size: inherit; }
.bando-movil__marco {
	max-width: 100%; border: 1px solid var(--c-borde); border-radius: var(--radio); background: var(--c-superficie);
	overflow: hidden;
}
.bando-movil__iframe { display: block; width: 100%; max-width: 100%; height: var(--bando-altura, 500px); border: 0; }
.bando-movil__alternativo { margin: var(--espacio-2) 0 0; font-size: 0.92rem; }
.bando-movil__alternativo a { display: inline-flex; align-items: center; gap: var(--espacio-1); min-height: 44px; }

/* --- Recientes, carrusel y carteles fijos ------------------------------------ */

.recientes { padding: var(--espacio-5) 0; }
.recientes__rejilla { display: grid; gap: var(--espacio-5); grid-template-columns: minmax(0, 1fr); }
.recientes__rejilla > * { min-width: 0; }
.recientes__noticias, .recientes--solo .listado-noticias { background: var(--c-superficie); color: var(--c-superficie-texto); padding: var(--espacio-4); border-radius: var(--radio); box-shadow: var(--sombra); }
.recientes__lateral { display: flex; flex-direction: column; gap: var(--espacio-5); min-width: 0; }

.carrusel { position: relative; min-width: 0; }
/* position: relative contiene dentro de la pista los textos ocultos (posición absoluta) de las
   diapositivas; si no, escaparían del recorte y ensancharían la página (reflujo a 320 px). */
.carrusel__pista {
	position: relative;
	display: flex; align-items: flex-start; gap: var(--espacio-3); list-style: none; margin: 0; padding: 0 0 var(--espacio-2);
	overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
	transition: height 0.25s ease;
}
/* Composición por formato (Carteles::grupos()): en móvil, un cartel por diapositiva; desde 600 px, dos
   verticales o cuadrados juntos y los horizontales solos. Proporción natural: nada se recorta ni se
   deforma, y las imágenes no se amplían por encima de su tamaño. */
.carrusel__diapositiva { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; display: flex; justify-content: center; }
.carrusel__cartel { min-width: 0; max-width: 100%; }
.carrusel__enlace { display: block; max-width: 100%; background: var(--c-marco-imagen); border-radius: var(--radio-pequeno); overflow: hidden; }
.carrusel__enlace .imagen { width: auto; max-width: 100%; height: auto; max-height: 520px; margin: 0 auto; }
/* Con el ancho de la imagen conocido (atributo width, ver carrusel-carteles.php), el cartel tiene caja
   antes de que la imagen diferida cargue: Firefox la dejaba en 0×0 y el enlace enfocado no mostraba el
   indicador (A11Y-03). Nunca más ancho que la imagen; «contain» evita deformar si limita la altura. */
.carrusel__cartel.tiene-ancho { width: min(100%, var(--cartel-ancho)); }
.carrusel__cartel.tiene-ancho .imagen { width: 100%; object-fit: contain; }
.carrusel__diapositiva--horizontal .carrusel__cartel, .carrusel__diapositiva--horizontal .carrusel__enlace { width: 100%; }
.carrusel__diapositiva--horizontal .carrusel__enlace .imagen { width: 100%; max-height: none; }
.carrusel__controles { display: flex; align-items: center; justify-content: space-between; gap: var(--espacio-3); margin-top: var(--espacio-3); }
.carrusel__estado { margin: 0; font-size: 0.9rem; color: var(--c-fondo-suave); }
/* La pista recorta lo que sobresale (overflow): el indicador de foco de los carteles se dibuja hacia
   dentro para que se vea entero en todos los navegadores (A11Y-03). */
.carrusel__pista a:focus-visible, .carrusel__pista button:focus-visible { outline-offset: -3px; box-shadow: inset 0 0 0 6px var(--c-foco-borde); }
.js .carrusel__pista { scrollbar-width: none; }
.js .carrusel__pista::-webkit-scrollbar { display: none; }
.carrusel.sin-desplazamiento .carrusel__controles { display: none; }
@media (min-width: 600px) {
	.carrusel__diapositiva.es-par-inicio, .carrusel__diapositiva.es-par-fin { flex-basis: calc(50% - var(--espacio-3) / 2); }
	.carrusel__diapositiva.es-par-fin { scroll-snap-align: none; }
	/* Vertical sin pareja: solo y centrado, al mismo tamaño que en una pareja (sin estirarlo). */
	.carrusel__diapositiva.es-solo .carrusel__cartel { max-width: calc(50% - var(--espacio-3) / 2); }
}

/* Carteles fijos: sin movimiento, en su proporción. Tamaños fluidos (compacto, normal, destacado) y
   distribuciones (columna, cuadrícula, automática). Nunca generan desplazamiento horizontal. */
.carteles-fijos { --cartel-min: 180px; --cartel-max: 220px; --cartel-horizontal: 460px; --hueco: var(--espacio-3); min-width: 0; }
.carteles-fijos--tam-normal { --cartel-min: 240px; --cartel-max: 300px; --cartel-horizontal: 100%; --hueco: var(--espacio-4); }
.carteles-fijos--tam-destacado { --cartel-min: 100%; --cartel-max: 100%; --cartel-horizontal: 100%; --hueco: var(--espacio-4); }
.carteles-fijos--pequena { --hueco: var(--espacio-2); }
.carteles-fijos--grande { --hueco: var(--espacio-5); }
.carteles-fijos__lista { display: flex; flex-direction: column; align-items: flex-start; gap: var(--hueco); list-style: none; margin: 0; padding: 0; }
.carteles-fijos__elemento { width: 100%; min-width: 0; max-width: var(--cartel-max); }
.carteles-fijos__elemento--horizontal { max-width: var(--cartel-horizontal); }
/* Cuadrícula y automática: hasta dos por fila si cabe el ancho mínimo del tamaño; si no, una columna. */
.carteles-fijos--dist-cuadricula .carteles-fijos__lista,
.carteles-fijos--dist-automatica .carteles-fijos__lista {
	display: grid; align-items: start; justify-items: center;
	grid-template-columns: repeat(auto-fill, minmax(max(min(100%, var(--cartel-min)), calc((100% - var(--hueco)) / 2)), 1fr));
}
/* Automática: los horizontales ocupan la fila completa (sin alterar el orden editorial). */
.carteles-fijos--dist-automatica .carteles-fijos__elemento--horizontal { grid-column: 1 / -1; }
.cartel {
	display: block; color: var(--c-enlaces); text-decoration: none;
	background: var(--c-superficie); border-radius: var(--radio); box-shadow: var(--sombra); overflow: hidden;
}
.cartel .imagen { width: 100%; height: auto; }
.cartel__accion { display: flex; align-items: center; gap: var(--espacio-2); padding: var(--espacio-2) var(--espacio-3); font-weight: 650; color: var(--c-enlaces); }
.carteles-fijos--tam-compacto .cartel__accion { padding: var(--espacio-1) var(--espacio-2); font-size: 0.9rem; line-height: 1.3; }
a.cartel:hover { box-shadow: var(--sombra-alta); }
a.cartel:hover .cartel__accion { text-decoration: underline; }
.modulo-carteles { padding: var(--espacio-5) 0; }
.modulo-carteles--fijos .carteles-fijos { max-width: 40rem; }

/* --- Banners horizontales --------------------------------------------------- */

.banners { padding: var(--espacio-4) 0 var(--espacio-5); }
.banners__lista { display: grid; gap: var(--espacio-4); grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); list-style: none; margin: 0; padding: 0; align-items: center; }
/* Cualquier proporción (horizontal o cartel) se muestra completa, con una altura máxima. */
.banners__elemento { text-align: center; }
.banners__elemento img { width: auto; max-width: 100%; height: auto; max-height: 300px; margin: 0 auto; border-radius: var(--radio-pequeno); }
.banners__enlace { display: inline-block; border-radius: var(--radio-pequeno); }
a.banners__enlace:hover img { box-shadow: var(--sombra-alta); }

/* --- Contenido institucional (módulo de portada) ------------------------------ */

.institucional { padding: var(--espacio-5) 0; }
.institucional__caja { display: grid; gap: var(--espacio-4); grid-template-columns: minmax(0, 1fr); padding: var(--espacio-4); background: var(--c-superficie); color: var(--c-superficie-texto); border-radius: var(--radio); box-shadow: var(--sombra); }
.institucional__imagen .imagen { max-height: 420px; }

/* --- Visor de imágenes ampliadas -------------------------------------------- */

.visor { width: min(96vw, 1100px); max-height: 96vh; padding: 0; border: 0; border-radius: var(--radio); background: var(--c-superficie); color: var(--c-superficie-texto); }
.visor::backdrop { background: rgba(10, 12, 14, 0.82); }
.visor__caja { display: flex; flex-direction: column; gap: var(--espacio-3); padding: var(--espacio-3); max-height: 96vh; }
.visor__estado { margin: 0; font-weight: 650; }
.visor__figura { margin: 0; min-height: 0; display: flex; flex-direction: column; align-items: center; }
.visor__imagen { display: block; width: auto; max-width: 100%; max-height: calc(96vh - 11rem); object-fit: contain; }
.visor__pie { margin-top: var(--espacio-2); font-size: 0.95rem; color: var(--c-texto-suave); text-align: center; }
.visor__pie:empty { display: none; }
.visor__controles { display: flex; align-items: center; justify-content: flex-end; gap: var(--espacio-3); }
.visor__controles [hidden] { display: none; }

/* --- Encabezados de página y listados --------------------------------------- */

.listado { padding-top: var(--espacio-5); padding-bottom: var(--espacio-6); }
.encabezado { padding: var(--espacio-5) 0 var(--espacio-4); }
.listado .encabezado { padding-top: 0; }
.encabezado__titulo { margin-bottom: var(--espacio-2); }
.encabezado__antetitulo { margin: 0 0 var(--espacio-2); font-weight: 650; font-size: 0.95rem; }
.encabezado__descripcion { color: var(--c-fondo-suave); }
.aviso-vacio { padding: var(--espacio-4); background: var(--c-superficie); border-radius: var(--radio); }

.paginacion, .navigation.pagination { margin-top: var(--espacio-4); }
.nav-links { display: flex; flex-wrap: wrap; gap: var(--espacio-2); }
.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 var(--espacio-2); background: var(--c-superficie); border: 1px solid var(--c-borde); border-radius: var(--radio-pequeno); text-decoration: none; }
.page-numbers.current { background: var(--c-botones); color: var(--c-botones-texto); border-color: var(--c-botones); }

/* Archivos de noticias, categorías y búsqueda: cuadrícula de tarjetas (dos columnas desde 900 px).
   Cada tarjeta: imagen a la izquierda solo si existe (completa, sin recortes) y texto a la derecha. */
.archivo-noticias { display: grid; gap: var(--espacio-4); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }
.archivo-noticias > li { display: flex; min-width: 0; }
.tarjeta--archivo {
	width: 100%; grid-template-columns: minmax(96px, 36%) minmax(0, 1fr); align-items: start;
	padding: var(--espacio-3); background: var(--c-superficie); color: var(--c-superficie-texto);
	border-radius: var(--radio); box-shadow: var(--sombra);
}
.tarjeta--archivo:hover { box-shadow: var(--sombra-alta); }
.tarjeta--archivo.tarjeta--sin-imagen { grid-template-columns: minmax(0, 1fr); }
.tarjeta--archivo .tarjeta__imagen .imagen { max-height: 240px; }
.tarjeta--archivo .tarjeta__titulo { font-size: 1.15rem; line-height: 1.3; hyphens: auto; }
.tarjeta--archivo .tarjeta__titulo a::after { content: ""; position: absolute; inset: 0; }
.tarjeta__categorias { display: flex; flex-wrap: wrap; gap: var(--espacio-1) var(--espacio-3); margin: 0 0 var(--espacio-1); font-size: 0.85rem; font-weight: 650; }
/* Las categorías siguen siendo pulsables por encima del enlace que cubre la tarjeta. */
.tarjeta__categorias a { position: relative; z-index: 1; }
.tarjeta__tipo { color: var(--c-texto-suave); }
.listado .paginacion, .listado .navigation.pagination { margin-top: var(--espacio-5); }

/* --- Noticia individual ----------------------------------------------------- */

.noticia { padding-bottom: var(--espacio-6); }
.noticia__cabecera { display: grid; gap: var(--espacio-4) var(--espacio-5); padding: var(--espacio-5) 0 var(--espacio-5); align-items: start; grid-template-columns: minmax(0, 1fr); }
.noticia__imagen { box-shadow: var(--sombra); background: var(--c-superficie); }
.noticia__imagen .imagen { width: auto; max-width: 100%; height: auto; max-height: 75vh; margin: 0 auto; object-fit: contain; }
.noticia__leyenda { padding: var(--espacio-2) var(--espacio-3); font-size: 0.875rem; color: var(--c-texto-suave); background: var(--c-superficie); }
.noticia__categorias { display: flex; flex-wrap: wrap; gap: var(--espacio-2); margin-bottom: var(--espacio-2); font-weight: 650; font-size: 0.9rem; }
.noticia__titulo { margin-bottom: var(--espacio-3); }
.noticia__fecha { display: block; color: var(--c-fondo-suave); margin-bottom: var(--espacio-3); font-weight: 600; }
.noticia__entradilla { font-size: 1.22rem; line-height: 1.55; }
.noticia__cuerpo { background: var(--c-superficie); color: var(--c-superficie-texto); padding: var(--espacio-5) var(--espacio-4); border-radius: var(--radio); box-shadow: var(--sombra); }
.noticia__cuerpo > * + * { margin-top: var(--espacio-5); }
.noticia__cuerpo:not(:has(*)) { display: none; }
.noticia__relacionadas { margin-top: var(--espacio-5); }

.contenido-editorial { font-size: 1.075rem; line-height: 1.7; }
.contenido-editorial > *:first-child { margin-top: 0; }
.contenido-editorial h2 { font-size: 1.45rem; margin-top: var(--espacio-5); }
.contenido-editorial h3 { margin-top: var(--espacio-4); }
.contenido-editorial img { border-radius: var(--radio-pequeno); }
.contenido-editorial ul, .contenido-editorial ol { padding-left: 1.4em; }
.contenido-editorial li + li { margin-top: var(--espacio-1); }
.contenido-editorial blockquote { margin: var(--espacio-4) 0; padding: var(--espacio-2) var(--espacio-4); border-left: 4px solid var(--c-acento); background: var(--c-marco-imagen); }
.contenido-editorial table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.contenido-editorial th, .contenido-editorial td { padding: var(--espacio-2); border: 1px solid var(--c-borde); text-align: left; }

/* Galería */
.galeria__visor { position: relative; }
.galeria__figura { margin: 0; background: var(--c-marco-imagen); border-radius: var(--radio-pequeno); overflow: hidden; touch-action: pan-y; }
.galeria__imagen { width: 100%; height: clamp(260px, 60vw, 560px); object-fit: contain; }
.galeria__pie:empty { display: none; }
.galeria__pie { padding: var(--espacio-2) var(--espacio-3); font-size: 0.9rem; color: var(--c-texto-suave); background: var(--c-superficie); }
.galeria__controles { display: flex; align-items: center; justify-content: space-between; gap: var(--espacio-3); margin-top: var(--espacio-3); }
.galeria__estado { margin: 0; color: var(--c-texto-suave); }
.galeria__miniaturas { display: grid; gap: var(--espacio-2); grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); list-style: none; margin: var(--espacio-3) 0 0; padding: 0; }
.galeria__miniatura { display: block; aspect-ratio: 1; background: var(--c-marco-imagen); border: 3px solid transparent; border-radius: var(--radio-pequeno); overflow: hidden; }
.galeria__miniatura .imagen { width: 100%; height: 100%; }
.galeria__miniatura[aria-current="true"] { border-color: var(--c-enlaces); }

/* Descargas */
.descargas__lista, .enlaces-utiles__lista, .indice__lista { list-style: none; margin: 0; padding: 0; }
.archivo { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-2); padding: var(--espacio-3); margin-bottom: var(--espacio-2); background: var(--c-marco-imagen); border-radius: var(--radio-pequeno); }
.archivo__icono { color: var(--c-enlaces); }
.archivo__enlace { font-weight: 650; }
.enlaces-utiles__lista li, .indice__lista li { padding: var(--espacio-2) 0; border-bottom: 1px solid var(--c-borde); }

/* --- Anuncio ---------------------------------------------------------------- */

.anuncio { padding-bottom: var(--espacio-6); }
.anuncio__acciones { display: flex; flex-wrap: wrap; gap: var(--espacio-3); margin-bottom: var(--espacio-5); }
.anuncio__imagen { margin: var(--espacio-4) 0; }
.anuncio__imagen .imagen { max-height: 80vh; object-fit: contain; }
.anuncio .descargas { margin-top: var(--espacio-5); }

/* --- Servicios -------------------------------------------------------------- */

.servicio { padding-bottom: var(--espacio-6); }
.servicio__rejilla { display: grid; gap: var(--espacio-5); grid-template-columns: minmax(0, 1fr); }
.servicio__principal { min-width: 0; }
.servicio__imagen { margin-bottom: var(--espacio-4); }
.servicio__imagen .imagen { max-height: 480px; object-fit: contain; }
.servicio__datos { align-self: start; padding: var(--espacio-4); background: var(--c-superficie); color: var(--c-superficie-texto); border-radius: var(--radio); box-shadow: var(--sombra); border-top: 4px solid var(--c-acento); }
.datos { margin: 0; }
.datos > div { padding: var(--espacio-2) 0; border-bottom: 1px solid var(--c-borde); }
.datos > div:last-child { border-bottom: 0; }
.datos dt { display: flex; align-items: center; gap: var(--espacio-2); font-weight: 700; }
.datos dt .icono { color: var(--c-enlaces); }
.datos dd { margin: var(--espacio-1) 0 0 calc(1.25em + var(--espacio-2)); }
.servicio__secciones > * { margin-top: var(--espacio-5); }
.servicio .banners { padding-bottom: 0; margin: var(--espacio-5) 0; }
.servicio .listado-noticias { margin-top: var(--espacio-5); }
.servicio .banners .contenedor { padding: 0; }

.servicios__lista { display: grid; gap: var(--espacio-4); grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); list-style: none; margin: 0; padding: 0; }
.servicio-tarjeta { position: relative; height: 100%; padding: var(--espacio-3); background: var(--c-superficie); color: var(--c-superficie-texto); border-radius: var(--radio); box-shadow: var(--sombra); }
.servicio-tarjeta:hover { box-shadow: var(--sombra-alta); }
.servicio-tarjeta__imagen { margin-bottom: var(--espacio-3); }
.servicio-tarjeta__imagen .imagen { max-height: 220px; width: auto; margin: 0 auto; }
.servicio-tarjeta__titulo { font-size: 1.15rem; margin-bottom: var(--espacio-2); }
.servicio-tarjeta__titulo a { color: var(--c-titulares); text-decoration: none; }
.servicio-tarjeta__titulo a::after { content: ""; position: absolute; inset: 0; }
.servicio-tarjeta__titulo a:hover { text-decoration: underline; }
.servicio-tarjeta__resumen { color: var(--c-texto-suave); margin: 0; }

/* --- Páginas ---------------------------------------------------------------- */

.pagina { padding-bottom: var(--espacio-6); }
.pagina__imagen { margin: 0 0 var(--espacio-4); }
.pagina__imagen .imagen { max-height: 520px; object-fit: contain; }
.pagina__cuerpo--lateral { display: grid; gap: var(--espacio-4) var(--espacio-5); grid-template-columns: minmax(0, 1fr); }
.indice { margin-top: var(--espacio-5); }

/* --- Pie -------------------------------------------------------------------- */

.pie { margin-top: 0; background: var(--c-pie); color: var(--c-pie-texto); }
body.con-fondo-ambiental .pie { margin-top: var(--espacio-4); }
.pie a { color: var(--c-pie-texto); }
.pie__columnas { display: grid; gap: var(--espacio-5); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); padding-top: var(--espacio-5); padding-bottom: var(--espacio-5); }
.pie__titulo { color: var(--c-pie-texto); font-size: 1.15rem; border-bottom: 2px solid color-mix(in srgb, var(--c-pie-texto) 30%, transparent); padding-bottom: var(--espacio-2); }
.pie__contacto { font-style: normal; }
.pie__contacto p { display: flex; gap: var(--espacio-2); align-items: flex-start; }
.pie__contacto .icono { margin-top: 0.2em; }
.pie__lista { list-style: none; margin: 0; padding: 0; }
.pie__lista li { margin-bottom: var(--espacio-2); }
.pie__redes a { display: inline-flex; align-items: center; gap: var(--espacio-2); }
.pie__legal { background: var(--c-pie-legal); font-size: 0.9rem; }
.pie__legal-fila { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--espacio-3); padding-top: var(--espacio-3); padding-bottom: var(--espacio-3); }
.pie__legales { display: flex; flex-wrap: wrap; gap: var(--espacio-2) var(--espacio-4); list-style: none; margin: 0; padding: 0; }
.pie__copyright { margin: 0; }

/* ==========================================================================
   Tableta (≥ 600 px)
   ========================================================================== */
@media (min-width: 600px) {
	:root { --margen-lateral: 1.5rem; }
	.pagina__cuerpo--lateral { grid-template-columns: minmax(200px, 38%) minmax(0, 1fr); align-items: start; }
	.noticia__cabecera { grid-template-columns: minmax(220px, 40%) minmax(0, 1fr); }
	.noticia__cabecera--sin-imagen { grid-template-columns: minmax(0, 1fr); max-width: var(--ancho-lectura); margin: 0 auto; }
	.noticia__cuerpo { padding: var(--espacio-5); }

	/* Noticia principal: imagen(es) a la izquierda, texto a la derecha. */
	.destacada--foto, .destacada--dos { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); }
	/* Una sola fotografía horizontal: centrada respecto al texto, con su altura natural (TEC-5D). */
	.destacada--foto .destacada__imagenes { align-self: center; }
	.destacada--cartel { grid-template-columns: minmax(200px, 0.82fr) minmax(0, 1fr); }
	.destacada__imagen.es-cartel .imagen { max-height: 560px; }
	.destacada--sin-imagen .destacada__texto { max-width: var(--ancho-lectura); }

	.institucional__caja { grid-template-columns: minmax(200px, 36%) minmax(0, 1fr); align-items: start; }
	.institucional__caja--sin-imagen { grid-template-columns: minmax(0, 1fr); }
	.listado-noticias--rejilla .listado-noticias__lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--espacio-5); }
	.listado-noticias--rejilla .listado-noticias__lista > li:first-child { padding-top: var(--espacio-3); }
}

/* ==========================================================================
   Escritorio (≥ 1024 px)
   ========================================================================== */
@media (min-width: 900px) {
	.archivo-noticias { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	:root { --margen-lateral: 2rem; }
	.actualidad__rejilla { grid-template-columns: minmax(0, 1.75fr) minmax(300px, 1fr); gap: var(--espacio-5) var(--espacio-4); align-items: start; }
	.actualidad__rejilla--sin-principal { grid-template-columns: minmax(0, 1fr); }
	.destacada { padding: var(--espacio-5) var(--espacio-4); }

	/* Tres secundarias en una sola fila; cada una con imagen a la izquierda y texto a la derecha. */
	.secundarias__lista--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.secundarias__lista--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	/* Noticias ≈ 55 % y carteles ≈ 45 %; las columnas no se igualan en altura. */
	.recientes__rejilla { grid-template-columns: minmax(0, 55fr) minmax(320px, 45fr); align-items: start; }
	.recientes__rejilla--una { grid-template-columns: minmax(0, 1fr); }

	.servicio__rejilla { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); }
	.servicio__rejilla--sin-datos { grid-template-columns: minmax(0, 1fr); }
	.listado-noticias--rejilla .listado-noticias__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ==========================================================================
   Móvil (< 1024 px): menú desplegable accesible
   ========================================================================== */
@media (max-width: 1023px) {
	.js .navegacion__alternar { display: inline-flex; }
	.js .navegacion__alternar[aria-expanded="true"] .navegacion__icono-abrir { display: none; }
	.js .navegacion__alternar[aria-expanded="true"] .navegacion__icono-cerrar { display: inline; }
	.js .menu-principal { display: none; }
	.js .navegacion.esta-abierta .menu-principal { display: block; padding-bottom: var(--espacio-3); }
	.menu-principal { flex-direction: column; }
	.menu-principal__elemento { flex-wrap: wrap; justify-content: space-between; border-top: 1px solid color-mix(in srgb, var(--c-menu-texto) 22%, transparent); }
	.menu-principal__enlace { flex: 1 1 auto; }
	.menu-principal__desplegar { width: 48px; margin-left: 0; }
	.menu-principal__submenu { position: static; width: 100%; box-shadow: none; border: 0; border-radius: 0; background: var(--c-menu-activo); }
	.menu-principal__submenu .menu-principal__enlace, .menu-principal__submenu .menu-principal__desplegar { color: var(--c-menu-texto); }
	.menu-principal__submenu .menu-principal__enlace:hover { background: var(--c-menu); color: var(--c-menu-texto); }

	.accesos--superior .accesos__lista { justify-content: flex-start; }
	.cabecera__acciones { width: 100%; }
	.buscador { flex: 1 1 auto; }
	.buscador__campo { width: 100%; }
}

@media (max-width: 599px) {
	.tarjeta--secundaria { grid-template-columns: minmax(88px, 35%) minmax(0, 1fr); }
	.anuncio__acciones .boton { width: 100%; justify-content: center; }
	.destacada { padding: var(--espacio-3); }
	.destacada__mas .boton { width: 100%; justify-content: center; }
	.noticia__cuerpo { padding: var(--espacio-4) var(--espacio-3); }
	body.con-fondo-ambiental .principal { margin: 0; border-radius: 0; }
}

/* Movimiento reducido: sin desplazamientos animados. */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Modo de alto contraste forzado (Windows). */
@media (forced-colors: active) {
	.boton, .boton-icono, .tarjeta--secundaria, .destacada, .cartel { border: 1px solid CanvasText; }
	:focus-visible { outline: 3px solid Highlight; box-shadow: none; }
}

@media print {
	.cabecera, .pie, .accesos, .carrusel__controles, .galeria__controles, .galeria__miniaturas, .visor { display: none; }
	a { color: #000; }
	body, .principal { background: #fff; }
}
