$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: ((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} - 1)) {
    @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: ((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: ((100%/12)*$i);
            }
        }

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

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

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

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

.pull-right {
  text-align: right;
  float: right;
  justify-content: right;
}

.hidden {
  display: none !important;
}

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