
.ArticleCardGrid__articleGrid--cEZPG {
    /* Anchors absolutely-positioned leaving cards (see .cardLeaveActive). */
    position: relative;
    width: 100%;
    max-width: var(--dhp-page-max-width);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}

/* Per-card add/remove transitions as the result set changes (e.g. while
   typing a search). transition-group diffs by key, so shared cards stay put
   and only the changed ones fade/move. */
.ArticleCardGrid__cardEnterFrom--iRmQ5,
.ArticleCardGrid__cardLeaveTo--Bj2mH {
    opacity: 0;
}
.ArticleCardGrid__cardEnterActive--Mbe7o,
.ArticleCardGrid__cardLeaveActive--pAT6S {
    transition: opacity 0.3s ease;
}

/* Pull leaving cards out of grid flow so the surviving cards animate straight
   to their final positions instead of snapping when the leave finishes. An
   absolute grid item loses its track width, so pin it to the 3-column track. */
.ArticleCardGrid__cardLeaveActive--pAT6S {
    position: absolute;
    width: calc((100% - 2 * 1.25rem) / 3);
}
.ArticleCardGrid__cardMove--mc7rR {
    transition: transform 0.3s ease;
}
@media screen and (width <= 768px) {
.ArticleCardGrid__articleGrid--cEZPG {
        grid-template-columns: 1fr;
}
.ArticleCardGrid__cardLeaveActive--pAT6S {
        width: 100%;
}
}
@media print {
.ArticleCardGrid__articleGrid--cEZPG {
        display: block;
}
.ArticleCardGrid__articleGrid--cEZPG > * {
        page-break-inside: avoid;
        break-inside: avoid;
}
}

