/* ============================================================
   css/sponsors-carousel.css — ПОЛНЫЙ ФАЙЛ
   ============================================================ */

.sponsors-carousel-section { padding: 24px 0 90px; overflow: hidden; }
.sponsors-carousel-section .container { position: relative; z-index: 1; }

.sponsors-deco {
    position: absolute;
    pointer-events: none;
    z-index: 0;
    color: var(--color-plum-soft);
}
.sponsors-deco--tr {
    width: 200px; height: auto;
    top: -20px; right: -20px;
    color: rgba(250, 160, 194, .12);
}
.sponsors-deco--bl {
    width: 140px; height: auto;
    left: -20px; bottom: 0;
    transform: rotate(150deg);
}
.sponsors-deco--dots {
    width: 120px; height: auto;
    top: 40%; right: 6%;
    color: var(--color-border);
}

.sponsors-carousel-wrapper {
    position: relative;
    overflow: hidden;
    padding: 30px 12px 60px;
    margin: -30px -12px -60px;
}
/* затухание по краям — только когда идёт прокрутка */
.sponsors-carousel-wrapper.is-scrolling {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

/* по умолчанию: статично, по центру */
.sponsors-carousel-track {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 22px;
    width: 100%;
}
/* режим прокрутки */
.sponsors-carousel-track.is-scrolling {
    justify-content: flex-start;
    width: max-content;
    animation: sponsorsScroll var(--scroll-duration, 30s) linear infinite;
}
@keyframes sponsorsScroll {
    from { transform: translateX(0); }
    to   { transform: translateX(var(--scroll-distance, -50%)); }
}

@media (prefers-reduced-motion: reduce) {
    .sponsors-carousel-track.is-scrolling { animation: none; }
}

.sponsor-item {
    flex: 0 0 auto;
    width: 196px;
    height: 220px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 24px 20px;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-soft);
    transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, border-color .35s ease;
}
.sponsor-item:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-card-hover);
    border-color: rgba(250, 160, 194, .4);
}

.sponsor-item__logo-wrapper {
    flex: 0 0 auto;
    width: 78px; height: 78px;
    border-radius: 50%;
    background: var(--color-cream);
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
    filter: grayscale(1);
    opacity: .8;
    transition: filter .3s ease, opacity .3s ease;
}
.sponsor-item:hover .sponsor-item__logo-wrapper { filter: grayscale(0); opacity: 1; }
.sponsor-item__logo { width: 100%; height: 100%; object-fit: contain; padding: 12px; }

.sponsor-item__name {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-plum);
    text-align: center;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.35;
    min-height: calc(1.35em * 2);
}

.sponsors-carousel-error { width: 100%; text-align: center; padding: 40px 0; color: var(--color-text-muted); }
.sponsors-carousel-section__footer { text-align: center; margin-top: 36px; }