/*
 * Portal card grids (home strips for programs and camps, camps and programs listings).
 * Uploaded images come in arbitrary sizes, so the card fixes the frame instead of
 * trusting the image: every thumbnail gets the same aspect ratio and the image is cropped
 * to fill it, and every card in a row stretches to the same height.
 */
.cards-equal-size > [class*="col-"] {
    display: flex;
}

.cards-equal-size .edu-course {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.cards-equal-size .edu-course > .inner {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.cards-equal-size .thumbnail {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 10;
}

.cards-equal-size .thumbnail > a {
    display: block;
    height: 100%;
}

.cards-equal-size .thumbnail img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.cards-equal-size .card-content {
    flex: 1;
}

/* A long title must not push one card taller than its neighbours. */
.cards-equal-size .card-content .title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
