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


/* Text elements */

:is(#homepage-main, #subpage-main, #mms-main) .x_content {
    display: contents;
}


/* Widget Containers */

.x_widget {
    display: contents;
}

.gjs-custom-code {
    display: contents;
}


/* 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;
}


/* For the extra p element that is added to the first li of a grid+ SDK table */

li>p.x_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;
}


/* Accordion widget styles */

.accordion-widget {
    /* Styles are based on the default Bootstrap accordion appearance. Variables are set up for easily overwritten defaults. If you want to change anything, just target .accordion-widget and set new values for a variable. */
    --font-size: 16px;
    --font-weight: bold;
    --padding: 15px;
    --background-color: #f5f5f5;
    --border-color: #ddd;
    --color: currentColor;
    --radius: 3px;
    --line-height: 1.1;
    --margin-bottom: 15px;
    --arrow-size: .3em;
    margin-bottom: var(--margin-bottom);
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    overflow: clip;
    /* Ensures background color is clipped away with border-radius */
}

.accordion-widget+.accordion-widget {
    /*If one widget shows up below another there won't be a gap between them. If not, there will be a 15px gap to space out the following element*/
    margin-top: calc(var(--margin-bottom) * -1);
}

.accordion-widget summary {
    color: var(--color);
    background: var(--background-color);
    line-height: var(--line-height);
    font-weight: var(--font-weight);
    padding: var(--padding);
    cursor: pointer;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.accordion-widget:is(:open) summary {
    border-bottom: 1px solid var(--border-color);
}

.accordion-widget summary::after {
    /* Arrow showing disclosed-content can be expanded or collapsed */
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    vertical-align: middle;
    border-top: var(--arrow-size) dashed;
    border-right: var(--arrow-size) solid transparent;
    border-left: var(--arrow-size) solid transparent;
    transform-origin: center;
}

.accordion-widget:is(:open) summary::after {
    transform: rotate(180deg);
}

.disclosed-content {
    padding: var(--padding);
}