/* Der Ruheabstand am Dokumentende hält auch den Footer erreichbar. */
:root { --floating-contact-space: calc(9rem + env(safe-area-inset-bottom, 0px)); }
html:has(.floating-contact), html.has-floating-contact {
  scroll-padding-bottom: var(--floating-contact-space);
}
body:has(.floating-contact), .has-floating-contact body {
  padding-bottom: var(--floating-contact-space);
}
.floating-contact {
  position: fixed;
  z-index: 50;
  right: max(1.25rem, env(safe-area-inset-right, 0px));
  bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
  width: max-content;
  max-width: min(28rem, calc(100% - 2.5rem));
}
.floating-contact__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  min-height: 3.25rem;
  padding: .85rem 1.4rem;
  border: 2px solid #692823;
  border-radius: 999px;
  background: #692823;
  color: #fff;
  box-shadow: 0 .35rem 1.25rem #24272240;
  font: 600 1rem/1.5 Arial, Helvetica, sans-serif;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.floating-contact__link span:first-child { min-width: 0; }
.floating-contact__arrow { flex-shrink: 0; font-size: 1.3em; }
.floating-contact__link:hover { background: #4d1c19; border-color: #4d1c19; text-decoration: underline; }
.floating-contact__link:focus-visible { outline: 3px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 6px #242722; }
@media (max-width: 40rem) {
  .floating-contact { left: max(1.25rem, env(safe-area-inset-left, 0px)); right: max(1.25rem, env(safe-area-inset-right, 0px)); max-width: none; width: auto; }
  .floating-contact__link { border-radius: .5rem; }
}
@media (forced-colors: active) {
  .floating-contact__link { border-color: ButtonText; }
  .floating-contact__link:focus-visible { outline-color: Highlight; box-shadow: none; }
}
@media print {
  .floating-contact { display: none; }
  body:has(.floating-contact), .has-floating-contact body { padding-bottom: 0; }
}
