:root {
  --button--bg-color: var(--button--default-bg-color);
  --button--color: var(--button--default-color);
  --button--border-color: var(--button--default-border-color);
  --button--hover-bg-color: var(--button--default-hover-bg-color);
  --button--hover-color: var(--button--default-hover-color);
  --button-link-hover-color: var(--button--default-link-hover-color);
  --button--hover-border: var(--button--default-hover-border);
  --button-icon-size: 18px;
  --button-underline-color: var(--anchor-color);
  --button-underline-thickness: unset;
  --button-underline-offset: unset;
  --button-padding-x: 18px;
  --button-padding-y: 14px;
  --button-padding: var(--button-padding-y) var(--button-padding-x);
}
button.button {
  border: 0;
}

button.button,
a.button,
span.button {
  border-radius: var(--button-border-radius);
  transition: var(--transition);
  text-transform: none;
  padding: var(--button-padding);
  font-size: var(--button-font-size);
  color: var(--button--color);
}

button.button,
.button {
  display: inline-block;
  background-color: var(--button--bg-color);
  border: var(--button--default-hover-thickness) solid var(--button--border-color);
  font-size: var(--button--font-size);
  font-family: var(--button-font-family);
  line-height: 1;
  cursor: pointer;
  text-decoration: none;
}

a.button:hover, a.button:focus-visible,
button.button:hover, button.button:focus-visible,
a:hover span.button,a:focus-visible span.button {
  background-color: var(--button--hover-bg-color);
  color: var(--button--hover-color);
  border: var(--button--hover-border);
}

.button--primary {
  --button--bg-color: var(--button--primary-bg-color);
  --button--color: var(--button--primary-color);
  --button--hover-bg-color: var(--button--primary-hover-bg-color);
  --button--hover-color: var(--button--primary-hover-color);
  --button--hover-border: var(--button--primary-hover-border);
  --button-link-hover-color: var(--button--primary-bg-color);
}

.button_link {
  background-color: transparent;
  --button--color: var(--text-color);
  --button--hover-bg-color: transparent;
  --button--hover-color: var(--button--bg-color);
  .button-text {
    text-decoration: underline;
    text-decoration-color: var(--button-underline-color);
    text-decoration-thickness: var(--button-underline-thickness);
    text-underline-offset: var(--button-underline-offset);
  }
  &:hover, &:focus-visible {
    .button-text {
      text-decoration: none;
    }
  }
}

.button_icon {
  display: inline-flex;
  align-items: center;
  column-gap: 12px;
}

.button [class*="icon-"] {
  font-size: var(--button-icon-size);
}

/**
 * SIZE
 */
.button_small {
  font-size: var(--font-size-small);
}
