/*
|--------------------------------------------------------------------------
| Global Buttons
|--------------------------------------------------------------------------
*/
.cf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--cf-size-btn-min-width);
  padding: var(--cf-space-btn-y) var(--cf-space-btn-x);
  border-radius: var(--cf-radius-full);
  font-weight: 600;
  cursor: pointer;
  transition: all var(--cf-transition-base);
  border: var(--cf-border-width-base) solid transparent;
}
.cf-btn:hover {
  transform: translateY(var(--cf-shift-up-sm));
}
.cf-btn-primary {
  background: var(--cf-color-primary);
  color: var(--cf-color-on-primary);
}
.cf-btn-primary:hover {
  background: var(--cf-color-primary-hover);
}
.cf-btn-secondary {
  border-color: var(--cf-color-primary);
  color: var(--cf-color-primary);
  background: var(--cf-color-background);
}
.cf-btn-secondary:hover {
  background: var(--cf-color-primary);
  color: var(--cf-color-on-primary);
}
.cf-btn-disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}
.cf-btn-disabled:hover {
  transform: none;
  box-shadow: none;
}
/*
|--------------------------------------------------------------------------
| Button Sizes
|--------------------------------------------------------------------------
*/
.cf-btn-sm {
  min-width: auto;
  min-height: var(--cf-size-btn-sm-min-height);
  padding: 0.55rem 1rem;
  font-size: var(--cf-font-size-sm);
}
.cf-btn-lg {
  min-height: var(--cf-size-btn-lg-min-height);
  padding: 1rem 2rem;
  font-size: var(--cf-font-size-lg);
}
/*
|--------------------------------------------------------------------------
| Block Button
|--------------------------------------------------------------------------
*/
.cf-btn-block {
  width: 100%;
}
/*
|--------------------------------------------------------------------------
| Loading
|--------------------------------------------------------------------------
*/
.cf-btn-loading {
  pointer-events: none;
  opacity: 0.7;
}
.cf-btn-loading::after {
  content: "";
  width: var(--cf-size-icon);
  height: var(--cf-size-icon);
  margin-left: 0.75rem;
  border: var(--cf-border-width-base) solid var(--cf-color-on-primary-muted);
  border-top-color: var(--cf-color-on-primary);
  border-radius: 50%;
  animation: cfSpin 0.8s linear infinite;
}
@keyframes cfSpin {
  to {
    transform: rotate(360deg);
  }
}
/*
|--------------------------------------------------------------------------
| WooCommerce Add to Cart
|--------------------------------------------------------------------------
*/
.single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 11.25rem;
  padding: var(--cf-space-sm) var(--cf-space-lg);
  border: 2px solid var(--cf-color-primary);
  border-radius: var(--cf-radius-full);
  background: var(--cf-color-primary);
  color: var(--cf-color-background);
  font-family: var(--cf-font-family-base, sans-serif);
  font-size: var(--cf-font-size-base);
  font-weight: var(--cf-font-semibold);
  line-height: var(--cf-line-height-base);
  text-align: center;
  cursor: pointer;
  transition:
    background var(--cf-transition-base),
    border-color var(--cf-transition-base),
    transform var(--cf-transition-base);
}
.single_add_to_cart_button:hover {
  background: var(--cf-color-primary-hover);
  border-color: var(--cf-color-primary-hover);
  color: var(--cf-color-background);
  transform: translateY(-0.125rem);
}
.single_add_to_cart_button:focus-visible {
  outline: none;
  box-shadow: var(--cf-focus-ring);
}
.single_add_to_cart_button:disabled,
.single_add_to_cart_button.disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
  transform: none;
}
/*
|--------------------------------------------------------------------------
| Quick View Add to Cart
|--------------------------------------------------------------------------
*/
.cf-quick-view-purchase .single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  padding: var(--cf-space-md) var(--cf-space-lg);
  border: 2px solid var(--cf-color-primary);
  border-radius: var(--cf-radius-full);
  background: var(--cf-color-primary);
  color: var(--cf-color-background);
  font-family: var(--cf-font-family-base, sans-serif);
  font-size: var(--cf-font-size-base);
  font-weight: var(--cf-font-semibold);
  line-height: var(--cf-line-height-base);
  text-align: center;
  cursor: pointer;
  transition:
    background var(--cf-transition-base),
    border-color var(--cf-transition-base),
    transform var(--cf-transition-base),
    box-shadow var(--cf-transition-base);
}
.cf-quick-view-purchase .single_add_to_cart_button:hover {
  background: var(--cf-color-primary-hover);
  border-color: var(--cf-color-primary-hover);
  color: var(--cf-color-background);
  transform: translateY(-0.125rem);
}
.cf-quick-view-purchase .single_add_to_cart_button:focus-visible {
  outline: none;
  box-shadow: var(--cf-focus-ring);
}
.cf-quick-view-purchase .single_add_to_cart_button:disabled,
.cf-quick-view-purchase .single_add_to_cart_button.disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
  transform: none;
}
/*
|--------------------------------------------------------------------------
| Loading Button
|--------------------------------------------------------------------------
*/
.cf-btn.is-loading,
.cf-product-action.is-loading,
.single_add_to_cart_button.is-loading {
  position: relative;
  cursor: wait;
  pointer-events: none;
  opacity: 0.75;
}
.cf-loading-spinner {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  flex: 0 0 1rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: cf-loading-spin 0.7s linear infinite;
}
.cf-loading-content {
  display: inline-flex;
  align-items: center;
}
@keyframes cf-loading-spin {
  to {
    transform: rotate(360deg);
  }
}
