/* Модалка заявки + плавающий виджет связи. Только токены (#5). */

/* --- Модалка --- */
.lead-modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--s-5);
}
.lead-modal[hidden] { display: none; }
.lead-modal__backdrop {
  position: absolute;
  inset: 0;
  background: var(--overlay-strong);
  animation: lead-modal-fade var(--d-fast) var(--ease);
}
.lead-modal__dialog {
  position: relative;
  width: 100%;
  max-width: 520px;
  max-height: calc(100vh - 2 * var(--s-6));
  overflow-y: auto;
  background: var(--surface-1);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: clamp(24px, 4vw, 40px);
  box-shadow: var(--elev-2-shadow);
  animation: lead-modal-pop var(--d-base) var(--ease-in);
}
.lead-modal__close {
  position: absolute;
  top: var(--s-4);
  right: var(--s-4);
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--surface-1);
  color: var(--text-muted);
  cursor: pointer;
  transition: border-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease);
}
.lead-modal__close:hover { color: var(--text); border-color: var(--line-strong); }
.lead-modal__eyebrow {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--fs-eyebrow);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-text);
}
.lead-modal__title {
  margin: var(--s-2) 0 0;
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  padding-right: var(--s-8);
}
.lead-modal__note { margin: var(--s-3) 0 var(--s-6); color: var(--text-muted); font-size: var(--fs-body-s); }
.lead-modal .lead-form { max-width: none; }

@keyframes lead-modal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes lead-modal-pop { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .lead-modal__backdrop, .lead-modal__dialog { animation: none; }
}

/* --- Плавающий виджет связи --- */
.contact-widget {
  position: fixed;
  right: clamp(16px, 3vw, 28px);
  bottom: clamp(16px, 3vw, 28px);
  /* Выше cookie-баннера (z-consent=350), иначе баннер накрывал бы нижнюю кнопку (критик) */
  z-index: calc(var(--z-consent) + 1);
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
.contact-widget__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--ink-solid);
  color: var(--on-ink);
  box-shadow: var(--elev-2-shadow);
  transition: transform var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease);
}
.contact-widget__btn:hover {
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: 0 0 0 3px var(--accent-border), var(--elev-2-shadow);
}
.contact-widget__btn:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
/* Реальные бренд-цвета глифов на нейтральной кнопке (узнаваемость + стиль сайта) */
.contact-widget__btn--tg { color: #2AABEE; }
/* MAX — реальная app-иконка (свой фон), кнопка без ink-заливки, клип в круг */
.contact-widget__btn--max { background: transparent; padding: 0; overflow: hidden; }
.contact-widget__btn--max img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 50%; }
/* Пока cookie-баннер показан — поднимаем виджет на его РЕАЛЬНУЮ высоту (--consent-h ставит
   theme.js; фолбэк 96px). Не константа: баннер в 3–4 строки на мобиле выше константы (критик). */
.consent:not([hidden]) ~ .contact-widget {
  bottom: calc(clamp(16px, 3vw, 28px) + var(--consent-h, 96px) + var(--s-3));
}

@media (max-width: 560px) {
  .contact-widget__btn { width: 50px; height: 50px; }
}
