/* Floating "Оставить заявку" button (desktop/tablet). Mobile uses the sticky bottom bar instead. */
.contact-widget {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 40;
  display: none;
  font-family: inherit;
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity .2s ease-out, transform .2s ease-out;
}
.contact-widget--visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
@media (min-width: 768px) { .contact-widget { display: block; } }

.contact-widget__trigger {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 8px 22px 8px 18px;
  border: 0;
  border-radius: 16px;
  background: linear-gradient(135deg, #007bd2, #07448a);
  color: #fff;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 10px 28px rgba(0, 63, 130, .32);
  transition: transform .15s, box-shadow .15s;
}
.contact-widget__trigger:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0, 63, 130, .38); }
.contact-widget__trigger:focus-visible { outline: 3px solid #76bbff; outline-offset: 3px; }
.contact-widget__text { display: grid; line-height: 1.2; }
.contact-widget__text strong { font-size: 15px; font-weight: 800; }
.contact-widget__text small { font-size: 12px; opacity: .8; }
.contact-widget__pulse {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #4ade80;
  box-shadow: 0 0 0 0 rgba(74, 222, 128, .6);
  animation: contact-pulse 2s infinite;
  flex-shrink: 0;
}
@keyframes contact-pulse {
  0% { box-shadow: 0 0 0 0 rgba(74, 222, 128, .6); }
  70% { box-shadow: 0 0 0 10px rgba(74, 222, 128, 0); }
  100% { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .contact-widget, .contact-widget__trigger { transition: none; }
  .contact-widget__pulse { animation: none; }
}
