/* eco-ui.css — общий слой UI для eco-os.ru: мобильный пол и плавающая кнопка.
 *
 * Заведён 27.08.2026 после самоаудита. Яндекс держал сайт как NOT_MOBILE_FRIENDLY,
 * и замер это подтвердил: 145 узлов с текстом 11,5 px, 47 — с 10 px, тач-цели от 15 px,
 * логотип 94×29 при норме 44 по высоте. Фирменный стиль «Ось» построен на мелких
 * моноширинных подписях, и до сих пор он побеждал; решение владельца 27.08 —
 * приоритет за mobile-standard. Ниже — пол, ниже которого не опускается ни одна страница.
 *
 * Файл подключается ПОСЛЕ внутренних <style> шаблонов, поэтому переопределяет их
 * без !important там, где хватает специфичности, и с ним — там, где в шаблоне
 * стоит правило той же силы.
 */

/* ── Мобильный пол ─────────────────────────────────────────────────────── */
@media (max-width: 760px) {

  /* Ничего мельче 13 px. Порог из page_ui_lint: на телефоне более мелкий текст
     читается как небрежность, а не как акцент. Кегли задаются переменными,
     чтобы шаблон мог поднять, но не мог опустить. */
  body, p, li, td, th, dd, dt, figcaption, blockquote, label, span, div, a, small, cite {
    font-size: max(13px, 1em);
  }
  /* Служебные моно-подписи стиля «Ось» — их в шаблонах десятки классов,
     поэтому ловим по общему признаку: маленький кегль в любом объявлении. */
  .k, .kicker, .ctag, .rd, .l, .ni, .cat-count, .step-num, .meta, .m, .no,
  .badge, .tag, .chip, .crumbs, .breadcrumbs, .legal, .footer-legal, .fnote {
    font-size: 13px !important;
    line-height: 1.45;
  }

  /* Тач-цель 44×44 (Apple HIG). Инлайновые ссылки внутри абзаца исключены:
     их нельзя растянуть, не разорвав строку, — там работает увеличенный
     интерлиньяж. Всё, что стоит отдельным элементом, обязано быть кликабельным
     пальцем без прицеливания. */
  nav a, header a, footer a, .nav a, .brand,
  button, .btn, .cta-btn, [role="button"],
  li > a:only-child, .card > a, .crumbs a, .breadcrumbs a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: .4em;
  }
  /* Логотип: знак не мельче 44 px по высоте. */
  .brand, a.brand { min-height: 44px; }
  .brand svg, .brand img { min-height: 28px; }

  /* Поля ввода — 16 px, иначе iOS Safari зумит страницу при фокусе. */
  input, textarea, select { font-size: 16px !important; }
}

/* ── Плавающая кнопка ──────────────────────────────────────────────────── */
/* Норма page-standard §7.1: на длинной странице путь к целевому действию должен
   быть под рукой, а не только в конце текста. Надпись у каждой страницы своя —
   общая «Оставить заявку» не говорит человеку, что именно он получит. */
.eco-fab {
  position: fixed; right: 20px; bottom: 20px; z-index: 8500;
  display: inline-flex; align-items: center; gap: 9px;
  min-height: 48px; box-sizing: border-box;
  background: #1B72E0; color: #fff;
  font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
  font-size: 15px; font-weight: 600; letter-spacing: .01em; text-decoration: none;
  padding: 13px 22px; border-radius: 999px;
  box-shadow: 0 10px 30px -12px rgba(27,114,224,.75);
  opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: opacity .22s, transform .22s, visibility .22s;
}
.eco-fab.on { opacity: 1; visibility: visible; transform: none; }
.eco-fab:hover, .eco-fab:focus { background: #0F4FA3; color: #fff; }
.eco-fab .eco-fab__arrow { font-size: 1.05em; line-height: 1; }
@media (max-width: 600px) {
  .eco-fab { right: 14px; left: 14px; justify-content: center; padding: 14px 18px; font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { .eco-fab { transition: none; } }
