.btn,
.ds-btn {
  appearance: none;
  border: var(--ds-border-width) solid transparent;
  border-radius: calc(var(--ds-border-radius) - 2px);
  background: transparent;
  color: var(--ds-color-text);
  font-family: var(--ds-font-family);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--ds-spacing-unit) * 2);
  cursor: pointer;
  text-decoration: none;
  transition: transform var(--ds-animation-duration) var(--ds-animation-easing),
              background var(--ds-animation-duration) var(--ds-animation-easing),
              border-color var(--ds-animation-duration) var(--ds-animation-easing),
              color var(--ds-animation-duration) var(--ds-animation-easing),
              box-shadow var(--ds-animation-duration) var(--ds-animation-easing);
}

.btn:focus-visible,
.ds-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.20);
}

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

.btn-primary:hover,
.btn--primary:hover,
.ds-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: var(--ds-shadow-md);
}

.btn-ghost,
.btn--secondary,
.ds-btn-ghost {
  background: transparent;
  border-color: var(--ds-color-border);
  color: var(--ds-color-text);
}

.btn-ghost:hover,
.btn--secondary:hover,
.ds-btn-ghost:hover {
  background: color-mix(in srgb, var(--ds-color-text) 6%, transparent);
}

.btn--large {
  font-size: 14px;
  padding: calc(var(--ds-spacing-unit) * 4) calc(var(--ds-spacing-unit) * 7);
}

.btn,
.ds-btn {
  font-size: 13px;
  padding: calc(var(--ds-spacing-unit) * 3) calc(var(--ds-spacing-unit) * 5);
}

.btn-icon {
  width: 18px;
  height: 18px;
}

