.listing-intro {
    margin: 0 0 22px;
    color: #46594c;
    font-size: 1.05rem;
}

.listing-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    list-style: none;
    padding: 0;
    margin: 24px 0 0;
}

.listing-grid > li { display: flex; min-width: 0; }
.listing-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    overflow: hidden;
    color: #182b20;
    background: white;
    border: 1px solid #dbe3dc;
    border-radius: 14px;
    text-decoration: none;
}
.listing-card:hover { border-color: #6d9678; }
.listing-card:hover h2 { text-decoration: underline; }
.listing-card-copy {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 18px 20px 20px;
}
.listing-card h2 { margin: 5px 0 12px; font-size: 1.24rem; line-height: 1.27; overflow-wrap: anywhere; }
.listing-card time { color: #526a58; font-size: .82rem; font-weight: 700; }
.listing-card p { margin: 0 0 14px; color: #435649; }
.listing-card-action { margin-top: auto; color: #265736; font-size: .9rem; font-weight: 750; }
.listing-card-action span { margin-inline-start: 3px; }
.news-cover { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #edf4ea; }
.news-fallback { display: grid; place-items: center; color: #345840; font-weight: 750; }
.club-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.club-logo {
    display: grid;
    place-items: center;
    height: 130px;
    padding: 14px;
    border-bottom: 1px solid #e2e9e2;
}
.club-logo img { width: 100%; height: 100%; max-width: 175px; max-height: 100px; object-fit: contain; }
.club-initial {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    color: #2b5f3b;
    background: #e7f3e4;
    font-size: 1.55rem;
    font-weight: 750;
}
.club-card h2 { font-size: 1.02rem; }
.club-profile-logo { width: auto; max-width: min(100%, 225px); max-height: 140px; }
.club-directory .public-filter a { align-self: center; }
.listing-pager { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 26px; }

@media (max-width: 950px) { .club-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) { .listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; } }
@media (max-width: 470px) {
    .news-grid { grid-template-columns: 1fr; }
    .club-grid .listing-card-copy { padding: 13px; }
    .club-logo { height: 100px; }
    .club-logo img { max-height: 72px; }
}
