// Container widths
//
// Set the container width, and override it for fixed navbars in media queries.

.container {
    @include make-container();
    @include make-container-max-widths();

}

// Fluid container
//
// Utilizes the mixin meant for fixed width containers, but without any defined
// width for fluid, full width layouts.

.container-fluid {
    @include make-container();
}

// Row
//
// Rows contain and clear the floats of your columns.

@if $enable-grid-classes {
    .row {
        @include make-row();
    }
}

// Columns
//
// Common styles for small and large grid columns

@if $enable-grid-classes {
    @include make-grid-columns();
}

// Flex variation
//
// Custom styles for additional flex alignment options.

@if $enable-flex and $enable-grid-classes {

    // Flex column reordering

    @each $breakpoint in map-keys($grid-breakpoints) {
        @include media-breakpoint-up($breakpoint) {
            .col-#{$breakpoint}-first {
                order: -1;
            }
            .col-#{$breakpoint}-last {
                order: 1;
            }
        }
    }

    // Alignment for every column in row

    @each $breakpoint in map-keys($grid-breakpoints) {
        @include media-breakpoint-up($breakpoint) {
            .row-#{$breakpoint}-top {
                align-items: flex-start;
            }
            .row-#{$breakpoint}-center {
                align-items: center;
            }
            .row-#{$breakpoint}-bottom {
                align-items: flex-end;
            }
        }
    }

    // Between for every column in row

    @each $breakpoint in map-keys($grid-breakpoints) {
        @include media-breakpoint-up($breakpoint) {
            .row-#{$breakpoint}-between {
                -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                justify-content: space-between;
            }
        }
    }

    // Reverse for every column in row

    @each $breakpoint in map-keys($grid-breakpoints) {
        @include media-breakpoint-up($breakpoint) {
            .row-#{$breakpoint}-reverse {
                -webkit-box-orient: horizontal;
                -webkit-box-direction: reverse;
                flex-direction: row-reverse;
            }
        }
    }

    // Alignment per column

    @each $breakpoint in map-keys($grid-breakpoints) {
        @include media-breakpoint-up($breakpoint) {
            .col-#{$breakpoint}-top {
                align-self: flex-start;
            }
            .col-#{$breakpoint}-center {
                align-self: center;
            }
            .col-#{$breakpoint}-bottom {
                align-self: flex-end;
            }
        }
    }
}
