/* ============================================================================
   ok-info-tail.css — W4-P07 «Хвост Инфо», редакция R1 (после рецензии).
   Поверхности: карта сайта (tpl-sitemap) и девять страниц партнёров
   (tpl-partner). ★ «Наших работ» здесь БОЛЬШЕ НЕТ — см. пункт 5.

   ★ ЧТО ЭТОТ ЛИСТ ДЕЛАЕТ И ЧЕГО НЕ ДЕЛАЕТ.
   Решение D-198: нового вида этим страницам не назначается. Волна 1 пришла на
   них целиком (41 токен из 41 на каждом из 36 замеров прогона R0B, маркеров
   чужой темы 0), узлов за краем — 0 на всех трёх ширинах. Единственный
   найденный класс дефектов — тач-цели ниже минимума касания. Только он тут и
   чинится.

   ★ ПОЧЕМУ ВЕСЬ ЛИСТ ПОД @media (max-width:768px).
   Норма касания — требование ТАЧ-конфигураций (D-32), и замер снимался ровно
   на 375 и 768. Десктоп 1440 лист не трогает вовсе.

   ╔══════════════════════════════════════════════════════════════════════════╗
   ║ ★★ ГЛАВНАЯ ПРАВКА РЕДАКЦИИ R1: ЗАПАС ВМЕСТО МИНИМАЛЬНОЙ ВЫСОТЫ.          ║
   ╚══════════════════════════════════════════════════════════════════════════╝
   Первая редакция ставила `min-height:48px`. Замер показал, что этим лечится
   только ОДНОСТРОЧНАЯ цель: двустрочная ссылка списка и так 49,59 (два
   интерлиньяжа по 24,8), и `min-height` ей не даёт НИЧЕГО. Внутри одного
   списка получалось:
       просвет между текстами однострочных: 11,6 + 8 + 11,6 = 31,2 px
       просвет между текстами двустрочных:   0  + 8 +  0   =  8,0 px
   — разница в 3,9 раза. До правки список был однороден (ровно 8,0 у всех:
   это `li{margin:0 0 8px}` из design.css и больше ничего). То есть первая
   редакция исходный дефект у двустрочных НЕ ВЫЛЕЧИЛА и вдобавок разнесла
   плотность: «Основные страницы» читались воздушно, а «Услуги» (13 подряд
   двустрочных) — сплошным текстом.

   R1 даёт ВЕРТИКАЛЬНЫЙ ЗАПАС (`padding-block`), а его получают ОБА вида —
   и однострочные, и двустрочные. Ритм списка снова единый: 12 + 8 + 12 = 32 px
   между текстами у всех пунктов, независимо от числа строк.

   ★ ЧИСЛА НЕ ИЗОБРЕТЕНЫ — ОНИ ПОСЧИТАНЫ ОТ ЗАМЕРЕННОЙ СТРОКИ.
   Запас = (--ok-tap-min − интерлиньяж) / 2, округлённое ВВЕРХ до целого px.
   Интерлиньяж у каждой цели свой, поэтому и запас свой; все четыре числа —
   из GEOMETRIYA-DO2.tsv, колонка line-height:

     цель                     lh      (48−lh)/2   запас   высота «после»
     .okna-sitemap__list a    24,80     11,60      12px      48,80
     .okna-sitemap__h3 a      23,75     12,13      13px      49,75
     .okna-sitemap__cats li a 21,70     13,15      14px      49,70
     .okna-sitemap__year-sum  26,35     10,83      11px      48,35

   48 — токен дизайн-системы `--ok-tap-min` (ok-tokens.css:187, «минимум
   касания на мобилке»), а не подобранный под порог прибора порог: 48 > нормы
   44 и > порога по измеренному 44,97, поэтому обе меры (коробка и зона
   попаданием) дают один и тот же вердикт.

   ★ ПОЧЕМУ inline-flex НА ССЫЛКАХ СПИСКА, А НЕ ПРОСТО padding.
   У СТРОЧНОГО элемента вертикальный запас в высоту строки не входит, и у
   перенесённой на две строки ссылки центр прямоугольника попадает В ПРОСВЕТ
   между строчными боксами: замер «до» — 28 таких целей на карте, у всех
   `elementFromPoint` в центре отдаёт `li`, а не ссылку. inline-flex делает
   ссылку АТОМАРНЫМ строчным боксом: он один, просвета внутри нет, попадание
   в центр гарантировано, перенос текста сохраняется.

   ★ НОВЫХ `!important` В ЛИСТЕ НЕТ. Победу даёт специфичность: каждое правило
   заскоуплено корнем поверхности (.okna-sitemap / .okna-partner).
   ============================================================================ */

@media (max-width:768px){

  /* ── 1. КАРТА САЙТА: ССЫЛКИ СПИСКОВ И ЗАГОЛОВКОВ ──────────────────────────
     Замер «до» (375, откаченный лист), всего целей в `.okna-sitemap` — 121,
     измерены ВСЕ 121 (предел задания 500), негодны ВСЕ 121:
       62 однострочные ссылки списка   21 px
       28 двустрочных ссылок списка  45,8 px  ← центр промахивается
       22 ссылки h3 (регионы)          26 px
        1 двустрочная ссылка h3      49,75 px ← центр промахивается
        6 чипсов рубрик             29,69 px  ← свой пункт 2, у них ЕСТЬ фон
        2 summary по годам          34,34 px  ← свой пункт 3
     Правило написано по КЛАССАМ РАЗМЕТКИ, а не по перечню измеренных целей.

     ★ ПРОСВЕТ МЕЖДУ ПУНКТАМИ (`li{margin:0 0 8px}` из design.css) НЕ ТРОГАЕМ.
     Первая редакция его обнуляла ради экономии высоты — и это было откачено:
     вид пакет не меняет, а 8 px — часть текущего вида. */

  .okna-sitemap .okna-sitemap__list a{
    display:inline-flex;
    align-items:center;
    padding-block:12px;          /* (48 − 24,80)/2 = 11,60 → 12 */
    /* ★ ШИРИНА — ТРЕБОВАНИЕ НАРАВНЕ С ВЫСОТОЙ. Из 90 ссылок списка одна
       короче нормы: «VDR», коробка 30,73 px. Норма 44 двумерная.
       Текст остаётся прижат влево (justify-content по умолчанию flex-start).
       ★ ЧЕСТНО О ВИДИМОСТИ ПРИЁМА: у ЭТИХ целей фона нет — design.css:1746
       задаёт ссылке списка только `color` и `text-decoration`, заливки и
       рамки у неё не объявлено ни одним правилом, поэтому расширение зоны
       вправо на пустом месте глазом не видно. Там, где фон ЕСТЬ (чипсы
       рубрик, пункт 2), min-width не ставится вовсе — там он был бы виден. */
    min-width:var(--ok-tap-min,48px);
    /* страховка от выноса за край: строчный бокс не шире колонки списка.
       Приёмка требует, чтобы переполнение осталось 0. */
    max-width:100%;
  }

  /* Ссылка-заголовок региона. Фона нет (design.css:1741 — только `color`),
     самая короткая — 143 px, поэтому ширина не требуется, только высота. */
  .okna-sitemap .okna-sitemap__h3 a{
    display:inline-flex;
    align-items:center;
    padding-block:13px;          /* (48 − 23,75)/2 = 12,13 → 13 */
    max-width:100%;
  }

  /* ── 2. ЧИПСЫ РУБРИК — ОТДЕЛЬНОЕ ПРАВИЛО, ПОТОМУ ЧТО ЭТО ДЕКОР ────────────
     ★ ЭТО ИСПРАВЛЕНИЕ ПЕРВОЙ РЕДАКЦИИ, А НЕ ИСХОДНЫЙ ЗАМЫСЕЛ.
     Первая редакция затянула чипсы в общую группу «строчные ссылки без фона»
     и назначила им вид, которого D-198 не разрешал: у чипса ЕСТЬ заливка и
     скругление (design.css:1751 — `background`, `border-radius:20px`,
     `padding:4px 12px`). Он вырос 29,69 → 48 (+62 %), а радиус остался 20 при
     высоте 48 — пилюля превратилась в скруглённый прямоугольник, потому что
     половина высоты стала 24, а не 20.

     R1: форма пилюли сохраняется.
       · запас вертикальный (padding-block), горизонтальный не трогаем —
         12 px по бокам остаются как были;
       · радиус согласован с высотой раз и навсегда: `999px` браузер
         обрезает до половины высоты, то есть при 49,70 даёт ровно 24,85 —
         пилюля при ЛЮБОЙ высоте, без второго числа, которое разъедется;
       · min-width НЕ СТАВИТСЯ. Замер «до»: самый узкий чипс — «Технологии»,
         98,58 px, самый узкий из шести — 98,58; все шире нормы 44 вдвое.
         Ставить ширину значило бы раздуть видимую пилюлю без надобности. */
  .okna-sitemap .okna-sitemap__cats li a{
    padding-block:14px;          /* (48 − 21,70)/2 = 13,15 → 14 */
    border-radius:999px;
  }

  /* ── 3. <summary> ПО ГОДАМ ────────────────────────────────────────────────
     ★ СОГЛАСОВАНИЕ ОТЧЁТА С ФАКТОМ (замечание рецензии). Первая редакция
     ставила `min-height:48px`, и в отчёт ушло «48», а на странице выходило 56:
     design.css:1754 добавляет `padding:4px 0` сверх минимальной высоты.
     Здесь высота не объявляется вовсе — объявляется запас, и итог считается
     арифметикой: 26,35 + 11 + 11 = 48,35. Отчёт и факт сходятся по построению.
     `display:flex` и `align-items:center` у элемента уже свои (design.css:1754). */
  .okna-sitemap .okna-sitemap__year-sum{
    padding-block:11px;          /* (48 − 26,35)/2 = 10,83 → 11 */
  }

  /* ── 4. СТРАНИЦЫ ПАРТНЁРОВ ────────────────────────────────────────────────
     Ссылка на сайт партнёра в теле визитки. Замер «до» на ВСЕХ СЕМИ визитках,
     где она есть (finn-lamex, globalbus, ksb-bor, steklolyuks, vaytekh, vdr,
     volga-line): коробка 70,72…102,94 × 22 — по ширине все годны, по высоте
     негодны все семь. У mamedov-glass внешней ссылки нет (отрицательный
     контроль: правилу там нечего находить), у хаба /partnery/ ссылки лежат в
     `ul.okna-partner-list` и уже 57,19 px.

     ★★ ЗАПАС ЗДЕСЬ НЕ МЕНЯЕТ РАСКЛАДКУ — И ЭТО ГЛАВНОЕ ОТЛИЧИЕ ОТ СПИСКА.
     Содержимое визитки — штатный редактор (`the_content()`), текст правит
     владелец. Сделать ссылку inline-flex значило бы: владелец вставил ссылку
     в середину абзаца — строка стала 48 px и абзац разъехался. Сегодня это не
     рвётся только потому, что у всех семи ссылка стоит в своём абзаце.
     Поэтому здесь ссылка ОСТАЁТСЯ СТРОЧНОЙ: у строчного элемента
     вертикальный padding в высоту строки НЕ ВХОДИТ — раскладка абзаца не
     меняется ни на пиксель, — но в собственную коробку и в зону касания
     входит: 22 + 13 + 13 = 48.
     `position:relative` без смещений ставится ровно за одним: поднять зону
     ссылки над последующим блоком там, где запас с ним перекрывается, иначе
     нижние 13 px зоны забрал бы следующий по документу узел.

     ★ ЧЕГО ЭТОТ ПРИЁМ НЕ ДЕЛАЕТ, СКАЗАНО ПРЯМО: он не сужает СЕЛЕКТОР.
     Отличить `<p><a>…</a></p>` от `<p>Сайт: <a>…</a></p>` CSS не умеет —
     `:only-child` считает элементы и обе разметки принимает одинаково, то
     есть дал бы ложную уверенность, а не сужение. Скоуп сужен до ПРЯМОГО
     потомка (`> p > a`): ссылки внутри вложенных списков и цитат правило не
     трогает. Случай «ссылка в середине фразы» правилом охватывается — и
     безвреден по построению, потому что раскладка не меняется. */
  .okna-partner .okna-partner__content > p > a{
    padding-block:13px;          /* 22 + 13 + 13 = 48 */
    position:relative;
  }

  /* ── 5. ЧЕГО В ЭТОМ ЛИСТЕ НЕТ И ПОЧЕМУ ────────────────────────────────────

     ★ `a.okna-services__all` («Все услуги →», коробка 96,36×23,25 на /raboty/)
       ИЗЪЯТА. Первая редакция поднимала её только на «Наших работах» — то есть
       на одной поверхности из многих. Но это СКВОЗНОЙ компонент: разметку даёт
       `inc/services.php:56`, вид — одно правило `design.css:785`, блок
       инклюдится в десяти шаблонах (`blocks/services-list.php:4`). Подними её
       здесь — и на главной, услугах и 754 посадочных та же ссылка осталась бы
       23,25. Это ровно тот двойной стандарт, по которому в этом же пакете
       НЕ поднималась сквозная крошка «Главная»: «правка на одном шаблоне из
       тридцати шести раздробила бы компонент». Правило снято, цель отдана
       туда, где живут остальные (`W5-P02`, `ok-landing.css:143`), позицией в
       отчёте. Вместе с правилом с /raboty/ ушла и пустота +25 px, которую
       давал inline-flex внутри `.okna-services__head`.
       ★ Следствие названо прямо: на /raboty/ этот пакет НЕ ЧИНИТ НИЧЕГО, и
       лист туда больше не подключается (functions.php, гейт по двум шаблонам).

     ★ `.okna-sitemap__pager a/span` и `.okna-sitemap__soon a` УДАЛЕНЫ как
       мёртвые. Пагинация карты не печатается: `inc/sitemap.php:256` —
       `if ($total < 2) return ''`, а `okna_sitemap_current_page()` зажимает
       номер в [1..total], поэтому и ветка «Такой страницы карты нет»
       недостижима. Замер подтверждает: счётчики `pager`, `pagerCeli`, `soon`,
       `soonCeli` = 0 на всех замерах обеих меток. Первая редакция описывала
       эти узлы правилом и снабжала его числом «иначе текущая страница
       осталась бы 34px» — числа 34 для пагинации нет ни в одном файле улик
       (34,34 — это `summary`, другой элемент). Число, поданное как замер,
       обязано быть замером; непроверяемого числа в листе не осталось.
       ★ На будущее (позиция, не правка): если гео-раздел вырастет и
       пагинация появится, её цели (`min-width:40px`, `padding:9px 13px`,
       `font-size:14px`) окажутся ниже нормы касания. Это дефект будущего
       состояния, он не измерен и потому здесь не лечится. */
}
