.groups-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2rem;

    padding: 2rem 1rem;

    max-width: calc(300px * 3 + 2rem * 2 + 1rem * 2);
    margin: 0 auto;
}

.group-card {
    flex: 0 0 300px;
    max-width: 300px;

    background: white;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(0,0,0,.08);
    transition: .3s ease;
}

.group-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(0,0,0,.12);
}

.group-image {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.group-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.group-info {
    padding: 1.2rem;
}

.group-info h3 {
    margin-bottom: .5rem;
    font-weight: 600;
}

.group-info .meta {
    font-size: .9rem;
    color: #666;
    display: flex;
    flex-direction: column;
    gap: .3rem;
}