/* --- GRID --- */
.container {
    padding-right: 20px;
    padding-left: 20px;
}
.container-max {
    max-width: 1600px;
    margin-right: auto;
    margin-left: auto;
}
.row {
    margin-right: -20px;
    margin-left: -20px;
}
.row.no-gutters {
    margin-left: 0;
    margin-right: 0;
}
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
.col-xl-auto {
    padding-right: 20px;
    padding-left: 20px;
}
.pull-right {
    margin-right: -20px;
}
.pull-left {
    margin-left: -20px;
}




/* ==========================================================================
   Media Queries
   ========================================================================== */

/* --- PHONE (SM) --- */
@media ( min-width: 576px ) {

    /* --- GRID --- */
    .pull-right {
        /* assume 100vw without scrollbar width for mobile devices */
        margin-right: calc((100vw - 500px) / -2);
    }
    .pull-left {
        margin-left: calc((100vw - 500px) / -2);
    }

}



/* --- TABLET (MD) --- */
@media ( min-width: 768px ) {

    /* --- GRID --- */
    .pull-right,
    .pull-md-right {
        /* assume 100vw without scrollbar width for mobile devices */
        margin-right: calc((100vw - 680px) / -2);
    }
    .pull-left,
    .pull-md-left {
        margin-left: calc((100vw - 680px) / -2);;
    }

}



/* --- DESKTOP (LG) --- */
@media ( min-width: 992px ) {

    /* --- GRID --- */
    .pull-right,
    .pull-md-right {
        /* 100vw includes scrollbar width */
        margin-right: calc((100vw - 920px) / -2);
    }
    .pull-left,
    .pull-md-left {
        margin-left: calc((100vw - 920px) / -2);;
    }
    .no-hiddenscroll .pull-right,
    .no-hiddenscroll .pull-md-right {
        /* 100vw includes scrollbar width */
        margin-right: calc((100vw - 920px - 15px) / -2);
    }
    .no-hiddenscroll .pull-left,
    .no-hiddenscroll .pull-md-left {
        margin-left: calc((100vw - 920px - 15px) / -2);;
    }

}



/* --- DESKTOP (XL) --- */
@media ( min-width: 1200px ) {

    /* --- GRID --- */
    .pull-right,
    .pull-md-right {
        margin-right: calc((100vw - 1100px) / -2);
    }
    .pull-left,
    .pull-md-left {
        margin-left: calc((100vw - 1100px) / -2);;
    }
    .no-hiddenscroll .pull-right,
    .no-hiddenscroll .pull-md-right {
        margin-right: calc((100vw - 1100px - 15px) / -2);
    }
    .no-hiddenscroll .pull-left,
    .no-hiddenscroll .pull-md-left {
        margin-left: calc((100vw - 1100px - 15px) / -2);;
    }

}



/* --- DESKTOP (XXL) --- */
@media ( min-width: 1440px ) {

    /* --- GRID --- */
    .container {
        max-width: 1400px;
    }
    .pull-right,
    .pull-md-right {
        margin-right: calc((100vw - 1360px) / -2);
    }
    .pull-left,
    .pull-md-left {
        margin-left: calc((100vw - 1360px) / -2);
    }
    .no-hiddenscroll .pull-right,
    .no-hiddenscroll .pull-md-right {
        margin-right: calc((100vw - 1360px - 15px) / -2);
    }
    .no-hiddenscroll .pull-left,
    .no-hiddenscroll .pull-md-left {
        margin-left: calc((100vw - 1360px - 15px) / -2);;
    }

}



/* --- MAX --- */
@media ( min-width: 1920px ) {

    /* --- GRID --- */
    /* 1360px + 2 * 280px */
    .pull-right,
    .pull-md-right {
        margin-right: -280px;
    }
    .pull-left,
    .pull-md-left {
        margin-left: -280px;
    }
    .no-hiddenscroll .pull-right,
    .no-hiddenscroll .pull-md-right {
        margin-right: calc(-280px - 15px);
    }
    .no-hiddenscroll .pull-left,
    .no-hiddenscroll .pull-md-left {
        margin-left: calc(-280px - 15px);
    }

}
