@mixin btn-styles($btn-color, $btn-states-color) {

@include diagonal-gradient($btn-color, $btn-states-color);
  background-color: $btn-color;
  transition: all 0.15s ease;
  box-shadow: none;
  &.animation-on-hover:hover{
    background-position: bottom left;
    transition:0.3s ease-in-out;
  }

  &:hover,
  &:focus,
  &:active,
  &.active,
  &:active:focus,
  &:active:hover,
  &.active:focus,
  &.active:hover
   {
      background-color: $btn-states-color !important;
      background-image: linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
      background-image: -webkit-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
      background-image: -o-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
      background-image: -moz-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
      color: $white;
      box-shadow: none;
  }

  &:active{
    box-shadow: none !important;
    transform: translateY(1px) !important;
    transition: all .15s ease;
  }

  &:not([data-action]):hover{

      box-shadow:  2px 2px 6px rgba(0,0,0,0.4);
      transform: translateY(-1px);
      -webkit-transform: translateY(-1px);
  }

  &.disabled,
  &:disabled,
  &[disabled],
  fieldset[disabled] & {
      &,
      &:hover,
      &:focus,
      &.focus,
      &:active,
      &.active {
          background-color: $btn-color;
          border-color: $btn-color;
      }
  }

  // btn-neutral style
  @if $btn-color == $white{
      color: $primary;

      &.btn-danger{
          color: $danger;

          &:hover,
          &:focus,
          &:active,
          &:active:focus{
              color: $danger-states;
          }
      }

      &.btn-info{
          color: $info;

          &:hover,
          &:focus,
          &:active,
          &:active:focus{
              color: $info-states;
          }
      }

      &.btn-warning{
          color: $warning;

          &:hover,
          &:focus,
          &:active,
          &:active:focus{
              color: $warning-states;
          }
      }

      &.btn-success{
          color: $success;

          &:hover,
          &:focus,
          &:active,
          &:active:focus{
              color: $success-states;
          }
      }

      &.btn-default{
          color: $default;

          &:hover,
          &:focus,
          &:active,
          &:active:focus{
              color: $default-states;
          }
      }

      &.active,
      &:active,
      &:active:focus,
      &:active:hover,
      &.active:focus,
      &.active:hover,
      .show > &.dropdown-toggle,
      .show > &.dropdown-toggle:focus,
      .show > &.dropdown-toggle:hover {
          background-color: $white;
          color: $primary-states;
          box-shadow: none;
      }

      &:hover,
      &:focus{
          color: $primary-states;

          &:not(.nav-link){
              box-shadow: none;
          }

      }

  } @else {
      color: $white;
  }

  &.btn-simple{
      color: $btn-color;
      border-color: $btn-color;
      background: $transparent-bg;

      &:hover,
      &:focus,
      &:active,
      &:not(:disabled):not(.disabled):active{
          color: $btn-color;
          border-color: $btn-color;
          background-color: $transparent-bg !important;
          background-image: none !important;
          box-shadow: none;
      }

      &.active{
        border-color: $btn-color !important;
        &:hover,
        &:focus,
        &:active,
        &:not(:disabled):not(.disabled):active{
            color: $white;
            border-color: $btn-color;
            background-image: linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
            background-image: -webkit-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
            background-image: -o-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
            background-image: -moz-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
            background-color: $btn-states-color !important;
            box-shadow: none;
        }
      }
      a{
        color:  $btn-color!important;
      }
  }

  &.btn-link{
      color: $btn-color;
      &:hover,
      &:focus,
      &:active{
          background-color: $transparent-bg !important;
          background-image: none !important;
          color: $white !important;
          text-decoration: none;
          box-shadow: none;
      }
  }

}

@mixin button-variant($background, $border, $hover-background: darken($background, 0%), $hover-border: darken($border, 0%), $active-background: darken($background, 10%), $active-border: darken($border, 0%)) {

color: color-yiq($background);
@include gradient-bg($background);
border-color: $border;
@include box-shadow($btn-box-shadow);

@include hover {
    color: color-yiq($hover-background);
    @include gradient-bg($hover-background);
    border-color: $hover-border;
}

&:focus,
&.focus {
    // Avoid using mixin so we can pass custom focus shadow properly
    @if $enable-shadows {
        box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);
    }
    @else {
        box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);
    }
} // Disabled comes first so active can properly restyle
&.disabled,
&:disabled {
    color: color-yiq($background);
    background-color: $background;
    border-color: $border;
}

&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active,
.show>&.dropdown-toggle {
    color: color-yiq($active-background);
    background-color: $active-background;
    @if $enable-gradients {
        background-image: none; // Remove the gradient for the pressed/active state
    }
    border-color: $active-border;

    &:focus {
        // Avoid using mixin so we can pass custom focus shadow properly
        @if $enable-shadows {
            box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);
        }
        @else {
            box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);
        }
    }
}

}

@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {

color: $color;
background-color: transparent;
background-image: none;
border-color: $color;

&:hover {
    color: $color-hover;
    background-color: $active-background;
    border-color: $active-border;
}

&:focus,
&.focus {
    box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
}

&.disabled,
&:disabled {
    color: $color;
    background-color: transparent;
}

&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active,
.show>&.dropdown-toggle {
    color: color-yiq($active-background);
    background-color: $active-background;
    border-color: $active-border;

    &:focus {
        // Avoid using mixin so we can pass custom focus shadow properly
        @if $enable-shadows and $btn-active-box-shadow !=none {
            box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);
        }
        @else {
            box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
        }
    }
}

}

// Button sizes @mixin btn-size($padding-vertical, $padding-horizontal, $font-size, $border){

font-size: $font-size;
border-radius: $border;
padding: $padding-vertical $padding-horizontal;

&.btn-simple{
    padding: $padding-vertical - 1 $padding-horizontal - 1;
}

}

// for social buttons @mixin social-buttons-color ($color, $state-color){

@include diagonal-gradient($color, darken($color,20%));
  //background-color: $color;
  color: $white;
  background-size: 210% 210%;
  background-position: top right;
  background-repeat: space;

  &:focus,
  &:active,
  &:hover{
      background-color: $state-color;
      background-image: linear-gradient(to bottom left, $color, darken($color,20%), $color) !important;
      background-image: -webkit-linear-gradient(to bottom left, $color, darken($color,20%), $color) !important;
      background-image: -o-linear-gradient(to bottom left, $color, darken($color,20%), $color) !important;
      background-image: -moz-linear-gradient(to bottom left, $color, darken($color,20%), $color) !important;
      color: $white;
  }

  &.btn-simple{
      color: $state-color;
      background-color: $transparent-bg;
      background-image: none !important;
      box-shadow: none;
      border-color: $state-color;

      &:hover,
      &:focus,
      &:active{
          color: $state-color;
          border-color: $state-color;
      }
  }

  &.btn-neutral{
      color: $color!important;
      background-color: $white;

      &:hover,
      &:focus,
      &:active{
          color: $state-color;
      }
  }

}