.container {
    --one-third-width: calc((100% - 2 * var(--dx-g-page-grid-gap)) / 3);

    display: grid;
    gap: var(--dx-g-page-grid-gap);
    grid-template-rows: repeat(auto-fill, 1fr);
    grid-template-columns: 1fr;
    justify-items: stretch;
    align-items: stretch;
    position: relative;
}

.col-one {
    /* This class intentionally left blank. */
}

.search-input {
    margin-bottom: var(--dx-g-spacing-md);
    width: 250px;
}

@media (min-width: 640px) {
    .col-two,
    .col-three,
    .col-four {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .col-two-slim-left {
        grid-template-columns: var(--one-third-width) calc(
                2 * var(--one-third-width) + var(--dx-g-page-grid-gap)
            );
    }

    .col-three {
        grid-template-columns: repeat(3, 1fr);
    }

    .col-two-slim-right {
        grid-template-columns:
            calc(2 * var(--one-third-width) + var(--dx-g-page-grid-gap))
            var(--one-third-width);
    }
}

/* special breakpoint for four col */
@media (min-width: 1200px) {
    .col-four {
        grid-template-columns: repeat(4, 1fr);
    }
}
