:root {
    --page-width: 100vw;
    --side-margin: calc((100vw - var(--page-width)) / -2);
    --default-gray: #e9e9e9;
    font-size: 16px;
}

@media (min-width: 992px) {
     :root {
        --page-width: 970px;
    }
}

@media (min-width: 1201px) {
     :root {
        --page-width: 1170px;
    }
}


/* Row styles */

.full-width {
    /* Make an element span the width of the viewport */
    position: relative;
    left: var(--side-margin);
    right: calc(var(--side-margin) - var(--scrollbarWidth));
    width: 100vw;
}

main:is(#homepage-main, #subpage-main) .full-width>.column {
    padding-left: 0;
    padding-right: 0;
}

#gm-canvas .full-width,
#gm-canvas .background-row {
    left: unset;
    right: unset;
    width: unset;
}

.background-row {
    position: relative;
}

.background-row::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--side-margin);
    right: var(--side-margin);
    display: block;
    background-image: var(--default-gray);
}


/* Image alignment */

.align-center {
    /* Center align images  */
    margin-inline: auto !important;
}

.align-right {
    /* Right align images */
    margin-left: auto !important;
}


/* Buttons */

.button-link {
    padding: .75em 2ch;
    display: block;
    width: fit-content;
    background-color: var(--default-gray);
}