.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
}

/* Hover state — desktop only, a slight darkening of each button's own
   tone with a fade so the change isn't abrupt. */
@media (min-width: 1001px) {
  .btn {
    transition: background-color 0.2s ease, border-color 0.2s ease;
  }

  .btn--cta:hover,
  .btn--inline:hover,
  .btn--fill-sm:hover {
    background-color: color-mix(in srgb, var(--color-accent-green) 85%, black);
  }

  .btn--outline:hover,
  .btn--outline-sm:hover {
    border-color: color-mix(in srgb, var(--color-border-default) 85%, black);
  }
}

.btn--cta {
  width: 223px;
  height: 44px;
  gap: var(--space-2);
  background-color: var(--color-accent-green);
  color: var(--color-accent-black);
}

.btn--inline {
  gap: var(--space-3);
  padding: 14px var(--space-6);
  background-color: var(--color-accent-green);
  color: var(--color-accent-black);
}

.btn--outline {
  width: 100%;
  gap: var(--space-2);
  padding: 10px 0;
  background-color: transparent;
  border: var(--border-width-default) solid var(--color-border-default);
  color: var(--color-text-muted);
}

.btn--fill-sm {
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  background-color: var(--color-accent-green);
  color: var(--color-accent-black);
}

.btn--outline-sm {
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  background-color: transparent;
  border: var(--border-width-default) solid var(--color-border-default);
  color: var(--color-text-muted);
}

.btn__icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.btn--inline .btn__icon {
  width: 15px;
  height: 15px;
}

.btn--outline .btn__icon {
  width: 12px;
  height: 12px;
}

.btn--fill-sm .btn__icon,
.btn--outline-sm .btn__icon {
  width: 12px;
  height: 12px;
}
