.skip-link {
  position: fixed;
  inset-block-start: 1rem;
  inset-inline-start: 1rem;
  z-index: 10000;
  transform: translateY(calc(-100% - 1rem));
  padding: 0.75rem 1rem;
  border: 2px solid #031a36;
  border-radius: 4px;
  background: #fff;
  color: #031a36;
  font-weight: 700;
  text-decoration: none;
}

.skip-link:focus,
.skip-link:focus-visible {
  transform: translateY(0);
  outline: 3px solid #c0392b;
  outline-offset: 3px;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #c0392b;
  outline-offset: 3px;
}

:where(
    .announcement-bar,
    .hero,
    .main-footer,
    .request-grid,
    .contact-hero,
    .contact-trust,
    .svc-hero,
    .svc-highlights,
    .svc-cost-callout,
    .svc-cta,
    .glass-tabbar,
    .post-cta
  )
  :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline-color: #fff;
}

.request-grid .request-form input:focus-visible,
.request-grid .request-form textarea:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}

.contact-form-wrap .request-form input:focus-visible,
.contact-form-wrap .request-form textarea:focus-visible {
  outline: 3px solid #031a36;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
