.sponsority-list { margin: 2em 0; }

.sponsority-tier { margin-bottom: 2.5em; }
.sponsority-tier__title { margin-bottom: 1em; }

.sponsority-grid {
    --sponsority-cols-min: 2;
    --sponsority-cols-mid: 3;
    --sponsority-cols-max: 4;
    display: grid;
    grid-template-columns: repeat(var(--sponsority-cols-min), 1fr);
    gap: 1.5rem;
    align-items: center;
    justify-items: center;
}

@media (min-width: 600px) {
    .sponsority-grid {
        /* Interpolate tablet between min and max */
        grid-template-columns: repeat(
            calc((var(--sponsority-cols-min) + var(--sponsority-cols-max)) / 2),
            1fr
        );
    }
}

@media (min-width: 1024px) {
    .sponsority-grid {
        grid-template-columns: repeat(var(--sponsority-cols-max), 1fr);
    }
}

.sponsority-sponsor {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
}

.sponsority-sponsor img {
    max-width: 100%;
    height: auto;
    display: block;
}

.sponsority-sponsor a { display: inline-block; }

.sponsority-sponsor__title {
    margin-top: 0.5em;
    font-size: 0.85em;
    color: #555;
}

/* Title-only tier — grid with per-tier min/max columns */
.sponsority-title-grid {
    --sponsority-cols-min: 1;
    --sponsority-cols-max: 1;
    --sponsority-rows-min: 1;
    --sponsority-rows-mid: 1;
    --sponsority-rows-max: 1;
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(var(--sponsority-cols-min), 1fr);
    gap: 0.35em 1.5em;
}

/* Row flow is the default (grid-auto-flow: row) */
.sponsority-title-grid--row { grid-auto-flow: row; }

/* Column flow: fill column-by-column; set row count so it wraps correctly */
.sponsority-title-grid--column {
    grid-auto-flow: column;
    grid-template-rows: repeat(var(--sponsority-rows-min), auto);
}

@media (min-width: 600px) {
    .sponsority-title-grid {
        grid-template-columns: repeat(
            calc((var(--sponsority-cols-min) + var(--sponsority-cols-max)) / 2),
            1fr
        );
    }
    .sponsority-title-grid--column {
        grid-template-rows: repeat(var(--sponsority-rows-mid), auto);
    }
}

@media (min-width: 1024px) {
    .sponsority-title-grid {
        grid-template-columns: repeat(var(--sponsority-cols-max), 1fr);
    }
    .sponsority-title-grid--column {
        grid-template-rows: repeat(var(--sponsority-rows-max), auto);
    }
}

.sponsority-title-item {
    padding: 0.35em 0;
    line-height: 1.5;
}

.sponsority-title-item a {
    text-decoration: none;
    color: inherit;
}

.sponsority-title-item a:hover {
    text-decoration: underline;
}
