/* Movie and series listing cards: 240 x 336 px desktop posters with fluid poster-ratio layouts below desktop. */
.content-poster-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, 240px);
    gap: 1rem;
    justify-content: space-between;
}

.listing-page-size {
    width: 5rem;
    min-width: 5rem;
}

.content-poster-grid__item {
    min-width: 0;
}

.content-poster-grid__item > a {
    display: block;
    width: 100%;
}

.content-poster-grid__loading,
.content-poster-grid > .d-flex:not(.content-poster-grid__item) {
    grid-column: 1 / -1;
}

.content-poster-card {
    width: 240px;
    height: 336px;
    margin: 0;
    overflow: hidden;
}

.content-poster-card .card-body,
.content-poster-card .dash-product-img {
    width: 100%;
    height: 100%;
}

.content-poster-card .dash-product-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}

.content-poster-card .data-title {
    bottom: 0;
    margin: 0;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .5rem .75rem;
    line-height: 1.2;
}

/* Shared catalogue-card interaction for film, series and personal ratings grids. */
.content-poster-grid .content-poster-card {
    transform: translateY(0);
    transition: transform 180ms ease, box-shadow 180ms ease;
    will-change: transform;
}

.content-poster-grid .content-poster-card:hover {
    box-shadow: 0 12px 24px rgba(15, 23, 42, .18), 0 3px 8px rgba(15, 23, 42, .1);
    transform: translateY(-4px);
}

.content-poster-grid .content-poster-card .dash-product-img img {
    transform: scale(1);
    transition: transform 280ms ease;
    will-change: transform;
}

.content-poster-grid .content-poster-card:hover .dash-product-img img {
    transform: scale(1.055);
}

.ratings-page .content-type-badge {
    bottom: 52px;
    left: .5rem;
    position: absolute;
    z-index: 6;
}

.content-poster-card .genre-badge {
    bottom: 52px;
    left: .5rem;
    max-width: calc(100% - 1rem);
    overflow: hidden;
    position: absolute;
    text-overflow: ellipsis;
    white-space: nowrap;
    z-index: 6;
}

@media (prefers-reduced-motion: reduce) {
    .content-poster-grid .content-poster-card,
    .content-poster-grid .content-poster-card .dash-product-img img {
        transition: none;
    }

    .content-poster-grid .content-poster-card:hover,
    .content-poster-grid .content-poster-card:hover .dash-product-img img {
        transform: none;
    }
}

@media (max-width: 1199.98px) {
    .content-poster-grid {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 1.25rem;
    }

    .content-poster-card {
        width: 100%;
        height: auto;
        aspect-ratio: 5 / 7;
    }
}

@media (max-width: 575.98px) {
    .content-poster-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem;
    }

    .content-poster-card .data-title {
        min-height: 48px;
        padding: .4rem .5rem;
        font-size: .78rem;
    }
}
