/**
 * Button Styles
 * All button variations and states
 */

/* Base button */
.hvn-theme-btn,
.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--hvn-theme-space-sm);
  background: var(--hvn-theme-button-bg);
  color: var(--hvn-theme-button-color);
  font-family: var(--hvn-theme-font-family-base);
  font-size: var(--hvn-theme-font-size-sm);
  font-weight: var(--hvn-theme-font-weight-medium);
  text-decoration: none;
  text-align: center;
  padding: var(--hvn-theme-button-padding);
  border: none;
  border-radius: var(--hvn-theme-button-radius);
  cursor: pointer;
  transition: all var(--hvn-theme-transition-base);
  line-height: 1.5;
}

.hvn-theme-btn:hover,
.hvn-theme-btn:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus {
  background: var(--hvn-theme-button-bg-hover);
  color: var(--hvn-theme-button-color);
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: var(--hvn-theme-shadow-md);
}

.hvn-theme-btn:active,
.wp-block-button__link:active {
  transform: translateY(0);
}

.hvn-theme-btn:focus-visible,
.wp-block-button__link:focus-visible {
  outline: 2px solid var(--hvn-theme-brand-primary);
  outline-offset: 2px;
}

/* Button sizes */
.hvn-theme-btn-sm {
  padding: var(--hvn-theme-button-padding-sm);
  font-size: var(--hvn-theme-font-size-xs);
}

.hvn-theme-btn-lg {
  padding: var(--hvn-theme-button-padding-lg);
  font-size: var(--hvn-theme-font-size-md);
}

/* Button variants */
.hvn-theme-btn-secondary {
  background: var(--hvn-theme-color-gray-200);
  color: var(--hvn-theme-text-primary);
}

.hvn-theme-btn-secondary:hover,
.hvn-theme-btn-secondary:focus {
  background: var(--hvn-theme-color-gray-300);
  color: var(--hvn-theme-text-primary);
}

.hvn-theme-btn-outline {
  background: transparent;
  border: 2px solid var(--hvn-theme-brand-primary);
  color: var(--hvn-theme-brand-primary);
}

.hvn-theme-btn-outline:hover,
.hvn-theme-btn-outline:focus {
  background: var(--hvn-theme-brand-primary);
  color: var(--hvn-theme-color-white);
}

.hvn-theme-btn-danger {
  background: var(--hvn-theme-brand-error);
}

.hvn-theme-btn-danger:hover,
.hvn-theme-btn-danger:focus {
  background: #e64547;
}

.hvn-theme-btn-success {
  background: var(--hvn-theme-brand-success);
}

.hvn-theme-btn-success:hover,
.hvn-theme-btn-success:focus {
  background: #009e5a;
}

/* Full width button */
.hvn-theme-btn-block {
  display: flex;
  width: 100%;
}

/* Disabled button */
.hvn-theme-btn:disabled,
.hvn-theme-btn.disabled,
.wp-block-button__link:disabled,
.wp-block-button__link.disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

/* Icon button */
.hvn-theme-btn-icon {
  padding: 0.5rem;
  border-radius: var(--hvn-theme-border-radius-full);
}

.hvn-theme-btn-icon svg {
  width: 1.25rem;
  height: 1.25rem;
}