.ce-gallery {
    display: grid;
    grid-template-columns: 1fr;
    padding: 0;
    margin: 0;
}

.ce-gallery__figure {
    margin-top: 0;
}

.ce-gallery__figure .link,
.ce-gallery__visual {
    display: block;
}

.ce-gallery__figure .link {
    position: relative;
}

.ce-gallery__figure .link .icon {
    position: absolute;
    bottom: 0.5rem;
    right: 0.5rem;
    outline-width: 0.25rem;
    outline-style: solid;
}

.ce-gallery__image {
    display: block;
    width: 100%;
    height: auto;
}

.ce-gallery__caption {
    margin-top: 1rem;
    padding: 0.5em 1em;
    border-left-style: solid;
    border-left-width: 0.1875rem;
}

@media (min-width: 30rem) {
    .ce-gallery[data-ce-columns="2"],
    .ce-gallery[data-ce-columns="3"],
    .ce-gallery[data-ce-columns="4"],
    .ce-gallery[data-ce-columns="5"],
    .ce-gallery[data-ce-columns="6"],
    .ce-gallery[data-ce-columns="7"],
    .ce-gallery[data-ce-columns="8"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 48rem) {
    .ce-gallery[data-ce-columns="2"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-gallery[data-ce-columns="3"] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ce-gallery[data-ce-columns="4"] {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ce-gallery[data-ce-columns="5"] {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .ce-gallery[data-ce-columns="6"] {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .ce-gallery[data-ce-columns="7"] {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }

    .ce-gallery[data-ce-columns="8"] {
        grid-template-columns: repeat(8, minmax(0, 1fr));
    }
}
