.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;
}

.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;
}
