/* ==========================================================================
   04-buttons.css — Matching website.pen button styles
   ========================================================================== */

.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  font-family: var(--font-body);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  padding: var(--space-5) var(--space-8);
  border-radius: var(--radius-lg);
  transition: background-color var(--transition-base),
              color var(--transition-base),
              box-shadow var(--transition-base),
              transform var(--transition-fast);
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  border: none;
}

.btn:active {
  transform: translateY(1px);
}

/* Primary — sage green, white text (.pen: fill $primary, text $text-inverse) */
.btn--primary {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
}

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

.btn--primary:focus-visible {
  outline-color: var(--color-primary-dark);
}

/* Secondary — white with border (.pen: fill $card-bg, stroke $border) */
.btn--secondary {
  background-color: var(--color-card-bg);
  color: var(--color-text);
  border: 1px solid var(--color-border);
}

.btn--secondary:hover {
  background-color: var(--color-gray-50);
}

/* Large variant */
.btn--large {
  font-size: var(--font-size-base);
  padding: var(--space-5) var(--space-8);
  border-radius: var(--radius-lg);
}

/* Inverse — for colored backgrounds */
.btn--inverse {
  background-color: var(--color-card-bg);
  color: var(--color-primary);
}

.btn--inverse:hover {
  background-color: var(--color-gray-100);
}

/* Button group (.pen: gap 16px) */
.btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-5);
  align-items: center;
}
