button {
  font-size: 100%;
}

@mixin generate-button-colors($textColor, $backgroundColor) {
  background-color: $backgroundColor;
  color: $textColor;
  fill: $textColor;
  border: 1px solid $backgroundColor;
  &:hover {
    background-color: lighten($backgroundColor, 8%);
    color: $textColor;
  }
  &:active {
    background-color: darken($backgroundColor, 8%);
  }
  &:focus {
    background-color: lighten($backgroundColor, 4%);
    box-shadow: $bs-light;
    color: $textColor;
  }
}

// Button Specific Variables
$button-border-radius: 2px;

.button  {
  text-decoration: none;
  font-size: 0.85rem;
  line-height: 1.4em;
  padding: $-xs*1.3 $-m;
  margin-top: $-xs;
  margin-bottom: $-xs;
  display: inline-block;
  font-weight: 400;
  outline: 0;
  border-radius: $button-border-radius;
  cursor: pointer;
  transition: background-color ease-in-out 120ms, box-shadow ease-in-out 120ms;
  box-shadow: none;
  background-color: $primary;
  color: #FFF;
  fill: #FFF;
  text-transform: uppercase;
  border: 1px solid $primary;
  vertical-align: top;
  &:hover, &:focus {
    text-decoration: none;
  }
  &:active {
    background-color: darken($primary, 8%);
  }
}
.button.primary {
  @include generate-button-colors(#FFFFFF, $primary);
}
.button.outline {
  background-color: transparent;
  color: #888;
  fill: #888;
  border: 1px solid #DDD;
  &:hover, &:focus, &:active {
    box-shadow: none;
    background-color: #EEE;
  }
}

.button + .button {
  margin-left: $-s;
}

.button.small {
  font-size: 0.75rem;
  padding: $-xs*1.2 $-s;
}

.text-button {
  cursor: pointer;
  background-color: transparent;
  padding: 0;
  margin: 0;
  border: none;
  user-select: none;
  font-size: 0.75rem;
  line-height: 1.4em;
  &:focus, &:active {
    outline: 0;
  }
  &:hover {
    text-decoration: none;
  }
}

.button.block {
  width: 100%;
  text-align: left;
  display: block;
}

.button.icon {
  .svg-icon {
    margin-right: 0;
  }
}

.button.svg {
  svg {
    display: inline-block;
    position: absolute;
    left: $-m;
    top: $-s - 2px;
    width: 24px;
    height: 24px;
  }
  padding: $-s $-m ($-s - 2px) ($-m*2 + 24px);
}

.button[disabled] {
  background-color: #BBB;
  cursor: default;
  &:hover {
    background-color: #BBB;
    cursor: default;
    box-shadow: none;
  }
}