.button, .button--alt, .button--alt-outline, .button--alt-transparent {
  font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: 700; }

/*  Centering an element within its parent element
*
*   @param {Axis} $axis - x: centers horizontally, y: centers vertically, null: centers both axis
*
*   Example Usage:
*
*   // Center on both x and y axis
*   .container {
*     .link {
*       @include centered;
*     }
*   }
*
*   // Center on the X axis
*   .container {
*     .link {
*       @include centered(x);
*     }
*   }
*
*   // Center on the Y axis
*   .container {
*     .link {
*       @include centered(y);
*     }
*   }
*
*/
/*  Centering within an flex container
*
*   @param {Display} $display - inline: display set to inline-flex, else display set to flex
*
*
*   Example Usage:
*
*   .container {
*     @include vertical-align-flex;
*   }
*
*/
/* Chevron mixin for creating chevrons
*
*  @param {Size} $size - the size of the chevron
*  @param {Thickness} $thickness - thickness
*  @param {Color} $color - color
*  @param {Direction} $direction - direction chevron faces
*
*  Example Usage:
*
*     .chevron {
*       @include chevron(12px, 12px, #000, 'down');
*     }
*
*/
/*  Clearfix for clearing floats within a container
*
*   No Params
*
*   Example Usage:
*
*     .container {
*       @include clearfix;
*
*       .link {
*          float: left;
*       }
*     }
*
*/
/*  Set font-size and optionally leading
*
*   @param {Font Size} $fontSize - Unit-less font size
*   @param {Leading}   $leading  - (default: null) - Optional- Unit-less leading from Photoshop or Sketch
*
*   Example Usage:
*
*     p {
*       @include font-size(12,14);
*     }
*
*/
/**
* Hide Text
*/
/* Hover mixin for hover states
*
*  Note: This mixin has a dependency on what-intent plugin which detects the current input method
*        https://github.com/ten1seven/what-input
*
*  @param {Transition Duration} $transition-duration - the duration of transitions on hover states
*
*  Example Usage:
*
*     a {
*       @include hover() {
*         background-color: red
*       }
*     }
*
*/
/**
 * Returns a percentage width based on the number and total number of columns
 *
 * @param 	int 	$num 	Number of columns (e.g. 4)
 * @param 	int 	$total 	Total number of columns (e.g. 24)
 * @return 	float 			 Total width (%)
 */
/*  Unitless line-height
*
*   @param {Font Size} $fontSize - Unit-less font size
*   @param {Leading}   $leading  - Unit-less leading from Photoshop or Sketch
*
*   Example Usage:
*
*     @include line-height(16, 20);
*
*/
/*  Remove List Styles
*
*   No Params
*
*   Example Usage:
*
*     ul {
*       @include no-bullet;
*     }
*
*/
/*
  Maintain ratio mixin.
  @param {List} [$ratio] Ratio the element needs to maintain. A 16:9 ratio would look like this:
    .element { @include maintain-ratio(16 9); }
*/
/*  Media Query Mixin
*
*   @param {Media Query} $mq - Media query in single quotes: eg. 'screen and (min-width: 480px)'
*
*   Example Usage:
*
*     .selector {
*       property: value;
*
*       @include mq($bp768) {
*         property: value;
*       }
*     }
*
*/
/*  Overflow Scroll
*   Allows you to set overflow scrolling on the x and y axis
*
*   @param {axix} $axis - the axis on which to set scroll
*/
/*  Placeholder Mixin
*
*   No Params
*
*   Example Usage:
*
*     input[placeholder] {
*       @include placeholder {
*         color: red;
*       }
*     }
*
*/
/*  PX to REM Conversion
*
*   @param {Pixel} $px - Unitless pixel value to be converted into rems.
*
*   Example Usage:
*
*     margin-bottom: rem(20);
*
*/
/*  Triangle helper mixin
*
*   @param {Direction} $direction - Triangle direction, either `top`, `right`, `bottom` or `left`
*   @param {Color} $color [currentcolor] - Triangle color
*   @param {Length} $size [1em] - Triangle size
*
*/
/*  Visually hide text within an element
*   Used mostly for accessibility reasonse
*
*   No Params
*
*   Example Usage:
*
*     button {
*       span {
*         @include visuallyhidden;
*       }
*     }
*
*/
.button {
  font-size: 1rem;
  line-height: 1.1875;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  text-align: center;
  width: 100%;
  height: 3.75rem;
  border-radius: 0;
  white-space: normal;
  color: #000;
  background-color: #FFF;
  border: 0.125rem solid #C03;
  transition: background-color 0.1s ease-in-out; }
  @media screen and (min-width: 768px) {
    .button {
      padding-right: 2.5rem;
      padding-left: 2.5rem;
      width: auto; } }
  html[data-whatintent="mouse"] .button {
    transition: all 0.1s; }
    html[data-whatintent="mouse"] .button:hover {
      transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out;
      background-color: #C03;
      color: #FFF;
      text-decoration: none; }

.button--alt {
  font-size: 1rem;
  line-height: 1.1875;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  text-align: center;
  width: 100%;
  height: 3.75rem;
  border-radius: 0;
  white-space: normal;
  color: #000;
  background-color: #FFF;
  border: 0.125rem solid #C03;
  transition: background-color 0.1s ease-in-out;
  transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out;
  background-color: #000;
  color: #FFF;
  border: 0.125rem solid #FFF; }
  @media screen and (min-width: 768px) {
    .button--alt {
      padding-right: 2.5rem;
      padding-left: 2.5rem;
      width: auto; } }
  html[data-whatintent="mouse"] .button--alt {
    transition: all 0.1s; }
    html[data-whatintent="mouse"] .button--alt:hover {
      transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out;
      background-color: #C03;
      color: #FFF;
      text-decoration: none; }
  html[data-whatintent="mouse"] .button--alt {
    transition: all 0.1s; }
    html[data-whatintent="mouse"] .button--alt:hover {
      transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out;
      background-color: #FFF;
      color: #000;
      text-decoration: none; }

.button--alt-outline {
  font-size: 1rem;
  line-height: 1.1875;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  text-align: center;
  width: 100%;
  height: 3.75rem;
  border-radius: 0;
  white-space: normal;
  color: #000;
  background-color: #FFF;
  border: 0.125rem solid #C03;
  transition: background-color 0.1s ease-in-out;
  transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out;
  background-color: #000;
  color: #FFF;
  border: 0.125rem solid #FFF; }
  @media screen and (min-width: 768px) {
    .button--alt-outline {
      padding-right: 2.5rem;
      padding-left: 2.5rem;
      width: auto; } }
  html[data-whatintent="mouse"] .button--alt-outline {
    transition: all 0.1s; }
    html[data-whatintent="mouse"] .button--alt-outline:hover {
      transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out;
      background-color: #C03;
      color: #FFF;
      text-decoration: none; }
  html[data-whatintent="mouse"] .button--alt-outline {
    transition: all 0.1s; }
    html[data-whatintent="mouse"] .button--alt-outline:hover {
      transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out;
      background-color: #FFF;
      color: #000;
      text-decoration: none; }

.button--alt-transparent {
  font-size: 1rem;
  line-height: 1.1875;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  text-align: center;
  width: 100%;
  height: 3.75rem;
  border-radius: 0;
  white-space: normal;
  color: #000;
  background-color: #FFF;
  border: 0.125rem solid #C03;
  transition: background-color 0.1s ease-in-out;
  transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out;
  background-color: transparent;
  color: #FFF;
  border: 0.125rem solid #FFF; }
  @media screen and (min-width: 768px) {
    .button--alt-transparent {
      padding-right: 2.5rem;
      padding-left: 2.5rem;
      width: auto; } }
  html[data-whatintent="mouse"] .button--alt-transparent {
    transition: all 0.1s; }
    html[data-whatintent="mouse"] .button--alt-transparent:hover {
      transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out;
      background-color: #C03;
      color: #FFF;
      text-decoration: none; }
  html[data-whatintent="mouse"] .button--alt-transparent {
    transition: all 0.1s; }
    html[data-whatintent="mouse"] .button--alt-transparent:hover {
      transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out;
      background-color: #FFF;
      color: #000;
      text-decoration: none; }

.button--arrow svg {
  width: 0.875rem;
  height: 0.625rem; }

.button--arrow:hover {
  color: #C03; }
  .button--arrow:hover svg {
    margin-left: 0.9375rem;
    width: 1.25rem; }
