.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  padding: .9em 1.8em;
  border-radius: 999px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--font-size-base);
  text-decoration: none;
  border: var(--border-w) solid transparent;
  cursor: pointer;
  transition: transform .1s ease, box-shadow .1s ease, background-color .15s ease, color .15s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }

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

.btn--ghost {
  background: var(--color-bg);
  color: var(--color-primary-dark);
  border-color: #C8EAF9;
}
.btn--ghost:hover { background: var(--color-bg-alt); color: var(--color-primary-dark); }

.btn--sm { padding: .55em 1.1em; font-size: var(--font-size-sm); }
.btn[disabled] { opacity: .6; cursor: not-allowed; }
