.button {
  border: 0;
  cursor: pointer;
  outline: 0;
  margin: 0;
  display: inline-block;
  width: fit-content;
  min-width: 7rem;
  padding: calc(var(--spacer) / 3) var(--spacer);
  font-size: var(--font-size-base);
  font-family: var(--font-family-base);
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  border-radius: var(--border-radius);
  transition: 0.2s ease-out;
  color: var(--brand-white);
  background: var(--brand-grey-light);
  box-shadow: 0 9px 18px 0 rgba(0, 0, 0, 0.1);
  user-select: none;
  text-align: center;
}

.button:first-child {
  margin-left: 0;
}

.button:last-child {
  margin-right: 0;
}

.button:hover,
.button:focus {
  color: var(--brand-white);
  background: var(--brand-grey-light);
  text-decoration: none;
  transform: translate3d(0, -0.05rem, 0);
  box-shadow: 0 12px 30px 0 rgba(0, 0, 0, 0.1);
}

.button:active {
  background: var(--brand-grey-light);
  transition: none;
  transform: none;
  box-shadow: 0 5px 18px 0 rgba(0, 0, 0, 0.1);
}

.button:disabled {
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.25;
}

.primary,
.primary:hover,
.primary:focus,
.primary:active {
  background: var(--brand-gradient);
}

.ghost,
.ghost:hover,
.ghost:focus,
.ghost:active {
  color: var(--brand-grey);
  background: var(--brand-white);
}

.text,
.text:hover,
.text:focus,
.text:active {
  border: 0;
  border-radius: 0;
  outline: 0;
  padding: 0;
  display: inline-block;
  background: 0;
  color: var(--brand-pink);
  box-shadow: none;
  cursor: pointer;
  min-width: auto;
}

/* Size Modifiers */
.small {
  font-size: var(--font-size-small);
  padding: calc(var(--spacer) / 4) calc(var(--spacer) / 2);
}

.text.small {
  padding: 0;
}
