body.has-floating-call {
  padding-bottom: calc(108px + env(safe-area-inset-bottom, 0px));
}

.floating-call {
  position: fixed;
  right: max(18px, env(safe-area-inset-right, 0px));
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  z-index: 30;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  max-width: calc(100vw - 36px);
  min-height: 64px;
  padding: 12px 22px;
  border: 1px solid #d9f1ff;
  border-radius: 40px;
  background: #b6e1fb;
  color: #092236;
  box-shadow: 0 8px 32px #0007;
  line-height: 1.3;
  font-size: 1rem;
  font-weight: 600;
  touch-action: manipulation;
}

.floating-call svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.floating-call-number {
  display: block;
  margin-top: 2px;
  font-size: .875rem;
  font-weight: 400;
  letter-spacing: .025em;
}

.floating-call:hover { background: #d5efff; }
.floating-call:focus-visible { outline: 3px solid white; outline-offset: 4px; }

/* Leave room for the call control below the house navigation. */
.has-floating-call .scene-dock { bottom: 108px; }
.has-floating-call .scene-panel { bottom: 212px; }
body:has(.site-menu[open]) .floating-call { visibility: hidden; }

@media (max-width: 750px) {
  .floating-call { padding: 12px 18px; }
  .has-floating-call .scene-panel {
    bottom: 260px;
    max-height: calc(100% - 368px);
  }
  /* Keep the keyboard and appointment fields clear while typing. */
  body:has(input:not([type="radio"]):not([type="checkbox"]):focus, textarea:focus, select:focus) .floating-call {
    visibility: hidden;
  }
}

@media print {
  .floating-call { display: none; }
  body.has-floating-call { padding-bottom: 0; }
}
