.gds-flex-grid__container {
    width: 100%;
}

.gds-flex-grid__row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    flex-wrap: wrap;
    width: 100%;
    height: 100%;
}

// Item styles, padding controls the gutters
.gds-flex-grid__item {
    display: 'flex';
    flex-direction: 'row';
    flex-wrap: 'wrap';
    flex-grow: 0;
    flex-shrink: 0;
    padding: 0 ($unit * 0.5);
}

.gds-flex-grid__item--half-gutter {
    padding: 0 ($unit * 0.25);
}

.gds-flex-grid__item--no-gutter {
    padding: 0 0;
}

.gds-flex-grid__item--full-height {
    height: 100%;
}

// Desktop
@media #{$desktop-width} {
    .gds-flex-grid__item--desktop-6 {
        flex-basis: calc(100% / 6);
    }
    .gds-flex-grid__item--desktop-6:nth-child(6n + 1) {
        padding-left: 0;
    }
    .gds-flex-grid__item--desktop-6:nth-child(6n + 6) {
        padding-right: 0;
    }

    .gds-flex-grid__item--desktop-5 {
        flex-basis: calc(100% / 5);
    }
    .gds-flex-grid__item--desktop-5:nth-child(5n + 1) {
        padding-left: 0;
    }
    .gds-flex-grid__item--desktop-5:nth-child(5n + 5) {
        padding-right: 0;
    }

    .gds-flex-grid__item--desktop-4 {
        flex-basis: calc(100% / 4);
    }
    .gds-flex-grid__item--desktop-4:nth-child(4n + 1) {
        padding-left: 0;
    }
    .gds-flex-grid__item--desktop-4:nth-child(4n + 4) {
        padding-right: 0;
    }

    .gds-flex-grid__item--desktop-3 {
        flex-basis: calc(100% / 3);
    }
    .gds-flex-grid__item--desktop-3:nth-child(3n + 1) {
        padding-left: 0;
    }
    .gds-flex-grid__item--desktop-3:nth-child(3n + 3) {
        padding-right: 0;
    }

    .gds-flex-grid__item--desktop-2 {
        flex-basis: calc(100% / 2);
    }
    .gds-flex-grid__item--desktop-2:nth-child(2n + 1) {
        padding-left: 0;
    }
    .gds-flex-grid__item--desktop-2:nth-child(2n + 2) {
        padding-right: 0;
    }

    .gds-flex-grid__item--desktop-1 {
        flex-basis: 100%;
        padding: 0;
    }
}

// Tablet
@media #{$tablet-width}, #{$phablet-width} {
    .gds-flex-grid__item--tablet-3 {
        flex-basis: calc(100% / 3);
    }
    .gds-flex-grid__item--tablet-3:nth-child(3n + 1) {
        padding-left: 0;
    }
    .gds-flex-grid__item--tablet-3:nth-child(3n + 3) {
        padding-right: 0;
    }

    .gds-flex-grid__item--tablet-2 {
        flex-basis: calc(100% / 2);
    }
    .gds-flex-grid__item--tablet-2:nth-child(2n + 1) {
        padding-left: 0;
    }
    .gds-flex-grid__item--tablet-2:nth-child(2n + 2) {
        padding-right: 0;
    }

    .gds-flex-grid__item--tablet-1 {
        flex-basis: 100%;
        padding: 0;
    }
}

// Mobile
@media #{$phone-width} {
    .gds-flex-grid__item--mobile-2 {
        flex-basis: calc(100% / 2);
    }
    .gds-flex-grid__item--mobile-2:nth-child(2n + 1) {
        padding-left: 0;
    }
    .gds-flex-grid__item--mobile-2:nth-child(2n + 2) {
        padding-right: 0;
    }

    .gds-flex-grid__item--mobile-1 {
        flex-basis: 100%;
        padding: 0;
    }
}
