
.ce-gallery {
    --column-gap: 1rem;
    --row-gap: 1rem;
    --font-size: var(--root-font-size); /* Reset, use REM */
}

.ce-gallery__figure .link .icon {
    --color-background: var(--root-color--white);
}

.ce-gallery__caption {
    --color-border: var(--root-color--primary);
    --font-family: inherit;
    --font-size: 0.813rem;
    --font-weight: var(--root-font-weight--normal);
    --font-style: normal;
    --line-height: inherit;
}

.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));
    }
}

.ce-gallery {
    font-size: var(--font-size, 1rem);
    grid-column-gap: var(--column-gap, 1rem);
    grid-row-gap: var(--row-gap, 1rem);
}

.ce-gallery__figure .link .icon {
    background-color: var(--color-background, white);
    outline-color: var(--color-background, white)
}

.ce-gallery__caption {
    border-left-color: var(--color-border, grey);
    font-family: var(--font-family, inherit);
    font-size: var(--font-size, 0.8em);
    font-weight: var(--font-weight, normal);
    font-style: var(--font-style, normal);
    line-height: var(--line-height, inherit);
}
