/* Load last: the contact dock stays in one viewport position on every page. */
:root {
  --persistent-contact-size:54px;
  --persistent-contact-offset:20px;
}

:root .quick-contact {
  position:fixed!important;
  inset:auto!important;
  right:calc(var(--persistent-contact-offset) + env(safe-area-inset-right, 0px))!important;
  bottom:calc(var(--persistent-contact-offset) + env(safe-area-inset-bottom, 0px))!important;
  z-index:1000!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  width:var(--persistent-contact-size)!important;
  min-width:var(--persistent-contact-size)!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  overflow:visible!important;
  clip:auto!important;
  clip-path:none!important;
  transform:none!important;
  translate:none!important;
  rotate:none!important;
  scale:none!important;
  transition:none!important;
  animation:none!important;
  isolation:isolate;
}

:root .quick-contact>a {
  display:flex!important;
  flex:0 0 var(--persistent-contact-size)!important;
  align-items:center!important;
  justify-content:center!important;
  grid-column:auto!important;
  width:var(--persistent-contact-size)!important;
  min-width:var(--persistent-contact-size)!important;
  height:var(--persistent-contact-size)!important;
  min-height:var(--persistent-contact-size)!important;
  margin:0!important;
  padding:0!important;
  border:2px solid #fff!important;
  border-radius:50%!important;
  color:#fff!important;
  background:#082b47!important;
  box-shadow:0 4px 16px #082b4733!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  text-decoration:none!important;
  transform:none!important;
  translate:none!important;
  rotate:none!important;
  scale:none!important;
  transition:background-color .16s ease!important;
  animation:none!important;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

:root .quick-contact>a:is(.quick-email,.quick-text) {background:#126a78!important;}
:root .quick-contact>a:hover {background:#17445f!important;}
:root .quick-contact>a:is(.quick-email,.quick-text):hover {background:#0c5360!important;}
:root .quick-contact>a:active {background:#061f33!important;}
:root .quick-contact>a:focus-visible {
  outline:3px solid #082b47!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 3px #fff,0 4px 16px #082b4733!important;
}
:root .quick-contact svg {
  display:block!important;
  flex:none!important;
  width:25px!important;
  height:25px!important;
  fill:currentColor!important;
  stroke:none!important;
  color:inherit!important;
}

/* Fixed descendants must use the viewport, rather than a transformed modal.
   Keep each dialog's own scrolling and backdrop intact. */
dialog.has-persistent-contact {
  transform:none!important;
  translate:none!important;
  rotate:none!important;
  scale:none!important;
  filter:none!important;
  backdrop-filter:none!important;
  perspective:none!important;
  contain:none!important;
  will-change:auto!important;
}

@media(max-width:939px) {
  :root {
    --persistent-contact-size:60px;
    --persistent-contact-offset:14px;
  }
  :root .quick-contact svg {width:27px!important;height:27px!important;}
}

@media(prefers-reduced-motion:reduce) {
  :root .quick-contact>a {transition:none!important;}
}
