.mod-partner { max-width: 1100px; margin: 0 auto; padding: 40px 20px; }
.mod-partner__title { text-align: center; color: var(--color-dark, var(--dark, #111)); margin-bottom: 24px; }
.mod-partner__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; align-items: center; }
.mod-partner__logo { display: flex; align-items: center; justify-content: center; height: 60px; background: #f8f8f8; border-radius: var(--radius-base, 8px);
    flex: 0 0 calc((100% - (var(--partner-cols-desktop, 6) - 1) * 16px) / var(--partner-cols-desktop, 6));
}
.mod-partner__logo img { max-width: 80%; max-height: 40px; }
@media (max-width: 768px) {
    .mod-partner__logo { flex: 0 0 calc((100% - (var(--partner-cols-mobile, 3) - 1) * 16px) / var(--partner-cols-mobile, 3)); }
}

/* ===== partner02: 密集Logo墙（列数由PHP按条目数动态计算，保证整除不孤立行） ===== */
.mod-partner__grid-dense { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.mod-partner__logo-dense { display: flex; align-items: center; justify-content: center; height: 50px; background: #f8f8f8; border-radius: var(--radius-base, 6px); font-size: 12px;
    flex: 0 0 calc((100% - (var(--partner-cols-desktop, 6) - 1) * 10px) / var(--partner-cols-desktop, 6));
}
.mod-partner__logo-dense img { max-width: 75%; max-height: 32px; }
@media (max-width: 768px) {
    .mod-partner__logo-dense { flex: 0 0 calc((100% - (var(--partner-cols-mobile, 3) - 1) * 10px) / var(--partner-cols-mobile, 3)); }
}