
.#{$font-prefix-ctrl} {
    font: normal normal normal $font-size/1 $font-name;
    font-size: inherit;
    text-transform: none;
    display: inline-block;
    vertical-align: text-bottom;
    speak: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    > .#{$font-prefix-ctrl} {
        line-height: inherit;
        vertical-align: bottom;
    }
}

a {
    > .#{$font-prefix-ctrl} {
        line-height: inherit;
        vertical-align: bottom;
    }
}

/* Icons */
@each $icon, $deg in $rotate {
    .#{$font-prefix-ctrl}.#{$font-prefix}-#{$icon} {
        transform: rotate(#{$deg}deg);
    }
}

@each $icon, $char in $icons {
    .#{$font-prefix-ctrl}.#{$font-prefix}-#{$icon} {
        &:before {
            content: icon($char);
        }
    }
}

/* Full Width */
.#{$font-prefix-ctrl}-fw {
    width: 1.28571429em;
    text-align: center;
}

/* Sizes */
.#{$font-prefix-ctrl}-lg {
    font-size: 1.33333333em;
    line-height: 0.75em;
    vertical-align: -25%;
}

@for $i from 2 to 11 {
    .#{$font-prefix-ctrl}-#{$i}x {
        font-size: #{$i}em;
    }
}

/* Pull */
.#{$font-prefix-ctrl}-pull-left {
    float: left;
    margin-right: .3em;
}

.#{$font-prefix-ctrl}-pull-right {
    float: right;
    margin-left: .3em;
}

/* Rotate */
.#{$font-prefix-ctrl}-rotate-90 {
    transform: rotate(90deg);
}

.#{$font-prefix-ctrl}-rotate-45 {
    transform: rotate(45deg);
}

.#{$font-prefix-ctrl}-rotate-270 {
    transform: rotate(270deg);
}

/* Flip */
.#{$font-prefix-ctrl}-flip-horizontal {
    transform: scaleX(-1);
}

.#{$font-prefix-ctrl}-flip-vertical {
    transform: scaleY(-1);
}

.#{$font-prefix-ctrl}-flip-both,
.#{$font-prefix-ctrl}-flip-horizontal.#{$font-prefix-ctrl}-flip-vertical {
    transform: scale(-1);
}

/* Spin */
.#{$font-prefix-ctrl}-spin {
    animation: #{$font-prefix}-icon-spin 2s infinite linear;
}

@keyframes #{$font-prefix}-icon-spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(359deg);
    }
}
