/* ============================================================
   NUVASTAY — Buttons
   ============================================================ */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 24px;
  border-radius: var(--radius-md);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
  border: 1px solid transparent;
  transition:
    background-color var(--transition),
    color var(--transition),
    border-color var(--transition),
    transform var(--transition);
  white-space: nowrap;
  text-decoration: none;
  line-height: 1;
}

.btn:active { transform: scale(0.97); }

/* Disabled */
.btn:disabled,
.btn[disabled] {
  opacity: 0.38;
  cursor: not-allowed;
  pointer-events: none;
}

/* Primary */
.btn--primary {
  background: var(--color-primary);
  color:      var(--text-on-primary);
  border-color: var(--color-primary);
  box-shadow: var(--shadow-primary);
}
.btn--primary:hover {
  background:   var(--color-primary-hover);
  border-color: var(--color-primary-hover);
}

/* Outline */
.btn--outline {
  background:   transparent;
  color:        var(--color-primary);
  border-color: var(--color-primary);
}
.btn--outline:hover { background: rgba(227, 192, 106, 0.08); }

/* Ghost */
.btn--ghost {
  background:   transparent;
  color:        var(--text-secondary);
  border-color: var(--border-subtle);
}
.btn--ghost:hover {
  background: rgba(255, 255, 255, 0.05);
  color: var(--text-primary);
}

/* Sizes */
.btn--sm  { padding: 8px 16px; font-size: 0.82rem; }
.btn--lg  { padding: 15px 32px; font-size: 1rem; }
.btn--full { width: 100%; }

/* With icon */
.btn--icon .material-symbols-outlined { font-size: 1.1em; }
