/*
Theme Name: Bomberos Forestales Solidarios
Theme URI: https://www.bomberosforestalessolidarios.es
Author: Asociación Bomberos Forestales Solidarios
Description: Tema a medida para la Asociación Bomberos Forestales Solidarios. Incluye portada institucional, actividades, formaciones, proyectos de cooperación internacional, donaciones y acceso al área interna de socios.
Version: 1.3.1
Requires at least: 6.0
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: bfs
Tags: nonprofit, one-column, custom-menu, custom-logo, featured-images, translation-ready
*/

/* =========================================================
   1. Variables y reset
   ========================================================= */
:root {
	--bfs-verde: #17402a;
	--bfs-verde-medio: #23613d;
	--bfs-verde-claro: #3d8f5f;
	--bfs-fuego: #d94f04;
	--bfs-fuego-claro: #f2740c;
	--bfs-ambar: #f2b705;
	--bfs-arena: #f6f3ec;
	--bfs-arena-2: #ece7dc;
	--bfs-carbon: #14170f;
	--bfs-gris: #5c6157;
	--bfs-gris-claro: #d8d5cc;
	--bfs-blanco: #ffffff;

	--bfs-fuente: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--bfs-fuente-titulo: "Trebuchet MS", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	--bfs-radio: 6px;
	--bfs-sombra: 0 2px 4px rgba(20, 23, 15, .06), 0 8px 24px rgba(20, 23, 15, .08);
	--bfs-sombra-alta: 0 4px 8px rgba(20, 23, 15, .08), 0 18px 44px rgba(20, 23, 15, .14);
	--bfs-ancho: 1180px;
	--bfs-ancho-texto: 720px;
}

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

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

body {
	margin: 0;
	font-family: var(--bfs-fuente);
	font-size: 17px;
	line-height: 1.65;
	color: var(--bfs-carbon);
	background: var(--bfs-blanco);
	-webkit-font-smoothing: antialiased;
}

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

a { color: var(--bfs-verde-medio); text-decoration: underline; text-underline-offset: 2px; }
a:hover, a:focus { color: var(--bfs-fuego); }

h1, h2, h3, h4, h5 {
	font-family: var(--bfs-fuente-titulo);
	line-height: 1.15;
	margin: 0 0 .6em;
	color: var(--bfs-verde);
	letter-spacing: -.01em;
}
h1 { font-size: clamp(2rem, 1.3rem + 2.6vw, 3.1rem); }
h2 { font-size: clamp(1.55rem, 1.15rem + 1.5vw, 2.25rem); }
h3 { font-size: clamp(1.2rem, 1.05rem + .6vw, 1.5rem); }
h4 { font-size: 1.1rem; }

p, ul, ol { margin: 0 0 1.1em; }

blockquote {
	margin: 1.6em 0;
	padding: .2em 0 .2em 1.4em;
	border-left: 4px solid var(--bfs-fuego);
	font-size: 1.1em;
	color: var(--bfs-gris);
	font-style: italic;
}

code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92em; }

hr { border: 0; border-top: 1px solid var(--bfs-gris-claro); margin: 2.5rem 0; }

:focus-visible { outline: 3px solid var(--bfs-ambar); outline-offset: 2px; }

.bfs-skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 999;
	background: var(--bfs-verde); color: #fff; padding: .8rem 1.2rem;
}
.bfs-skip-link:focus { left: 0; }

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

/* =========================================================
   2. Layout
   ========================================================= */
.bfs-contenedor {
	width: 100%;
	max-width: var(--bfs-ancho);
	margin-inline: auto;
	padding-inline: 20px;
}
.bfs-estrecho { max-width: var(--bfs-ancho-texto); }

.bfs-seccion { padding-block: clamp(3rem, 2rem + 4vw, 5.5rem); }
.bfs-seccion--arena { background: var(--bfs-arena); }
.bfs-seccion--verde { background: var(--bfs-verde); color: #e8eee9; }
.bfs-seccion--verde h2, .bfs-seccion--verde h3 { color: #fff; }
.bfs-seccion--verde a { color: var(--bfs-ambar); }

.bfs-rejilla { display: grid; gap: 1.6rem; }
@media (min-width: 700px)  { .bfs-rejilla--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 700px)  { .bfs-rejilla--3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .bfs-rejilla--3 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 700px)  { .bfs-rejilla--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .bfs-rejilla--4 { grid-template-columns: repeat(4, 1fr); } }

.bfs-encabezado-seccion { max-width: 760px; margin-bottom: 2.5rem; }
.bfs-antetitulo {
	display: inline-block;
	font-size: .78rem; letter-spacing: .14em; text-transform: uppercase;
	font-weight: 700; color: var(--bfs-fuego); margin-bottom: .7rem;
}
.bfs-seccion--verde .bfs-antetitulo { color: var(--bfs-ambar); }
.bfs-entradilla { font-size: 1.13rem; color: var(--bfs-gris); }
.bfs-seccion--verde .bfs-entradilla { color: #c6d3c9; }

/* =========================================================
   3. Botones
   ========================================================= */
.bfs-boton {
	display: inline-flex; align-items: center; gap: .5rem;
	padding: .8rem 1.5rem;
	background: var(--bfs-fuego); color: #fff;
	font-weight: 700; font-size: .97rem;
	border: 2px solid var(--bfs-fuego); border-radius: var(--bfs-radio);
	text-decoration: none; cursor: pointer;
	transition: background .18s ease, border-color .18s ease, transform .18s ease, color .18s ease;
}
.bfs-boton:hover, .bfs-boton:focus {
	background: var(--bfs-fuego-claro); border-color: var(--bfs-fuego-claro);
	color: #fff; transform: translateY(-1px);
}
.bfs-boton--verde { background: var(--bfs-verde); border-color: var(--bfs-verde); }
.bfs-boton--verde:hover { background: var(--bfs-verde-medio); border-color: var(--bfs-verde-medio); }
.bfs-boton--linea { background: transparent; color: var(--bfs-verde); border-color: var(--bfs-verde); }
.bfs-boton--linea:hover { background: var(--bfs-verde); color: #fff; }
.bfs-boton--claro { background: transparent; color: #fff; border-color: rgba(255,255,255,.7); }
.bfs-boton--claro:hover { background: #fff; color: var(--bfs-verde); border-color: #fff; }
.bfs-boton--bloque { width: 100%; justify-content: center; }

/* =========================================================
   4. Cabecera
   ========================================================= */
.bfs-barra-alerta {
	background: var(--bfs-fuego); color: #fff;
	font-size: .92rem; font-weight: 600;
	padding: .55rem 0;
}
.bfs-barra-alerta a { color: #fff; }
.bfs-barra-alerta .bfs-contenedor { display: flex; gap: .6rem; align-items: center; }
.bfs-barra-alerta__etiqueta {
	background: rgba(0,0,0,.22); padding: .1rem .55rem; border-radius: 3px;
	text-transform: uppercase; font-size: .72rem; letter-spacing: .08em; flex: none;
}

.bfs-cabecera {
	position: sticky; top: 0; z-index: 80;
	background: rgba(255,255,255,.97);
	border-bottom: 1px solid var(--bfs-gris-claro);
	backdrop-filter: saturate(150%) blur(6px);
}
.bfs-cabecera__interior {
	display: flex; align-items: center; justify-content: space-between;
	gap: 1rem; min-height: 76px;
}
.bfs-marca { display: flex; align-items: center; gap: .75rem; text-decoration: none; }
.bfs-marca img { max-height: 56px; width: auto; }
.bfs-marca__texto { display: flex; flex-direction: column; line-height: 1.15; }
@media (min-width: 1100px) {
	.bfs-marca__texto { width: 174px; }
}
.bfs-marca__nombre {
	font-family: var(--bfs-fuente-titulo); font-weight: 700;
	font-size: 1.02rem; color: var(--bfs-verde); text-transform: uppercase; letter-spacing: .02em;
}
.bfs-marca__lema { font-size: .74rem; color: var(--bfs-gris); letter-spacing: .06em; text-transform: uppercase; }

.bfs-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: .25rem; }
.bfs-nav li { position: relative; }
.bfs-nav a {
	display: block; padding: .55rem .6rem;
	font-size: .92rem; font-weight: 600; color: var(--bfs-carbon);
	text-decoration: none; border-radius: 4px; white-space: nowrap;
}
.bfs-nav a:hover, .bfs-nav .current-menu-item > a, .bfs-nav .current_page_item > a {
	color: var(--bfs-fuego); background: var(--bfs-arena);
}
.bfs-nav .sub-menu {
	display: none; position: absolute; top: 100%; left: 0;
	min-width: 230px; background: #fff; border: 1px solid var(--bfs-gris-claro);
	box-shadow: var(--bfs-sombra); border-radius: var(--bfs-radio); padding: .4rem;
	flex-direction: column; z-index: 90;
}
.bfs-nav li:hover > .sub-menu, .bfs-nav li:focus-within > .sub-menu { display: flex; }

.bfs-cabecera__acciones { display: flex; align-items: center; gap: .6rem; }
.bfs-acceso {
	display: inline-flex; align-items: center; gap: .35rem;
	font-size: .88rem; font-weight: 600; color: var(--bfs-verde);
	text-decoration: none; padding: .5rem .7rem; border-radius: 4px;
	border: 1px solid var(--bfs-gris-claro); white-space: nowrap;
}
.bfs-acceso:hover { border-color: var(--bfs-verde); color: var(--bfs-verde); }

.bfs-menu-movil {
	display: none; background: none; border: 1px solid var(--bfs-gris-claro);
	border-radius: 4px; padding: .5rem .6rem; cursor: pointer;
}
.bfs-menu-movil span { display: block; width: 22px; height: 2px; background: var(--bfs-verde); margin: 4px 0; }

@media (max-width: 1099px) {
	.bfs-menu-movil { display: block; }
	.bfs-nav {
		display: none; position: absolute; top: 100%; left: 0; right: 0;
		background: #fff; border-bottom: 1px solid var(--bfs-gris-claro);
		box-shadow: var(--bfs-sombra); padding: .8rem 20px 1.2rem;
	}
	.bfs-nav.esta-abierto { display: block; }
	.bfs-nav ul { flex-direction: column; gap: 0; }
	.bfs-nav a { padding: .7rem .4rem; border-bottom: 1px solid var(--bfs-arena-2); }
	.bfs-nav .sub-menu { display: flex; position: static; border: 0; box-shadow: none; padding: 0 0 0 1rem; }
	.bfs-acceso span { display: none; }
	.bfs-acceso { padding: .5rem .55rem; }
}

@media (max-width: 640px) {
	.bfs-cabecera__interior { min-height: 66px; gap: .5rem; }
	.bfs-marca img { max-height: 42px; }
	.bfs-marca svg { width: 40px; height: 40px; }
	.bfs-marca__nombre { font-size: .78rem; letter-spacing: 0; }
	.bfs-marca__lema { display: none; }
	.bfs-acceso { display: none; }
	.bfs-cabecera__acciones .bfs-boton { padding: .6rem .95rem; font-size: .88rem; }
	.bfs-barra-alerta .bfs-contenedor { align-items: flex-start; flex-wrap: wrap; }
}

/* =========================================================
   5. Portada
   ========================================================= */
.bfs-hero {
	position: relative;
	background: linear-gradient(150deg, #0f2c1c 0%, var(--bfs-verde) 45%, #29271a 100%);
	color: #fff;
	overflow: hidden;
}
.bfs-hero__fondo {
	position: absolute; inset: 0;
	background-size: cover; background-position: center;
	opacity: .32;
}
.bfs-hero::after {
	content: ""; position: absolute; inset: 0;
	background:
		radial-gradient(120% 90% at 15% 0%, rgba(242,183,5,.18) 0%, rgba(0,0,0,0) 60%),
		repeating-linear-gradient(115deg, rgba(255,255,255,.035) 0 2px, rgba(255,255,255,0) 2px 26px);
	pointer-events: none;
}
.bfs-hero__interior {
	position: relative; z-index: 2;
	padding-block: clamp(4rem, 3rem + 8vw, 8rem);
	max-width: 760px;
}
.bfs-hero h1 { color: #fff; margin-bottom: .5em; text-wrap: balance; }
.bfs-hero__entradilla { font-size: clamp(1.05rem, .98rem + .4vw, 1.3rem); color: #d8e3da; margin-bottom: 2rem; }
.bfs-hero__acciones { display: flex; flex-wrap: wrap; gap: .8rem; }

.bfs-cifras {
	position: relative; z-index: 2;
	border-top: 1px solid rgba(255,255,255,.18);
	display: grid; gap: 1px;
	background: rgba(255,255,255,.14);
	grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 800px) { .bfs-cifras { grid-template-columns: repeat(4, 1fr); } }
.bfs-cifra { background: var(--bfs-verde); padding: 1.6rem 1.2rem; }
.bfs-cifra__numero {
	font-family: var(--bfs-fuente-titulo); font-size: 2.1rem; font-weight: 700;
	color: var(--bfs-ambar); line-height: 1;
}
.bfs-cifra__texto { font-size: .87rem; color: #c6d3c9; margin-top: .4rem; }

/* =========================================================
   6. Tarjetas
   ========================================================= */
.bfs-tarjeta {
	background: #fff;
	border: 1px solid var(--bfs-gris-claro);
	border-radius: var(--bfs-radio);
	overflow: hidden;
	display: flex; flex-direction: column;
	transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.bfs-tarjeta:hover { box-shadow: var(--bfs-sombra); transform: translateY(-2px); border-color: #c3bfb4; }
.bfs-tarjeta__imagen { aspect-ratio: 16 / 10; overflow: hidden; background: var(--bfs-arena-2); }
.bfs-tarjeta__imagen img { width: 100%; height: 100%; object-fit: cover; }
.bfs-tarjeta__cuerpo { padding: 1.25rem 1.35rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.bfs-tarjeta__titulo { font-size: 1.15rem; margin-bottom: .4rem; }
.bfs-tarjeta__titulo a { color: inherit; text-decoration: none; }
.bfs-tarjeta__titulo a:hover { color: var(--bfs-fuego); }
.bfs-tarjeta__meta {
	font-size: .78rem; letter-spacing: .07em; text-transform: uppercase;
	color: var(--bfs-gris); margin-bottom: .6rem; font-weight: 600;
}
.bfs-tarjeta__extracto { color: var(--bfs-gris); font-size: .95rem; margin-bottom: 1rem; }
.bfs-tarjeta__enlace { margin-top: auto; font-weight: 700; font-size: .9rem; text-decoration: none; color: var(--bfs-fuego); }
.bfs-tarjeta__enlace::after { content: " →"; }

.bfs-etiqueta {
	display: inline-block; font-size: .72rem; font-weight: 700;
	letter-spacing: .07em; text-transform: uppercase;
	padding: .2rem .55rem; border-radius: 3px;
	background: var(--bfs-arena-2); color: var(--bfs-verde);
}
.bfs-etiqueta--fuego { background: rgba(217,79,4,.12); color: var(--bfs-fuego); }
.bfs-etiqueta--verde { background: rgba(35,97,61,.12); color: var(--bfs-verde-medio); }

/* Bloques de valor / área */
.bfs-bloque {
	background: #fff; border: 1px solid var(--bfs-gris-claro);
	border-radius: var(--bfs-radio); padding: 1.6rem 1.5rem;
	border-top: 4px solid var(--bfs-verde-claro);
}
.bfs-bloque h3 { margin-bottom: .5rem; }
.bfs-bloque p:last-child { margin-bottom: 0; }
.bfs-bloque__icono {
	width: 44px; height: 44px; border-radius: 50%;
	background: var(--bfs-arena); color: var(--bfs-verde);
	display: grid; place-items: center; margin-bottom: 1rem;
	font-size: 1.2rem;
}

/* Línea de tiempo */
.bfs-cronologia { list-style: none; margin: 0; padding: 0; position: relative; }
.bfs-cronologia::before {
	content: ""; position: absolute; left: 7px; top: 6px; bottom: 6px;
	width: 2px; background: var(--bfs-gris-claro);
}
.bfs-cronologia li { position: relative; padding: 0 0 1.6rem 2.2rem; }
.bfs-cronologia li::before {
	content: ""; position: absolute; left: 0; top: .45rem;
	width: 16px; height: 16px; border-radius: 50%;
	background: #fff; border: 3px solid var(--bfs-fuego);
}
.bfs-cronologia__fecha { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--bfs-gris); font-weight: 700; }
.bfs-cronologia__titulo { font-weight: 700; color: var(--bfs-verde); }

/* =========================================================
   7. Contenido / entradas
   ========================================================= */
.bfs-portada-pagina {
	background: var(--bfs-verde);
	color: #fff;
	padding-block: clamp(2.5rem, 2rem + 3vw, 4.5rem);
	position: relative; overflow: hidden;
}
.bfs-portada-pagina__fondo { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .28; }
.bfs-portada-pagina .bfs-contenedor { position: relative; z-index: 2; }
.bfs-portada-pagina h1 { color: #fff; margin-bottom: .3em; }
.bfs-portada-pagina p { color: #c6d3c9; margin: 0; max-width: 640px; }

.bfs-migas { font-size: .84rem; color: #a9bbaf; margin-bottom: .8rem; }
.bfs-migas a { color: #d5e0d8; }

.bfs-contenido { padding-block: clamp(2.5rem, 2rem + 3vw, 4.5rem); }
.bfs-articulo { max-width: var(--bfs-ancho-texto); }
.bfs-articulo img { border-radius: var(--bfs-radio); margin-block: 1.5rem; }
.bfs-articulo > *:first-child { margin-top: 0; }
.bfs-articulo h2 { margin-top: 2rem; }
.bfs-articulo h3 { margin-top: 1.6rem; }
.bfs-articulo ul, .bfs-articulo ol { padding-left: 1.3rem; }
.bfs-articulo li { margin-bottom: .4rem; }
.bfs-articulo table { width: 100%; border-collapse: collapse; margin-block: 1.5rem; }
.bfs-articulo th, .bfs-articulo td { border: 1px solid var(--bfs-gris-claro); padding: .6rem .8rem; text-align: left; }
.bfs-articulo th { background: var(--bfs-arena); }

.bfs-ficha {
	background: var(--bfs-arena); border-radius: var(--bfs-radio);
	padding: 1.2rem 1.4rem; margin-bottom: 2rem;
	border-left: 4px solid var(--bfs-fuego);
}
.bfs-ficha dl { display: grid; grid-template-columns: auto 1fr; gap: .35rem 1rem; margin: 0; font-size: .95rem; }
.bfs-ficha dt { font-weight: 700; color: var(--bfs-verde); }
.bfs-ficha dd { margin: 0; }

.bfs-paginacion { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: 2.5rem; }
.bfs-paginacion .page-numbers {
	display: inline-block; padding: .5rem .85rem; border: 1px solid var(--bfs-gris-claro);
	border-radius: 4px; text-decoration: none; font-weight: 600; font-size: .92rem;
}
.bfs-paginacion .current { background: var(--bfs-verde); color: #fff; border-color: var(--bfs-verde); }

/* =========================================================
   8. Donaciones
   ========================================================= */
.bfs-donacion-opciones { display: grid; gap: 1.2rem; }
@media (min-width: 760px) { .bfs-donacion-opciones { grid-template-columns: repeat(3, 1fr); } }
.bfs-donacion {
	border: 2px solid var(--bfs-gris-claro); border-radius: var(--bfs-radio);
	padding: 1.6rem 1.4rem; background: #fff; text-align: center;
	display: flex; flex-direction: column;
}
.bfs-donacion h3 { margin-bottom: .3rem; }
.bfs-donacion p { color: var(--bfs-gris); font-size: .95rem; }
.bfs-donacion .bfs-boton { margin-top: auto; justify-content: center; }
.bfs-donacion--destacada { border-color: var(--bfs-fuego); box-shadow: var(--bfs-sombra); }
.bfs-iban {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	background: var(--bfs-arena); padding: .5rem .7rem; border-radius: 4px;
	display: inline-block; font-size: .95rem; word-break: break-all;
}
.bfs-impacto { list-style: none; padding: 0; margin: 0; }
.bfs-impacto li {
	display: flex; gap: .8rem; padding: .8rem 0;
	border-bottom: 1px solid var(--bfs-gris-claro);
}
.bfs-impacto li:last-child { border-bottom: 0; }
.bfs-impacto strong { color: var(--bfs-fuego); flex: none; min-width: 62px; }

/* =========================================================
   9. Formularios
   ========================================================= */
.bfs-formulario { display: grid; gap: 1rem; }
.bfs-campo { display: flex; flex-direction: column; gap: .35rem; }
.bfs-campo label { font-weight: 600; font-size: .92rem; color: var(--bfs-verde); }
.bfs-campo .bfs-ayuda { font-size: .82rem; color: var(--bfs-gris); font-weight: 400; }
input[type="text"], input[type="email"], input[type="tel"], input[type="password"],
input[type="number"], input[type="date"], input[type="url"], input[type="search"],
select, textarea {
	width: 100%; padding: .7rem .85rem;
	font: inherit; font-size: .97rem; color: var(--bfs-carbon);
	background: #fff; border: 1px solid #b9b6ac; border-radius: var(--bfs-radio);
}
textarea { min-height: 140px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--bfs-verde-claro); outline: 2px solid rgba(61,143,95,.25); outline-offset: 0; }
.bfs-check { display: flex; gap: .6rem; align-items: flex-start; font-size: .92rem; }
.bfs-check input { margin-top: .25rem; flex: none; }
@media (min-width: 700px) { .bfs-formulario--2col { grid-template-columns: 1fr 1fr; } .bfs-campo--ancho { grid-column: 1 / -1; } }

.bfs-aviso { padding: .9rem 1.1rem; border-radius: var(--bfs-radio); margin-bottom: 1.2rem; font-size: .95rem; }
.bfs-aviso--ok { background: #e6f4ea; border: 1px solid #97caa9; color: #15502f; }
.bfs-aviso--error { background: #fdeae3; border: 1px solid #f0b49a; color: #8a2f06; }
.bfs-aviso--info { background: #fdf6e0; border: 1px solid #eccf7e; color: #6d5405; }

/* =========================================================
   10. Área interna (front-end)
   ========================================================= */
.bfs-panel { display: grid; gap: 1.5rem; }
@media (min-width: 900px) { .bfs-panel { grid-template-columns: 260px 1fr; align-items: start; } }
.bfs-panel__lateral {
	background: var(--bfs-arena); border-radius: var(--bfs-radio); padding: 1.2rem;
	border: 1px solid var(--bfs-gris-claro);
}
.bfs-panel__lateral ul { list-style: none; margin: 1rem 0 0; padding: 0; }
.bfs-panel__lateral li { border-top: 1px solid var(--bfs-gris-claro); }
.bfs-panel__lateral a { display: block; padding: .6rem .2rem; text-decoration: none; font-weight: 600; font-size: .93rem; }
.bfs-identidad { display: flex; gap: .8rem; align-items: center; }
.bfs-identidad img { border-radius: 50%; }
.bfs-identidad strong { display: block; color: var(--bfs-verde); }
.bfs-identidad span { font-size: .82rem; color: var(--bfs-gris); }

.bfs-estado-cuota { padding: .7rem .9rem; border-radius: 4px; font-size: .9rem; font-weight: 600; margin-top: 1rem; }
.bfs-estado-cuota--ok { background: #e6f4ea; color: #15502f; }
.bfs-estado-cuota--pronto { background: #fdf6e0; color: #6d5405; }
.bfs-estado-cuota--caducada { background: #fdeae3; color: #8a2f06; }

.bfs-comunicado {
	border: 1px solid var(--bfs-gris-claro); border-radius: var(--bfs-radio);
	padding: 1.2rem 1.3rem; margin-bottom: 1rem; background: #fff;
}
.bfs-comunicado--emergencia { border-left: 5px solid var(--bfs-fuego); background: #fffaf7; }
.bfs-comunicado--boletin { border-left: 5px solid var(--bfs-verde-claro); }
.bfs-comunicado h3 { margin-bottom: .3rem; font-size: 1.1rem; }
.bfs-comunicado__meta { font-size: .8rem; color: var(--bfs-gris); text-transform: uppercase; letter-spacing: .06em; margin-bottom: .7rem; }

.bfs-tabla { width: 100%; border-collapse: collapse; font-size: .93rem; }
.bfs-tabla th, .bfs-tabla td { padding: .6rem .7rem; border-bottom: 1px solid var(--bfs-gris-claro); text-align: left; }
.bfs-tabla th { background: var(--bfs-arena); font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bfs-verde); }
.bfs-tabla-scroll { overflow-x: auto; }

.bfs-acceso-caja {
	max-width: 460px; margin-inline: auto;
	background: #fff; border: 1px solid var(--bfs-gris-claro);
	border-radius: var(--bfs-radio); padding: 2rem; box-shadow: var(--bfs-sombra);
}
.bfs-acceso-caja .login-username,
.bfs-acceso-caja .login-password { margin-bottom: 1rem; }
.bfs-acceso-caja label { display: block; font-weight: 600; font-size: .92rem; color: var(--bfs-verde); margin-bottom: .3rem; }
.bfs-acceso-caja .login-remember label { font-weight: 400; color: var(--bfs-gris); font-size: .9rem; display: flex; gap: .5rem; align-items: center; }
.bfs-acceso-caja .login-submit { margin-top: 1.2rem; }
.bfs-acceso-caja input[type="submit"] {
	width: 100%;
	display: inline-flex; align-items: center; justify-content: center;
	padding: .8rem 1.5rem;
	background: var(--bfs-fuego); color: #fff;
	font: inherit; font-weight: 700; font-size: .97rem;
	border: 2px solid var(--bfs-fuego); border-radius: var(--bfs-radio);
	cursor: pointer;
}
.bfs-acceso-caja input[type="submit"]:hover { background: var(--bfs-fuego-claro); border-color: var(--bfs-fuego-claro); }

/* =========================================================
   11. Pie
   ========================================================= */
.bfs-pie { background: var(--bfs-carbon); color: #b9c0b1; padding-block: 3.5rem 1.5rem; font-size: .93rem; }
.bfs-pie h4 { color: #fff; font-size: .95rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 1rem; }
.bfs-pie a { color: #d6dccd; text-decoration: none; }
.bfs-pie a:hover { color: var(--bfs-ambar); }
.bfs-pie ul { list-style: none; margin: 0; padding: 0; }
.bfs-pie li { margin-bottom: .5rem; }
.bfs-pie__rejilla { display: grid; gap: 2rem; }
@media (min-width: 760px) { .bfs-pie__rejilla { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; } }
.bfs-pie__legal {
	margin-top: 2.5rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.12);
	display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: space-between;
	font-size: .84rem; color: #8b9384;
}
.bfs-redes { display: flex; gap: .6rem; margin-top: 1rem; }
.bfs-redes a {
	width: 38px; height: 38px; border-radius: 50%;
	border: 1px solid rgba(255,255,255,.22);
	display: grid; place-items: center;
}
.bfs-redes a:hover { background: var(--bfs-fuego); border-color: var(--bfs-fuego); color: #fff; }

/* =========================================================
   12. Utilidades y bloques de WordPress
   ========================================================= */
.alignleft { float: left; margin: .3rem 1.5rem 1rem 0; }
.alignright { float: right; margin: .3rem 0 1rem 1.5rem; }
.aligncenter { margin-inline: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text, figcaption { font-size: .85rem; color: var(--bfs-gris); text-align: center; margin-top: .5rem; }
.sticky, .gallery-caption, .bypostauthor { }
.bfs-mt-0 { margin-top: 0; }
.bfs-mb-0 { margin-bottom: 0; }
.bfs-centrado { text-align: center; }
.bfs-centrado .bfs-encabezado-seccion { margin-inline: auto; }

@media print {
	.bfs-cabecera, .bfs-pie, .bfs-barra-alerta, .bfs-hero__acciones { display: none !important; }
}

/* =====================================================
 * Foto de perfil, directorio con caras y herramientas
 * (v1.7.0)
 * ===================================================== */

.bfs-foto-perfil {
	display: flex;
	gap: 1.2rem;
	align-items: flex-start;
	flex-wrap: wrap;
	padding: 1rem;
	background: var(--bfs-arena-2);
	border-radius: 10px;
}
.bfs-foto-perfil__imagen {
	width: 110px;
	height: 110px;
	flex: 0 0 110px;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--bfs-borde);
	display: flex;
	align-items: center;
	justify-content: center;
}
.bfs-foto-perfil__imagen img { width: 100%; height: 100%; object-fit: cover; }
.bfs-foto-perfil__vacia { font-size: .78rem; color: var(--bfs-gris); text-align: center; }
.bfs-foto-perfil__controles { flex: 1 1 260px; }
.bfs-foto-perfil__controles label { display: block; font-weight: 600; margin-bottom: .35rem; }
.bfs-foto-perfil__controles input[type="file"] { max-width: 100%; font-size: .9rem; }
.bfs-foto-perfil__controles .bfs-ayuda { font-size: .82rem; color: var(--bfs-gris); margin: .4rem 0 .6rem; }

.bfs-persona { display: flex; align-items: center; gap: .6rem; }
.bfs-persona img {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 40px;
}

/* Inventario */
.bfs-panel__contenido .bfs-rejilla--3 { gap: 1.2rem; }
.bfs-panel__contenido .bfs-tarjeta { display: flex; flex-direction: column; }
.bfs-panel__contenido .bfs-tarjeta__cuerpo { display: flex; flex-direction: column; flex: 1; }
.bfs-panel__contenido .bfs-tarjeta input[type="number"] {
	border: 1px solid var(--bfs-borde);
	border-radius: 6px;
	font: inherit;
}

@media (max-width: 640px) {
	.bfs-foto-perfil { gap: .9rem; }
	.bfs-foto-perfil__imagen { width: 84px; height: 84px; flex-basis: 84px; }
}

.bfs-acciones { flex-direction: row; flex-wrap: wrap; gap: .7rem; align-items: center; }
.bfs-acciones .bfs-boton { flex: 0 0 auto; }

.bfs-filtro { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .7rem; margin-bottom: 1.6rem; max-width: none; }
.bfs-filtro .bfs-campo:first-child { flex: 1 1 14rem; }
.bfs-filtro .bfs-campo { flex: 0 1 auto; }
.bfs-filtro select { min-width: 10rem; }

.bfs-llevar { display: flex; gap: .5rem; align-items: center; }
.bfs-llevar input[type="number"] { width: 4.5rem; padding: .5rem; border: 1px solid var(--bfs-borde); border-radius: 6px; font: inherit; }
.bfs-llevar .bfs-boton { padding: .5rem 1rem; font-size: .9rem; }

/* Texto escrito en la propia página Inicio (v1.2.0) */
.bfs-seccion--pagina { padding-block: 3rem; }
.bfs-prosa { max-width: 46rem; margin-inline: auto; }
.bfs-prosa > :first-child { margin-top: 0; }
.bfs-prosa > :last-child { margin-bottom: 0; }
.bfs-prosa h2 { margin-top: 2rem; }
.bfs-prosa img { max-width: 100%; height: auto; border-radius: 10px; }

/* Material cedido por un socio (v1.8.0) */
.bfs-ofrecer {
	background: var(--bfs-arena-2);
	border: 1px solid var(--bfs-borde);
	border-radius: 10px;
	padding: 1rem 1.2rem;
	margin-bottom: 1.8rem;
}
.bfs-ofrecer > summary { cursor: pointer; font-weight: 700; color: var(--bfs-verde); }
.bfs-ofrecer[open] > summary { margin-bottom: .8rem; }
.bfs-ofrecer .bfs-formulario { max-width: none; }
.bfs-ofrecer textarea { width: 100%; padding: .6rem .8rem; border: 1px solid var(--bfs-borde); border-radius: 6px; font: inherit; }

.bfs-cede { border-top: 1px solid var(--bfs-borde); padding-top: .7rem; }
.bfs-cede__quien { display: flex; align-items: center; gap: .6rem; margin: 0 0 .3rem; }
.bfs-cede__quien img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex: 0 0 32px; }
.bfs-cede__quien small { color: var(--bfs-gris); }
.bfs-cede__contacto { margin: 0; font-weight: 600; }

/* Calendario de eventos (v1.8.0) */
.bfs-eventos { display: grid; gap: 1rem; }
.bfs-evento {
	display: flex;
	gap: 1.1rem;
	background: #fff;
	border: 1px solid var(--bfs-borde);
	border-radius: 10px;
	padding: 1.1rem 1.2rem;
}
.bfs-evento__fecha {
	flex: 0 0 4.2rem;
	text-align: center;
	background: var(--bfs-verde);
	color: #fff;
	border-radius: 8px;
	padding: .55rem .2rem;
	align-self: flex-start;
}
.bfs-evento__dia { display: block; font-size: 1.7rem; font-weight: 800; line-height: 1; }
.bfs-evento__mes { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.bfs-evento__cuerpo { flex: 1; min-width: 0; }
.bfs-evento__cuerpo h2,
.bfs-evento__cuerpo h3 { margin: 0 0 .3rem; font-size: 1.08rem; }
.bfs-evento__cuerpo h2 a,
.bfs-evento__cuerpo h3 a { text-decoration: none; }
.bfs-evento__meta { margin: 0 0 .5rem; font-size: .88rem; color: var(--bfs-gris); }
.bfs-evento__cuenta { margin: 0 0 .6rem; font-size: .95rem; }
.bfs-evento__pie { margin: .7rem 0 0; font-size: .88rem; }

.bfs-participar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0; }
.bfs-participar .bfs-boton { padding: .45rem 1rem; font-size: .9rem; }
.bfs-participar__estado { font-weight: 700; font-size: .92rem; }
.bfs-participar__estado--si { color: #15502f; }
.bfs-participar__estado--espera { color: #8a6405; }
.bfs-participar__estado--no { color: var(--bfs-gris); }

.bfs-eventos-pasados { list-style: none; padding: 0; }
.bfs-eventos-pasados li { padding: .45rem 0; border-bottom: 1px solid var(--bfs-borde); }
.bfs-eventos-pasados small { color: var(--bfs-gris); }

.bfs-volver { margin-bottom: 1.2rem; font-size: .9rem; }
.bfs-evento-ficha__datos { list-style: none; padding: 0; margin: 0 0 1.5rem; display: grid; gap: .4rem; }
.bfs-evento-ficha__datos strong { display: inline-block; min-width: 7rem; color: var(--bfs-verde); }
.bfs-evento-ficha__imagen { margin: 0 0 1.5rem; }
.bfs-evento-ficha__imagen img { width: 100%; height: auto; border-radius: 10px; }
.bfs-evento-ficha__participar { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 2px solid var(--bfs-borde); }
.bfs-evento-ficha__telefono { font-size: 1.05rem; font-weight: 600; }
.bfs-evento-ficha__comentarios { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 2px solid var(--bfs-borde); }

.bfs-listas { display: grid; gap: 1.2rem; margin-top: 1.8rem; }
@media (min-width: 720px) { .bfs-listas { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); } }
.bfs-lista h3 { font-size: .95rem; margin: 0 0 .5rem; }
.bfs-lista h3 span { color: var(--bfs-gris); font-weight: 400; }
.bfs-lista ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }
.bfs-lista li { display: flex; align-items: center; gap: .5rem; font-size: .92rem; }
.bfs-lista img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; flex: 0 0 28px; }

@media (max-width: 560px) {
	.bfs-evento { flex-direction: column; gap: .7rem; }
	.bfs-evento__fecha { display: flex; gap: .4rem; align-items: baseline; justify-content: center; flex-basis: auto; width: max-content; padding: .3rem .8rem; }
	.bfs-evento__dia { font-size: 1.2rem; }
}

.bfs-prosa--plana { margin-inline: 0; max-width: 52rem; }
.bfs-iniciales {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	color: #fff;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .02em;
	flex: none;
}

/* Barra de acciones y zona para soltar fotos (v1.8.1) */
.bfs-barra-acciones {
	display: flex;
	flex-wrap: wrap;
	gap: .7rem;
	align-items: flex-start;
	margin-bottom: 1.8rem;
}
.bfs-barra-acciones .bfs-boton { margin: 0; }

.bfs-ofrecer { background: none; border: 0; padding: 0; margin: 0; }
.bfs-ofrecer > summary {
	cursor: pointer;
	list-style: none;
	user-select: none;
}
.bfs-ofrecer > summary::-webkit-details-marker { display: none; }
.bfs-ofrecer[open] { flex: 1 1 100%; }
.bfs-ofrecer__panel {
	margin-top: 1rem;
	background: var(--bfs-arena-2);
	border: 1px solid var(--bfs-borde);
	border-radius: 10px;
	padding: 1.2rem;
}
.bfs-ofrecer__panel .bfs-formulario { max-width: none; }
.bfs-ofrecer__panel textarea {
	width: 100%; padding: .6rem .8rem;
	border: 1px solid var(--bfs-borde); border-radius: 6px; font: inherit;
}

.bfs-soltar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .8rem;
	padding: 1rem;
	border: 2px dashed var(--bfs-borde);
	border-radius: 8px;
	background: #fff;
	transition: border-color .15s, background .15s;
}
.bfs-soltar--activa { border-color: var(--bfs-fuego); background: #fdf1e8; }
.bfs-soltar__pista { font-size: .88rem; color: var(--bfs-gris); }

/* Material comprometido para un evento (v1.10.0) */
.bfs-evento-ficha__material { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 2px solid var(--bfs-borde); }
.bfs-material { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.bfs-material__linea {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem;
	align-items: center;
	justify-content: space-between;
	padding: .8rem 0;
	border-bottom: 1px solid var(--bfs-borde);
}
.bfs-material__que { flex: 1 1 16rem; }
.bfs-material__que small { color: var(--bfs-gris); }
.bfs-material__quien { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.bfs-material__asumido { display: flex; align-items: center; gap: .45rem; font-size: .9rem; font-weight: 600; color: #15502f; }
.bfs-material__asumido img { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; flex: none; }
.bfs-material__huerfano { font-size: .88rem; color: #8a6405; }
.bfs-material__accion { margin: 0; }
.bfs-material__accion .bfs-boton { padding: .35rem .9rem; font-size: .85rem; }
.bfs-material__quitar {
	text-decoration: none; font-size: 1.3rem; line-height: 1;
	color: var(--bfs-gris); padding: 0 .3rem;
}
.bfs-material__quitar:hover { color: #8a2f06; }

.bfs-material__anadir {
	display: flex; flex-wrap: wrap; gap: .7rem; align-items: flex-end;
	background: var(--bfs-arena-2); border: 1px solid var(--bfs-borde);
	border-radius: 8px; padding: 1rem; margin: 0;
}
.bfs-material__anadir .bfs-campo:first-child { flex: 1 1 18rem; }
.bfs-material__anadir select,
.bfs-material__anadir input[type="number"] {
	padding: .55rem .7rem; border: 1px solid var(--bfs-borde); border-radius: 6px; font: inherit;
}
.bfs-material__anadir input[type="number"] { width: 5.5rem; }

.bfs-comprometida { font-size: .84rem; color: #8a6405; margin: .3rem 0 0; }
.bfs-comprometida a { color: inherit; }

/* Material suelto, el que no está en el inventario (v1.11.0) */
.bfs-material__formularios { display: grid; gap: .8rem; }
.bfs-material__anadir--suelto { background: #fff; border-style: dashed; }
.bfs-material__anadir--suelto .bfs-campo:first-child { flex: 1 1 18rem; }
.bfs-material__anadir--suelto input[type="text"] {
	width: 100%; padding: .55rem .7rem;
	border: 1px solid var(--bfs-borde); border-radius: 6px; font: inherit;
}
.bfs-material__anadir--suelto .bfs-campo:first-child { flex: 1 1 24rem; }
