.floating-contacts {
  position: fixed;
  right: max(24px, env(safe-area-inset-right));
  bottom: max(24px, env(safe-area-inset-bottom));
  z-index: 900;
  font-size: 15px;
  color: #17121e;
}
.floating-contacts > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 14px 22px;
  border: 1px solid #a76aff;
  border-radius: 30px;
  background: #8f3cff;
  color: #fff;
  box-shadow: 0 6px 24px #31104a26;
  font-weight: 650;
  cursor: pointer;
  list-style: none;
}
.floating-contacts > summary::-webkit-details-marker { display: none; }
.floating-contacts > summary svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.floating-contacts-panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + 12px);
  width: min(330px, calc(100vw - 32px));
  max-height: calc(100dvh - 110px);
  overflow-y: auto;
  padding: 24px;
  border: 1px solid #e5e2ea;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 16px 54px #20132e24;
}
.floating-contacts-panel h2 { margin: 0 32px 8px 0; font-size: 22px; line-height: 1.25; letter-spacing: 0; }
.floating-contacts-panel > p { margin: 0 0 20px; color: #57515f; font-size: 14px; line-height: 1.6; }
.floating-contacts-close { position: absolute; top: 12px; right: 10px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; font: inherit; font-size: 25px; cursor: pointer; color: #57515f; }
.floating-contact-option { display: block; padding: 15px 0; border-top: 1px solid #e5e2ea; text-decoration: none; }
.floating-contact-option strong { display: block; font-size: 15px; }
.floating-contact-option span { display: block; margin-top: 4px; color: #57515f; font-size: 13px; line-height: 1.5; }
.floating-contact-option:hover strong { color: #8f3cff; }
.floating-contacts :focus-visible { outline: 2px solid #8f3cff; outline-offset: 4px; }
.contact-direct-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 24px; font-size: 15px; }
.contact-direct-links a { padding-block: 8px; text-underline-offset: 4px; }
@media (max-width: 620px) {
  .floating-contacts { right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); }
  .floating-contacts > summary { padding: 13px 18px; }
}
@media print { .floating-contacts { display: none; } }
