.container {
    margin-left: auto;
    margin-right: auto;

    .left-sidebar {
        max-width: var(--left-sidebar-max-width);
    }

    .right-sidebar {
        max-width: var(--right-sidebar-max-width);

        /// Display right sidebar when min-width: lg
        @include respond(lg) {
            display: block;
        }
    }

    &.extended {
        @include respond(md) {
            max-width: 1024px;
            --left-sidebar-max-width: 25%;
            --right-sidebar-max-width: 30%;
        }

        @include respond(lg) {
            max-width: 1280px;
            --left-sidebar-max-width: 20%;
            --right-sidebar-max-width: 30%;
        }

        @include respond(xl) {
            max-width: 1536px;
            --left-sidebar-max-width: 15%;
            --right-sidebar-max-width: 25%;
        }
    }

    &.compact {
        @include respond(md) {
            --left-sidebar-max-width: 25%;
            max-width: 768px;
        }

        @include respond(lg) {
            max-width: 1024px;
            --left-sidebar-max-width: 20%;
        }

        @include respond(xl) {
            max-width: 1280px;
        }
    }
}

.flex {
    display: flex;
    flex-direction: row;

    &.column {
        flex-direction: column;
    }

    &.on-phone--column {
        flex-direction: column;
        @include respond(md) {
            flex-direction: unset;
        }
    }

    &.align-items--flex-start {
        align-items: flex-start;
    }

    .grow {
        flex-grow: 1;
    }

    .do-not-shrink {
        flex-shrink: 0;
    }

    .do-not-overflow {
        min-width: 0;
        flex-shrink: 1;
        max-width: 100%;
    }

    .full-width {
        width: 100%;
    }
}

main.main {
    min-width: 0;
    max-width: 100%;
    flex-grow: 1;
    padding-top: var(--main-top-padding);
}

.main-container {
    min-height: 100vh;
    align-items: flex-start;
    padding: 0 15px;
    column-gap: var(--section-separation);

    @include respond(md) {
        padding: 0 20px;
    }
}
