* {
  box-sizing: border-box;
}

/* Grid measurements:
 *
 *   960px wide including 12 gutters (half gutters on both edges)
 *
 *   60px columns (12)
 *   20px gutters (two half-gutters + 11 full gutters, so 12 total)
 *
 *
 *   For smaller screens, we always want 20px of padding on either side,
 *   so 960 + 20 + 20 => 1000px
 *
 **/
.row {
  max-width: 1000px;
  padding-left: 10px;
  padding-right: 10px;
  margin: 0 auto;
}
.row::before, .row::after {
  display: table;
  content: '';
}

.row::after {
  clear: both;
}

.col-12 {
  float: left;
  padding-left: 1.04166666%;
  padding-right: 1.04166666%;
}
/* Non-mobile, grid */

@media only screen and (min-width: 640px) {
  /* 3 columns, 3/12 in % */
  .col-3 {
    width: 25%;
  }

  /* 4 columns, 4/12 in % */
  .col-4 {
    width: 33.33333333%;
  }

  /* 6 columns, 6/12 in % */
  .col-6 {
    width: 50%;
  }

  /* 12 columns, 12/12 in % */
  .col-12 {
    width: 100%;
  }
}