.btn {
  min-width: 118px;
  padding: 8px 18px;
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ivory);
  border: 2px solid var(--gold);
  background: linear-gradient(180deg, rgba(212,168,74,0.25), rgba(0,0,0,0.35));
  transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease;
}
.btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 0 0 3px rgba(212,168,74,0.2);
}

.btn-primary {
  background: linear-gradient(180deg, #e7b84f, #9c7a2a);
  color: #1a1a1a;
  font-weight: 700;
  animation: cta-pulse 1800ms ease-in-out infinite;
}
@keyframes cta-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(212,168,74,0.5); }
  50% { box-shadow: 0 0 0 8px rgba(212,168,74,0); }
}

.btn-danger {
  border-color: #c0392b;
  background: linear-gradient(180deg, rgba(192,57,43,0.35), rgba(0,0,0,0.45));
}
.btn-danger:hover:not(:disabled) {
  box-shadow: 0 0 0 3px rgba(192,57,43,0.35);
}

.btn-ghost {
  border-color: rgba(248,244,232,0.45);
  background: transparent;
}

.action-bar .btn + .btn { margin-left: 0; }
