.cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pgsx-space-4);
  align-items: center;
}

.btn {
  font-family: var(--pgsx-font-body);
  font-size: var(--pgsx-text-sm);
  font-weight: 500;
  letter-spacing: var(--pgsx-tracking-loose);
  text-transform: uppercase;
  padding: 14px 22px;
  border-radius: var(--pgsx-radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition:
    background var(--pgsx-duration-default) var(--pgsx-easing-standard),
    color var(--pgsx-duration-default) var(--pgsx-easing-standard),
    border-color var(--pgsx-duration-default) var(--pgsx-easing-standard);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--pgsx-space-3);
}

/* Stretch CTA buttons inside the auth-actions wrapper to full content width —
   matches the reference marketing-shell where the primary action is full-bleed. */
.auth-actions .btn {
  width: 100%;
}

/* When .btn is used on an <a>, the global `a:hover { color: var(--pgsx-accent) }`
   in _base.css would otherwise repaint the label to match the button background
   (turquoise on turquoise → invisible). Each variant pins its hover color
   explicitly to defeat that cascade. */

.btn--primary {
  background: var(--pgsx-accent);
  color: var(--pgsx-accent-on);
}

.btn--primary:not(:disabled):hover {
  background: var(--pgsx-accent-hover);
  color: var(--pgsx-accent-on);
}

.btn--ghost {
  background: transparent;
  color: var(--pgsx-text-primary);
  border-color: var(--pgsx-border);
}

.btn--ghost:not(:disabled):hover {
  border-color: var(--pgsx-text-secondary);
  color: var(--pgsx-text-primary);
}

.btn--ghost-accent {
  background: transparent;
  color: var(--pgsx-accent);
  border-color: rgba(40, 213, 215, 0.35);
}

.btn--ghost-accent:not(:disabled):hover {
  background: rgba(40, 213, 215, 0.08);
  border-color: var(--pgsx-accent);
}

.btn--warn {
  background: var(--pgsx-warning);
  color: var(--pgsx-accent-on);
}

.btn--warn:not(:disabled):hover {
  filter: brightness(1.08);
}

.btn--danger {
  background: transparent;
  color: var(--pgsx-danger);
  border-color: rgba(217, 106, 106, 0.35);
}

.btn--danger:not(:disabled):hover {
  background: rgba(217, 106, 106, 0.08);
  border-color: var(--pgsx-danger);
}

.btn--sm {
  padding: 8px 14px;
  font-size: var(--pgsx-text-xs);
}

.btn:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.btn__count {
  font-family: var(--pgsx-font-mono);
  font-size: 11px;
  background: rgba(0, 0, 0, 0.2);
  padding: 2px 8px;
  border-radius: var(--pgsx-radius-full);
  letter-spacing: 0.04em;
}
