.haven-back-to-top {
  align-items: center;
  background: #fff;
  border: 1px solid #4b83ab;
  border-radius: 2px;
  bottom: calc(1.25rem + env(safe-area-inset-bottom));
  box-shadow: 0 2px 10px rgba(23, 52, 79, .08);
  color: #17344f;
  cursor: pointer;
  display: flex;
  height: 44px;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  right: 1.25rem;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, background .2s ease;
  width: 44px;
  z-index: 40;
}
.haven-back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.haven-back-to-top:hover, .haven-back-to-top:focus-visible { background: #edf3f8; }
.haven-back-to-top:focus-visible { outline: 2px solid #17344f; outline-offset: 3px; }
.haven-back-to-top svg { fill: none; height: 19px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 19px; }
body:has(.site-nav.is-open) .haven-back-to-top, body:has(.lightbox:not([hidden])) .haven-back-to-top { opacity: 0; pointer-events: none; }
@media (max-width: 850px) {
  body:has(.mobile-contact-bar:not([hidden])) .haven-back-to-top { bottom: calc(4.15rem + 1rem + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) { .haven-back-to-top { transition: none; } }
