/*
Theme Name: GSE Diócesis de Toledo
Theme URI: https://distritodetoledo.scouts-de-europa.org/
Description: Tema hijo de Twenty Twenty-Five para Guías y Scouts de Europa – Diócesis de Toledo. Sistema visual (colores, tipografía, espaciado), cabecera y pie.
Author: Guías y Scouts de Europa – Diócesis de Toledo
Template: twentytwentyfive
Version: 0.4.1
Requires at least: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gse-toledo
*/

/* ---------- Enlaces ---------- */
a { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }

/* ---------- Foco visible (WCAG 2.4.7; buena práctica 2.4.13) ---------- */
:where(a, button, input, select, textarea, summary, .wp-element-button, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--accent-1);
	outline-offset: 3px;
	border-radius: 2px;
}
.gse-pie :where(a, button, .wp-element-button):focus-visible {
	outline-color: var(--wp--preset--color--accent-3);
}

/* ---------- Movimiento reducido (WCAG 2.3.3, buena práctica) ---------- */
@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;
	}
}

/* ---------- Cabecera ---------- */
.gse-cabecera {
	border-top: 4px solid var(--wp--preset--color--accent-1);
	border-bottom: 1px solid var(--wp--preset--color--accent-5);
	padding-top: var(--wp--preset--spacing--30);
	padding-bottom: var(--wp--preset--spacing--30);
}
.gse-cabecera .wp-block-site-title { margin: 0; line-height: 1.1; }
.gse-cabecera .wp-block-site-title a { text-decoration: none; color: var(--wp--preset--color--accent-2); }
.gse-cabecera .wp-block-site-tagline {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--accent-4);
}
.gse-cabecera .wp-block-navigation a { text-decoration: none; }
.gse-cabecera .wp-block-navigation a:hover,
.gse-cabecera .wp-block-navigation .current-menu-item > a {
	text-decoration: underline;
	text-decoration-thickness: 2px;
}
/* Botón del menú móvil: solo se fija el tamaño del objetivo táctil (2.5.8 AA; 44 px buena práctica).
   No se toca "display": WordPress lo oculta en escritorio y lo muestra en móvil. */
.gse-cabecera .wp-block-navigation__responsive-container-open,
.gse-cabecera .wp-block-navigation__responsive-container-close {
	min-width: 44px; min-height: 44px;
	align-items: center; justify-content: center;
}
/* El botón "Únete" nunca se encoge ni parte el texto */
.gse-cabecera .wp-block-buttons { flex-shrink: 0; }
.gse-cabecera .wp-block-button__link { white-space: nowrap; }
/* El bloque de marca puede encogerse y repartir el título en líneas */
.gse-cabecera .alignwide > .wp-block-group:first-child { min-width: 0; flex-shrink: 1; }
@media (max-width: 599px) {
	.gse-cabecera .wp-block-site-title { font-size: var(--wp--preset--font-size--medium); }
	.gse-cabecera .wp-block-button__link { padding: 0.625rem 1rem; }
}

/* ---------- Pie ---------- */
.gse-pie {
	background-color: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--base);
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--50);
	margin-top: 0;
}
.gse-pie :where(h2, h3) { color: var(--wp--preset--color--base); }
.gse-pie a { color: var(--wp--preset--color--base); }
.gse-pie .gse-pie-titulo { font-size: var(--wp--preset--font-size--large); margin-bottom: var(--wp--preset--spacing--20); }
.gse-pie .gse-pie-seccion { font-family: var(--wp--preset--font-family--alegreya-sans); font-size: var(--wp--preset--font-size--medium); font-weight: 700; color: var(--wp--preset--color--accent-3); margin-bottom: var(--wp--preset--spacing--20); }
.gse-pie .gse-lista-pie { list-style: none; padding-left: 0; margin: 0; }
.gse-pie .gse-lista-pie li { margin-bottom: 0.5em; overflow-wrap: anywhere; }
.gse-pie .gse-correspondencia { color: #C9D6EA; font-size: var(--wp--preset--font-size--small); }
.gse-pie .gse-legal {
	border-top: 1px solid rgba(255, 255, 255, 0.25);
	padding-top: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--small);
}
.gse-pie .gse-legal .gse-lista-pie { display: flex; flex-wrap: wrap; gap: 0.5em 1.5em; }
.gse-pie .gse-legal .gse-lista-pie li { margin-bottom: 0; }

/* ---------- Plantilla "Landing de evento" ----------
   Sin cabecera; el contenido ocupa todo el ancho y el pie va pegado. */
.gse-landing { margin-block-start: 0; }
.gse-landing + .wp-block-template-part,
.gse-landing + footer { margin-block-start: 0; }
.gse-landing .wp-block-post-content { margin: 0; }

/* ---------- Componentes de contenido ---------- */
.gse-entradilla {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.45;
	color: var(--wp--preset--color--accent-2);
}
.gse-nota-legal {
	font-size: var(--wp--preset--font-size--small);
	background: var(--wp--preset--color--accent-5);
	border-left: 4px solid var(--wp--preset--color--accent-1);
	padding: var(--wp--preset--spacing--30);
}
.gse-correspondencia-pagina {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--accent-4);
	border-top: 1px solid var(--wp--preset--color--accent-5);
	padding-top: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--60);
}
/* Tablas: desplazamiento interno en pantallas estrechas (WCAG 1.4.10) */
.wp-block-table { overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th,
.wp-block-table td {
	text-align: left;
	vertical-align: top;
	padding: 0.6em 0.8em;
	border: 1px solid #D5DCE6;
}
.wp-block-table thead th {
	background: var(--wp--preset--color--accent-5);
	color: var(--wp--preset--color--accent-2);
	font-weight: 700;
}
.gse-lema {
	font-family: var(--wp--preset--font-family--alegreya);
	font-style: italic;
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--accent-1);
}

/* ---------- Portada ---------- */
.gse-portada { margin-block-start: 0; }
.gse-portada + .wp-block-template-part,
.gse-portada + footer { margin-block-start: 0; }
.gse-portada .wp-block-post-content > .alignfull:first-child { margin-block-start: 0; }

/* Bloque principal: fondo azul noche; si se le pone una foto de fondo,
   el velo garantiza el contraste del texto blanco (WCAG 1.4.3). */
.gse-hero {
	position: relative;
	isolation: isolate;
	background-color: var(--wp--preset--color--accent-2);
	background-size: cover;
	background-position: center;
	color: var(--wp--preset--color--base);
	padding-top: clamp(4rem, 12vw, 9rem);
	padding-bottom: clamp(3rem, 8vw, 6rem);
}
.gse-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(14, 42, 82, 0.55) 0%, rgba(14, 42, 82, 0.88) 100%);
}
.gse-hero :where(h1, h2, p) { color: var(--wp--preset--color--base); }
/* Título y subtítulo alineados a la izquierda con el resto del bloque.
   La longitud de línea se limita con relleno a la derecha (no con max-width,
   que el diseño "constrained" centraría y desalinearía cada línea). */
.gse-hero h1 {
	font-size: clamp(2.5rem, 6vw, 4.25rem);
	line-height: 1.05;
	padding-inline-end: max(0px, calc(min(100%, 75rem) - 15ch));
	text-wrap: balance;
}
.gse-hero .gse-hero-sub {
	font-size: var(--wp--preset--font-size--large);
	padding-inline-end: max(0px, calc(min(100%, 75rem) - 36ch));
}
/* Sin cortes de palabra en títulos de tarjetas y columnas */
.gse-portada :where(h2, h3) { overflow-wrap: normal; word-break: normal; hyphens: manual; }
.gse-hero .wp-block-button.is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--base);
	background: transparent;
}
.gse-hero .wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.12); }
.gse-hero :where(a, .wp-element-button):focus-visible { outline-color: var(--wp--preset--color--accent-3); }

/* Secciones alternas */
.gse-seccion { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); }
.gse-seccion-clara { background: var(--wp--preset--color--accent-5); }
.gse-tarjeta {
	background: var(--wp--preset--color--base);
	border-top: 4px solid var(--wp--preset--color--accent-1);
	padding: var(--wp--preset--spacing--40);
}
.gse-tarjeta h3 { margin-top: 0; }

/* 0.3.2: el relleno del título y subtítulo no debe ensanchar la caja (alineación con los botones) */
.gse-hero h1,
.gse-hero .gse-hero-sub { box-sizing: border-box; }

/* Últimas entradas: imágenes del mismo tamaño y a todo el ancho de su columna */
.wp-block-latest-posts__featured-image img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.wp-block-latest-posts__featured-image { margin-bottom: 0.5em; }

/* ---------- Listados del blog (Actividades y archivos) ---------- */
.gse-listado { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--60); }
.gse-listado .wp-block-post-template { gap: var(--wp--preset--spacing--50); }
.gse-listado .wp-block-post-featured-image { margin-bottom: 0.75em; }
.gse-listado .wp-block-post-title { margin: 0 0 0.25em; }
.gse-listado .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--accent-2); }
.gse-listado .wp-block-post-title a:hover { text-decoration: underline; }
.gse-listado .wp-block-post-date,
.gse-listado .wp-block-post-terms { margin-top: 0.25em; }
.gse-listado .wp-block-query-pagination { margin-top: var(--wp--preset--spacing--60); }

/* ---------- 0.4.1: migas de pan y sección activa ---------- */
.gse-pagina { padding-top: var(--wp--preset--spacing--40); padding-bottom: var(--wp--preset--spacing--60); }
.gse-migas {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--accent-4);
	margin-bottom: var(--wp--preset--spacing--30);
}
.gse-migas:empty { display: none; }
.gse-migas a { color: var(--wp--preset--color--accent-4); }
.gse-migas a:hover { color: var(--wp--preset--color--accent-1); }
.gse-migas .breadcrumb_last { color: var(--wp--preset--color--contrast); font-weight: 400; }
.gse-cabecera .wp-block-navigation .gse-seccion-activa > a {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
}
.gse-meta-entrada { gap: 0.25em 1.25em; color: var(--wp--preset--color--accent-4); }
.gse-nav-entradas { margin-top: var(--wp--preset--spacing--60); padding-top: var(--wp--preset--spacing--40); border-top: 1px solid var(--wp--preset--color--accent-5); }
