/// Grid system
//
// Generate semantic grid columns with these mixins.

@mixin make-container($gutter: $grid-gutter-width) {
    margin-right: auto;
    margin-left: auto;
    padding-left: ($gutter / 2);
    padding-right: ($gutter / 2);
    @if not $enable-flex {
        @include clearfix();
    }
}

// For each breakpoint, define the maximum width of the container in a media query
@mixin make-container-max-widths($max-widths: $container-max-widths) {
    @each $breakpoint, $container-max-width in $max-widths {
        @include media-breakpoint-up($breakpoint) {
            max-width: $container-max-width;
        }
    }
}

@mixin make-row($gutter: $grid-gutter-width) {
    @if $enable-flex {
        display: flex;
        box-sizing: border-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
        flex: 0 1 auto;
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    } @else {
        @include clearfix();
    }
    margin-left: ($gutter / -2);
    margin-right: ($gutter / -2);
}

@mixin make-col($gutter: $grid-gutter-width) {
    position: relative;
    @if not $enable-flex {
        float: left;
    }
    min-height: 1px;
    padding-left: ($gutter / 2);
    padding-right: ($gutter / 2);
}

@mixin make-col-span($size, $columns: $grid-columns) {
    @if $enable-flex {
        flex: percentage($size / $columns);
        -webkit-flex-basis: percentage($size / $columns);
        -ms-flex-preferred-size: percentage($size / $columns);
        flex-basis: percentage($size / $columns);
        max-width: percentage($size / $columns);
    } @else {
        width: percentage($size / $columns);
    }
}

@mixin make-col-offset($size, $columns: $grid-columns) {
    margin-left: percentage($size / $columns);
}

@mixin make-col-push($size, $columns: $grid-columns) {
    left: if($size > 0, percentage($size / $columns), auto);
}

@mixin make-col-pull($size, $columns: $grid-columns) {
    right: if($size > 0, percentage($size / $columns), auto);
}

@mixin make-col-modifier($type, $size, $columns) {
    // Work around the lack of dynamic mixin @include support (https://github.com/sass/sass/issues/626)
    @if $type == push {
        @include make-col-push($size, $columns);
    } @else if $type == pull {
        @include make-col-pull($size, $columns);
    } @else if $type == offset {
        @include make-col-offset($size, $columns);
    }
}
