/* Sponsors: sponsors page tweaks + homepage sponsor strip (added 30 Sep 2026) */

/* Anything marked hidden stays hidden, even if a theme rule sets display */
.sponsors-content [hidden],
.sponsor-strip[hidden] {
    display: none !important;
}

/* Sponsor cards are now real links */
a.sponsor-card {
    display: block;
    color: inherit;
    text-decoration: none;
}
a.sponsor-card:focus-visible {
    outline: 3px solid var(--primary-blue, #1e78ff);
    outline-offset: 3px;
}
.sponsor-card .sponsor-card-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.sponsor-card .sponsor-logo-img {
    display: block;
    width: 100%;
    max-width: 200px;
    height: 90px;
    margin: 0 auto 1rem;
    object-fit: contain;
}
.sponsor-card .sponsor-logo-placeholder {
    margin-left: auto;
    margin-right: auto;
}
.sponsor-card .sponsor-tier-badge {
    text-transform: none;
}
.sponsor-card .sponsor-link {
    display: block;
    margin-top: 0.75rem;
}

.sponsors-empty {
    text-align: center;
    color: var(--text-gray, #4A5568);
    background: var(--light-gray, #F7FAFC);
    border: 1px dashed var(--border-gray, #E2E8F0);
    border-radius: 12px;
    padding: 2rem 1.5rem;
    margin: 2rem 0;
}

/* ---- Homepage sponsor strip ---- */
.sponsor-strip {
    background: var(--light-gray, #F7FAFC);
    border-top: 1px solid var(--border-gray, #E2E8F0);
    padding: 3rem 0;
    overflow: hidden;
}
.sponsor-strip__title {
    text-align: center;
    font-size: 1.5rem;
    color: var(--dark-blue, #123b73);
    margin: 0 0 0.5rem;
}
.sponsor-strip__intro {
    text-align: center;
    color: var(--text-gray, #4A5568);
    margin: 0 0 2rem;
}
.sponsor-strip__viewport {
    position: relative;
}
.sponsor-strip__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
}
.sponsor-strip__item {
    flex: 0 0 auto;
    width: 190px;
}
.sponsor-strip__item a,
.sponsor-strip__tile {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100px;
    padding: 0.75rem 1rem;
    background: var(--white, #fff);
    border: 1px solid var(--border-gray, #E2E8F0);
    border-radius: 12px;
    color: var(--dark-gray, #2D3748);
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.sponsor-strip__item a:hover {
    transform: translateY(-2px);
    border-color: var(--primary-blue, #1e78ff);
    box-shadow: 0 6px 16px rgba(18, 59, 115, 0.12);
}
.sponsor-strip__item a:focus-visible {
    outline: 3px solid var(--primary-blue, #1e78ff);
    outline-offset: 3px;
}
.sponsor-strip__item img {
    max-width: 100%;
    max-height: 70px;
    object-fit: contain;
}
.sponsor-strip__name {
    line-height: 1.25;
}
.sponsor-strip__more {
    text-align: center;
    margin-top: 2rem;
}
.sponsor-strip__more .btn {
    display: inline-block;
    width: auto;
    padding-left: 2rem;
    padding-right: 2rem;
}

/* Scrolling mode: one long row that slides left forever (the list is doubled in the script) */
.sponsor-strip--scrolling .sponsor-strip__viewport {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
            mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
}
.sponsor-strip--scrolling .sponsor-strip__list {
    flex-wrap: nowrap;
    justify-content: flex-start;
    width: max-content;
    padding: 6px 0;
    animation: sponsor-strip-scroll var(--sponsor-strip-duration, 35s) linear infinite;
}
/* The site's phone styles force every animation to 0.2s ("* { animation-duration: .2s !important }").
   Exempt the sponsor strip so it keeps its slow pace on phones too. */
.sponsor-strip.sponsor-strip--scrolling .sponsor-strip__list {
    animation-duration: var(--sponsor-strip-duration, 35s) !important;
    animation-iteration-count: infinite !important;
}
.sponsor-strip--scrolling .sponsor-strip__viewport:hover .sponsor-strip__list,
.sponsor-strip--scrolling .sponsor-strip__viewport:focus-within .sponsor-strip__list {
    animation-play-state: paused;
}
@keyframes sponsor-strip-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(calc(-50% - 0.5rem)); }
}

/* Visitors who ask for less motion get a still, wrapped grid */
@media (prefers-reduced-motion: reduce) {
    .sponsor-strip--scrolling .sponsor-strip__viewport { -webkit-mask-image: none; mask-image: none; }
    .sponsor-strip.sponsor-strip--scrolling .sponsor-strip__list {
        animation: none !important;
        flex-wrap: wrap;
        justify-content: center;
        width: auto;
    }
    .sponsor-strip--scrolling .sponsor-strip__item[aria-hidden="true"] { display: none; }
}

@media (max-width: 480px) {
    .sponsor-strip { padding: 2rem 0; }
    .sponsor-strip__item { width: 150px; }
    .sponsor-strip__item a,
    .sponsor-strip__tile { height: 84px; padding: 0.5rem 0.75rem; }
    .sponsor-strip__item img { max-height: 56px; }
}
