/* Публичный shell — координация фиксированных элементов + единые токены отступов.
   Работает вместе с assets/js/features/etl_ui_state.js (классы состояния на <html>:
   .etlui-cookie / .etlui-chat / .etlui-menu / .etlui-modal, и класс страницы
   .etlui-page-form / .etlui-page-home). Правила аддитивные — существующие стили
   элементов не переписываются, только скрываются/смещаются в конфликтных состояниях. */

:root {
  --public-header-height: 72px;
  --floating-bottom-offset: 20px;
  --floating-side-offset: 22px;
  --etl-cookie-height: 0px;
}

/* Единый scroll-offset для якорей публичных секций (sticky-header не перекрывает) */
:where(section, h1, h2, [id]):not(.etl-chat-panel):not(.etl-cookie) {
  scroll-margin-top: calc(var(--public-header-height) + 12px);
}

/* ── Одно полезное время: скрыть Камчатку, оставить Владивосток ── */
.etl-clock__row[data-tz="12"] { display: none !important; }
/* На мобиле часы в шапке не показываем (не две строки, не капсула) */
@media (max-width: 720px) { .etl-clock { display: none !important; } }

/* Быстрый переход появляется при фокусе с клавиатуры на всех публичных страницах. */
.etl-skip-link {
  position: fixed;
  top: 10px;
  left: 12px;
  z-index: 10050;
  transform: translateY(-140%);
  padding: 11px 14px;
  border: 2px solid var(--c-accent);
  border-radius: var(--r-xs);
  background: #111419;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: transform .18s ease;
}
.etl-skip-link:focus {
  transform: translateY(0);
  outline: 3px solid rgba(229,38,41,.28);
  outline-offset: 2px;
}

/* ── Утилита скрытия конфликтного fixed-элемента (компоновка-безопасно) ── */
.etlui-menu  .etl-chat-fab,
.etlui-menu  .etl-chat-teaser,
.etlui-menu  .etl-sticky-cta,
.etlui-menu  #etlBtt,
.etlui-chat  .etl-chat-fab,
.etlui-chat  .etl-chat-teaser,
.etlui-chat  .etl-sticky-cta,
.etlui-chat  #etlBtt,
.etlui-modal .etl-sticky-cta,
.etlui-modal .etl-chat-teaser,
/* Робот тоже уходит: поверх модального окна он смотрелся вторым
   собеседником и перетягивал внимание с формы. */
.etlui-modal .etl-chat-fab,
.etlui-modal #etlBtt {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* ── Cookie открыт: скрыть нижнюю CTA и «наверх», робота поднять над баннером ── */
.etlui-cookie .etl-sticky-cta,
.etlui-cookie #etlBtt {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* ── Форма заявки в кадре: плавающие уговоры уходят ────────────────────────
   ETL_UI_FORM_0905. Внизу главной сходились три способа оставить контакт:
   секция «Давайте обсудим вашу доставку», липкая полоса «Нужно рассчитать
   перевозку?» и всплывающая плашка «Рассчитаем ставку по вашему маршруту».
   Две последние — фиксированные, и они ложились прямо на форму: кнопка
   «Отправить заявку» и чекбокс согласия оказывались под ними. Форму нельзя
   было дозаполнить — то есть три призыва оставить заявку вместе мешали её
   оставить.

   Прячем дубли. Вход в помощника остаётся доступным: на узком экране
   он встроен в навигацию, на широком — находится за границей контента.

   Класс etlui-form ставит assets/js/features/etl_ui_state.js по
   IntersectionObserver. Гасим прозрачностью, а не display: none —
   компоновка не дёргается, и полоса возвращается, когда форма уходит. */
html.etlui-form .etl-sticky-cta,
html.etlui-form .etl-xbar,
html.etlui-form #etl-popup-custom,
html.etlui-form .etl-chat-teaser {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* A single floating offer at a time. The promo itself is not a modal;
   its form must stay usable without hiding itself through ETLUI. */
html:is(.etlui-cookie, .etlui-menu, .etlui-chat, .etlui-modal, .etlui-footer) body#top .etl-xbar,
html.etlui-promo body#top :is(.etl-sticky-cta, .etl-chat-teaser),
html.etlui-footer body#top .etl-sticky-cta,
html.etlui-cookie body#top .etl-chat-teaser {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* ── Страницы-формы (калькулятор/заявка): нет общей нижней CTA;
      робот уводится вправо, чтобы не перекрывать поля формы слева ── */
.etlui-page-form .etl-sticky-cta { display: none !important; }
.etlui-page-form .etl-chat-fab {
  left: auto !important;
  right: var(--floating-side-offset) !important;
}
/* робот (bottom:110) стоит выше кнопки «наверх» (bottom:20) — не пересекаются */

/* ── Робот и «наверх» — единое позиционирование через токены (не ломает базовые) ── */
.etl-chat-teaser { pointer-events: auto; }

/* В футере убираем только приглашение; сам помощник остаётся доступным. */
.etlui-footer .etl-chat-teaser {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
