.supporters-section { margin: 36px 0; padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); }
.supporters-heading { text-align: center; margin-bottom: 22px; }
.supporters-heading .eyebrow { font-size: 10px; letter-spacing: .12em; color: var(--muted); }
.supporters-heading h2 { font-size: 20px; margin: 8px 0 0; }
.supporters-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.supporter-card { min-height: 100px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; display: flex; align-items: center; justify-content: center; background: #fff; color: #34303d; text-decoration: none; }
.supporter-card strong { font-size: 24px; letter-spacing: -.035em; }
.supporter-card img { display: block; width: 100%; height: 72px; object-fit: contain; }
a.supporter-card:hover { border-color: var(--brand); box-shadow: 0 4px 14px #0000000b; }
.supporter-mini { flex: 0 0 100px; height: 50px; background: white; border: 1px solid var(--line); border-radius: 8px; display: grid; place-items: center; color: #706677; }
.supporter-mini img { width: 90px; height: 40px; object-fit: contain; }
.description-table-wrap { overflow-x: auto; margin: 14px 0; }
.description-table { border-collapse: collapse; min-width: 320px; width: 100%; font-size: 14px; }
.description-table th,.description-table td { padding: 10px 14px; border: 1px solid var(--line); text-align: left; }
.description-table th { font-weight: 700; }
@media (max-width: 640px) {
 .supporters-section { padding: 20px 16px; }
 .supporters-grid { grid-template-columns: 1fr; gap: 12px; }
 .supporter-card { min-height: 90px; }
 .supporters-heading h2 { font-size: 18px; }
}
