.Grid {
  display: -webkit-box;      /* OLD - iOS 6-, Safari 3.1-6 */
  display: -moz-box;         /* OLD - Firefox 19- (buggy but mostly works) */
  display: -ms-flexbox;      /* TWEENER - IE 10 */
  display: -webkit-flex;     /* NEW - Chrome */
  display: flex;             /* NEW, Spec - Opera 12.1, Firefox 20+ */

  flex-wrap: wrap;
  -moz-box-wrap: wrap;
  -webkit-box-wrap: wrap;
  -ms-flexbox-wrap: wrap;

  list-style: none;
  margin: 0;
  padding: 0;
}

.Grid-cell {
  -webkit-box-flex: 1;      /* OLD - iOS 6-, Safari 3.1-6 */
  -moz-box-flex: 1;         /* OLD - Firefox 19- */
  -webkit-flex: 1;          /* Chrome */
  -ms-flex: 1;
  flex: 1;
}

.Grid--flexCells > .Grid-cell {
  display: -webkit-box;      /* OLD - iOS 6-, Safari 3.1-6 */
  display: -moz-box;         /* OLD - Firefox 19- (buggy but mostly works) */
  display: -ms-flexbox;      /* TWEENER - IE 10 */
  display: -webkit-flex;     /* NEW - Chrome */
  display: flex;             /* NEW, Spec - Opera 12.1, Firefox 20+ */

}

.Grid--top {
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.Grid--bottom {
  -webkit-align-items: flex-end;
  align-items: flex-end;
}

.Grid--center {
  -webkit-align-items: center;
  align-items: center;
}

.Grid--justifyCenter {
  -webkit-justify-content: center;
  justify-content: center;
}

.Grid-cell--top {
  -webkit-align-self: flex-start;
  align-self: flex-start;
}

.Grid-cell--bottom {
  -webkit-align-self: flex-end;
  align-self: flex-end;
}

.Grid-cell--center {
  -webkit-align-self: center;
  align-self: center;
}

.Grid-cell--autoSize {
  -webkit-box-flex: none;      /* OLD - iOS 6-, Safari 3.1-6 */
  -moz-box-flex: none;         /* OLD - Firefox 19- */
  -webkit-flex: none;          /* Chrome */
  -ms-flex: none;
  flex: none;
}

.Grid--fit > .Grid-cell {
  -webkit-box-flex: 1;      /* OLD - iOS 6-, Safari 3.1-6 */
  -moz-box-flex: 1;         /* OLD - Firefox 19- */
  -webkit-flex: 1;          /* Chrome */
  -ms-flex: 1;
  flex: 1;
}

.Grid--full > .Grid-cell {
  -webkit-box-flex: 0 0 100%;      /* OLD - iOS 6-, Safari 3.1-6 */
  -moz-box-flex: 0 0 100%;         /* OLD - Firefox 19- */
  -webkit-flex: 0 0 100%;          /* Chrome */
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
}

.Grid--1of2 > .Grid-cell {
  -webkit-box-flex: 0 0 50%;      /* OLD - iOS 6-, Safari 3.1-6 */
  -moz-box-flex: 0 0 50%;         /* OLD - Firefox 19- */
  -webkit-flex: 0 0 50%;          /* Chrome */
  -ms-flex: 0 0 50%;
  flex: 0 0 50%;
}

.Grid--1of3 > .Grid-cell {
  -webkit-box-flex: 0 0 33.3333%;      /* OLD - iOS 6-, Safari 3.1-6 */
  -moz-box-flex: 0 0 33.3333%;         /* OLD - Firefox 19- */
  -webkit-flex: 0 0 33.3333%;          /* Chrome */
  -ms-flex: 0 0 33.3333%;
  flex: 0 0 33.3333%;
}

.Grid--1of4 > .Grid-cell {
  -webkit-box-flex: 0 0 25%;      /* OLD - iOS 6-, Safari 3.1-6 */
  -moz-box-flex: 0 0 25%;         /* OLD - Firefox 19- */
  -webkit-flex: 0 0 25%;          /* Chrome */
  -ms-flex: 0 0 25%;
  flex: 0 0 25%;
}

@media (--break-sm) {
  .small-Grid--fit > .Grid-cell {
    -webkit-box-flex: 1;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 1;         /* OLD - Firefox 19- */
    -webkit-flex: 1;          /* Chrome */
    -ms-flex: 1;
    flex: 1;
  }
  .small-Grid--full > .Grid-cell {
    -webkit-box-flex: 0 0 100%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 100%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 100%;          /* Chrome */
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
  }
  .small-Grid--1of2 > .Grid-cell {
    -webkit-box-flex: 0 0 50%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 50%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 50%;          /* Chrome */
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
  }
  .small-Grid--1of3 > .Grid-cell {
    -webkit-box-flex: 0 0 33.3333%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 33.3333%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 33.3333%;          /* Chrome */
    -ms-flex: 0 0 33.3333%;
    flex: 0 0 33.3333%;
  }
  .small-Grid--1of4 > .Grid-cell {
    -webkit-box-flex: 0 0 25%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 25%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 25%;          /* Chrome */
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
  }
}

@media (--break-md) {
  .med-Grid--fit > .Grid-cell {
     -webkit-box-flex: 1;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 1;         /* OLD - Firefox 19- */
    -webkit-flex: 1;          /* Chrome */
    -ms-flex: 1;
    flex: 1;
  }
  .med-Grid--full > .Grid-cell {
    -webkit-box-flex: 0 0 100%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 100%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 100%;          /* Chrome */
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
  }
  .med-Grid--1of2 > .Grid-cell {
    -webkit-box-flex: 0 0 50%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 50%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 50%;          /* Chrome */
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
  }
  .med-Grid--1of3 > .Grid-cell {
    -webkit-box-flex: 0 0 33.3333%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 33.3333%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 33.3333%;          /* Chrome */
    -ms-flex: 0 0 33.3333%;
    flex: 0 0 33.3333%;
  }
  .med-Grid--1of4 > .Grid-cell {
    -webkit-box-flex: 0 0 25%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 25%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 25%;          /* Chrome */
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
  }
}

@media (--break-lg) {
  .large-Grid--fit > .Grid-cell {
     -webkit-box-flex: 1;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 1;         /* OLD - Firefox 19- */
    -webkit-flex: 1;          /* Chrome */
    -ms-flex: 1;
    flex: 1;
  }
  .large-Grid--full > .Grid-cell {
    -webkit-box-flex: 0 0 100%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 100%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 100%;          /* Chrome */
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
  }
  .large-Grid--1of2 > .Grid-cell {
    -webkit-box-flex: 0 0 50%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 50%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 50%;          /* Chrome */
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
  }
  .large-Grid--1of3 > .Grid-cell {
    -webkit-box-flex: 0 0 33.3333%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 33.3333%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 33.3333%;          /* Chrome */
    -ms-flex: 0 0 33.3333%;
    flex: 0 0 33.3333%;
  }
  .large-Grid--1of4 > .Grid-cell {
    -webkit-box-flex: 0 0 25%;      /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 0 0 25%;         /* OLD - Firefox 19- */
    -webkit-flex: 0 0 25%;          /* Chrome */
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
  }
}

.Grid--gutters {
  margin: -1em 0 1em -1em;
}
.Grid--gutters > .Grid-cell {
  padding: 1em 0 0 1em;
}

.Grid--guttersLg {
  margin: -1.5em 0 1.5em -1.5em;
}
.Grid--guttersLg > .Grid-cell {
  padding: 1.5em 0 0 1.5em;
}

.Grid--guttersXl {
  margin: -2em 0 2em -2em;
}
.Grid--guttersXl > .Grid-cell {
  padding: 2em 0 0 2em;
}

@media (--break-sm) {
  .small-Grid--gutters {
    margin: -1em 0 1em -1em;
  }
  .small-Grid--gutters > .Grid-cell {
    padding: 1em 0 0 1em;
  }
  .small-Grid--guttersLg {
    margin: -1.5em 0 1.5em -1.5em;
  }
  .small-Grid--guttersLg > .Grid-cell {
    padding: 1.5em 0 0 1.5em;
  }
  .small-Grid--guttersXl {
    margin: -2em 0 2em -2em;
  }
  .small-Grid--guttersXl > .Grid-cell {
    padding: 2em 0 0 2em;
  }
}

@media (--break-md) {
  .med-Grid--gutters {
    margin: -1em 0 1em -1em;
  }
  .med-Grid--gutters > .Grid-cell {
    padding: 1em 0 0 1em;
  }
  .med-Grid--guttersLg {
    margin: -1.5em 0 1.5em -1.5em;
  }
  .med-Grid--guttersLg > .Grid-cell {
    padding: 1.5em 0 0 1.5em;
  }
  .med-Grid--guttersXl {
    margin: -2em 0 2em -2em;
  }
  .med-Grid--guttersXl > .Grid-cell {
    padding: 2em 0 0 2em;
  }
}

@media (--break-lg) {
  .large-Grid--gutters {
    margin: -1em 0 1em -1em;
  }
  .large-Grid--gutters > .Grid-cell {
    padding: 1em 0 0 1em;
  }
  .large-Grid--guttersLg {
    margin: -1.5em 0 1.5em -1.5em;
  }
  .large-Grid--guttersLg > .Grid-cell {
    padding: 1.5em 0 0 1.5em;
  }
  .large-Grid--guttersXl {
    margin: -2em 0 2em -2em;
  }
  .large-Grid--guttersXl > .Grid-cell {
    padding: 2em 0 0 2em;
  }
}
