.button {
  border-radius: var(--Corner-radius-rounded);
  border-width: 2px;
  border-style: solid;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--Space-x05);

  &:disabled,
  &[data-disabled] {
    cursor: unset;
  }

  &[data-pending] {
    cursor: progress;
  }
}

.size-large {
  padding: var(--Space-x2) var(--Space-x3);
}

.size-medium {
  padding: var(--Space-x15) var(--Space-x2);
}

.size-small {
  padding: 10px var(--Space-x2);
}

.variant-primary {
  background-color: var(--Component-Button-Brand-Primary-Fill-Default);
  border-color: var(--Component-Button-Brand-Primary-Border-Default);
  color: var(--Component-Button-Brand-Primary-On-fill-Default);
}

.variant-primary:hover {
  background-color: var(--Component-Button-Brand-Primary-Fill-Hover);
  border-color: var(--Component-Button-Brand-Primary-Border-Hover);
  color: var(--Component-Button-Brand-Primary-On-fill-Hover);
}

.variant-primary:disabled {
  background-color: var(--Component-Button-Brand-Primary-Fill-Disabled);
  border-color: var(--Component-Button-Brand-Primary-Border-Disabled);
  color: var(--Component-Button-Brand-Primary-On-fill-Disabled);
}

.variant-primary.color-inverted {
  background-color: var(--Component-Button-Inverted-Fill-Default);
  border-color: var(--Component-Button-Inverted-Border-Default);
  color: var(--Component-Button-Inverted-On-fill-Default);
}

.variant-primary.color-inverted:hover {
  background-color: var(--Component-Button-Inverted-Fill-Hover);
  border-color: var(--Component-Button-Inverted-Border-Hover);
  color: var(--Component-Button-Inverted-On-fill-Hover);
}

.variant-primary.color-inverted:disabled {
  background-color: var(--Component-Button-Inverted-Fill-Disabled);
  border-color: var(--Component-Button-Inverted-Border-Disabled);
  color: var(--Component-Button-Inverted-On-fill-Disabled);
}

.variant-secondary {
  background-color: var(--Component-Button-Brand-Secondary-Fill-Default);
  border-color: var(--Component-Button-Brand-Secondary-Border-Default);
  color: var(--Component-Button-Brand-Secondary-On-fill-Default);
}

.variant-secondary:hover {
  background-color: var(--Component-Button-Brand-Secondary-Fill-Hover);
  border-color: var(--Component-Button-Brand-Secondary-Border-Hover);
  color: var(--Component-Button-Brand-Secondary-On-fill-Hover);
}

.variant-secondary:disabled {
  background-color: var(--Component-Button-Brand-Secondary-Fill-Disabled);
  border-color: var(--Component-Button-Brand-Secondary-Border-Disabled);
  color: var(--Component-Button-Brand-Secondary-On-fill-Disabled);
}

.variant-secondary.color-inverted {
  background-color: var(--Component-Button-Brand-Secondary-Fill-Default);
  border-color: var(--Component-Button-Brand-Secondary-Border-Inverted);
  color: var(--Component-Button-Brand-Secondary-On-fill-Inverted);
}

.variant-secondary.color-inverted:hover {
  background-color: var(--Component-Button-Brand-Secondary-Fill-Hover);
  border-color: var(--Component-Button-Brand-Secondary-Border-Hover-inverted);
  color: var(--Component-Button-Brand-Secondary-On-fill-Hover-inverted);
}

.variant-secondary.color-inverted:disabled {
  background-color: var(--Component-Button-Brand-Secondary-Fill-Disabled);
  border-color: var(--Component-Button-Brand-Secondary-Border-Disabled);
  color: var(--Component-Button-Brand-Secondary-On-fill-Disabled);
}

.variant-tertiary {
  background-color: var(--Component-Button-Brand-Tertiary-Fill-Default);
  border-color: var(--Component-Button-Brand-Tertiary-Border-Default);
  color: var(--Component-Button-Brand-Tertiary-On-fill-Default);
}

.variant-tertiary:hover {
  background-color: var(--Component-Button-Brand-Tertiary-Fill-Hover);
  border-color: var(--Component-Button-Brand-Tertiary-Border-Hover);
  color: var(--Component-Button-Brand-Tertiary-On-fill-Hover);
}

.variant-tertiary:disabled {
  background-color: var(--Component-Button-Brand-Tertiary-Fill-Disabled);
  border-color: var(--Component-Button-Brand-Tertiary-Border-Disabled);
  color: var(--Component-Button-Brand-Tertiary-On-fill-Disabled);
}

.variant-inverted {
  background-color: var(--Component-Button-Inverted-Default);
  border-color: transparent;
  color: var(--Component-Button-Inverted-On-fill-Default);
}

.variant-inverted:hover {
  background-color: var(--Component-Button-Inverted-Hover);
  border-color: transparent;
  color: var(--Component-Button-Inverted-On-fill-Hover);
}

.variant-inverted:disabled {
  background-color: var(--Component-Button-Inverted-Disabled);
  border-color: transparent;
  color: var(--Component-Button-Inverted-On-fill-Disabled);
}

.variant-text {
  background-color: transparent;
  border-color: transparent;
  color: var(--Component-Button-Brand-Secondary-On-fill-Default);
  padding-left: 0;
  padding-right: 0;
}

.variant-text:hover {
  color: var(--Component-Button-Brand-Secondary-On-fill-Hover);
  text-decoration: underline;
}

.variant-text:disabled {
  color: var(--Component-Button-Brand-Secondary-On-fill-Disabled);
  text-decoration: none;
}

.variant-text.no-wrapping {
  padding: var(--Space-x025) 0;
  border-width: 0;
}

.variant-text.color-inverted {
  color: var(--Component-Button-Brand-Secondary-On-fill-Inverted);
}

.variant-text.color-inverted:hover {
  color: var(--Component-Button-Brand-Secondary-On-fill-Hover-inverted);
}

.variant-text.color-inverted:disabled {
  color: var(--Component-Button-Brand-Secondary-On-fill-Disabled);
}

.spinnerWrapper {
  display: flex;
  align-items: center;
  margin-left: var(--Space-x1);
}
