/* ==========================================================================
   Componente: Botão (primário, secundário, textual)
   ========================================================================== */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  min-height: 48px;
  padding: 12px 28px;
  border-radius: var(--radius-sm);
  border: 2px solid transparent;
  font-weight: 700;
  font-size: var(--fs-base);
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--duration-base) var(--ease-standard),
    border-color var(--duration-base) var(--ease-standard),
    color var(--duration-base) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard);
}

.btn:active {
  transform: translateY(1px);
}

.btn-primary {
  background: var(--color-primary);
  color: var(--color-primary-contrast);
  border-color: var(--color-primary);
}

.btn-primary:hover {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
  color: var(--color-primary-contrast);
}

.btn-secondary {
  background: transparent;
  color: var(--color-navy-900);
  border-color: var(--color-navy-900);
}

.btn-secondary:hover {
  background: var(--color-navy-900);
  color: var(--color-white);
}

.btn-on-dark {
  background: transparent;
  color: var(--color-white);
  border-color: rgba(255, 255, 255, 0.6);
}

.btn-on-dark:hover {
  background: var(--color-white);
  color: var(--color-navy-900);
}

.btn-text {
  min-height: auto;
  padding: 4px 2px;
  background: none;
  border: none;
  border-radius: 0;
  color: var(--color-primary);
  border-bottom: 2px solid transparent;
}

.btn-text:hover {
  color: var(--color-primary-hover);
  border-bottom-color: currentColor;
}

.btn-sm {
  min-height: 40px;
  padding: 8px 18px;
  font-size: var(--fs-sm);
}

.btn-block {
  width: 100%;
}

.btn[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
}
