/* ==========================================================================
   Buttons — GGDS .gg-btn + legacy .cta-button / .newsletter-submit
   ========================================================================== */

.gg-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  border: 2px solid transparent;
  border-radius: 0;
  font-family: inherit;
  font-weight: var(--font-weight-bold);
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition:
    transform var(--duration-base) var(--ease-standard),
    background-color var(--duration-base) var(--ease-standard),
    border-color var(--duration-base) var(--ease-standard),
    color var(--duration-base) var(--ease-standard),
    filter var(--duration-fast) var(--ease-standard);
}

.gg-btn:hover {
  transform: scale(1.05);
}

.gg-btn:active {
  transform: scale(0.95);
}

.gg-btn.is-disabled,
.gg-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
  pointer-events: none;
}

/* Sizes */
.gg-btn--sm {
  min-height: 2.25rem;
  padding: 0.45rem 0.9rem;
  font-size: 0.8125rem;
}

.gg-btn--md {
  min-height: 2.75rem;
  padding: 0.7rem 1.35rem;
  font-size: 0.9375rem;
}

.gg-btn--lg {
  min-height: 3.25rem;
  padding: 0.85rem 1.75rem;
  font-size: 1rem;
}

/* Variants — primary = brand blue; accent = true orange CTA */
.gg-btn--primary {
  background: rgb(var(--color-brand));
  border-color: rgb(var(--color-brand));
  color: #fff;
}

.gg-btn--primary:hover,
.gg-btn--primary:focus-visible {
  color: #fff;
  filter: brightness(1.08);
}

.gg-btn--accent {
  background: rgb(var(--color-accent));
  border-color: rgb(var(--color-accent));
  color: #fff;
}

.gg-btn--accent:hover,
.gg-btn--accent:focus-visible {
  color: #fff;
  background: rgb(var(--palette-orange-600));
  border-color: rgb(var(--palette-orange-600));
  filter: none;
}

.gg-btn--secondary {
  background: transparent;
  border-color: rgb(var(--color-brand));
  color: rgb(var(--color-brand));
}

.gg-btn--secondary:hover,
.gg-btn--secondary:focus-visible {
  background: rgb(var(--color-brand) / 0.12);
  color: rgb(var(--color-brand));
}

.gg-btn--ghost {
  background: transparent;
  border-color: transparent;
  color: rgb(var(--color-ink-muted));
}

.gg-btn--ghost:hover,
.gg-btn--ghost:focus-visible {
  color: rgb(var(--color-brand));
  background: rgb(var(--color-brand) / 0.08);
}

.gg-btn--danger {
  background: rgb(var(--color-danger));
  border-color: rgb(var(--color-danger));
  color: #fff;
}

.gg-btn--danger:hover,
.gg-btn--danger:focus-visible {
  color: #fff;
  filter: brightness(1.08);
}

/* Legacy aliases */
.cta-button {
  transition: transform 0.2s ease, background-color 0.3s ease, color 0.3s ease;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.cta-button:hover {
  transform: scale(1.05);
}

.cta-button:active {
  transform: scale(0.95);
}

.newsletter-submit,
.gg-btn--accent.newsletter-submit {
  border-radius: 0;
  transition: transform var(--duration-base) var(--ease-standard), background-color var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard);
}

.newsletter-submit:hover,
.gg-btn--accent.newsletter-submit:hover {
  transform: scale(1.05);
  background-color: rgb(var(--palette-orange-600));
  border-color: rgb(var(--palette-orange-600));
}

.newsletter-submit:active,
.gg-btn--accent.newsletter-submit:active {
  transform: scale(0.95);
}

@media (prefers-reduced-motion: reduce) {
  .gg-btn:hover,
  .gg-btn:active,
  .cta-button:hover,
  .cta-button:active,
  .newsletter-submit:hover,
  .newsletter-submit:active {
    transform: none;
  }
}
