.text-columns__inner {
    margin-inline: auto;
}

.text-columns__columns {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--block-column-gap);
    row-gap: var(--block-column-gap);
    min-width: 0;
}

.text-columns__column {
    grid-column: span 12;
    align-content: start;
    min-width: 0;
}

.text-columns__columns .text-columns__icon-slot {
	margin-bottom: var(--space-xxs);
}

.text-columns__icon-slot,
.text-columns__heading-slot,
.text-columns__text-slot,
.text-columns__buttons-slot {
    min-width: 0;
}

.text-columns__column.block-card-stack > .text-columns__buttons-slot {
    margin-top: auto;
    margin-block-start: auto;
    padding-top: var(--space-s);
}

.text-columns__columns--count-2 .text-columns__column {
    grid-column: span 6;
}

.text-columns__columns--style-top-border .text-columns__column {
    padding-top: clamp(1.1rem, 1.8vw, 1.5rem);
    border-top: 2px solid currentColor;
}

.text-columns__icon {
    display: block;
    width: clamp(3rem, 5vw, 4.5rem);
    height: clamp(3rem, 5vw, 4.5rem);
    object-fit: contain;
    object-position: left center;
}

.text-columns__icon-slot:empty,
.text-columns__heading-slot:empty,
.text-columns__text-slot:empty,
.text-columns__buttons-slot:empty {
    min-height: 0;
}

.text-columns__heading,
.text-columns__text {
    margin: 0;
}

.text-columns__text > :first-child {
    margin-top: 0;
}

.text-columns__text > :last-child {
    margin-bottom: 0;
}

@media (min-width: 1024px) {
    @supports (grid-template-rows: subgrid) {
        .text-columns__columns--has-all-slots {
            grid-template-rows: repeat(3, auto);
        }

        .text-columns__columns--has-all-slots.text-columns__columns--has-buttons {
            grid-template-rows: repeat(4, auto);
        }

        .text-columns__columns--has-all-slots .text-columns__column {
            grid-row: span 3;
            grid-template-rows: subgrid;
        }

        .text-columns__columns--has-all-slots.text-columns__columns--has-buttons .text-columns__column {
            grid-row: span 4;
        }
    }

    .text-columns__columns--count-2 .text-columns__column:nth-child(1) {
        grid-column: 1 / span 6;
    }

    .text-columns__columns--count-2 .text-columns__column:nth-child(2) {
        grid-column: 7 / span 6;
    }

    .text-columns__columns--count-3 .text-columns__column:nth-child(1) {
        grid-column: 1 / span 4;
    }

    .text-columns__columns--count-3 .text-columns__column:nth-child(2) {
        grid-column: 5 / span 4;
    }

    .text-columns__columns--count-3 .text-columns__column:nth-child(3) {
        grid-column: 9 / span 4;
    }

    .text-columns__columns--count-4 .text-columns__column:nth-child(1) {
        grid-column: 1 / span 3;
    }

    .text-columns__columns--count-4 .text-columns__column:nth-child(2) {
        grid-column: 4 / span 3;
    }

    .text-columns__columns--count-4 .text-columns__column:nth-child(3) {
        grid-column: 7 / span 3;
    }

    .text-columns__columns--count-4 .text-columns__column:nth-child(4) {
        grid-column: 10 / span 3;
    }
}

@media (max-width: 1023px) {
    .text-columns__columns--count-3 .text-columns__column,
    .text-columns__columns--count-4 .text-columns__column {
        grid-column: span 6;
    }

    .text-columns__columns--count-3 .text-columns__column:last-child {
        grid-column: span 12;
    }
}

@media (max-width: 640px) {
    .text-columns__columns--count-2 .text-columns__column,
    .text-columns__columns--count-3 .text-columns__column,
    .text-columns__columns--count-4 .text-columns__column {
        grid-column: span 12;
    }
}
