/* ==========================================================================
   BUTTONS
   ========================================================================== */

/*
   Default button
   ========================================================================== */

.btn {
  /* default button */
  display: inline-block;
  margin-bottom: 0.25em;
  padding: 0.5em 1em;
  color: #fff !important;
  font-family: $sans-serif;
  font-size: $type-size-6;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  background-color: $primary-color;
  border: 0 !important;
  border-radius: $border-radius;
  cursor: pointer;

  &:hover {
    background-color: mix(white, #000, 20%);
  }

  .icon {
    margin-right: 0.5em;
  }

  .icon + .hidden {
    margin-left: -0.5em; /* override for hidden text*/
  }

  /* fills width of parent container */

  &--block {
    display: block;
    width: 100%;

    + .btn--block {
      margin-top: 0.25em;
    }
  }

  /* for dark backgrounds */

  &--inverse {
    color: $gray !important;
    border: 1px solid $light-gray !important; /* override*/
    background-color: #fff;

    &:hover {
      color: #fff !important;
      border-color: $gray;
    }
  }

  /* light outline */

  &--light-outline {
    border: 1px solid #fff !important; /* override*/
    background-color: transparent;
  }

  /* information */

  &--info {
    background-color: $info-color;

    &:hover {
      background-color: mix(#000, $info-color, 20%);
    }
  }

  /* warning */

  &--warning {
    background-color: $warning-color;

    &:hover {
      background-color: mix(#000, $warning-color, 20%);
    }
  }

  /* success */

  &--success {
    background-color: $success-color;

    &:hover {
      background-color: mix(#000, $success-color, 20%);
    }
  }

  /* danger */

  &--danger {
    background-color: $danger-color;

    &:hover {
      background-color: mix(#000, $danger-color, 20%);
    }
  }

  /* disabled */

  &--disabled {
    pointer-events: none;
    cursor: not-allowed;
    filter: alpha(opacity=65);
    box-shadow: none;
    opacity: 0.65;
  }

  /* social buttons */

  $social:
  (facebook, $facebook-color),
  (twitter, $twitter-color),
  (google-plus, $google-plus-color),
  (linkedin, $linkedin-color);

  @each $socialnetwork, $color in $social {
    &--#{$socialnetwork} {
      background-color: $color;

      &:hover {
        background-color: mix(#000, $color, 20%);
      }
    }
  }

  /* extra large button */

  &--x-large {
    font-size: $type-size-4;
  }

  /* large button */

  &--large {
    font-size: $type-size-5;
  }

  /* small button */

  &--small {
    font-size: $type-size-7;
  }
}