/* ===== PARTNERS SECTION ===== */
.partners-section {
    padding: 20px 0 10px; margin: 0; background: transparent; position: relative;
}

/* TITOLO: semplice, visibile, zero conflitti */
.partners-title {
    text-align: center; margin-bottom: 18px; line-height: 1.6 !important;
    opacity: 1 !important; visibility: visible !important;
}
.partners-title h2 {
    font-family: 'Playfair Display', serif; font-size: 2.2rem; color: var(--accent);
    margin: 0 0 10px; display: inline-block; position: relative;
}
.partners-title h2::after {
    content: ''; position: absolute; bottom: -10px; left: 50%; transform: translateX(-50%);
    width: 60px; height: 3px; background: linear-gradient(90deg, var(--primary), var(--secondary)); border-radius: 2px;
}
.partners-title p {
    color: var(--gray); font-size: 1.05rem; margin: 20px auto 0; max-width: 600px;
}

/* CAROSELLO: struttura pulita, loop fluido */
.carousel-container {
    width: 100%; overflow: hidden; position: relative; padding: 10px 0;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 18%, black 82%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 18%, black 82%, transparent 100%);
}
.carousel-track {
    display: flex; width: max-content; will-change: transform;
    animation: scroll-logos 30s linear infinite; overflow: visible !important;
    transform: translate3d(0, 0, 0); backface-visibility: hidden;
}
@keyframes scroll-logos {
    0%   { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(calc(-50% - 0.5px), 0, 0); } /* Fix subpixel loop */
}
.carousel-item {
    flex-shrink: 0; width: 130px; height: auto !important; min-height: 40px;
    display: flex; align-items: center; justify-content: center;
    padding: 4px 0; background: transparent; margin-right: 90px; /* Sostituisce gap */
}
.carousel-item img {
    max-width: 100%; height: auto !important; object-fit: contain;
    transform-origin: center center; transform: scale(1.5); /* Base per JS dinamico */
    filter: grayscale(0%); will-change: transform, filter;
    -webkit-backface-visibility: hidden; transition: none; display: block; margin: 0;
}

/* Responsive */
@media (max-width: 768px) {
    .partners-section { padding: 15px 0 5px; }
    .carousel-container { padding: 6px 0; }
    .carousel-track { animation-duration: 22s; }
    .carousel-item { width: 100px; min-height: 35px; padding: 3px 0; margin-right: 60px; }
    .carousel-item img { transform: scale(1.2); }
    .partners-title h2 { font-size: 1.8rem; }
    .partners-title p { font-size: 0.95rem; }
}