.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  border: 1px solid transparent;
  border-radius: var(--border-radius-md);
  transition: var(--transition-base);

  svg {
    margin-right: var(--spacing-sm);
  }

  &:focus {
    outline: none;
  }

  &:disabled {
    opacity: 0.65;
    cursor: not-allowed;
  }
}

.btn-block {
  display: block;
  width: 100%;
}

.btn-primary {
  background-color: var(--primary-color);
  color: var(--white);

  &:hover,
  &:focus {
    background-color: var(--primary-dark);
    color: var(--white);
  }
}

.btn-secondary {
  background-color: var(--dark-gray-lighter);
  color: var(--white);
  border: 1px solid var(--dark-gray-lightest);

  &:hover,
  &:focus {
    background-color: var(--dark-gray-lightest);
    color: var(--white);
  }
}

.btn-steam {
  background-color: var(--steam-color);
  color: var(--white);
  display: inline-flex;
  align-items: center;
  justify-content: center;

  svg {
    margin-right: var(--spacing-sm);
    fill: var(--white);
  }

  &:hover,
  &:focus {
    filter: brightness(110%);
    background-color: var(--steam-color);
  }
}

.btn-success {
  background-color: var(--success);
  color: var(--white);

  &:hover,
  &:focus {
    filter: brightness(90%);
    background-color: var(--success);
    color: var(--white);
  }
}

.btn-danger {
  background-color: var(--danger);
  color: var(--white);

  &:hover,
  &:focus {
    filter: brightness(90%);
    background-color: var(--danger);
    color: var(--white);
  }
}

.btn-sm {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
}

.btn-lg {
  padding: 1rem 1.75rem;
  font-size: 1.125rem;
}