.news-listing {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 24px;
}

.news-card {
    flex: 0 0 calc((100% - 48px) / 3);
}

.news-card .news-card-listing-link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
}

.news-card .card-title {
    line-height: 32px;
    margin-bottom: 8px;
}

.news-listing-frontpage .news-card .card-description,
.news-listing-bottom .news-card .card-description {
    margin-bottom: 16px;
}

.news-card .card-description {
    font-size: 16px;
}

.news-listing-bottom .news-card .card-description {
    font-size: 14px;
}

.news-listing-bottom .news-card .link {
    font-size: 14px;
    margin-top: auto;
}

.news-detail-image {
    margin-bottom: 32px;
}

.news-detail-image img {
    border-radius: var(--border-radius);
}

.model-top-info {
    color: var(--text-secondary);
    font-size: 14px;
    line-height: 20px;
}

.news-detail .model-top-info {
    margin-bottom: 32px;
}

.model-category-link {
    color: var(--text-link-primary);
    position: relative;
    text-decoration: none;
}

.model-category-link:hover {
    text-decoration: underline;
}

.model-top-info-date::after {
    content: "·";
    display: inline-block;
    margin: 0 4px 0 8px;
}

.news-detail p + h2,
.news-detail ul + h2 {
    margin-top: 48px;
}

.news-detail p + h3,
.news-detail ul + h3 {
    margin-top: 32px;
}

.news-detail .content-box:has(.download-listing-container) {
    margin-top: 48px;
}

#downloadPhotosContainer {
    margin-top: 24px;
    text-align: right;
}

#downloadPhotosContainer .btn {
    margin: 0;
}

@media (min-width: 1200px) {
    .news-listing-bottom .news-card {
        flex: 0 0 calc((100% - 96px) / 5);
        max-width: calc((100% - 96px) / 5);
    }
}

@media (max-width: 1199px) {
    .news-listing {
        gap: 16px;
    }

    .news-detail .model-top-info {
        margin-bottom: 16px;
    }

    .news-detail-image {
        margin-bottom: 32px;
    }

    .news-detail {
        font-size: 14px;
    }

    .news-detail p + h2,
    .news-detail ul + h2 {
        margin-top: 32px;
    }

    .news-detail p + h3,
    .news-detail ul + h3 {
        margin-top: 24px;
    }

    .news-card,
    .news-card .news-card-listing-link {
        flex-direction: row;
        flex: 0 0 100%;
        max-width: 100%;
    }

    .news-card:hover {
        box-shadow: none;
    }

    .news-card .card-image {
        flex: 0 0 172px;
        padding: 16px 0 16px 16px;
    }

    .news-card .card-image img {
        border-radius: var(--border-radius);
    }

    .news-card .card-content {
        padding: 16px;
    }

    .news-card .card-title {
        font-size: 20px;
        line-height: 28px;
        margin-bottom: 4px;
    }

    .news-card .card-description {
        font-size: 14px;
    }

    .news-listing .news-card .card-description {
        margin-bottom: 0;
    }

    .news-detail h2.h2-small {
        font-size: 20px;
        margin-bottom: 8px;
    }

    .news-listing-bottom .news-card .link {
        margin-top: 12px;
    }

    .news-listing-frontpage .news-listing .news-card .link {
        font-size: 14px;
        margin-top: 16px;
    }

    .news-detail .content-box:has(.download-listing-container) {
        margin-top: 32px;
    }
}

@media (max-width: 639px) {
    .news-listing {
        gap: 8px;
    }

    .model-top-info {
        margin-bottom: 4px;
    }

    .news-detail .model-top-info {
        margin-bottom: 8px;
    }

    .news-detail-image {
        margin-bottom: 24px;
    }

    .news-detail p + h2,
    .news-detail ul + h2 {
        margin-top: 24px;
    }

    .news-detail p + h3,
    .news-detail ul + h3 {
        margin-top: 16px;
    }

    .news-card .news-card-listing-link {
        flex-direction: row;
        flex: 0 0 100%;
        max-width: 100%;
    }

    .news-card .card-image {
        flex: 0 0 92px;
        padding: 12px 0 12px 12px;
    }

    .news-card .card-content {
        padding: 12px;
    }

    .news-card .model-top-info {
        font-size: 12px;
    }

    .news-card .card-title {
        font-size: 14px;
        line-height: 20px;
        letter-spacing: 0;
        margin-bottom: 0;
    }

    .news-card .card-description {
        display: none;
    }

    .news-card .link {
        font-size: 14px;
    }

    .news-detail h2.h2-small {
        font-size: 16px;
    }

    .news-listing-bottom .news-card .link {
        margin-top: 8px;
    }

    .news-listing-frontpage .news-listing .news-card .link {
        margin-top: 8px;
    }

    .news-detail .content-box:has(.download-listing-container) {
        margin-top: 24px;
    }
}