.button,
.ap-button,
.service-detail-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--cta-height);
  gap: var(--cta-gap);
  padding: 12px var(--cta-padding-x);
  border-radius: var(--cta-radius);
  font-size: var(--type-body);
  font-weight: var(--weight-semibold);
  line-height: 1.25;
  transition: transform 160ms ease, background 160ms ease;
}

.button-primary {
  color: var(--surface);
  background: var(--contrast);
}

.button-secondary {
  border: 1px solid var(--line);
  background: var(--surface);
}

.button:hover,
.ap-button:hover,
.service-detail-button:hover {
  transform: translateY(-1px);
}

.button:focus-visible,
.ap-button:focus-visible,
.service-detail-button:focus-visible,
.footer-contacts a:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 4px;
}
