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

/* Grid+ SDK Table */

.cell-text {
    display: contents;
}

/* Grid+ SDK Accordion */

.gjs-plg-accordion {
    margin-bottom: 15px;
}

.gjs-plg-accordion-header {
    position: relative;
    padding: 5px 15px;
    background-color: var(--default-gray);
    border: 0;
}

.gjs-plg-accordion-marker-open>svg {
    transform: rotate(180deg);
    transition: .125s transform ease-in-out;
}

.gjs-plg-accordion-content {
    border: 2px solid var(--default-gray);
    padding: 10px 15px;
}
