.btn {
  padding: var(--padding-sm) var(--padding-xl) !important;
  border-radius: var(--border-radius-sm);
  text-decoration: none;
  border: 1px solid transparent;
  display: inline-block;
  cursor: pointer;

  transition: all 0.15s ease-in-out;
  height: initial !important;
}

/* Button themes */
.btn-primary {
  background-color: var(--btn-primary) !important;
  border-color: var(--btn-primary) !important;
  color: var(--white) !important;

  /* State colors */
  --bordered-btn-color: var(
    --btn-primary
  ); /* Sets the text color when this class is used in combination with .btn-bordered */
  --hovered-btn-color: var(--btn-primary-hover);
  --active-btn-color: var(--btn-primary-active);
  --disabled-btn-color: var(--btn-primary-disabled);
}

.btn-secondary {
  background-color: var(--btn-secondary) !important;
  border-color: var(--btn-secondary) !important;
  color: var(--white) !important;

  /* State colors */
  --bordered-btn-color: var(
    --btn-secondary
  ); /* Sets the text color when this class is used in combination with .btn-bordered */
  --hovered-btn-color: var(--btn-secondary-hover);
  --active-btn-color: var(--btn-secondary-active);
  --disabled-btn-color: var(--btn-secondary-disabled);
}

.btn-error {
  background-color: var(--btn-error) !important;
  border-color: var(--btn-error) !important;
  color: var(--white) !important;

  /* State colors */
  --bordered-btn-color: var(
    --btn-error
  ); /* Sets the text color when this class is used in combination with .btn-bordered */
  --hovered-btn-color: var(--btn-error-hover);
  --active-btn-color: var(--btn-error-active);
  --disabled-btn-color: var(--btn-error-disabled);
}

.btn-themed-link {
  color: var(--bordered-btn-color) !important;
  background-color: transparent !important;
  border: none !important;
}

.btn-link {
  color: var(--default-link-color) !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
}

.btn-link:hover {
  text-decoration: underline;
}

.btn-actions {
  cursor: pointer;
  color: var(--darker-border-color);
}

/* Button sizes */
.btn-sm {
  font-size: var(--font-size-xs) !important;
  font-weight: var(--font-weight-bold) !important;
  padding: var(--padding-xs) !important;
  border-radius: var(--border-radius-sm) !important;
}

.btn-md {
  font-size: var(--font-size-xs) !important;
  font-weight: var(--font-weight-bold) !important;
  padding: var(--padding-sm) var(--padding-md) !important;
  border-radius: var(--border-radius-sm) !important;
}

.btn-lg {
  font-size: 24px;
  padding: var(--padding-md) var(--padding-xl);
}

.btn-mega {
  font-size: var(--font-size-lg) !important;
  font-weight: 400 !important;
  padding: var(--padding-xl) !important;
}

/* Button states */
.btn-bordered {
  background-color: var(--white) !important;
  color: var(--bordered-btn-color) !important;
}

.btn:hover {
  background-color: var(--hovered-btn-color);
}

.btn:disabled:not(.btn-themed-link):not(.btn-link) {
  border-color: var(--darker-border-color) !important;
  color: var(--darker-border-color) !important;
  background-color: var(--disabled-btn-color) !important;
  cursor: not-allowed;
}

.btn:disabled.btn-themed-link,
.btn:disabled.btn-link {
  color: var(--disabled-btn-color) !important;
  cursor: not-allowed;
}

.btn:focus {
  background-color: var(--active-btn-color);
}

/* Misc */
.dropdown button,
.btn-dropdown {
  background-color: var(--white) !important;
  border: 1px solid #8b8da0 !important;
  border-radius: var(--border-radius-xs) !important;
  padding: var(--padding-xs) !important;
  font-size: var(--font-size-xs) !important;
  font-weight: var(--font-weight-bold) !important;
  gap: var(--margin-xs) !important;
}

.btn-dropdown-icon {
  height: var(--font-size-md);
  display: flex;
  align-items: center;
}
