/* ==========================================================
   Архивные страницы раздела «Знания» одного типа записи — /znaniya/playbooks,
   /znaniya/cases, /znaniya/research (archive-playbooks.php/archive-cases.php/
   archive-research.php → общий партиал templates/template-parts/hub-archive.php) —
   шапка .hub-head. Страница /znaniya (templates/znaniya.php) этой шапкой больше не
   пользуется: с 2026-10-21 там единая .ptitle, та же, что у /products (базовые правила
   .ptitle/.ptitle-bg/.ptitle-veil/.ptitle-in — css/claude-design-system.css, переключение
   обложки день/ночь — css/pub-body.css, см. inc/wp_enqueue.php). .type-tabs/.filters/подборка
   ниже в этом файле по-прежнему используются и на /znaniya, и на архивах одного типа записи.
   Значения — дословно из продакшен-CSS (dist/assets/site-bb5a6cf47c.css), .eyebrow/.lede
   уже есть в global.css, здесь только то, чего там не хватало.
   ========================================================== */

.hub-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:56px;
  align-items:start;margin-bottom:36px}
.hub-head h1{max-width:14ch}
.lede-hub{margin:18px 0 0;max-width:30em;font-size:18px;line-height:1.5;color:var(--ink);
  text-wrap:pretty}

/* Карточка «Спросите Jay» (.jay-card) справа от заголовка УДАЛЕНА 2026-10-05 (прямой запрос
   владельца) — была на /znaniya (templates/znaniya.php, шапка на тот момент — ещё .hub-head,
   см. верх файла) и на архивах одного типа записи (template-parts/hub-archive.php, тот же
   .hub-head — до сих пор). Правило ниже делает единственную оставшуюся колонку (.hub-head >
   div) шире на всю сетку, когда второй колонки больше нет — без этого правая колонка
   grid-шаблона (minmax(0,440px), фиксированный max-track — резервирует ширину независимо от
   наличия контента) осталась бы пустым местом справа. Правило завязано на :only-child, а не
   на новый модификатор-класс — поэтому ничего в разметке .hub-head менять не пришлось, кроме
   удаления самого .jay-card. Архив /products (archive-products.php) и страница /znaniya
   (templates/znaniya.php) этим правилом больше не затрагиваются — у обоих теперь своя шапка
   .ptitle (не .hub-head), см. верх файла.
   2026-10-21: обложка дня/ночи .hub-head-cover (была здесь у /znaniya) удалена вместе с
   переходом той страницы на .ptitle — .ptitle-bg со своими --ptitle-bg-image/-night занял её
   место, см. templates/znaniya.php. */
.hub-head > div:only-child{grid-column:1 / -1}

@media (max-width:1080px){
  .hub-head{grid-template-columns:1fr;gap:28px}
}

/* Вкладки "Тип материала" на /znaniya (.type-tabs/.ttab) — добавлены 2026-09-23, дословно из
   dist/znaniya/index.html. Стиль активной вкладки в dist держится на [aria-pressed="true"], а
   не на классе .on — разметка ставит оба атрибута ради верности исходнику, но красит именно
   aria-pressed, поэтому класс .on ничего не ломает и не требуется для внешнего вида.

   ⚠️ ПЕРЕСТИЛЕНО 2026-10-05 (прямой запрос владельца) «по аналогии с .chip/.frow» (секция
   «Фильтры» ниже по файлу) — та же форма (таблетка var(--r-pill), тот же масштаб
   padding/font-size), но НЕ те же САМЫЕ токены: .chip ниже по этому файлу всё ещё держится на
   легаси-токенах второго :root темы (--surface/--ink3/--line-strong/--blue-bright — см.
   global.css, второй :root, «БАЗОВЫЕ ТОКЕНЫ OCEAN» выше него уже не повторяются) — у НИХ нет
   варианта [data-theme="night"], ровно та же болезнь, что уже чинили у .jay-card/виджета Jay
   (templates/template-parts/card-ask-jay.php, коммит 54c65da, wavecity-page-rules.md §21.1) —
   трогать здесь .chip/.frow отдельно не просили, поэтому они не тронуты, но копировать их
   НЕ-ночные значения в .ttab заново значило бы внести тот же баг в ещё одно место. Ниже —
   только безопасные ocean-токены (:root + [data-theme="night"] в global.css), подобранные по
   СОВПАДАЮЩЕМУ дневному значению с тем, что было у .ttab/.chip:
     --surface (день #FFFFFF)  → --card   (день #FFFFFF, ночь #232120)
     --ink2/--ink3 (день #3A3733/#56524C) → --mid (день #56524C, ночь #CFC9BF) — ближайший
       безопасный аналог обоих, сам .chip как раз красит текст в --ink3.
     --line-strong (легаси, нет ночи) — заменён на color-mix от безопасных --ink/--line
       (тот же приём, что уже применён в card-ask-jay.css для --ask-button-hover-bg).
     #fff/rgba(255,255,255,...) на активной вкладке — заменены на --on-accent, тот же токен,
       что уже красит текст на фоне --blue в .jay-msg.from-me (claude-design-system.css) —
       единственный в кодовой базе, уже предназначенный именно для контраста поверх акцентного
       фона в обе стороны темы (день: тёмный --blue + светлый --on-accent; ночь: светлый --blue
       + тёмный --on-accent). */
.type-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:18px;
  border-bottom:1px solid var(--line)}
.ttab{font-size:15px;border-radius:var(--r-pill);padding:9px 16px;border:1px solid var(--line);
  background:var(--card);color:var(--mid);display:inline-flex;align-items:center;gap:6px;
  transition:background-color .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}
.ttab:hover{border-color:color-mix(in oklab,var(--ink) 18%,var(--line));color:var(--ink);
  text-decoration:none}
.ttab b{font-family:var(--mono);font-size:11px;font-weight:400;color:var(--muted)}
.ttab[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:var(--on-accent)}
.ttab[aria-pressed="true"] b{color:color-mix(in oklab,var(--on-accent) 72%,transparent)}

/* Секция "Фильтры" на разводящих страницах (archive-playbooks.php, начиная с 2026-09-24, потом
   и другие архивы через $args['show_filters']) — разметка изначально была дословно из
   dist/znaniya/playbooks/index.html (.filters/.filters-fold/.frow/.chip/.filter-state),
   рендерится PHP-функцией wavecity_hub_render_filters() (inc/hub-filters.php),
   интерактивность — js/hub-archive-page.js.
   .frow/.chip[aria-pressed] базово уже продублированы в css/pub-body.css (страница одного
   материала) и css/solutions-archive.css (/solutions) — ни один из этих файлов не подключается
   на hub-archive-страницах, поэтому здесь не дубликат, а необходимый набор для этого шаблона.

   Осознанное отступление от dist (2026-09-24, прямая просьба владельца): строки фасетов внутри
   .filters-fold теперь колонкой — заголовок ("РАЗМЕР КОМПАНИИ" и т.п.) занимает свою строку
   целиком, а чипы-варианты идут под ним отдельным flex-рядом (display:flex;flex-wrap:wrap;
   gap:4px на самом role="group"-контейнере чипов, не на .frow). Базовое .frow (гориз. ряд,
   gap:8px) оставлено для .active-strip — у той строки чипы «активных фильтров» идут БЕЗ
   заголовка, ей эта колоночная раскладка не нужна и не подходит; .filters-fold .frow
   переопределяет .frow только внутри свёрнутого блока фасетов. */
.filters{display:flex;flex-direction:column;gap:14px;margin:0 0 28px;padding:20px 0 24px;
  border-bottom:1px solid var(--line)}
.frow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.frow>b{font-family:var(--mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--muted);font-weight:400;min-width:120px}
.filters-fold .frow{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.filters-fold .frow>b{min-width:0}
.filters-fold .frow>span[role="group"]{display:flex;flex-wrap:wrap;gap:4px}
/* Зазор МЕЖДУ группами фильтра (.frow — прямые соседи внутри .filters-fold, сразу после
   <summary>) — без него группы визуально слипались (2026-09-24, прямая просьба владельца).
   +.frow, не просто margin-top на все .frow, — чтобы не добавлять лишний отступ сверху у самой
   первой группы сразу под <summary> (там уже есть margin-bottom:12px на .filters-fold[open]>summary). */
.filters-fold .frow + .frow{margin-top:16px}

/* ⚠️ ПЕРЕСТИЛЕНО 2026-10-05 (прямой запрос владельца) — то самое «потом», которое было
   анонсировано в комментарии у .ttab выше по файлу: .chip/.frow и остальные элементы секции
   «Фильтры» держались на легаси-токенах второго :root (--surface/--ink2/--ink3/--line-strong/
   --blue-bright/--blue-line/--blue-soft/--focus, см. global.css) без варианта [data-theme="night"] —
   та же болезнь, что уже чинили у .jay-card/виджета Jay (card-ask-jay.php, коммит 54c65da,
   wavecity-page-rules.md §21.1) и у пагинации подборки (podborka-block.css, §25). Ниже — только
   безопасные ocean-токены (:root + [data-theme="night"] в global.css), подобранные по тому же
   принципу и той же таблице соответствия, что уже применена у .ttab:
     --surface (день #FFFFFF)              → --card   (день #FFFFFF, ночь #232120)
     --ink2/--ink3 (день #3A3733/#56524C)   → --mid    (день #56524C, ночь #CFC9BF) — ближайший
       безопасный аналог обоих, тот же выбор, что уже сделан для .ttab.
     --line-strong (легаси, нет ночи)       → color-mix(in oklab,var(--ink) 18%,var(--line)) —
       тот же приём затемнения обводки на hover, что уже используют .ttab:hover/card-ask-jay.css.
     #fff на активном чипе                  → --on-accent (тот же токен контраста поверх --blue,
       что и у .ttab[aria-pressed="true"]).
     --blue-bright (hover у активного чипа, легаси, нет ночи) — нет безопасного токена с готовым
       «ярче-синим» значением на обе темы, поэтому вместо отдельного цвета берём
       color-mix(in oklab,var(--blue) 82%,var(--on-accent) 18%) — в дне подмешивает немного
       белого (--on-accent дня) к --blue, в ночи — немного тёмного (--on-accent ночи), т.е. в обе
       стороны темы даёт заметный, но некритичный сдвиг тона при наведении, без отдельного
       неночного токена.
     --blue-line (обводка .share, легаси, нет ночи) → color-mix(in oklab,var(--blue) 45%,transparent) —
       полупрозрачная синяя обводка, проступает поверх --card в обе стороны темы (тот же приём,
       что и у --line-strong выше).
     --blue-soft (фон .share:hover, легаси, нет ночи) → color-mix(in oklab,var(--blue) 12%,var(--card)) —
       лёгкий синий оттенок поверх текущего фона карточки, а не фиксированный светлый цвет.
     --focus (аутлайн фокуса .filters-fold>summary, легаси, алиас --blue-400, нет ночи) →
       --accent — тот же безопасный токен, которым уже красится глобальный :focus-visible
       (global.css, базовые правила).
   Классы/разметка не менялись (прямое требование владельца) — переписаны только значения. */
.chip{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--r-pill);
  border:1px solid var(--line);background:var(--card);color:var(--mid);font-size:15px;line-height:1.4;
  transition:background-color .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}
.chip:hover{border-color:color-mix(in oklab,var(--ink) 18%,var(--line));color:var(--ink);
  text-decoration:none}
.chip[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:var(--on-accent)}
.chip[aria-pressed="true"]:hover{background:color-mix(in oklab,var(--blue) 82%,var(--on-accent) 18%);
  border-color:color-mix(in oklab,var(--blue) 82%,var(--on-accent) 18%);color:var(--on-accent)}
.filter-state{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--muted)}
.count b{color:var(--ink);font-weight:600}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.active-strip{gap:8px}
.active-strip>b{min-width:auto;margin-right:2px}
.chip.on{background:var(--blue);border-color:var(--blue);color:var(--on-accent)}
.chip.on:hover{background:color-mix(in oklab,var(--blue) 82%,var(--on-accent) 18%);
  border-color:color-mix(in oklab,var(--blue) 82%,var(--on-accent) 18%);color:var(--on-accent);
  text-decoration:none}
.chip.on b{font-weight:400;opacity:.75;margin-left:2px}
.share{font-family:var(--sans);font-size:14px;color:var(--blue);background:transparent;
  border:1px solid color-mix(in oklab,var(--blue) 45%,transparent);border-radius:var(--r-pill);
  padding:5px 13px;cursor:pointer}
.share:hover{background:color-mix(in oklab,var(--blue) 12%,var(--card))}
.filters-fold{margin:0 0 4px}
.filters-fold>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:baseline;gap:9px;
  padding:7px 14px;border:1px solid var(--line);border-radius:99px;font-size:14px;color:var(--mid)}
.filters-fold>summary::-webkit-details-marker{display:none}
.filters-fold>summary:hover{border-color:color-mix(in oklab,var(--ink) 18%,var(--line))}
.filters-fold>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.filters-fold[open]>summary{margin-bottom:12px}
.fold-hint{font-size:12px;color:var(--muted)}
/* Мобильный @media(max-width:1080px){.frow>b{min-width:100%}} из dist больше не нужен — он
   решал проблему старой горизонтальной раскладки (заголовку не хватало места рядом с чипами
   на узком экране); теперь .filters-fold .frow всегда колонкой (см. правило выше по файлу),
   заголовок и так на своей строке при любой ширине. */
