@use "sass:math";

$tablet: 769px;
$desktop: 1024px;
$widescreen: 1216px;
$fullhd: 1408px;

$widths: (
    m:    $tablet,
    l:    $desktop,
    xl:   $widescreen,
    xxl:  $fullhd,
);

@for $i from 1 through 12 {
    .col-#{$i} {
        float: left;
        box-sizing: border-box;

        @if $i < 12 {
            width: (4.66666666667%*$i) + (4% * if($i > 1, $i - 1, 0));
            margin-left: 4%;
        } @else {
            width: 100%;
            margin-left: 0;
        }

        &:first-child {
            margin-left: 0;
        }
    }

    .col-no-margin-#{$i} {
        float: left;
        box-sizing: border-box;
        width: ((math.div(100%, 12))*$i);
        margin: 0;
    }

    @if $i < 12 {
        .col-offset-#{$i}:first-child {
            margin-left: (8.66666666667%*$i) !important;
        }
        .col-offset-#{$i}:not(first-child) {
            margin-left: 4% + (8.66666666667%*$i) !important;
        }
    }
}

@media screen and (max-width: calc(#{$tablet} - 1px)) {
    @for $i from 1 through 12 {
        .col-s-#{$i} {
            float: left;
            box-sizing: border-box;

            @if $i < 12 {
                width: (4.66666666667%*$i) + (4% * if($i > 1, $i - 1, 0));
                margin-left: 4%;
            } @else {
                width: 100%;
                margin-left: 0;
            }

            &:first-child {
                margin-left: 0;
            }
        }

        @if $i < 12 {
            .col-offset-s-#{$i} {
                margin-left: (8.66666666667%*$i);
            }
        }

        .col-no-margin-s-#{$i} {
            float: left;
            box-sizing: border-box;
            width: (math.div(100%, 12)*$i);
        }
    }

    .s-hidden {
        display: none !important;
    }

    .s-visible {
        display: block !important;
    }
}

@each $size, $width in $widths {
    @media screen and (min-width: $width) {
        @for $i from 1 through 12 {
            .col-#{$size}-#{$i} {
                float: left;
                box-sizing: border-box;

                @if $i < 12 {
                    width: #{(4.66666666667%*$i) + (4% * if($i > 1, $i - 1, 0))};
                    margin-left: 4%;
                } @else {
                    width: 100%;
                    margin-left: 0;
                }

                &:first-child {
                    margin-left: 0;
                }
            }

            @if $i < 12 {
                .col-offset-#{$size}-#{$i} {
                    margin-left: #{(8.66666666667%*$i)};
                }
            }

            .col-no-margin-#{$size}-#{$i} {
                float: left;
                box-sizing: border-box;
                width: (math.div(100%, 12)*$i);
            }
        }

        .#{$size}-hidden {
            display: none !important;
        }

        .#{$size}-visible {
            display: block !important;
        }
    }
}

@mixin from($device) {
    @media screen and (min-width: $device) {
        @content;
    }
}

@mixin until($device) {
    @media screen and (max-width: calc(#{$device} - 1px)) {
        @content;
    }
}

@mixin between($from, $until) {
    @media screen and (min-width: $from) and (max-width: calc(#{$until} - 1px)) {
        @content;
    }
}

.vertical-center {
  display: flex;
  align-items: center;
}

.horizontal-center {
  display: flex;
  justify-content: center;
  margin-left: auto;
  margin-right: auto;
}

@mixin pull-right {
  display: inline-flex;
  text-align: right;
  justify-content: right;
  flex-grow: 1;
}

.pull-right {
  @include pull-right;
}

.hidden {
  display: none !important;
}

.no-content {
  display: flex;
  font-size: 1.5em;
  align-items: center;
  justify-content: center;
}
