main {
    max-width: 75rem;
    margin: auto;
}

main .grid {
    margin: calc(1.33 * var(--space-xl)) 0;
}

.grid {
    --columns: 12;
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    padding: 0 var(--space-l);
}

@media screen and (min-width: 60rem) {
    .grid {
        -ms-grid-columns: (1fr)[12];
        grid-template-columns: repeat(12, 1fr);
    }
}

@media screen and (min-width: 60rem) {
    .grid__column {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        grid-column: span var(--columns);
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
    }
}

@media screen and (min-width: 60rem) {
    .grid__column--flex {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }
}

@media screen and (min-width: 60rem) {
    .grid__column--flex .infobox {
        height: 100%;
    }
}

.grid--gap .grid__column:not(:empty):not(:first-child) {
    margin-top: var(--space-xl);
}

@media screen and (min-width: 60rem) { 
    .grid--gap .grid__column:not(:empty):not(:first-child) {
        margin-top: 0;
    }
}

@media screen and (min-width: 60rem) {
    .grid--gap {
        gap: var(--space-l);
    }
}


@media screen and (min-width: 90rem) {
    .grid--fullWidth {
        margin-left: calc(-1 * ((100vw - 100rem)/2)) !important;
        margin-right: calc(-1 * ((100vw - 100rem)/2)) !important; 
    }
}

@media screen and (min-width: 48rem) {
    .grid--limitedWidth {
        max-width: 60rem;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

@media screen and (min-width: 48rem) {
    .grid__column--rightaligned .subtitle {
        margin-left: 0;
        margin-right: var(--space-m) !important;
    }
}

@media screen and (min-width: 60rem) {
    .grid__column--rightaligned {
        text-align: right;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: end;
        -ms-flex-align: end;
        align-items: flex-end;
    }
}

.grid__column--hasBackground {
    padding: var(--space-l);
}