.views-view-responsive-grid {
    --views-responsive-grid--layout-gap: 10px;
    --views-responsive-grid--column-count: 4;
    --views-responsive-grid--cell-min-width: 100px;
}

.views-view-responsive-grid--horizontal {
    --views-responsive-grid--gap-count: calc(var(--views-responsive-grid--column-count) - 1);
    --views-responsive-grid--total-gap-width: calc(var(--views-responsive-grid--gap-count) * var(--views-responsive-grid--layout-gap));
    --views-responsive-grid-item--max-width: calc((100% - var(--views-responsive-grid--total-gap-width)) / var(--views-responsive-grid--column-count));
    --views-responsive-grid-item--calculated-min-width: min(100%,var(--views-responsive-grid--cell-min-width));
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(max(var(--views-responsive-grid-item--calculated-min-width),var(--views-responsive-grid-item--max-width)),1fr));
    gap: var(--views-responsive-grid--layout-gap);
}

.views-view-responsive-grid--vertical {
    margin-bottom: calc(var(--views-responsive-grid--layout-gap) * -1);
    column-width: var(--views-responsive-grid--cell-min-width);
    column-count: var(--views-responsive-grid--column-count);
    column-gap: var(--views-responsive-grid--layout-gap);
}

.views-view-responsive-grid--vertical .views-view-responsive-grid__item > * {
    padding-bottom: var(--views-responsive-grid--layout-gap);
    page-break-inside: avoid;
    break-inside: avoid;
}