/*** the grid system uses mobile first approach ***/

/*** Font Import ***/

@import url('https://fonts.googleapis.com/css?family=Raleway|Roboto&display=swap');

/*** Variables ***/

:root{
  --font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-color: #333;

  --total-columns: 12;
  --horizontal-gutter: 1.5rem;
  --vertical-gutter: 1.5rem;
  --single-column-width: calc(100% / var(--total-columns));
}

/*** Base ***/

*,
*::after,
*::before{
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
  box-sizing: border-box;
}

body{
  margin: 0;
  line-height: 1.6;
  font-weight: normal;
  font-family: var(--font-family);
  color: var(--font-color);
  font-size: 1.6rem;
}

/*** Grid ***/

.container, .container-fluid {
  width: 100%;
  margin: 0 auto;
  padding: 0 1.5rem
}

/* Rows */

.row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -1.5rem;
  margin-left: -1.5rem;
}

.row:not(:last-child){
  margin-bottom: var(--vertical-gutter);
}

/* Columns */

[class*="col"]{
  position: relative;
  padding-right: var(--horizontal-gutter);
  padding-left: var(--horizontal-gutter);
  width: 100%;
}

.col{
  flex-grow: 1;
}

.col-1 {
  width: calc(var(--single-column-width) * 1);
}

.col-2 {
  width: calc(var(--single-column-width) * 2);
}

.col-3 {
  width: calc(var(--single-column-width) * 3);
}

.col-4 {
  width: calc(var(--single-column-width) * 4);
}

.col-5 {
  width: calc(var(--single-column-width) * 5);
}

.col-6 {
  width: calc(var(--single-column-width) * 6);
}

.col-7 {
  width: calc(var(--single-column-width) * 7);
}

.col-8 {
  width: calc(var(--single-column-width) * 8);
}

.col-9 {
  width: calc(var(--single-column-width) * 9);
}

.col-10 {
  width: calc(var(--single-column-width) * 10);
}

.col-11 {
  width: calc(var(--single-column-width) * 11);
}

.col-12 {
  width: calc(var(--single-column-width) * 12);
}

/* Column Offsets */

.col-offset-1 {
  margin-left: calc(var(--single-column-width) * 1);
}

.col-offset-2 {
  margin-left: calc(var(--single-column-width) * 2);
}

.col-offset-3 {
  margin-left: calc(var(--single-column-width) * 3);
}

.col-offset-4 {
  margin-left: calc(var(--single-column-width) * 4);
}

.col-offset-5 {
  margin-left: calc(var(--single-column-width) * 5);
}

.col-offset-6 {
  margin-left: calc(var(--single-column-width) * 6);
}

.col-offset-7 {
  margin-left: calc(var(--single-column-width) * 7);
}

.col-offset-8 {
  margin-left: calc(var(--single-column-width) * 8);
}

.col-offset-9 {
  margin-left: calc(var(--single-column-width) * 9);
}

.col-offset-10 {
  margin-left: calc(var(--single-column-width) * 10);
}

.col-offset-11 {
  margin-left: calc(var(--single-column-width) * 11);
}

/*** Media Queries ***/

/* sm Small devices (landscape phones, 576px and up) */

@media (min-width: 576px) {
  .container {
    max-width: 54rem;
  }

  .col-sm-1 {
    width: calc(var(--single-column-width) * 1);
  }

  .col-sm-2 {
    width: calc(var(--single-column-width) * 2);
  }

  .col-sm-3 {
    width: calc(var(--single-column-width) * 3);
  }

  .col-sm-4 {
    width: calc(var(--single-column-width) * 4);
  }

  .col-sm-5 {
    width: calc(var(--single-column-width) * 5);
  }

  .col-sm-6 {
    width: calc(var(--single-column-width) * 6);
  }

  .col-sm-7 {
    width: calc(var(--single-column-width) * 7);
  }

  .col-sm-8 {
    width: calc(var(--single-column-width) * 8);
  }

  .col-sm-9 {
    width: calc(var(--single-column-width) * 9);
  }

  .col-sm-10 {
    width: calc(var(--single-column-width) * 10);
  }

  .col-sm-11 {
    width: calc(var(--single-column-width) * 11);
  }

  .col-sm-12 {
    width: calc(var(--single-column-width) * 12);
  }

  .col-offset-sm-1 {
    margin-left: calc(var(--single-column-width) * 1);
  }

  .col-offset-sm-2 {
    margin-left: calc(var(--single-column-width) * 2);
  }

  .col-offset-sm-3 {
    margin-left: calc(var(--single-column-width) * 3);
  }

  .col-offset-sm-4 {
    margin-left: calc(var(--single-column-width) * 4);
  }

  .col-offset-sm-5 {
    margin-left: calc(var(--single-column-width) * 5);
  }

  .col-offset-sm-6 {
    margin-left: calc(var(--single-column-width) * 6);
  }

  .col-offset-sm-7 {
    margin-left: calc(var(--single-column-width) * 7);
  }

  .col-offset-sm-8 {
    margin-left: calc(var(--single-column-width) * 8);
  }

  .col-offset-sm-9 {
    margin-left: calc(var(--single-column-width) * 9);
  }

  .col-offset-sm-10 {
    margin-left: calc(var(--single-column-width) * 10);
  }

  .col-offset-sm-11 {
    margin-left: calc(var(--single-column-width) * 11);
  }
}

/* md Medium devices (tablets, 768px and up) */

@media (min-width: 700px) {
  .container {
    max-width: 72rem;
  }

  .col-md-1 {
    width: calc(var(--single-column-width) * 1);
  }

  .col-md-2 {
    width: calc(var(--single-column-width) * 2);
  }

  .col-md-3 {
    width: calc(var(--single-column-width) * 3);
  }

  .col-md-4 {
    width: calc(var(--single-column-width) * 4);
  }

  .col-md-5 {
    width: calc(var(--single-column-width) * 5);
  }

  .col-md-6 {
    width: calc(var(--single-column-width) * 6);
  }

  .col-md-7 {
    width: calc(var(--single-column-width) * 7);
  }

  .col-md-8 {
    width: calc(var(--single-column-width) * 8);
  }

  .col-md-9 {
    width: calc(var(--single-column-width) * 9);
  }

  .col-md-10 {
    width: calc(var(--single-column-width) * 10);
  }

  .col-md-11 {
    width: calc(var(--single-column-width) * 11);
  }

  .col-md-12 {
    width: calc(var(--single-column-width) * 12);
  }

  .col-offset-md-1 {
    margin-left: calc(var(--single-column-width) * 1);
  }

  .col-offset-md-2 {
    margin-left: calc(var(--single-column-width) * 2);
  }

  .col-offset-md-3 {
    margin-left: calc(var(--single-column-width) * 3);
  }

  .col-offset-md-4 {
    margin-left: calc(var(--single-column-width) * 4);
  }

  .col-offset-md-5 {
    margin-left: calc(var(--single-column-width) * 5);
  }

  .col-offset-md-6 {
    margin-left: calc(var(--single-column-width) * 6);
  }

  .col-offset-md-7 {
    margin-left: calc(var(--single-column-width) * 7);
  }

  .col-offset-md-8 {
    margin-left: calc(var(--single-column-width) * 8);
  }

  .col-offset-md-9 {
    margin-left: calc(var(--single-column-width) * 9);
  }

  .col-offset-md-10 {
    margin-left: calc(var(--single-column-width) * 10);
  }

  .col-offset-md-11 {
    margin-left: calc(var(--single-column-width) * 11);
  }
}

/* lg Large devices (desktops, 992px and up) */

@media (min-width: 900px) {
  .container {
    max-width: 96rem;
  }

  .col-lg-1 {
    width: calc(var(--single-column-width) * 1);
  }

  .col-lg-2 {
    width: calc(var(--single-column-width) * 2);
  }

  .col-lg-3 {
    width: calc(var(--single-column-width) * 3);
  }

  .col-lg-4 {
    width: calc(var(--single-column-width) * 4);
  }

  .col-lg-5 {
    width: calc(var(--single-column-width) * 5);
  }

  .col-lg-6 {
    width: calc(var(--single-column-width) * 6);
  }

  .col-lg-7 {
    width: calc(var(--single-column-width) * 7);
  }

  .col-lg-8 {
    width: calc(var(--single-column-width) * 8);
  }

  .col-lg-9 {
    width: calc(var(--single-column-width) * 9);
  }

  .col-lg-10 {
    width: calc(var(--single-column-width) * 10);
  }

  .col-lg-11 {
    width: calc(var(--single-column-width) * 11);
  }

  .col-lg-12 {
    width: calc(var(--single-column-width) * 12);
  }

  .col-offset-lg-1 {
    margin-left: calc(var(--single-column-width) * 1);
  }

  .col-offset-lg-2 {
    margin-left: calc(var(--single-column-width) * 2);
  }

  .col-offset-lg-3 {
    margin-left: calc(var(--single-column-width) * 3);
  }

  .col-offset-lg-4 {
    margin-left: calc(var(--single-column-width) * 4);
  }

  .col-offset-lg-5 {
    margin-left: calc(var(--single-column-width) * 5);
  }

  .col-offset-lg-6 {
    margin-left: calc(var(--single-column-width) * 6);
  }

  .col-offset-lg-7 {
    margin-left: calc(var(--single-column-width) * 7);
  }

  .col-offset-lg-8 {
    margin-left: calc(var(--single-column-width) * 8);
  }

  .col-offset-lg-9 {
    margin-left: calc(var(--single-column-width) * 9);
  }

  .col-offset-lg-10 {
    margin-left: calc(var(--single-column-width) * 10);
  }

  .col-offset-lg-11 {
    margin-left: calc(var(--single-column-width) * 11);
  }
}

/* xl Extra large devices (large desktops, 1200px and up) */

@media (min-width: 1200px) {
  .container {
    max-width: 114rem;
  }

  .col-xl-1 {
    width: calc(var(--single-column-width) * 1);
  }

  .col-xl-2 {
    width: calc(var(--single-column-width) * 2);
  }

  .col-xl-3 {
    width: calc(var(--single-column-width) * 3);
  }

  .col-xl-4 {
    width: calc(var(--single-column-width) * 4);
  }

  .col-xl-5 {
    width: calc(var(--single-column-width) * 5);
  }

  .col-xl-6 {
    width: calc(var(--single-column-width) * 6);
  }

  .col-xl-7 {
    width: calc(var(--single-column-width) * 7);
  }

  .col-xl-8 {
    width: calc(var(--single-column-width) * 8);
  }

  .col-xl-9 {
    width: calc(var(--single-column-width) * 9);
  }

  .col-xl-10 {
    width: calc(var(--single-column-width) * 10);
  }

  .col-xl-11 {
    width: calc(var(--single-column-width) * 11);
  }

  .col-xl-12 {
    width: calc(var(--single-column-width) * 12);
  }

  .col-offset-xl-1 {
    margin-left: calc(var(--single-column-width) * 1);
  }

  .col-offset-xl-2 {
    margin-left: calc(var(--single-column-width) * 2);
  }

  .col-offset-xl-3 {
    margin-left: calc(var(--single-column-width) * 3);
  }

  .col-offset-xl-4 {
    margin-left: calc(var(--single-column-width) * 4);
  }

  .col-offset-xl-5 {
    margin-left: calc(var(--single-column-width) * 5);
  }

  .col-offset-xl-6 {
    margin-left: calc(var(--single-column-width) * 6);
  }

  .col-offset-xl-7 {
    margin-left: calc(var(--single-column-width) * 7);
  }

  .col-offset-xl-8 {
    margin-left: calc(var(--single-column-width) * 8);
  }

  .col-offset-xl-9 {
    margin-left: calc(var(--single-column-width) * 9);
  }

  .col-offset-xl-10 {
    margin-left: calc(var(--single-column-width) * 10);
  }

  .col-offset-xl-11 {
    margin-left: calc(var(--single-column-width) * 11);
  }
}