@import "config";
@import "dependencies";

// Grid Declarations
// ------------------------
// Extra Small Grid / Mobile First Default Grid
@if $viewport-is-full-height {
    @include viewport-full-height;
}

.container-fluid {
    @include containers-fluid;
}

@include containers-flexbox;

.row-flex {
    @include row-flex;
}

.xs-row-stacked {
    @include row-stacked;
}

@include columns-flexbox;

@if $bootstrap3 == false {
    $initial: $grid-xs-initials;

    .row {
        @extend .row-flex;
    }

    .container-fluid {
        @include container-responsive($grid-xs-margin-optical);
    }

    @include grid-gutter($grid-xs-gutters);

    .container-#{$initial} {
        @include grid-gutter($grid-xs-gutters);
    }

    @include columns-fluid($grid-xs-initials, $grid-columns);

    @if $include-fixed-grid == true {
        @include column-height-fixed-defaults;

        @include column-height-fixed($grid-xs-initials, $grid-columns, $grid-xs-width);

        @include columns-fixed($grid-xs-initials, $grid-columns, $grid-xs-width, $grid-xs-gutters);
    }
}

// Small grid

@media (min-width: $breakpoint-sm) {
    $initial: $grid-sm-initials;

    @if $bootstrap3 == false {
        @include grid-gutter($grid-sm-gutters);

        .container-#{$initial} {
            @include grid-gutter($grid-sm-gutters);
        }

        @include columns-fluid($grid-sm-initials, $grid-columns);

        .container-fluid {
            @include container-responsive($grid-sm-margin-optical);
        }

        .sm-row-stacked {
            @include row-stacked;
        }

        .sm-row-unstacked {
            @include row-unstacked;
        }

        @if $include-fixed-grid == true {
            @include columns-fixed($grid-sm-initials, $grid-columns, $grid-sm-width, $grid-sm-gutters);

            @include column-height-fixed($grid-sm-initials, $grid-columns, $grid-sm-width);
        }
    }
}

// Medium grid
@media (min-width: $breakpoint-md) {
    $initial: $grid-md-initials;

    @if $bootstrap3 == false {
        @include grid-gutter($grid-md-gutters);

        .container-#{$initial} {
            @include grid-gutter($grid-md-gutters);
        }

        @include columns-fluid($grid-md-initials, $grid-columns);

        .container-fluid {
            @include container-responsive($grid-md-margin-optical);
        }

        .md-row-stacked {
            @include row-stacked;
        }

        .md-row-unstacked {
            @include row-unstacked;
        }

        @if $include-fixed-grid == true {
            @include columns-fixed($grid-md-initials, $grid-columns, $grid-md-width, $grid-md-gutters);

            @include column-height-fixed($grid-md-initials, $grid-columns, $grid-md-width);
        }
    }
}

/*-- Large grid --*/

@media (min-width: $breakpoint-lg) {
    $initial: $grid-lg-initials;

    @if $bootstrap3 == false {
        @include grid-gutter($grid-lg-gutters);

        .container-#{$initial} {
            @include grid-gutter($grid-lg-gutters);
        }

        @include columns-fluid($grid-lg-initials, $grid-columns);

        .container-fluid {
            @include container-responsive($grid-sm-margin-optical);
        }

        .lg-row-stacked {
            @include row-stacked;
        }

        .lg-row-unstacked {
            @include row-unstacked;
        }

        @if $include-fixed-grid == true {
            @include columns-fixed($grid-lg-initials, $grid-columns, $grid-lg-width, $grid-lg-gutters);

            @include column-height-fixed($grid-lg-initials, $grid-columns, $grid-lg-width);
        }
    }
}

/*-- Large grid --*/

@media (min-width: $breakpoint-xl) {
    $initial: $grid-xl-initials;

    @if $bootstrap3 == false {
        @include grid-gutter($grid-xl-gutters);

        .container-#{$initial} {
            @include grid-gutter($grid-xl-gutters);
        }

        @include columns-fluid($grid-xl-initials, $grid-columns);

        .container-fluid {
            @include container-responsive($grid-sm-margin-optical);
        }

        .lg-row-stacked {
            @include row-stacked;
        }

        .lg-row-unstacked {
            @include row-unstacked;
        }

        @if $include-fixed-grid == true {
            @include columns-fixed($grid-xl-initials, $grid-columns, $grid-xl-width, $grid-xl-gutters);

            @include column-height-fixed($grid-xl-initials, $grid-columns, $grid-xl-width);
        }
    }
}

@include grid-flexbox-align;

// Helpers
@include row-helpers;

@include grid-flexbox-scroll;