/* FED Sponsors — usa los tokens del theme (--fed-*) */

.fed-sponsors {
    padding: clamp(60px, 9vw, 110px) 0 clamp(56px, 8vw, 90px);
}

.fed-sponsors__title {
    margin-bottom: 56px;
    max-width: 24ch;
}

.fed-sponsors__nivel + .fed-sponsors__nivel {
    margin-top: 72px;
}

/* ── Título de nivel con línea ──────────────────────────────────────────── */

.fed-rule {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 28px;
}

.fed-rule__label {
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(20, 23, 28, 0.68);
    white-space: nowrap;
}

.fed-rule__line {
    height: 1px;
    flex: 1;
    background: rgba(20, 23, 28, 0.1);
}

/* ── Grilla de logos ────────────────────────────────────────────────────── */

/*
 * Las líneas se dibujan con el borde de cada celda, no con un fondo gris + gap:
 * así el hueco de una fila incompleta no aparece como un bloque gris.
 *
 * Las columnas tienen ancho MÁXIMO fijo (no 1fr) y la fila va centrada: si un
 * nivel tiene un solo sponsor, su celda mantiene el tamaño normal en vez de
 * estirarse a todo el ancho.
 */
.fed-sponsors__grid {
    display: grid;
    gap: 0;
    background: #fff;
    justify-content: center;
    grid-template-columns: repeat(auto-fit, minmax(min(50%, 210px), 300px));
}

.fed-sponsors__item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 38px 30px;
    min-height: 190px;
    background: #fff;
    border: 1px solid rgba(20, 23, 28, 0.1);
    transition: background 180ms ease;
}

.fed-sponsors__item:hover {
    background: rgba(252, 191, 72, 0.12);
}

.fed-sponsors__item img {
    max-height: 130px;
    max-width: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.78;
    transition: filter 180ms ease, opacity 180ms ease;
}

.fed-sponsors__item:hover img {
    filter: grayscale(0);
    opacity: 1;
}

.fed-sponsors__nombre {
    font-size: 15px;
    color: rgba(20, 23, 28, 0.55);
    text-align: center;
}

/*
 * Jerarquía visual: cuanto más abajo el nivel, más chico el logo y más
 * columnas por fila. El número de clase sale del orden del término.
 */

.fed-sponsors__nivel--1 .fed-sponsors__grid { grid-template-columns: repeat(auto-fit, minmax(min(50%, 190px), 270px)); }
.fed-sponsors__nivel--1 .fed-sponsors__item { min-height: 170px; padding: 30px 26px; }
.fed-sponsors__nivel--1 .fed-sponsors__item img { max-height: 110px; opacity: 0.76; }

.fed-sponsors__nivel--2 .fed-sponsors__grid { grid-template-columns: repeat(auto-fit, minmax(min(50%, 170px), 250px)); }
.fed-sponsors__nivel--2 .fed-sponsors__item { min-height: 155px; padding: 26px 22px; }
.fed-sponsors__nivel--2 .fed-sponsors__item img { max-height: 98px; opacity: 0.72; }

.fed-sponsors__nivel--3 .fed-sponsors__grid { grid-template-columns: repeat(auto-fit, minmax(min(50%, 150px), 230px)); }
.fed-sponsors__nivel--3 .fed-sponsors__item { min-height: 145px; padding: 24px 20px; }
.fed-sponsors__nivel--3 .fed-sponsors__item img { max-height: 90px; opacity: 0.7; }

.fed-sponsors__nivel--4 .fed-sponsors__grid { grid-template-columns: repeat(auto-fit, minmax(min(50%, 140px), 215px)); }
.fed-sponsors__nivel--4 .fed-sponsors__item { min-height: 138px; padding: 24px 20px; }
.fed-sponsors__nivel--4 .fed-sponsors__item img { max-height: 84px; opacity: 0.7; }

@media (min-width: 768px) {
    .fed-sponsors__nivel--3 .fed-sponsors__grid,
    .fed-sponsors__nivel--4 .fed-sponsors__grid {
        grid-template-columns: repeat(auto-fit, minmax(min(50%, 150px), 230px));
    }
}
