/* Colaboradores, patrocinadores y organizadores ---------------------------- */
.fi-partners {
	--fi-navy: #0f1c2e;
	--fi-paper: #f7f5f0;
	--fi-gold: #b8955a;
	--fi-muted: #5b6573;
	--fi-logo-h: 56px;
	--fi-logo-cols: 6;
	--fi-gap: clamp(1.5rem, 3vw, 3rem);

	color: var(--fi-navy);
	padding-block: clamp(2.5rem, 5vw, 4.5rem);
}

.fi-partners--claro { background: var(--fi-paper); }
.fi-partners--oscuro { background: var(--fi-navy); color: var(--fi-paper); }

.fi-partners__title {
	margin: 0 0 clamp(2rem, 4vw, 3rem);
	font-size: clamp(1.5rem, 2.6vw, 2.25rem);
	line-height: 1.15;
}

.fi-partners__group + .fi-partners__group { margin-top: clamp(2rem, 4vw, 3.5rem); }

.fi-partners__group-name {
	margin: 0 0 1.5rem;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--fi-gold);
}

.fi-partners.has-line .fi-partners__group-name {
	display: flex;
	align-items: center;
	gap: 1rem;
}
.fi-partners.has-line .fi-partners__group-name::after {
	content: "";
	flex: 1;
	height: 1px;
	background: currentColor;
	opacity: .35;
}

.fi-partners__logos {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr));
	gap: var(--fi-gap);
	align-items: center;
	/* Nunca más columnas de las configuradas. */
	max-width: calc(var(--fi-logo-cols) * 220px);
}

.fi-partners__logo { display: grid; place-items: center; margin: 0; }

.fi-partners__logo img {
	max-width: 100%;
	max-height: var(--fi-logo-h);
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
	transition: filter .3s ease, opacity .3s ease, transform .3s ease;
}

.fi-partners__logo a { display: block; line-height: 0; }

.fi-partners.is-gris .fi-partners__logo img { filter: grayscale(1); opacity: .65; }
.fi-partners.is-gris .fi-partners__logo:hover img { filter: grayscale(0); opacity: 1; }
.fi-partners__logo a:focus-visible { outline: 2px solid var(--fi-gold); outline-offset: 6px; }
.fi-partners__logo a:focus-visible img { filter: none; opacity: 1; }

/* En fondo oscuro los logos suelen venir en blanco: sin filtros raros. */
.fi-partners--oscuro .fi-partners__group-name { color: var(--fi-gold); }

@media (prefers-reduced-motion: reduce) {
	.fi-partners__logo img { transition: none; }
}

@media (max-width: 781px) {
	.fi-partners { --fi-gap: 1.5rem; }
	.fi-partners__logos { grid-template-columns: repeat(auto-fit, minmax(min(110px, 45%), 1fr)); }
}

@media print {
	.fi-partners { padding-block: 1cm; background: none !important; color: #0f1c2e !important; }
	.fi-partners.is-gris .fi-partners__logo img { filter: none; opacity: 1; }
	.fi-partners__group { break-inside: avoid; page-break-inside: avoid; }
}
