/* Button 3
---------------------------------------------------------- */

//========== Variables
@vc_btn3-border-radius-round: 2em;
@vc_btn3-border-radius-rounded: 5px;
@vc_btn3-border-base: 1px;
@vc_btn3-border-outline: 2px;
@vc_btn3-shadow-width-xs-3d: 3px;
@vc_btn3-shadow-width-sm-3d: 4px;
@vc_btn3-shadow-width-md-3d: 5px;
@vc_btn3-shadow-width-lg-3d: 5px;
@vc_btn3-shadow-width-hover: 2px;

@vc_btn3-color-initial: @vc_btn3-color-blue;

// Button xs
@vc_btn3-xs-padding-horizontal: 12px;
@vc_btn3-xs-padding-vertical: 8px;
@vc_btn3-xs-font-size: 11px;
@vc_btn3-xs-icon-size: 14px;
// Button sm
@vc_btn3-sm-padding-horizontal: 16px;
@vc_btn3-sm-padding-vertical: 11px;
@vc_btn3-sm-font-size: 12px;
@vc_btn3-sm-icon-size: 14px;
// Button md (default)
@vc_btn3-md-padding-horizontal: 20px;
@vc_btn3-md-padding-vertical: 14px;
@vc_btn3-md-font-size: 14px;
@vc_btn3-md-icon-size: 16px;
// Button lg
@vc_btn3-lg-padding-horizontal: 25px;
@vc_btn3-lg-padding-vertical: 18px;
@vc_btn3-lg-font-size: 16px;
@vc_btn3-lg-icon-size: 20px;

//====== COLORS

// color set
// ---------------------------
// blue
@vc_btn3-color-blue: @blue;
@vc_btn3-color-blue-gradient: lighten(@vc_btn3-color-blue, 7%);
@vc_btn3-color-blue-gradient-end: lighten(@vc_btn3-color-blue, 2%);
@vc_btn3-color-blue-text: @vc_btn3-color-blue;
@vc_btn3-color-blue-contrast: #fff;
// turquoise
@vc_btn3-color-turquoise: @turquoise;
@vc_btn3-color-turquoise-gradient: lighten(@vc_btn3-color-turquoise, 4%);
@vc_btn3-color-turquoise-gradient-end: lighten(@vc_btn3-color-turquoise, 1%);
@vc_btn3-color-turquoise-text: @vc_btn3-color-turquoise;
@vc_btn3-color-turquoise-contrast: #fff;
// pink
@vc_btn3-color-pink: @pink;
@vc_btn3-color-pink-gradient: lighten(@vc_btn3-color-pink, 4%);
@vc_btn3-color-pink-gradient-end: lighten(@vc_btn3-color-pink, 1%);
@vc_btn3-color-pink-text: @vc_btn3-color-pink;
@vc_btn3-color-pink-contrast: #fff;
// violet
@vc_btn3-color-violet: @violet;
@vc_btn3-color-violet-gradient: lighten(@vc_btn3-color-violet, 7%);
@vc_btn3-color-violet-gradient-end: lighten(@vc_btn3-color-violet, 2%);
@vc_btn3-color-violet-text: @vc_btn3-color-violet;
@vc_btn3-color-violet-contrast: #fff;
// peacoc
@vc_btn3-color-peacoc: @peacoc;
@vc_btn3-color-peacoc-gradient: lighten(@vc_btn3-color-peacoc, 9%);
@vc_btn3-color-peacoc-gradient-end: lighten(@vc_btn3-color-peacoc, 2%);
@vc_btn3-color-peacoc-text: @vc_btn3-color-peacoc;
@vc_btn3-color-peacoc-contrast: #fff;
// chino
@vc_btn3-color-chino: @chino;
@vc_btn3-color-chino-gradient: lighten(@vc_btn3-color-chino, 7%);
@vc_btn3-color-chino-gradient-end: lighten(@vc_btn3-color-chino, 3%);
@vc_btn3-color-chino-text: @vc_btn3-color-chino;
@vc_btn3-color-chino-contrast: #fff;
// mulled_wine
@vc_btn3-color-mulled-wine: @mulled_wine;
@vc_btn3-color-mulled-wine-gradient: lighten(@vc_btn3-color-mulled-wine, 8%);
@vc_btn3-color-mulled-wine-gradient-end: lighten(@vc_btn3-color-mulled-wine, 3%);
@vc_btn3-color-mulled-wine-text: @vc_btn3-color-mulled-wine;
@vc_btn3-color-mulled-wine-contrast: #fff;
// vista_blue
@vc_btn3-color-vista-blue: @vista_blue;
@vc_btn3-color-vista-blue-gradient: lighten(@vc_btn3-color-vista-blue, 7%);
@vc_btn3-color-vista-blue-gradient-end: lighten(@vc_btn3-color-vista-blue, 3%);
@vc_btn3-color-vista-blue-text: @vc_btn3-color-vista-blue;
@vc_btn3-color-vista-blue-contrast: #fff;
// orange
@vc_btn3-color-orange: @orange;
@vc_btn3-color-orange-gradient: lighten(@vc_btn3-color-orange, 6%);
@vc_btn3-color-orange-gradient-end: lighten(@vc_btn3-color-orange, 1%);
@vc_btn3-color-orange-text: @vc_btn3-color-orange;
@vc_btn3-color-orange-contrast: #fff;
// sky
@vc_btn3-color-sky: @sky;
@vc_btn3-color-sky-gradient: lighten(@vc_btn3-color-sky, 7%);
@vc_btn3-color-sky-gradient-end: lighten(@vc_btn3-color-sky, 3%);
@vc_btn3-color-sky-text: @vc_btn3-color-sky;
@vc_btn3-color-sky-contrast: #fff;
// green
@vc_btn3-color-green: @green;
@vc_btn3-color-green-gradient: lighten(@vc_btn3-color-green, 7%);
@vc_btn3-color-green-gradient-end: lighten(@vc_btn3-color-green, 3%);
@vc_btn3-color-green-text: @vc_btn3-color-green;
@vc_btn3-color-green-contrast: #fff;
// juicy_pink
@vc_btn3-color-juicy-pink: @juicy_pink;
@vc_btn3-color-juicy-pink-gradient: lighten(@vc_btn3-color-juicy-pink, 5%);
@vc_btn3-color-juicy-pink-gradient-end: lighten(@vc_btn3-color-juicy-pink, 2%);
@vc_btn3-color-juicy-pink-text: @vc_btn3-color-juicy-pink;
@vc_btn3-color-juicy-pink-contrast: #fff;
// sandy_brown
@vc_btn3-color-sandy-brown: @sandy_brown;
@vc_btn3-color-sandy-brown-gradient: lighten(@vc_btn3-color-sandy-brown, 6%);
@vc_btn3-color-sandy-brown-gradient-end: lighten(@vc_btn3-color-sandy-brown, 3%);
@vc_btn3-color-sandy-brown-text: @vc_btn3-color-sandy-brown;
@vc_btn3-color-sandy-brown-contrast: #fff;
// purple
@vc_btn3-color-purple: @purple;
@vc_btn3-color-purple-gradient: lighten(@vc_btn3-color-purple, 6%);
@vc_btn3-color-purple-gradient-end: lighten(@vc_btn3-color-purple, 1%);
@vc_btn3-color-purple-text: @vc_btn3-color-purple;
@vc_btn3-color-purple-contrast: #fff;
// black
@vc_btn3-color-black: @black;
@vc_btn3-color-black-gradient: lighten(@vc_btn3-color-black, 8%);
@vc_btn3-color-black-gradient-end: lighten(@vc_btn3-color-black, 1%);
@vc_btn3-color-black-text: @vc_btn3-color-black-contrast;
@vc_btn3-color-black-contrast: #fff;
// grey
@vc_btn3-color-grey: @grey;
@vc_btn3-color-grey-gradient: lighten(@vc_btn3-color-grey, 3%);
@vc_btn3-color-grey-gradient-end: lighten(@vc_btn3-color-grey, 1%);
@vc_btn3-color-grey-text: #666;
@vc_btn3-color-grey-contrast: @vc_btn3-color-grey-text;
// white
@vc_btn3-color-white: @white;
@vc_btn3-color-white-gradient: darken(@vc_btn3-color-white, 1%);
@vc_btn3-color-white-gradient-end: darken(@vc_btn3-color-white, 2%);
@vc_btn3-color-white-text: #666;
@vc_btn3-color-white-contrast: @vc_btn3-color-white-text;

// Custom colors
// default
@vc_btn3-color-default: @vc_btnBackground;
@vc_btn3-color-default-gradient: @vc_btnBackground;
@vc_btn3-color-default-gradient-end: @vc_btnBackgroundHighlight;
@vc_btn3-color-default-text: @vc_btn3-color-default;
@vc_btn3-color-default-contrast: @grayDark;
// primary
@vc_btn3-color-primary: @vc_btnPrimaryBackground;
@vc_btn3-color-primary-gradient: lighten(@vc_btn3-color-primary, 7%);
@vc_btn3-color-primary-gradient-end: lighten(@vc_btn3-color-primary, 2%);
@vc_btn3-color-primary-text: @vc_btn3-color-primary;
@vc_btn3-color-primary-contrast: @white;
// info
@vc_btn3-color-info: @vc_btnInfoBackground;
@vc_btn3-color-info-gradient: lighten(@vc_btn3-color-info, 7%);
@vc_btn3-color-info-gradient-end: lighten(@vc_btn3-color-info, 2%);
@vc_btn3-color-info-text: @vc_btn3-color-info;
@vc_btn3-color-info-contrast: @white;
// Success
@vc_btn3-color-success: @vc_btnSuccessBackground;
@vc_btn3-color-success-gradient: lighten(@vc_btn3-color-success, 7%);
@vc_btn3-color-success-gradient-end: lighten(@vc_btn3-color-success, 2%);
@vc_btn3-color-success-text: @vc_btn3-color-success;
@vc_btn3-color-success-contrast: #fff;
// Warning
@vc_btn3-color-warning: @vc_btnWarningBackground;
@vc_btn3-color-warning-gradient: lighten(@vc_btn3-color-warning, 7%);
@vc_btn3-color-warning-gradient-end: lighten(@vc_btn3-color-warning, 2%);
@vc_btn3-color-warning-text: @vc_btn3-color-warning;
@vc_btn3-color-warning-contrast: @white;
// Danger
@vc_btn3-color-danger: @vc_btnDangerBackground;
@vc_btn3-color-danger-gradient: lighten(@vc_btn3-color-danger, 7%);
@vc_btn3-color-danger-gradient-end: lighten(@vc_btn3-color-danger, 2%);
@vc_btn3-color-danger-text: @vc_btn3-color-danger;
@vc_btn3-color-danger-contrast: @white;
// Inverse
@vc_btn3-color-inverse: @vc_btnInverseBackground;
@vc_btn3-color-inverse-gradient: lighten(@vc_btn3-color-inverse, 7%);
@vc_btn3-color-inverse-gradient-end: lighten(@vc_btn3-color-inverse, 2%);
@vc_btn3-color-inverse-text: @vc_btn3-color-inverse;
@vc_btn3-color-inverse-contrast: @white;

//========== VC Settings
.vc_btn3-container {
  display: block;
  margin-bottom: @vc_margin_bottom_gold;
  max-width: 100%;
  &.vc_btn3-inline {
    display: inline-block;
    vertical-align: top;
  }
}

//========== Core

.vc_general.vc_btn3 {
  display: inline-block;
  margin-bottom: 0; // For input.btn
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
  background-color: transparent;
  color: @vc_btn3-color-initial;
  border: @vc_btn3-border-base solid transparent;
  box-sizing: border-box;
  word-wrap: break-word;
  .user-select(none);
  text-decoration: none;
  position: relative;
  top: 0;
  -webkit-transition: all .2s ease-in-out;
  transition: all .2s ease-in-out;
  line-height: normal;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;

  .make-btn3-size(@vc_btn3-md-font-size, @vc_btn3-md-padding-vertical, @vc_btn3-md-padding-horizontal);

  &:focus,
  &:active,
  &.active {
    outline: 0;
  }

  &:hover,
  &:focus {
    border: @vc_btn3-border-base solid transparent;
    text-decoration: none;
    color: darken(@vc_btn3-color-initial, 3%);
  }

  // icon
  .vc_btn3-icon {
    vertical-align: top;
    height: @vc_btn3-md-font-size;
    line-height: 1;
    font-size: @vc_btn3-md-icon-size;
  }
  .vc_btn3-icon-inner {
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    -webkit-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    transform: translate(0, -50%);
  }

  // placeholder for icon without text
  .vc_btn3-placeholder {
    display: inline-block;
    vertical-align: top;
    width: 0;
  }
}

// icon positions
.vc_btn3 {
  &.vc_btn3-icon-left,
  &.vc_btn3-icon-right {
    position: relative;
    .vc_btn3-icon {
      display: block;
      position: absolute;
      top: 50%;
      .translate(0; -50%);
    }
  }

  &.vc_btn3-icon-left {
    text-align: left;
  }

  &.vc_btn3-icon-right {
    text-align: right;
    &:not(.vc_btn3-block) {
      .vc_btn3-icon-inner {
        -webkit-transform: translate(-75%, -50%);
        -ms-transform: translate(-75%, -50%);
        transform: translate(-75%, -50%);
      }
    }
  }

  &.vc_btn3-o-empty {
    .vc_btn3-icon {
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
    }
    &:not(.vc_btn3-block) {
      .vc_btn3-icon-inner {
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
      }
    }
  }
}

//========== Styles
.vc_btn3 {
  // Classic
  &.vc_btn3-style-classic {
    border-color: rgba(0, 0, 0, .1) rgba(0, 0, 0, .1) rgba(0, 0, 0, .1);
  }
  // Modern
  &.vc_btn3-style-modern {
    #gradient > .vertical(@start-color: rgba(255, 255, 255, .2); @end-color: rgba(255, 255, 255, .01));
  }
  // Flat (default)
  &.vc_btn3-style-flat {

  }
  // Outline
  &.vc_btn3-style-outline-custom,
  &.vc_btn3-style-outline {
    &,
    &:hover,
    &:focus {
      border-width: @vc_btn3-border-outline;
    }
  }
  // 3d
  &.vc_btn3-style-3d {

  }
  // Custom
  &.vc_btn3-style-custom {
    #gradient > .vertical-three-colors(@start-color: rgba(0, 0, 0, 0); @mid-color: rgba(0, 0, 0, 0.1); @color-stop: 50%; @end-color: rgba(0, 0, 0, 0.1));
    background-repeat: repeat-x;
    background-size: 200%;
    background-position: 0 -100%;
    &:hover,
    &:focus {
      background-position: 0 100%;
    }
  }
}

// block button
.vc_btn3 {
  &.vc_btn3-block {
    display: block;
    width: 100%;
    text-align: inherit;
  }
}

//========== Shapes
.vc_btn3 {
  // Square Shape
  &.vc_btn3-shape-square {
    border-radius: 0;
  }
  // Rounded Shape
  &.vc_btn3-shape-rounded {
    border-radius: @vc_btn3-border-radius-rounded;
  }
  // Round Shape
  &.vc_btn3-shape-round {
    border-radius: @vc_btn3-border-radius-round;
  }
}

// button sizes
.vc_btn3 {
  //========== Sizes
  // XS size
  &.vc_btn3-size-xs {
    .make-btn3-size(@vc_btn3-xs-font-size, @vc_btn3-xs-padding-vertical, @vc_btn3-xs-padding-horizontal);
    .make-btn3-icon-size(@vc_btn3-xs-padding-horizontal, @vc_btn3-xs-icon-size, @vc_btn3-xs-font-size);
  }
  // SM size
  &.vc_btn3-size-sm {
    .make-btn3-size(@vc_btn3-sm-font-size, @vc_btn3-sm-padding-vertical, @vc_btn3-sm-padding-horizontal);
    .make-btn3-icon-size(@vc_btn3-sm-padding-horizontal, @vc_btn3-sm-icon-size, @vc_btn3-sm-font-size);
  }
  // MD size
  &.vc_btn3-size-md {
    .make-btn3-size(@vc_btn3-md-font-size, @vc_btn3-md-padding-vertical, @vc_btn3-md-padding-horizontal);
    .make-btn3-icon-size(@vc_btn3-md-padding-horizontal, @vc_btn3-md-icon-size, @vc_btn3-md-font-size);
  }
  // LG size
  &.vc_btn3-size-lg {
    .make-btn3-size(@vc_btn3-lg-font-size, @vc_btn3-lg-padding-vertical, @vc_btn3-lg-padding-horizontal);
    .make-btn3-icon-size(@vc_btn3-lg-padding-horizontal, @vc_btn3-lg-icon-size, @vc_btn3-lg-font-size);
  }
}

// colors
.vc_btn3 {
  //========== Colors
  // Generating color sets
  //-----------------------------------

  // blue
  .vc-btn3-make-colors-set(~'vc_btn3-color-blue'; @vc_btn3-color-blue-text; @vc_btn3-color-blue; @vc_btn3-color-blue-gradient-end; @vc_btn3-color-blue-gradient; @vc_btn3-color-blue-contrast);
  // turquoise
  .vc-btn3-make-colors-set(~'vc_btn3-color-turquoise'; @vc_btn3-color-turquoise-text; @vc_btn3-color-turquoise; @vc_btn3-color-turquoise-gradient-end; @vc_btn3-color-turquoise-gradient; @vc_btn3-color-turquoise-contrast);
  // pink
  .vc-btn3-make-colors-set(~'vc_btn3-color-pink'; @vc_btn3-color-pink-text; @vc_btn3-color-pink; @vc_btn3-color-pink-gradient-end; @vc_btn3-color-pink-gradient; @vc_btn3-color-pink-contrast);
  // violet
  .vc-btn3-make-colors-set(~'vc_btn3-color-violet'; @vc_btn3-color-violet-text; @vc_btn3-color-violet; @vc_btn3-color-violet-gradient-end; @vc_btn3-color-violet-gradient; @vc_btn3-color-violet-contrast);
  // peacoc
  .vc-btn3-make-colors-set(~'vc_btn3-color-peacoc'; @vc_btn3-color-peacoc-text; @vc_btn3-color-peacoc; @vc_btn3-color-peacoc-gradient-end; @vc_btn3-color-peacoc-gradient; @vc_btn3-color-peacoc-contrast);
  // chino
  .vc-btn3-make-colors-set(~'vc_btn3-color-chino'; @vc_btn3-color-chino-text; @vc_btn3-color-chino; @vc_btn3-color-chino-gradient-end; @vc_btn3-color-chino-gradient; @vc_btn3-color-chino-contrast);
  // mulled_wine
  .vc-btn3-make-colors-set(~'vc_btn3-color-mulled-wine'; @vc_btn3-color-mulled-wine-text; @vc_btn3-color-mulled-wine; @vc_btn3-color-mulled-wine-gradient-end; @vc_btn3-color-mulled-wine-gradient; @vc_btn3-color-mulled-wine-contrast);
  // vista_blue
  .vc-btn3-make-colors-set(~'vc_btn3-color-vista-blue'; @vc_btn3-color-vista-blue-text; @vc_btn3-color-vista-blue; @vc_btn3-color-vista-blue-gradient-end; @vc_btn3-color-vista-blue-gradient; @vc_btn3-color-vista-blue-contrast);
  // orange
  .vc-btn3-make-colors-set(~'vc_btn3-color-orange'; @vc_btn3-color-orange-text; @vc_btn3-color-orange; @vc_btn3-color-orange-gradient-end; @vc_btn3-color-orange-gradient; @vc_btn3-color-orange-contrast);
  // sky
  .vc-btn3-make-colors-set(~'vc_btn3-color-sky'; @vc_btn3-color-sky-text; @vc_btn3-color-sky; @vc_btn3-color-sky-gradient-end; @vc_btn3-color-sky-gradient; @vc_btn3-color-sky-contrast);
  // green
  .vc-btn3-make-colors-set(~'vc_btn3-color-green'; @vc_btn3-color-green-text; @vc_btn3-color-green; @vc_btn3-color-green-gradient-end; @vc_btn3-color-green-gradient; @vc_btn3-color-green-contrast);
  // juicy_pink
  .vc-btn3-make-colors-set(~'vc_btn3-color-juicy-pink'; @vc_btn3-color-juicy-pink-text; @vc_btn3-color-juicy-pink; @vc_btn3-color-juicy-pink-gradient-end; @vc_btn3-color-juicy-pink-gradient; @vc_btn3-color-juicy-pink-contrast);
  // sandy_brown
  .vc-btn3-make-colors-set(~'vc_btn3-color-sandy-brown'; @vc_btn3-color-sandy-brown-text; @vc_btn3-color-sandy-brown; @vc_btn3-color-sandy-brown-gradient-end; @vc_btn3-color-sandy-brown-gradient; @vc_btn3-color-sandy-brown-contrast);
  // purple
  .vc-btn3-make-colors-set(~'vc_btn3-color-purple'; @vc_btn3-color-purple-text; @vc_btn3-color-purple; @vc_btn3-color-purple-gradient-end; @vc_btn3-color-purple-gradient; @vc_btn3-color-purple-contrast);
  // black
  .vc-btn3-make-colors-set(~'vc_btn3-color-black'; @vc_btn3-color-black-text; @vc_btn3-color-black; @vc_btn3-color-black-gradient-end; @vc_btn3-color-black-gradient; @vc_btn3-color-black-contrast);
  // grey
  .vc-btn3-make-colors-set(~'vc_btn3-color-grey'; @vc_btn3-color-grey-text; @vc_btn3-color-grey; @vc_btn3-color-grey-gradient-end; @vc_btn3-color-grey-gradient; @vc_btn3-color-grey-contrast);
  // white
  .vc-btn3-make-colors-set(~'vc_btn3-color-white'; @vc_btn3-color-white-text; @vc_btn3-color-white; @vc_btn3-color-white-gradient-end; @vc_btn3-color-white-gradient; @vc_btn3-color-white-contrast);
  // custom colors
  // custom default
  .vc-btn3-make-colors-set(~'vc_btn3-color-default'; @vc_btn3-color-default-text; @vc_btn3-color-default; @vc_btn3-color-default-gradient-end; @vc_btn3-color-default-gradient; @vc_btn3-color-default-contrast);
  // custom primary
  .vc-btn3-make-colors-set(~'vc_btn3-color-primary'; @vc_btn3-color-primary-text; @vc_btn3-color-primary; @vc_btn3-color-primary-gradient-end; @vc_btn3-color-primary-gradient; @vc_btn3-color-primary-contrast);
  // custom info
  .vc-btn3-make-colors-set(~'vc_btn3-color-info'; @vc_btn3-color-info-text; @vc_btn3-color-info; @vc_btn3-color-info-gradient-end; @vc_btn3-color-info-gradient; @vc_btn3-color-info-contrast);
  // custom success
  .vc-btn3-make-colors-set(~'vc_btn3-color-success'; @vc_btn3-color-success-text; @vc_btn3-color-success; @vc_btn3-color-success-gradient-end; @vc_btn3-color-success-gradient; @vc_btn3-color-success-contrast);
  // custom warning
  .vc-btn3-make-colors-set(~'vc_btn3-color-warning'; @vc_btn3-color-warning-text; @vc_btn3-color-warning; @vc_btn3-color-warning-gradient-end; @vc_btn3-color-warning-gradient; @vc_btn3-color-warning-contrast);
  // custom danger
  .vc-btn3-make-colors-set(~'vc_btn3-color-danger'; @vc_btn3-color-danger-text; @vc_btn3-color-danger; @vc_btn3-color-danger-gradient-end; @vc_btn3-color-danger-gradient; @vc_btn3-color-danger-contrast);
  // custom inverse
  .vc-btn3-make-colors-set(~'vc_btn3-color-inverse'; @vc_btn3-color-inverse-text; @vc_btn3-color-inverse; @vc_btn3-color-inverse-gradient-end; @vc_btn3-color-inverse-gradient; @vc_btn3-color-inverse-contrast);

  // Color Fixes
  //-----------------------------------
  // black
  &.vc_btn3-color-black {
    &.vc_btn3-style-outline {
      color: @vc_btn3-color-black;
    }
  }

  // grey
  &.vc_btn3-color-grey {
    &.vc_btn3-style-outline {
      color: @vc_btn3-color-grey;
    }
  }

  // white
  &.vc_btn3-color-white {
    &.vc_btn3-style-outline {
      color: @vc_btn3-color-white;
    }
    &.vc_btn3-style-modern {
      #gradient > .vertical(@start-color: rgba(0, 0, 0, .01); @end-color: rgba(0, 0, 0, .02));
    }
  }
}

//========== Positions
.vc_btn3-container {
  &.vc_btn3-center {
    text-align: center;
  }
  &.vc_btn3-left {
    text-align: left;
  }
  &.vc_btn3-right {
    text-align: right;
  }

  // Fix for block button
  &.vc_btn3-center {
    .vc_btn3-block {
      &.vc_btn3-icon-left,
      &.vc_btn3-icon-right {
        .vc_btn3-icon {
          display: inline-block;
          position: static;
        }
        .vc_btn3-icon {
          -webkit-transform: translate(0, 0);
          -ms-transform: translate(0, 0);
          transform: translate(0, 0);
          min-width: 1em;
        }
      }
      &.vc_btn3-icon-left:not(.vc_btn3-o-empty) {
        .vc_btn3-icon {
          margin-right: .5em;
        }
      }
      &.vc_btn3-icon-right:not(.vc_btn3-o-empty) {
        .vc_btn3-icon {
          margin-left: .5em;
        }
      }
      // XS size
      &.vc_btn3-size-xs {
        .make-btn3-size(@vc_btn3-xs-font-size, @vc_btn3-xs-padding-vertical, @vc_btn3-xs-padding-horizontal);
      }
      // SM size
      &.vc_btn3-size-sm {
        .make-btn3-size(@vc_btn3-sm-font-size, @vc_btn3-sm-padding-vertical, @vc_btn3-sm-padding-horizontal);
      }
      // MD size
      &.vc_btn3-size-md {
        .make-btn3-size(@vc_btn3-md-font-size, @vc_btn3-md-padding-vertical, @vc_btn3-md-padding-horizontal);
      }
      // LG size
      &.vc_btn3-size-lg {
        .make-btn3-size(@vc_btn3-lg-font-size, @vc_btn3-lg-padding-vertical, @vc_btn3-lg-padding-horizontal);
      }
    }
  }
  .vc_btn3-block {
    &.vc_btn3-icon-left,
    &.vc_btn3-icon-right {
      text-align: inherit;
    }
  }
}

//========== Mixins
// Button sizes
.make-btn3-size(@font-size:false;  @padding-vertical:false; @padding-horizontal:false;) {
  & when not (@font-size = false) {
    font-size: @font-size;
  }
  & when not (@padding-vertical = false) {
    padding-top: @padding-vertical;
    padding-bottom: @padding-vertical;
  }
  & when not (@padding-horizontal = false) {
    padding-left: @padding-horizontal;
    padding-right: @padding-horizontal;
  }
  &.vc_btn3-style-outline-custom,
  &.vc_btn3-style-outline {
    & when not (@padding-vertical = false) {
      padding-top: @padding-vertical - @vc_btn3-border-outline + @vc_btn3-border-base;
      padding-bottom: @padding-vertical - @vc_btn3-border-outline + @vc_btn3-border-base;
    }
    & when not (@padding-horizontal = false) {
      padding-left: @padding-horizontal - @vc_btn3-border-outline + @vc_btn3-border-base;
      padding-right: @padding-horizontal - @vc_btn3-border-outline + @vc_btn3-border-base;
    }
  }
}

// Icon sizes
.make-btn3-icon-size(@padding-horizontal, @icon-size, @line-height) {
  // indents and padding
  .vc_btn3-icon {
    font-size: @icon-size;
    height: @line-height;
    line-height: @line-height;
  }
  // left icon
  &.vc_btn3-icon-left:not(.vc_btn3-o-empty) {
    padding-left: ceil(@padding-horizontal * 2 + @icon-size / 2);
    .vc_btn3-icon {
      left: @padding-horizontal;
    }
  }
  // right icon
  &.vc_btn3-icon-right:not(.vc_btn3-o-empty) {
    padding-right: ceil(@padding-horizontal * 2 + @icon-size / 2);
    .vc_btn3-icon {
      right: @padding-horizontal;
    }
  }
}

// Creating Colors
.vc-make-btn3-color(@text; @background: false; @border: false; @color-hover: false; @background-hover: false; @border-hover: false; ) {
  color: @text;
  & when not (@border = false) {
    border-color: @border;
  }
  & when not (@background = false) {
    background-color: @background;
  }

  &:hover,
  &:focus {
    & when (@color-hover = false) {
      color: darken(@text, 3%);
    }
    & when not (@color-hover = false) {
      color: @color-hover;
    }
    & when not (@border = false) and (@border-hover = false) {
      border-color: darken(@border, 6%);
    }
    & when not (@border-hover = false) {
      border-color: @border-hover;
    }
    & when not (@background = false) and (@background-hover = false) {
      background-color: darken(@background, 6%);
    }
    & when not (@background-hover = false) {
      background-color: @background-hover;
    }

  }

  &:active,
  &.active {
    & when (@color-hover = false) {
      color: darken(@text, 5%);
    }
    & when not (@color-hover = false) {
      color: @color-hover;
    }
    & when not (@border = false) and (@border-hover = false) {
      border-color: darken(@border, 8%);
    }
    & when not (@border-hover = false) {
      border-color: @border-hover;
    }
    & when not (@background = false) and (@background-hover = false) {
      background-color: darken(@background, 8%);
    }
    & when not (@background-hover = false) {
      background-color: @background-hover;
    }

  }
}

// make colors set
.vc-btn3-make-colors-set(@selector; @text; @background; @gradient-end;  @gradient; @contrast-color) {
  &.@{selector} {
    // Flat (default)
    &,
    &.vc_btn3-style-flat {
      .vc-make-btn3-color(@text: @contrast-color; @background: @background);
    }
    // Outline
    &.vc_btn3-style-outline {
      .vc-make-btn3-color(@text; @border: @background; @background: transparent; @color-hover: @contrast-color; @background-hover: @background; @border-hover: @background);
    }
    // 3d
    &.vc_btn3-style-3d {
      .vc-make-btn3-color(@text: @contrast-color; @background: @background; @background-hover: @background);

      box-shadow: 0 @vc_btn3-shadow-width-md-3d 0 darken(@background, 11%);
      &:hover,
      &:focus {
        top: @vc_btn3-shadow-width-md-3d - @vc_btn3-shadow-width-hover;
        box-shadow: 0 @vc_btn3-shadow-width-hover 0 darken(@background, 11%);
      }
      // XS size
      &.vc_btn3-size-xs {
        box-shadow: 0 @vc_btn3-shadow-width-xs-3d 0 darken(@background, 11%);
        &:hover,
        &:focus {
          top: @vc_btn3-shadow-width-xs-3d - @vc_btn3-shadow-width-hover;
          box-shadow: 0 @vc_btn3-shadow-width-hover 0 darken(@background, 11%);
        }
      }
      // SM size
      &.vc_btn3-size-sm {
        box-shadow: 0 @vc_btn3-shadow-width-sm-3d 0 darken(@background, 11%);
        &:hover,
        &:focus {
          top: @vc_btn3-shadow-width-sm-3d - @vc_btn3-shadow-width-hover;
          box-shadow: 0 @vc_btn3-shadow-width-hover 0 darken(@background, 11%);
        }
      }
      // LG size
      &.vc_btn3-size-lg {
        box-shadow: 0 @vc_btn3-shadow-width-lg-3d 0 darken(@background, 11%);
        &:hover,
        &:focus {
          top: @vc_btn3-shadow-width-lg-3d - @vc_btn3-shadow-width-hover;
          box-shadow: 0 @vc_btn3-shadow-width-hover 0 darken(@background, 11%);
        }
      }
    }
    // Modern
    &.vc_btn3-style-modern {
      .vc-make-btn3-color(@text: @contrast-color; @background: @background; @border: @background);
    }
  }
}