/* dsg-conv.css — кнопки связи, блок цены и компактная шапка на смартфоне (ТЗ dsg.by, задачи А1–А3).
   Подключается последним стилем в <head> каждой страницы:
   <link href="/css/dsg-conv.css?v=1" rel="stylesheet" type="text/css">
   Отличия от приложения 1 ТЗ (26.09.2026, по итогам проверки перед выкладкой, см. отчёт исполнителя):
   отступ body под панель = её высоте; заголовок страницы на смартфоне 20 px вместо 26 и перенос длинных
   слов в заголовках (иначе цена ниже 600 px на 2 страницах, а панель уезжала за экран); строка
   «цены по согласованию» на /price/ поверх затемнения секции. */

/* прелоадер убран из разметки (А2); правило — страховка для страниц, где он остался */
#preloader { display: none !important; }

.dsg-cta, .dsg-desk { display: none; }
.dsg-cta a, .dsg-desk a, .dsg-offer__btns a { text-decoration: none !important; }

/* «Оставить заявку» ведёт на /kontakty/#dsg-form: метка стоит над заголовком формы и сдвинута вверх,
   чтобы после прокрутки (её делает и шаблон, TM_hashForwarding) закреплённое меню не закрывало форму */
.dsg-anchor { display: block; position: relative; top: -60px; height: 0; }

/* ---------- Смартфон и планшет (до 991 px): нижняя панель ---------- */
@media (max-width: 991px) {
  .dsg-cta {
    display: flex;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030;
    padding: 6px 6px calc(6px + env(safe-area-inset-bottom, 0px));
    background: #121F27;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, .25);
  }
  .dsg-cta > a {
    flex: 1 1 0;
    display: flex; align-items: center; justify-content: center;
    min-height: 48px; border-radius: 6px;
    color: #fff !important; font-size: 17px; font-weight: 600; line-height: 1.1;
  }
  .dsg-cta > a + a { margin-left: 6px; }
  .dsg-cta__call { flex-grow: 3 !important; background: #A01F40; }
  .dsg-cta__msg { flex-grow: 2 !important; background: #2f4a5a; }
  .dsg-cta__menu {
    display: flex; flex-wrap: wrap;
    position: absolute; left: 6px; right: 6px; bottom: 100%; margin-bottom: 6px;
    padding: 10px; background: #fff; border-radius: 8px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .3);
  }
  .dsg-cta__menu[hidden] { display: none !important; }
  .dsg-cta__num { flex: 0 0 100%; margin: 0 0 8px; text-align: center; font-size: 14px; color: #121F27; }
  .dsg-cta__menu a {
    flex: 1 1 0;
    display: flex; align-items: center; justify-content: center;
    min-height: 44px; border-radius: 6px;
    color: #fff !important; font-size: 15px; font-weight: 600;
  }
  .dsg-cta__menu a + a { margin-left: 6px; }
  /* «Оставить заявку» — отдельной строкой под мессенджерами */
  .dsg-cta__menu a.dsg-cta__form { flex: 0 0 100%; margin: 8px 0 0 !important; background: #A01F40; }
  .dsg-typing .dsg-cta { display: none !important; }
  body { padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px)); }   /* = высоте панели, без светлой щели */
  .scrollToTop { bottom: 80px !important; }                 /* над панелью */
  .dsg-menu-open .scrollToTop { display: none !important; } /* меню «Написать» открыто */
}

/* ---------- Компьютер (от 992 px): номер закреплён в правом нижнем углу ---------- */
@media (min-width: 992px) {
  .dsg-desk {
    display: flex; align-items: center;
    position: fixed; right: 16px; bottom: 16px; z-index: 1030;
    padding: 8px 10px 8px 18px; border-radius: 28px;
    background: #121F27; color: #fff;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .3);
    font-size: 14px; line-height: 1.2;
  }
  .dsg-desk__tel { color: #fff !important; font-size: 19px; font-weight: 700; white-space: nowrap; margin-right: 10px; }
  .dsg-desk__copy {
    margin-right: 12px; padding: 6px 12px; border: 0; border-radius: 16px;
    background: #A01F40; color: #fff; font-size: 13px; cursor: pointer;
  }
  .dsg-desk__label { color: #cfd6db; margin-right: 4px; white-space: nowrap; }
  .dsg-desk a.dsg-desk__msg { color: #fff !important; font-size: 13px; padding: 6px 10px; border-radius: 16px; margin-left: 4px; }
  .scrollToTop { bottom: 84px !important; }
}

/* ---------- Цвета мессенджеров ---------- */
.dsg-cta__vb, .dsg-desk__vb, .dsg-offer__vb { background: #7360F2; }
.dsg-cta__tg, .dsg-desk__tg, .dsg-offer__tg { background: #229ED9; }
.dsg-cta__wa, .dsg-desk__wa, .dsg-offer__wa { background: #1FA855; }

/* ---------- Блок цены в начале страницы услуги (А3) ---------- */
.dsg-offer { background: #f4f5f6; border-bottom: 1px solid #e3e6e8; padding: 14px 0 6px; }
.dsg-offer > .container { padding-top: 0 !important; padding-bottom: 0 !important; }
.dsg-offer p { margin-top: 0; }
.dsg-offer__row { display: flex; flex-wrap: wrap; align-items: center; }
.dsg-offer__price { margin: 0 20px 8px 0; font-size: 21px; line-height: 1.3; color: #121F27; font-weight: 600; }
.dsg-offer__price b { color: #A01F40; white-space: nowrap; }
.dsg-offer__note { flex: 1 1 260px; margin: 0 20px 8px 0; font-size: 14px; line-height: 1.45; color: #444; }
.dsg-offer__btns { display: flex; flex-wrap: wrap; margin: 0 0 8px; }
.dsg-offer__btns a {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 0 16px; margin: 0 8px 8px 0; border-radius: 6px;
  color: #fff !important; font-weight: 600; font-size: 15px;
}
.dsg-offer__call { background: #A01F40; }
/* строка «Указаны цены «от»…» на /price/ (А7 п. 5): иначе её закрывает затемнение секции .layer-overlay */
.equal-height-pricing-table + p { position: relative; z-index: 1; }
/* подсказка ошибки формы («Заполните это поле») не сдвигает кнопку «Отправить»: иначе при исправлении поля
   вставкой или автозаполнением кнопка уезжала из-под пальца и первое нажатие терялось (правка 26.09.2026) */
form .form-group { position: relative; }
form label.error { position: absolute; left: 0; top: 100%; margin: 1px 0 0; font-size: 12px; line-height: 1.2; font-weight: 400; white-space: nowrap; }
/* вариант внутри тёмного первого экрана страницы датчиков */
.dsg-offer--dark { background: transparent; border: 0; padding: 0 0 12px; }
.dsg-offer--dark .dsg-offer__price, .dsg-offer--dark .dsg-offer__note { color: #fff; margin-right: 0; }
.dsg-offer--dark .dsg-offer__price b { color: #fff; }
.dsg-offer--dark .dsg-offer__btns { justify-content: center; }

@media (max-width: 767px) {
  .dsg-offer__price { font-size: 19px; margin-right: 0; }
  .dsg-offer__note { flex-basis: 100%; margin-right: 0; }
  .dsg-offer__btns { width: 100%; }
  .dsg-offer__btns a { flex: 1 1 0; padding: 0 6px; margin-right: 6px; font-size: 14px; }
  .dsg-offer__btns a:last-child { margin-right: 0; }
  .dsg-offer__btns .dsg-offer__call { flex: 0 0 100%; margin-right: 0; font-size: 16px; }

  /* компактная шапка и заголовок страницы, чтобы блок цены попал в первый экран */
  .header-middle .mt-30 { margin-top: 8px !important; }
  .header-middle .menuzord-brand.mt-10 { margin-top: 4px !important; margin-bottom: 4px !important; }
  .header-middle .mb-10 { margin-bottom: 0 !important; }   /* цена в первом экране и при 360 px (26.09.2026) */
  .inner-header > .container { padding-top: 16px !important; padding-bottom: 12px !important; }
  .inner-header .section-content { padding-top: 0 !important; }
  .inner-header h1 { font-size: 20px !important; line-height: 1.2 !important; margin: 0 0 4px !important; }
  /* длинные заглавные слова в заголовках шаблона раздвигали страницу шире экрана, и панель уезжала за край */
  h1, h2, h3, h4 { overflow-wrap: break-word; word-wrap: break-word; }
  .dsg-hero { padding: 16px 0 !important; }
  .dsg-hero > .container { padding-top: 0 !important; padding-bottom: 0 !important; }
  .dsg-hero h1 { font-size: 26px !important; margin-bottom: 10px !important; }
}
