/* 🤝 Community partner cards (Partners page + /partner-program), rendered by js/partner-program.js. */
.cp-head { font-size: 22px; margin: 6px 0 6px; }
.cp-sub { color: var(--muted); max-width: 560px; margin: 0 auto 18px; }
.cp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 340px)); gap: 16px; justify-content: center; }
.cp-card { display: flex; flex-direction: column; gap: 8px; text-align: left; padding: 18px 18px 16px; border-radius: 14px;
  border: 1px solid rgba(255, 210, 74, .55); background: linear-gradient(160deg, rgba(255, 210, 74, .10), rgba(255, 210, 74, .02) 55%), var(--panel, rgba(255,255,255,.03));
  box-shadow: 0 0 0 1px rgba(255, 210, 74, .08), 0 8px 24px rgba(0, 0, 0, .25); color: var(--text); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.cp-card:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(255, 210, 74, .35), 0 12px 30px rgba(0, 0, 0, .35); }
.cp-badge { align-self: flex-start; font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: #201400;
  background: linear-gradient(180deg, #ffd76a, #f7b52e); padding: 3px 10px; border-radius: 999px; }
.cp-name { font-size: 20px; font-weight: 800; line-height: 1.2; }
.cp-tag { color: var(--text); opacity: .85; font-size: 14px; line-height: 1.45; font-style: italic; }
.cp-meta { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.cp-visit { margin-top: auto; align-self: flex-start; font-weight: 700; font-size: 14px; color: #ffd24a; }
.cp-card:hover .cp-visit { text-decoration: underline; }
@media (prefers-reduced-motion: reduce) { .cp-card { transition: none; } .cp-card:hover { transform: none; } }
