.partners-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.partner-card { display: flex; align-items: center; justify-content: center; min-width: 0; height: 180px; padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow-sm); cursor: pointer; }
.partner-card:hover, .partner-card:focus-visible { border-color: var(--primary); }
.partner-card img { display: block; width: 100%; height: 100%; object-fit: contain; }
.partner-dialog { position: fixed; inset: 0; width: min(600px, calc(100% - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: 48px 32px 32px; overflow-y: auto; background: var(--bg); color: var(--ink); border: 1px solid var(--line-strong); border-radius: var(--r-lg); box-shadow: var(--shadow); }
.partner-dialog::backdrop { background: rgba(8, 40, 39, .5); }
.partner-dialog__logo { display: block; width: 100%; height: 120px; margin: 0 auto 24px; object-fit: contain; }
.partner-dialog__logo[hidden] { display: none; }
.partner-dialog h2 { margin: 0; font-size: 1.5rem; }
.partner-dialog__description { margin-top: 16px; min-height: 5rem; line-height: 1.65; white-space: pre-line; }
@media (max-width: 860px) { .partners-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .partners-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .partner-card { height: 140px; padding: 16px; } .partner-dialog { padding: 48px 24px 24px; } }
