/* =====================================================================
   a11y.css - Correcciones de accesibilidad (WCAG 2.2 AA) - FFE
   Se carga la ÚLTIMA, después de color1.css. No modifica las hojas
   corporativas: las corrige por cascada.
   ===================================================================== */


/* ---------------------------------------------------------------------
   1. FOCO VISIBLE (WCAG 2.4.7 y 1.4.11)
   reset.css elimina el contorno con "outline:none !important".
   Aquí se repone con más especificidad. Doble anillo (azul + halo blanco)
   para que se vea tanto sobre fondo claro como sobre fotos oscuras.
   --------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible {
	outline: 3px solid #003366 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 5px #fff !important;
}

/* Sobre fondos oscuros (pie, botones oscuros) se invierte el anillo */
.footer a:focus-visible,
.footer button:focus-visible,
.footer input:focus-visible,
.call-to-action a:focus-visible {
	outline-color: #fff !important;
	box-shadow: 0 0 0 5px #003366 !important;
}

/* El destino del salto (<main tabindex="-1">) no necesita anillo */
#contenido:focus,
#header:focus {
	outline: none !important;
	box-shadow: none !important;
}

/* El foco no debe quedar tapado por la cabecera fija (WCAG 2.4.11).
   Ajustar el valor a la altura real de .header.sticky */
html {
	scroll-padding-top: 110px;
}


/* ---------------------------------------------------------------------
   2. ENLACE "SALTAR AL CONTENIDO" (WCAG 2.4.1)
   Usa .sr-only/.sr-only-focusable de Bootstrap 4; aquí solo su aspecto.
   --------------------------------------------------------------------- */
.skip-link.sr-only-focusable:focus,
.skip-link.sr-only-focusable:active {
	position: fixed !important;
	top: 10px;
	left: 10px;
	z-index: 100000;
	padding: 12px 20px;
	background: #003366;
	color: #fff !important;
	font-weight: 700;
	border-radius: 4px;
	text-decoration: underline;
}


/* ---------------------------------------------------------------------
   3. CONTRASTE DE COLOR (WCAG 1.4.3)
   #d07530 sobre blanco = 3,35:1 (insuficiente para texto normal).
   #a85a1c sobre blanco = 5,07:1 y sobre #f6f6f6 = 4,69:1.
   #e8964f sobre el pie #333 = 5,36:1 (el naranja original da 3,77:1).
   --------------------------------------------------------------------- */
a:hover,
a:active,
.activo {
	color: #a85a1c;
}

.footer .footer-top a:hover,
.footer .footer-top a:focus,
.footer .single-widget li:hover a,
.footer .single-widget li a:focus {
	color: #e8964f !important;
}


/* ---------------------------------------------------------------------
   4. ENLACES DENTRO DE TEXTO (WCAG 1.4.1)
   El azul #003366 frente al gris #666 del párrafo da 2,2:1: el color
   solo no basta para distinguir un enlace. Se subraya en zonas de texto.
   --------------------------------------------------------------------- */
.blogs-main .blog-inner p a,
.about-content p a,
.section-banner p a {
	text-decoration: underline;
}


/* ---------------------------------------------------------------------
   5. NUEVA JERARQUÍA DE ENCABEZADOS
   Las etiquetas cambian (h1 -> h2, h2 -> p, h4 -> h3...) pero el aspecto
   se mantiene idéntico al original.
   --------------------------------------------------------------------- */

/* Hero: antes h1 / h2 */
.hero-area .slider-text .slide-titulo {
	color: #fff;
	font-size: 36px;
	font-weight: 800;
	line-height: 1.2;
	margin-bottom: 30px;
	text-shadow: black 0.1em 0.1em 0.2em;
}
.hero-area .slider-text .slide-subtitulo {
	color: #fff;
	font-size: 24px;
	font-weight: 800;
	line-height: 1.3;
	margin-bottom: 30px;
	text-shadow: black 0.1em 0.1em 0.2em;
}
.hero-area .owl-item.active .slider-text .slide-titulo,
.hero-area .owl-item.active .slider-text .slide-subtitulo {
	animation: fadeInDown 1s both 0.8s;
}
@media (min-width: 768px) and (max-width: 991px) {
	.hero-area .slider-text .slide-titulo { font-size: 32px; }
}
@media only screen and (max-width: 767px) {
	.hero-area .slider-text .slide-titulo { font-size: 25px; margin-bottom: 15px; }
}

/* Noticias: antes h4 */
.blogs-main .blog-inner .titulo-noticia {
	font-size: 18px;
	line-height: 26px;
	margin-bottom: 10px;
	color: #333;
}
.blogs-main .blog-inner .titulo-noticia a {
	color: #333;
}
.blogs-main .blog-inner .titulo-noticia a:hover,
.blogs-main .blog-inner .titulo-noticia a:focus {
	color: #a85a1c;
}

/* Áreas de actividad: antes h2 con un enlace anidado dentro de otro */
.services .single-service a.enlace-servicio {
	display: block;
	max-width: none;
	color: inherit;
}
.services .single-service .titulo-servicio {
	font-size: 18px;
	margin: 15px 0;
	color: #333;
	transition: color 0.3s ease;
}
.services .single-service a.enlace-servicio:hover .titulo-servicio,
.services .single-service a.enlace-servicio:focus .titulo-servicio {
	color: #a85a1c;
}
/* La tarjeta central (.slick-center) tiene fondo #003366 en color1.css.
   #333 sobre #003366 = 1,0:1 (invisible): el título va en blanco. */
.services .service-slider .single-service.slick-center .titulo-servicio,
.services .service-slider .single-service.slick-center a.enlace-servicio:hover .titulo-servicio,
.services .service-slider .single-service.slick-center a.enlace-servicio:focus .titulo-servicio {
	color: #fff;
}
.services .service-slider .single-service.slick-center a.enlace-servicio:hover .titulo-servicio,
.services .service-slider .single-service.slick-center a.enlace-servicio:focus .titulo-servicio {
	text-decoration: underline;
}

/* Patronos: antes h1 */
.section-title .titulo-seccion {
	font-size: 30px;
	margin-bottom: 10px;
	position: relative;
	display: inline-block;
	text-transform: capitalize;
	color: #003366;
}
@media only screen and (max-width: 767px) {
	.section-title .titulo-seccion { font-size: 28px; }
}


/* ---------------------------------------------------------------------
   6. NOTICIAS: fecha y botón de compartir
   --------------------------------------------------------------------- */
.blogs-main .meta .compartir {
	float: right;
}
/* Tamaño mínimo de destino 24x24 px (WCAG 2.5.8) */
.blogs-main .meta .compartir a {
	display: inline-block;
	min-width: 24px;
	min-height: 24px;
	line-height: 24px;
	text-align: center;
	color: #003366;
}


/* ---------------------------------------------------------------------
   7. CARRUSELES
   --------------------------------------------------------------------- */

/* Botón de pausa (WCAG 2.2.2): circular, solo icono, abajo a la derecha
   (los puntos del carrusel están centrados en vertical, no coinciden).
   36x36 px: supera el mínimo de 24x24 px (WCAG 2.5.8). El borde blanco
   sobre relleno azul mantiene el contraste sobre cualquier foto (1.4.11). */
.hero-area .btn-pausa-carrusel {
	position: absolute;
	right: 15px;
	bottom: 15px;
	z-index: 50;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1.5px solid rgba(255, 255, 255, 0.8);
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.25);
	color: #fff;
	font-size: 13px;
	line-height: 33px;
	text-align: center;
	cursor: pointer;
	transition: background 0.3s ease;
}
.hero-area .btn-pausa-carrusel:hover,
.hero-area .btn-pausa-carrusel:focus {
	background: #003366;
}

/* Puntos del carrusel: 12 px con 10 px de separación no alcanzan el
   mínimo de 24x24 px (WCAG 2.5.8). Se amplía el área pulsable sin
   cambiar el tamaño visible del punto. */
.hero-area .owl-controls .owl-dots .owl-dot {
	padding: 6px;
	margin-bottom: 4px;
	cursor: pointer;
}

/* Flechas de los carruseles Slick (botones Prev/Next) */
.blogs-main button.Prev,
.blogs-main button.Next,
.services button.Prev,
.services button.Next {
	min-width: 44px;
	min-height: 44px;
}


/* ---------------------------------------------------------------------
   8. LOGOS DE PATRONOS
   Se aclaran al pasar el ratón; ahora también al llegar con el teclado.
   --------------------------------------------------------------------- */
.partners .single-partner:focus-within img {
	opacity: 1;
}
.partners .lista-patronos {
	list-style: none;
	padding: 0;
}


/* ---------------------------------------------------------------------
   9. MOVIMIENTO REDUCIDO (WCAG 2.3.3, buena práctica para 2.2.2)
   Respeta la preferencia del sistema operativo del usuario.
   --------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.wow {
		visibility: visible !important;
		animation-name: none !important;
	}
	.zoom a img:hover {
		transform: none;
	}
}


/* ---------------------------------------------------------------------
   10. (OPCIONAL) LEGIBILIDAD DEL TEXTO SOBRE LAS FOTOS DEL HERO
   La capa actual es blanca al 10 %: el contraste del texto blanco depende
   de cada foto (WCAG 1.4.3). Si alguna foto es clara, descomentar:
   --------------------------------------------------------------------- */
/*
.hero-area .single-slider:before {
	background: #000;
	opacity: 0.35;
}
*/


/* ---------------------------------------------------------------------
   11. MENÚ PRINCIPAL DE ESCRITORIO (WCAG 2.1.1, 1.4.13, 4.1.2)
   style.css solo abre los submenús con :hover. js/a11y.js añade la clase
   .abierto (botones desplegables) y .esc-cerrado (tecla Escape).
   --------------------------------------------------------------------- */
.header .nav li.abierto > .dropdown,
.header .nav .dropdown li:focus-within > .dropdown.submenu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
/* Escape oculta lo abierto, también lo que se abrió con el ratón */
.header .nav.esc-cerrado .dropdown {
	opacity: 0 !important;
	visibility: hidden !important;
}
/* Indicadores visuales también con teclado: flecha y subrayado */
.header .nav li.abierto > a i,
.header .nav li > a:focus i {
	opacity: 1;
	visibility: visible;
	color: #fff;
}
.header .nav li.abierto > a::before,
.header .nav > li > a:focus::before {
	width: 100%;
	opacity: 1;
	visibility: visible;
}
.header .nav li .dropdown li a:focus {
	color: #fff;
	text-decoration: underline;
}
/* Sobre la barra azul el anillo azul no se ve: se invierte */
.header .nav > li > a:focus-visible {
	outline-color: #fff !important;
	box-shadow: none !important;
}


/* ---------------------------------------------------------------------
   12. BARRA SUPERIOR (topbar.inc)
   --------------------------------------------------------------------- */
/* Iconos sociales: destino mínimo de 24x24 px (WCAG 2.5.8) */
.header .social li a {
	display: inline-block;
	min-width: 24px;
	min-height: 24px;
	line-height: 24px;
	text-align: center;
}
/* Separador "|" que antes era texto suelto dentro del <ul> */
.header .social li.separado {
	border-left: 1px solid #666;
	padding-left: 10px;
}


/* ---------------------------------------------------------------------
   13. PIE (footer.inc)
   --------------------------------------------------------------------- */
/* color1.css pinta el icono #003366 sobre fondo #d07530 al pasar el
   ratón (3,76:1). Blanco sobre #a85a1c = 5,07:1 */
.footer .social li:hover a,
.footer .social li a:focus {
	background: #a85a1c;
	border-color: transparent;
	color: #fff;
}
/* Enlaces legales en lista, con separadores dibujados por CSS */
.footer .enlaces-legales {
	list-style: none;
	margin: 0;
}
.footer .single-widget .enlaces-legales li {
	display: inline-block;
	margin: 0;
	padding: 0;
}
.footer .single-widget .enlaces-legales li + li {
	border-left: 1px solid #fff;
	padding-left: 8px;
	margin-left: 6px;
}
.footer .single-widget .enlaces-legales li a {
	display: inline-block;
	min-height: 24px;
	line-height: 24px;
}


/* ---------------------------------------------------------------------
   14. MIGAS DE PAN (todas las páginas interiores)
   --------------------------------------------------------------------- */
/* El separador es un glifo de FontAwesome: texto alternativo vacío para
   que los lectores no lo anuncien (la 1.ª línea es para navegadores antiguos) */
.breadcrumbs ul li + li::before {
	content: "\f105";
	content: "\f105" / "";
}
/* #d07530 sobre el fondo claro no llega a 4,5:1 */
.breadcrumbs ul li a:hover,
.breadcrumbs ul li a:focus {
	color: #a85a1c !important;
}


/* ---------------------------------------------------------------------
   15. NOTICIAS: LISTADO (/noticias/index.asp)
   --------------------------------------------------------------------- */
/* H1 de la página: antes era un h4, se mantiene su tamaño */
.blogs-main .titulo-pagina {
	font-size: 1.5rem;
	line-height: 1.2;
	margin-bottom: 0.5rem;
	color: #333;
}
/* Cada noticia del índice: miniatura fija a la izquierda y texto a la
   derecha, sin flotados ni imágenes duplicadas para móvil. No usa las
   clases de la plantilla (.blog-inner, .blog-head) porque fuerzan la
   imagen al 100 % de ancho y desplazan la caja. */
.blogs-main .noticia-item {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	padding: 20px 0;
	border-bottom: 1px solid #e7e7e7;
}
.blogs-main .noticia-foto {
	flex: 0 0 200px;
	max-width: 200px;
}
.blogs-main .noticia-foto img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;          /* todas las miniaturas iguales */
	object-fit: cover;
	border-radius: 5px;
	box-shadow: 1px 1px 6px #777;
}
.blogs-main .noticia-texto {
	flex: 1 1 auto;
	min-width: 0;                 /* evita desbordes con palabras largas */
}
/* Titular de cada noticia: antes h4 */
.blogs-main .noticia-texto .titulo-listado {
	font-size: 18px;
	line-height: 26px;
	margin: 0 0 8px;
	color: #333;
}
.blogs-main .noticia-texto .titulo-listado a {
	color: #333;
}
.blogs-main .noticia-texto .titulo-listado a:hover,
.blogs-main .noticia-texto .titulo-listado a:focus {
	color: #003366;
	text-decoration: underline;
}
.blogs-main .noticia-texto .noticia-sumario {
	margin: 0;
}
.blogs-main .noticia-texto .meta {
	margin-top: 10px;
	padding-top: 8px;
}
/* Móvil: miniatura más pequeña, sigue al lado del texto */
@media only screen and (max-width: 575px) {
	.blogs-main .noticia-item { gap: 12px; padding: 15px 0; }
	.blogs-main .noticia-foto { flex-basis: 96px; max-width: 96px; }
	.blogs-main .noticia-texto .titulo-listado { font-size: 16px; line-height: 22px; }
}
.blogs-main .aviso-resultados {
	margin: 15px 0;
}
/* Paginación compacta. style.css aplica a todo ".blogs-main li" un
   margin-left de 40px (pensado para las listas del texto de las noticias);
   antes se anulaba con style="margin:0px" en cada <li>. */
.blogs-main.archives .pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin: 30px 0 0;
	padding-bottom: 0;
}
.blogs-main.archives .pagination li {
	margin: 0;
	list-style: none;
}
.blogs-main.archives .pagination li a {
	width: 40px;            /* 40x40 px: supera el mínimo de 24x24 (WCAG 2.5.8) */
	height: 40px;
	line-height: 38px;
}
/* Puntos suspensivos de la paginación (antes texto suelto en el <ul>) */
.blogs-main.archives .pagination li.puntos span {
	display: block;
	min-width: 16px;
	line-height: 40px;
	color: #333;
}

/* Barra lateral: titulares recientes, antes h4 */
.blogs-main.archives .post-tab .post-info h3 {
	font-size: 14px;
	margin: 0;
	line-height: 22px;
	font-weight: 600;
}


/* ---------------------------------------------------------------------
   16. NOTICIAS: DETALLE (/noticias/noticia.asp)
   --------------------------------------------------------------------- */
/* H1 del titular: antes h2, mismo aspecto */
.blogs-main.archives.single .blog-inner .titular {
	font-size: 25px;
	line-height: 1.3;
	margin: 0 0 15px;
	color: #003366;
}
/* Entradilla: antes <blockquote> dentro de <p> (HTML inválido) */
.blogs-main.archives.single .entradilla {
	background: #f6f6f6;
	padding: 10px 15px;
	border-left: 5px solid #204F70;
	font-style: italic;
	font-size: 16px;
	margin-bottom: 20px;
}
.blogs-main.archives.single .entradilla p:last-child {
	margin-bottom: 0;
}
/* Enlaces del cuerpo: subrayados también fuera de los párrafos (listas,
   tablas) y hover con contraste suficiente */
.blogs-main.archives.single .contenido-noticia a {
	text-decoration: underline;
}
.blogs-main.archives.single .blog-inner a:hover,
.blogs-main.archives.single .blog-inner a:focus {
	color: #a85a1c;
}
.blogs-main.archives.single .documento-adjunto a {
	font-weight: 600;
	text-decoration: underline;
}
/* Podcast */
.blogs-main.archives.single .titulo-podcast {
	font-size: 18px;
	line-height: 26px;
	color: #003366;
	margin: 25px 0 10px;
}
.blogs-main.archives.single .reproductor {
	width: 70%;
}
.blogs-main.archives.single .reproductor audio {
	width: 100%;
}
@media only screen and (max-width: 767px) {
	.blogs-main.archives.single .reproductor { width: 100%; }
}


/* ---------------------------------------------------------------------
   17. HERO DE LA PORTADA: FLECHAS CLÁSICAS A IZQUIERDA Y DERECHA
   Sustituyen a las flechas arriba/abajo apiladas a la izquierda y a la
   columna de puntos de la derecha. Más reconocibles, más grandes y con
   contraste sobre cualquier foto (velo oscuro translúcido + borde blanco,
   1.4.11) sin tapar la imagen.
   Sin tocar main.js: se recolocan y se cambia el glifo por CSS.
   En móvil Owl ya oculta flechas y puntos (opciones responsive de main.js).
   --------------------------------------------------------------------- */
/* Fuera la columna de puntos */
.hero-area .owl-controls .owl-dots,
.hero-area .owl-dots {
	display: none !important;
}
/* Contenedor de flechas: ocupa todo el ancho, centrado en vertical */
.hero-area .owl-controls .owl-nav,
.hero-area .owl-nav {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	height: 0;
	margin-top: 0;
	z-index: 40;
}
.hero-area .owl-controls .owl-nav div,
.hero-area .owl-controls .owl-nav button,
.hero-area .owl-nav .owl-prev,
.hero-area .owl-nav .owl-next {
	position: absolute;
	top: 0;
	width: 40px;
	height: 40px;
	margin: -20px 0 0 !important;
	padding: 0;
	line-height: 37px;
	text-align: center;
	font-size: 24px;
	color: #fff;
	background: rgba(0, 0, 0, 0.25);
	border: 1.5px solid rgba(255, 255, 255, 0.8);
	border-radius: 50%;
	cursor: pointer;
	transition: background 0.3s ease;
}
/* Al pasar el ratón por el banner se refuerzan un poco */
.hero-area:hover .owl-controls .owl-nav div,
.hero-area:hover .owl-nav .owl-prev,
.hero-area:hover .owl-nav .owl-next {
	background: rgba(0, 0, 0, 0.4);
}
.hero-area .owl-controls .owl-nav .owl-prev,
.hero-area .owl-nav .owl-prev {
	left: 20px;
}
.hero-area .owl-controls .owl-nav .owl-next,
.hero-area .owl-nav .owl-next {
	right: 20px;
}
/* Sobre la flecha concreta, o con el foco del teclado: color pleno */
.hero-area .owl-controls .owl-nav div:hover,
.hero-area .owl-controls .owl-nav div:focus,
.hero-area .owl-nav .owl-prev:hover,
.hero-area .owl-nav .owl-next:hover {
	background: #003366;
	color: #fff;
	border-color: #fff;
}
/* main.js pinta flechas arriba/abajo: se cambian por izquierda/derecha
   (mismos códigos en Font Awesome 4 y 6) */
.hero-area .owl-nav .owl-prev i::before {
	content: "\f104";
}
.hero-area .owl-nav .owl-next i::before {
	content: "\f105";
}
