/* Наши блоки на порталах — на ширину широких блоков Tilda (поля по 5 % с каждой стороны, то есть 90vw) на экранах от 1200 px.
   Подключается на каждой странице сборкой (tools/mirror.py → wide_css); разделы «Новости» получают его вместе с <head> главной.
   Блоки: новости на главной и в разделе (.pn), лента статей на главной ([data-portal-home-feed], tools/portal_fixes.py),
   вставные тексты (blocks.json — [data-portal-text]), карточки и строка «Инструменты» ([data-portal-tool]),
   страницы инструментов и обзор энциклопедии (main.kt).

   Масштаб как у Tilda (31.10.2026, просьба владельца): Zero-блоки с «upscale: window» Tilda увеличивает в
   ширина окна / 1200 раз (на 2000 px — в 1,667). На страницах с такими блоками наши блоки увеличиваются так же,
   иначе рядом с ними мелкие. --pz ставит скрипт в <head> (tools/mirror.py → wide_css) по той же формуле, что у Tilda;
   --pzk — масштаб этой страницы (1, если таких блоков на ней нет: каталог, породы, инструменты, новости).
   Под zoom ширина в vw тоже увеличивается, поэтому ширины делятся на --pzk. */
html { --pzk: 1; }
html:has(.t396__artboard[data-artboard-upscale="window"]) { --pzk: var(--pz, 1); }

@media (min-width: 1200px) {
  /* масштаб: только внешний наш блок, вложенные второй раз не увеличиваются */
  :is(.pn, [data-portal-text], [data-portal-tool], [data-portal-home-feed]):not(:is(.pn, [data-portal-text], [data-portal-tool], [data-portal-home-feed]) *) { zoom: var(--pzk); }

  /* новости: блок на главной, список раздела (страница статьи остаётся узкой — так удобнее читать) */
  html :is(#allrecords, body) .pn .kn-wrap,
  html :is(#allrecords, body) .pn .nl-hero,
  html :is(#allrecords, body) .pn .nl-grid { max-width: none; width: calc(90vw / var(--pzk)); margin-left: auto; margin-right: auto; padding-left: 0; padding-right: 0; box-sizing: border-box; }

  /* лента статей на главной: 4 карточки на всю ширину вместо 4 × 260 px */
  [data-portal-home-feed] .t-feed__container { max-width: none; width: calc(90vw / var(--pzk)); display: flex; flex-wrap: wrap; margin-left: auto; margin-right: auto; }
  [data-portal-home-feed] .t-feed__post.t-col { width: calc(25% - 40px); max-width: none; }
  [data-portal-home-feed] .t-feed__post-imgwrapper { height: auto; aspect-ratio: 13 / 10; }

  /* вставные тексты и карточки инструментов: на всю ширину, текст в две колонки */
  [data-portal-text] > .t-container,
  [data-portal-tool] > .t-container { max-width: none; width: calc(90vw / var(--pzk)); margin-left: auto; margin-right: auto; }
  [data-portal-text] .t-col.t-col_8,
  [data-portal-tool] .t-col.t-col_8 { width: 100%; max-width: none; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; }
  [data-portal-text] .t-text { column-count: 2; column-gap: 64px; }
  [data-portal-text] .t-text p { break-inside: avoid; }
  div[data-portal-tool][style*="border-top"] { padding-left: calc(5vw / var(--pzk)) !important; padding-right: calc(5vw / var(--pzk)) !important; }

  /* страницы инструментов и обзор энциклопедии */
  main.kt { max-width: none; width: calc(90vw / var(--pzk)); padding-left: 0; padding-right: 0; }
}
@media (min-width: 1600px) {
  /* 4 колонки в списке раздела новостей — где масштаба нет (на увеличенной странице сетка как на 1200 px) */
  html:not(:has(.t396__artboard[data-artboard-upscale="window"])) :is(#allrecords, body) .pn .nl-grid { grid-template-columns: repeat(4, 1fr); }
}
