/* Base button styles */
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
  appearance: none;
  transition: background-color 0.2s, box-shadow 0.2s, color 0.2s;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  display: inline-block;
  font-family: "Source Sans Pro", Helvetica, sans-serif;
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: 0.075em;
  height: 3rem;
  line-height: 3rem;
  padding: 0 2rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  background-color: transparent;
  box-shadow: inset 0 0 0 2px #212931;
  color: #212931 !important;
}

/* Icon styles */
input[type="submit"].icon:before,
input[type="reset"].icon:before,
input[type="button"].icon:before,
button.icon:before,
.button.icon:before {
  margin-right: 0.5rem;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}

/* Solo icon button */
input[type="submit"].icon.solo,
input[type="reset"].icon.solo,
input[type="button"].icon.solo,
button.icon.solo,
.button.icon.solo {
  position: relative;
  width: 4rem;
  height: 4rem;
  line-height: 4rem;
  border-radius: 4rem;
  text-indent: 4rem;
  overflow: hidden;
  padding: 0;
  white-space: nowrap;
}

input[type="submit"].icon.solo:before,
input[type="reset"].icon.solo:before,
input[type="button"].icon.solo:before,
button.icon.solo:before,
.button.icon.solo:before {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: inherit;
  height: inherit;
  line-height: inherit;
  font-size: 1.25rem;
  margin-right: 0;
  text-align: center;
  text-indent: 0;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
}

/* Fit, small, large modifiers */
input[type="submit"].fit,
input[type="reset"].fit,
input[type="button"].fit,
button.fit,
.button.fit {
  width: 100%;
}

input[type="submit"].small,
input[type="reset"].small,
input[type="button"].small,
button.small,
.button.small {
  font-size: 0.7rem;
  height: 2.5rem;
  line-height: 2.5rem;
  padding: 0 1.5rem;
}

input[type="submit"].large,
input[type="reset"].large,
input[type="button"].large,
button.large,
.button.large {
  font-size: 0.9rem;
  height: 3.5rem;
  line-height: 3.5rem;
  padding: 0 2.75rem;
}

/* Disabled state */
input[type="submit"].disabled, input[type="submit"]:disabled,
input[type="reset"].disabled, input[type="reset"]:disabled,
input[type="button"].disabled, input[type="button"]:disabled,
button.disabled, button:disabled,
.button.disabled, .button:disabled {
  pointer-events: none;
  opacity: 0.25;
}

/* Hover state */
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
button:hover,
.button:hover {
  box-shadow: inset 0 0 0 2px #18bfef;
  color: #18bfef !important;
}

/* Primary button */
input[type="submit"].primary,
input[type="reset"].primary,
input[type="button"].primary,
button.primary,
.button.primary {
  background-color: #212931;
  box-shadow: none;
  color: #fff !important;
}

input[type="submit"].primary:hover,
input[type="reset"].primary:hover,
input[type="button"].primary:hover,
button.primary:hover,
.button.primary:hover {
  background-color: #18bfef;
}

/* Responsive adjustments */
@media screen and (max-width: 980px) {
  input[type="submit"],
  input[type="reset"],
  input[type="button"],
  button,
  .button {
    font-size: 0.9rem;
    height: 3.25rem;
    line-height: 3.25rem;
  }
  input[type="submit"].large,
  input[type="reset"].large,
  input[type="button"].large,
  button.large,
  .button.large {
    font-size: 1rem;
    height: 3.75rem;
    line-height: 3.75rem;
  }
}

@media screen and (max-width: 480px) {
  input[type="submit"].icon.solo:before,
  input[type="reset"].icon.solo:before,
  input[type="button"].icon.solo:before,
  button.icon.solo:before,
  .button.icon.solo:before {
    font-size: 2rem;
  }
}