.card-list__grid{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(calc(var(--max-width) / 4), 100%), 1fr));
    gap: 1.5rem;
}

.card-list__item {
    position: relative;
    
    background: white;
    border-radius: .5rem;

    box-shadow: var(--box-shadow);
}

.card-list__info-body{
    padding: 2rem;
}

.card-list__info-header{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;

    padding: 2rem 2rem 0;
    font-size: .95rem;
}

.card-list__thumbnail{
    padding: 1px;
    border-radius: .5rem .5rem 0 0;
    box-shadow: var(--box-shadow);
}

.card-list__img-container{
    overflow: hidden;
    max-height: 300px;
}

.card-list__img-container img{
    border-radius: .5rem .5rem 0 0;
    width: 100%;
    object-fit: cover;
    object-position: center;
}

.card-list__meta{
    flex-shrink: 0;
}

.card-list__meta-item{
    display: flex;
    align-items: center;
    color: var(--c-primary-400);
}

.card-list__meta-item svg{
    width: .95em;
    height: .95em;
    min-width: .95em;
    min-height: .95em;
    margin-right: .5em;
    fill: currentColor;
    vertical-align: middle;
}

.card-list__tags{
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.card-list__tag{
    border-radius: 20rem;
    padding: .25rem 1rem;
    color: var(--c-primary-400);
    background-color: var(--c-primary-025);
}

.card-list__item .button-container{
    padding: 0 2rem 2rem;
    margin: 0;
}

.card-list__item .button{
    flex-grow: 1;
    text-align: center;
}

@media screen and (max-width: 1120px){
    .card-list__item{
        max-width: 600px;
        justify-self: center;
    }
}