.clearfix() {
   //	*zoom:1;
   &:before,
   &:after {
	  content: " ";
	  display: table;
   }
   &:after {
	  clear: both;
   }
}

.placeholder(@color: @input-color-placeholder) {
   &:-moz-placeholder {
	  color: @color;
   }
   // Firefox 4-18
   &::-moz-placeholder {
	  color: @color;
   }
   // Firefox 19+
   &:-ms-input-placeholder {
	  color: @color;
   }
   // Internet Explorer 10+
   &::-webkit-input-placeholder {
	  color: @color;
   }
   // Safari and Chrome
}

.gradient (@startColor: #eee, @endColor: white) {
   background: -webkit-gradient(linear, left top, left bottom, from(@startColor), to(@endColor));
   background: -webkit-linear-gradient(top, @startColor, @endColor);
   background: -moz-linear-gradient(top, @startColor, @endColor);
   background: -ms-linear-gradient(top, @startColor, @endColor);
   background: -o-linear-gradient(top, @startColor, @endColor);
   background-color: @startColor;
}

.horizontal-gradient (@startColor: #eee, @endColor: white) {
   background-color: @startColor;
   background-image: -webkit-gradient(linear, left top, right top, from(@startColor), to(@endColor));
   background-image: -webkit-linear-gradient(left, @startColor, @endColor);
   background-image: -moz-linear-gradient(left, @startColor, @endColor);
   background-image: -ms-linear-gradient(left, @startColor, @endColor);
   background-image: -o-linear-gradient(left, @startColor, @endColor);
}

.vertical_gradient(@from: #000, @to: #fff) {
   background: @from;
   background: -webkit-gradient(linear, left top, left bottom, from(@from), to(@to));
   background: -webkit-linear-gradient(@from, @to);
   background: -moz-linear-gradient(center top, @from 0%, @to 100%);
   background: -moz-gradient(center top, @from 0%, @to 100%);
}

.bw-gradient(@color: #f5f5f5, @start: 0, @stop: 255) {
   background: @color;
   background: -webkit-gradient(linear,
   left bottom,
   left top,
   color-stop(0, rgb(@start, @start, @start)),
   color-stop(1, rgb(@stop, @stop, @stop)));
   background: -ms-linear-gradient(bottom,
   rgb(@start, @start, @start) 0%,
   rgb(@stop, @stop, @stop) 100%);
   background: -moz-linear-gradient(center bottom,
   rgb(@start, @start, @start) 0%,
   rgb(@stop, @stop, @stop) 100%);
   background: -o-linear-gradient(rgb(@stop, @stop, @stop),
   rgb(@start, @start, @start));
   filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", rgb(@stop, @stop, @stop), rgb(@start, @start, @start)));
}

.bordered(@top-color: #eee, @right-color: #eee, @bottom-color: #eee, @left-color: #eee) {
   border-top: solid 1px @top-color;
   border-left: solid 1px @left-color;
   border-right: solid 1px @right-color;
   border-bottom: solid 1px @bottom-color;
}

.drop-shadow(@x-axis: 0, @y-axis: 1px, @blur: 2px, @alpha: 0.1) {
   -webkit-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
   -moz-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
   box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
}

.box_shadow(@shadow_x:3px, @shadow_y:3px, @shadow_rad:3px, @shadow_in:3px, @shadow_color:#888) {
   box-shadow: @shadow_x @shadow_y @shadow_rad @shadow_in @shadow_color;
   -webkit-box-shadow: @shadow_x @shadow_y @shadow_rad @shadow_in @shadow_color;
}

.inset_box_shadow(@shadow_x:3px, @shadow_y:3px, @shadow_rad:3px, @shadow_in:3px, @shadow_color:#888) {
   box-shadow: inset @shadow_x @shadow_y @shadow_rad @shadow_in @shadow_color;
   -webkit-box-shadow: inset @shadow_x @shadow_y @shadow_rad @shadow_in @shadow_color;
}

.text_shadow(@shadow_x:3px, @shadow_y:3px, @shadow_rad:3px, @shadow_color:#fff) {
   text-shadow: @shadow_x @shadow_y @shadow_rad @shadow_color;
}

.rounded(@radius: 2px) {
   -webkit-border-radius: @radius;
   -moz-border-radius: @radius;
   border-radius: @radius;
}

.border-radius(@topright: 0, @bottomright: 0, @bottomleft: 0, @topleft: 0) {
   -webkit-border-top-right-radius: @topright;
   -webkit-border-bottom-right-radius: @bottomright;
   -webkit-border-bottom-left-radius: @bottomleft;
   -webkit-border-top-left-radius: @topleft;
   -moz-border-radius-topright: @topright;
   -moz-border-radius-bottomright: @bottomright;
   -moz-border-radius-bottomleft: @bottomleft;
   -moz-border-radius-topleft: @topleft;
   border-top-right-radius: @topright;
   border-bottom-right-radius: @bottomright;
   border-bottom-left-radius: @bottomleft;
   border-top-left-radius: @topleft;
   .background-clip(padding-box);
}

.opacity(@opacity: 0.5) {
   -moz-opacity: @opacity;
   -khtml-opacity: @opacity;
   -webkit-opacity: @opacity;
   opacity: @opacity;
}

.transition-duration(@duration: 0.2s) {
   -moz-transition-duration: @duration;
   -webkit-transition-duration: @duration;
   -o-transition-duration: @duration;
   transition-duration: @duration;
}

.transition-delay(@delay: 0.2s) {
   -webkit-transition-delay: @delay;
   -moz-transition-delay: @delay;
   -o-transition-delay: @delay;
   transition-delay: @delay;
}

.transform(...) {
   -webkit-transform: @arguments;
   -moz-transform: @arguments;
   -o-transform: @arguments;
   -ms-transform: @arguments;
   transform: @arguments;
}

.rotation(@deg:5deg) {
   .transform(rotate(@deg));
}

.scale(@ratio:1.5) {
   .transform(scale(@ratio));
}

.scaleY(@ratio:1.5) {
   .transform(scaleY(@ratio));
}

.scaleX(@ratio:1.5) {
   .transform(scaleX(@ratio));
}

.transition(@duration:0.5s, @ease:cubic-bezier(0.215, 0.61, 0.355, 1)) {
   -webkit-transition: all @duration @ease;
   -moz-transition: all @duration @ease;
   -o-transition: all @duration @ease;
   transition: all @duration @ease;
}

.transform(@string) {
   -webkit-transform: @string;
   -moz-transform: @string;
   -ms-transform: @string;
   -o-transform: @string;
}

.translate (@x, @y:0) {
   -webkit-transform: translate(@x, @y);
   -moz-transform: translate(@x, @y);
   -ms-transform: translate(@x, @y);
   -o-transform: translate(@x, @y);
}

.translate3d (@x, @y: 0, @z: 0) {
   -webkit-transform: translate3d(@x, @y, @z);
   -moz-transform: translate3d(@x, @y, @z);
   -ms-transform: translate3d(@x, @y, @z);
   -o-transform: translate3d(@x, @y, @z);
}

.perspective (@value: 1000) {
   -webkit-perspective: @value;
   -moz-perspective: @value;
   -ms-perspective: @value;
   perspective: @value;
}

.transform-origin (@x:center, @y:center) {
   -webkit-transform-origin: @x @y;
   -moz-transform-origin: @x @y;
   -ms-transform-origin: @x @y;
   -o-transform-origin: @x @y;
}

.skew (@deg, @deg2) {
   -webkit-transform: skew(@deg, @deg2);
   -moz-transform: skew(@deg, @deg2);
   -ms-transform: skew(@deg, @deg2);
   -o-transform: skew(@deg, @deg2);
}

.animation (@name, @duration: 300ms, @delay: 0, @ease: ease) {
   -webkit-animation: @name @duration @delay @ease;
   -moz-animation: @name @duration @delay @ease;
   -ms-animation: @name @duration @delay @ease;
}

.inner-shadow(@horizontal:0, @vertical:1px, @blur:2px, @alpha: 0.4) {
   -webkit-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);
   -moz-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);
   box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);
}

.box-shadow(@arguments) {
   -webkit-box-shadow: @arguments;
   -moz-box-shadow: @arguments;
   box-shadow: @arguments;
}

.box-sizing(@sizing: border-box) {
   -ms-box-sizing: @sizing;
   -moz-box-sizing: @sizing;
   -webkit-box-sizing: @sizing;
   box-sizing: @sizing;
}

.user-select(@argument: none) {
   -webkit-user-select: @argument;
   -moz-user-select: @argument;
   -ms-user-select: @argument;
   user-select: @argument;
}

.columns(@colwidth: 250px, @colcount: 0, @colgap: 50px, @columnRuleColor: #eee, @columnRuleStyle: solid, @columnRuleWidth: 1px) {
   -moz-column-width: @colwidth;
   -moz-column-count: @colcount;
   -moz-column-gap: @colgap;
   -moz-column-rule-color: @columnRuleColor;
   -moz-column-rule-style: @columnRuleStyle;
   -moz-column-rule-width: @columnRuleWidth;
   -webkit-column-width: @colwidth;
   -webkit-column-count: @colcount;
   -webkit-column-gap: @colgap;
   -webkit-column-rule-color: @columnRuleColor;
   -webkit-column-rule-style: @columnRuleStyle;
   -webkit-column-rule-width: @columnRuleWidth;
   column-width: @colwidth;
   column-count: @colcount;
   column-gap: @colgap;
   column-rule-color: @columnRuleColor;
   column-rule-style: @columnRuleStyle;
   column-rule-width: @columnRuleWidth;
}

.background-clip(@argument: padding-box) {
   -moz-background-clip: @argument;
   -webkit-background-clip: @argument;
   background-clip: @argument;
}

.font-size(@sizeValue) {
   font-size: "@{sizeValue}px";
}

.center-block() {
   display: block;
   margin-left: auto;
   margin-right: auto;
}

.text-truncate() {
   overflow: hidden;
   text-overflow: ellipsis;
   white-space: nowrap;
}

.absolute-center() {
   margin: auto;
   position: absolute;
   top: 0;
   left: 0;
   bottom: 0;
   right: 0;
}

.backface-visibility() {
   -webkit-backface-visibility: hidden;
   -moz-backface-visibility: hidden;
   -ms-backface-visibility: hidden;
   -o-backface-visibility: hidden;
   backface-visibility: hidden;
}

.is-Translated (@width:100%) {
   width: @width;
   margin: auto;
   position: absolute;
   top: 50%;
   left: 50%;
   -webkit-transform: translate(-50%, -50%);
   transform: translate(-50%, -50%);
}

.at2x(@path, @w: auto, @h: auto) {
   background-image: url(@path);
   @at2x_path: ~`@{path}.replace(/\.\w+$/, function(match) { return "@2x" + match; })`;

   @media @highdpi {
	  background-image: url("@{at2x_path}");
	  background-size: @w @h;
   }
}

//****************************** VARIABLES ******************************//
@gutter: 1.875rem;
@grid-columns: 12;
@screen-xs: 30rem;
@screen-sm-min: 48rem;
@screen-md-min: 62rem;
@screen-lg-min: 75rem;
@screen-xs-max: (@screen-sm-min - 0.0625);
@screen-sm-max: (@screen-md-min - 0.0625);
@screen-md-max: (@screen-lg-min - 0.0625);
@container-xs: (20rem + @gutter);
@container-sm: (45rem + @gutter);
@container-md: (58.75rem + @gutter);
@container-lg: (71.25rem + @gutter);
@xs: ~"(min-width: 30em)";
@xs-max: ~"(max-width: 47.9375rem)";
@sm: ~"(min-width: 48rem)";
@sm-max: ~"(max-width: 61.9375rem)";
@md: ~"(min-width: 62rem)";
@md-max: ~"(max-width: 74.9375rem)";
@lg: ~"(min-width: 75rem)";
@sans-serif: Arial, sans-serif;
@serif: "Times New Roman", Times, serif;
@retina: ~"(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)";
@highdpi: ~"(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)";

.clear() {
   &:extend(.clr all);
}

.iconfont() {
   &:extend(.icf);
}

.iconfontbrands() {
   &:extend(.icfb);
}

.transit() {
   &:extend(.tran);
}
