/*
Theme Name: Datum Review
Theme URI: https://datumreview.com
Description: Child theme of GeneratePress for Datum Review — data broadsheet. Tokens: team-11 (Kimi branch A).
Author: Elanvale Ltd
Template: generatepress
Version: 1.0.0
*/

:root{
  --paper:#F8F9F8; --surface:#FFFFFF; --surface-2:#EFF2F1;
  --ink:#12181A; --ink-2:#2E3A3D; --mute:#5B686C;
  --line:#DFE4E3; --line-strong:#BFC9C7; --rule-hair:#D5DBD9;
  --accent:#0E5C60; --accent-deep:#093F42;
  --series-1:#0E5C60; --series-2:#3A7F81; --series-3:#63A0A0; --series-4:#85B8B6; --series-5:#A8CCC9;
  --alert:#B3541E; --sponsored:#EEF1EF;
  --measure:40rem; --grid-max:75rem;
  /* волна 2: петрольный футер (панч-лист F) */
  --footer-bg:#0B1D1F; --footer-ink:#C9D4D2; --footer-link:#E8EEEC; --footer-head:#7FA8A4;
}

html{font-size:100%}
body{
  background:var(--paper); color:var(--ink);
  font-family:'Source Serif 4',Georgia,serif; font-size:1.0625rem; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.grid-container{max-width:var(--grid-max)}
a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--accent-deep)}
img{max-width:100%;height:auto}
/* заголовки-ссылки чернилами, акцент только на ховере; инлайн-ссылки в теле статьи приглушены */
/* !important нужен: у wp-block-post-title WP-ядро ставит text-decoration:inherit через
   .wp-block-post-title :where(a) — :where() даёт 0 специфичности классу, но сам класс всё равно бьёт h2 a */
h1 a,h2 a,h3 a,h4 a{color:var(--ink) !important;text-decoration:none !important}
h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover{color:var(--accent) !important}
.entry-content a{color:var(--ink);text-decoration:underline;text-decoration-color:rgba(14,92,96,.4);text-underline-offset:3px;text-decoration-thickness:1px}
.entry-content a:hover{color:var(--accent);text-decoration-color:var(--accent)}

h1,h2,h3,h4,h5,h6{
  font-family:'Inter',system-ui,sans-serif; color:var(--ink);
  font-weight:700; letter-spacing:-.02em; margin:0 0 .5em;
}
h1{font-size:2.375rem;line-height:1.1}
h2{font-size:1.75rem;line-height:1.18}
h3{font-size:1.375rem;font-weight:650}
h4{font-size:1.125rem;font-weight:650}
@media(max-width:768px){h1{font-size:1.7rem}h2{font-size:1.4rem}}

/* ---------- masthead: nameplate слева, номер справа ---------- */
.site-header{background:var(--paper);border-bottom:2px solid var(--ink);padding:1.1rem 0 .8rem}
.inside-header{display:flex;align-items:baseline;justify-content:space-between}
.main-title{
  font-family:'Inter',system-ui,sans-serif !important;font-weight:700 !important;
  letter-spacing:-.03em;font-size:1.875rem !important;margin:0;
}
.main-title a{color:var(--ink) !important;text-decoration:none}
.site-description{
  font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--mute);
  text-transform:uppercase;letter-spacing:.1em;margin:0;
}
.main-navigation{background:transparent;border-bottom:1px solid var(--line)}
.main-navigation .inside-navigation{position:relative; padding-right:10.5rem}
.main-navigation .main-nav ul li a{
  font-family:'Inter',sans-serif;font-size:.75rem;text-transform:uppercase;
  letter-spacing:.12em;color:var(--ink-2);font-weight:600;
}
.main-navigation .main-nav ul li:hover>a,.main-navigation .main-nav ul li.current-menu-item>a{color:var(--accent);background:transparent}

/* language switcher — правый край навигационной палубы; IBM Plex Mono по токену Datum.
   inside-navigation получает padding-right (см. выше) — резервирует полосу под переключатель,
   чтобы плавающие пункты меню переносились ДО того, как упрутся в него на средних ширинах.
   top:0 + фиксированная высота 60px (= line-height пункта меню в ядре GeneratePress) держат
   переключатель на уровне ПЕРВОЙ строки меню, даже если пункты переносятся на вторую. */
.forge-langs{
  position:absolute; top:0; right:.625rem; height:60px;
  display:flex; align-items:center; gap:.3rem;
  font-family:'IBM Plex Mono',monospace; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase;
}
.forge-langs a{color:var(--mute);text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent}
.forge-langs a.is-active{color:var(--ink);border-bottom-color:var(--accent)}
.forge-langs span{color:var(--line-strong)}
@media (max-width:768px){
  .main-navigation .inside-navigation{padding-right:0}
  .forge-langs{
    position:static; height:auto; justify-content:center;
    width:100%; padding:.5rem 0; margin:0;
  }
}

/* ---------- kicker с номером DATUM-NNN ---------- */
.forge-kicker{
  font-family:'IBM Plex Mono',monospace;font-size:.75rem;text-transform:uppercase;
  letter-spacing:.08em;color:var(--accent);font-weight:500;margin:0 0 .75rem;display:block;
}
.forge-standfirst{
  font-size:1.25rem;line-height:1.45;color:var(--ink-2);font-style:italic;
  margin:0 0 1.75rem;max-width:min(var(--measure),100%);
}
.forge-byline{
  font-family:'Inter',sans-serif;font-size:.8125rem;color:var(--mute);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:.6rem 0;margin:0 0 2rem;
}
/* GP печатает пустой <footer class="entry-meta"> после статьи (мета-айтемы у нас отключены
   фильтрами generate_*_entry_meta_items) — раньше он делил CSS-правило с .forge-byline и
   рисовал пару линеек-сирот вокруг пустоты (панч-лист D2). Убираем сам элемент. */
.entry-meta{display:none}
/* байлайн: имя-ссылка на хаб автора — цвет как у меты, не акцент, hairline-подчёркивание */
.forge-byline a{color:inherit;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:2px}
.forge-byline a:hover{color:var(--ink);text-decoration-color:var(--ink)}

/* ---------- статья: 7/12 + rail ---------- */
.entry-content{max-width:min(var(--measure),100%)}
.entry-content p{margin:0 0 1.3rem}
.entry-content h2{margin:2.5rem 0 .75rem}

/* ---------- chart / figure ---------- */
figure{margin:2rem 0}
figure svg{width:100%;height:auto}
figcaption{
  font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--mute);
  border-top:1px solid var(--line);padding-top:.5rem;margin-top:.5rem;
}

/* ---------- таблица как первоклассный элемент ---------- */
.entry-content table{width:100%;border-collapse:collapse;margin:2rem 0;font-size:.9375rem}
/* остальные свойства th/td задаёт канон-блок ниже (thead th/tbody td: он специфичнее и переопределяет) —
   text-align:left нигде дальше не переобъявлен, поэтому держим его тут отдельно */
.entry-content th{text-align:left}
/* моно — ТОЛЬКО числовым колонкам (редактор помечает их выравниванием вправо);
   в таблице без чисел моноширинного шрифта быть не должно вовсе */
.entry-content td.has-text-align-right,.entry-content th.has-text-align-right,
.entry-content td[align="right"],.entry-content th[align="right"]{
  font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;text-align:right;
}
/* только горизонтальные линейки, как у FT: никаких вертикальных границ и зебры */
.entry-content table,.entry-content table td,.entry-content table th{border-left:0;border-right:0}
.entry-content tbody tr:nth-child(even) td{background:transparent}

blockquote{
  border-left:2px solid var(--accent);margin:2rem 0;padding-left:1.5rem;
  font-size:1.1875rem;line-height:1.45;color:var(--ink-2);
}
dl dt{font-weight:600;margin-top:1rem}
dl dd{margin:.25rem 0 0;color:var(--ink-2)}

/* ---------- карточки ---------- */
.forge-lead{border-bottom:1px solid var(--line-strong);padding-bottom:2rem;margin-bottom:2rem}
.forge-row{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;border-bottom:1px solid var(--line);padding-bottom:2rem;margin-bottom:2rem}
.forge-compact{border-bottom:1px solid var(--line);padding:.9rem 0}
@media(max-width:768px){.forge-row{grid-template-columns:1fr;gap:1.5rem}}

/* ---------- sponsored ---------- */
.forge-sponsored{background:var(--sponsored);padding:1.25rem 1.5rem;margin:0 0 2rem;border-left:3px solid var(--ink)}
.forge-chip{
  display:inline-block;background:var(--ink);color:var(--paper);font-family:'Inter',sans-serif;
  font-size:.6875rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;
  padding:.25rem .6rem;margin-bottom:.5rem;
}
.forge-sponsored p{font-size:.875rem;color:var(--ink-2);margin:0}

/* ---------- футер: петрольная гамма (панч-лист F) ---------- */
.site-footer,.site-info{background:var(--footer-bg);color:var(--footer-ink)}
.site-footer{border-top:2px solid var(--accent)}
.site-info{font-size:.8125rem;padding:1rem 0}
.site-info a,.site-footer a{color:var(--footer-link);text-decoration:underline}
.forge-imprint{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;max-width:var(--grid-max);margin:0 auto}
.forge-imprint h5{
  font-family:'IBM Plex Mono',monospace;color:var(--footer-head);font-size:.6875rem;
  text-transform:uppercase;letter-spacing:.14em;margin:0 0 .75rem;
}
.forge-imprint ul{list-style:none;margin:0;padding:0}
.forge-imprint li{margin-bottom:.35rem}
@media(max-width:768px){.forge-imprint{grid-template-columns:1fr 1fr;gap:1.5rem}}

*{box-shadow:none !important}
.wp-block-button__link,button,input[type=submit]{border-radius:0;background:var(--ink);font-family:'Inter',sans-serif;letter-spacing:.08em;text-transform:uppercase;font-size:.8125rem}

/* ---------- хаб человека: досье ---------- */
.forge-hub{max-width:48rem;margin:0 auto;padding:2.5rem 0 4rem}
.forge-hub-head{margin:0 0 1.5rem}
.forge-hub-head.has-portrait{display:grid;grid-template-columns:180px minmax(0,1fr);gap:1.5rem;align-items:start}
.forge-hub-head.has-portrait .forge-hub-ident{order:2}
.forge-hub-portrait{margin:0;order:1}
.forge-hub-portrait img{width:180px;height:180px;object-fit:cover;filter:grayscale(1) contrast(1.04);border:1px solid var(--rule-hair)}
.forge-hub-name{font-family:'Inter',sans-serif;font-size:1.875rem;font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0 0 .35rem}
.forge-hub-beat{font-size:1.0625rem;line-height:1.5;color:var(--ink-2);margin:0 0 .35rem}
.forge-hub-role{font-family:'IBM Plex Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0}
.forge-hub-bio{max-width:40rem}
.forge-credentials{border-top:1px solid var(--line);margin:1.5rem 0 0;padding-top:1rem;max-width:40rem}
.forge-credentials dt{font-family:'Inter',sans-serif;font-size:.6875rem;text-transform:uppercase;letter-spacing:.12em;color:var(--mute);margin-top:.75rem}
.forge-credentials dd{margin:.15rem 0 0;color:var(--ink-2)}
.forge-hub-links{margin:1.5rem 0 0;font-family:'IBM Plex Mono',monospace;font-size:.75rem}
.forge-hub-links a{margin-right:1rem;white-space:nowrap}
.forge-hub-rule{border:0;border-top:2px solid var(--ink);margin:2rem 0 1.25rem}
.forge-hub-section{font-family:'Inter',sans-serif;font-size:1.125rem;margin:0 0 1rem}
.forge-hub-corpus{list-style:none;margin:0;padding:0}
.forge-hub-item{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;border-bottom:1px solid var(--line);padding:.9rem 0}
.forge-hub-date{font-family:'IBM Plex Mono',monospace;font-size:.8125rem;color:var(--mute);font-variant-numeric:tabular-nums}
.forge-hub-item h3{font-size:1.125rem;line-height:1.3;margin:0 0 .25rem}
.forge-hub-dek{color:var(--ink-2);font-size:.9375rem;margin:0}
.forge-hub-empty{font-size:.8125rem;color:var(--mute);margin:0}
.forge-hub-editorial{margin-top:2rem;border-top:1px solid var(--line-strong);padding-top:1.25rem}
@media(max-width:768px){.forge-hub-head.has-portrait{grid-template-columns:1fr}.forge-hub-item{grid-template-columns:1fr;gap:.25rem}}

.forge-process-note{border-top:1px solid var(--line);margin-top:2.5rem;padding-top:1rem}
.forge-process-note p{font-size:.8125rem;color:var(--mute);margin:0 0 .35rem;font-style:italic}

/* ---------- индекс людей: карточка с портретом ---------- */
.forge-people-index{list-style:none;margin:2rem 0 0;padding:0}
.forge-people-item{display:grid;grid-template-columns:120px minmax(0,1fr);gap:1.5rem;align-items:start;
  border-bottom:1px solid var(--line);padding:1.5rem 0}
.forge-people-photo img{width:120px;height:120px;object-fit:cover;display:block;
  filter:grayscale(1) contrast(1.04);border:1px solid var(--line-strong)}
.forge-people-photo.is-empty{display:block;width:120px;height:120px;background:var(--surface-2);border:1px solid var(--line)}
.forge-people-item h3{margin:0 0 .35rem;font-size:1.5rem;line-height:1.2}
.forge-people-beat{margin:0 0 .35rem;color:var(--ink-2)}
.forge-people-role{margin:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--mute)}
@media(max-width:600px){.forge-people-item{grid-template-columns:84px minmax(0,1fr);gap:1rem}
  .forge-people-photo img,.forge-people-photo.is-empty{width:84px;height:84px}
  .forge-people-item h3{font-size:1.25rem}}


/* ---------- колонка чтения по центру: текст прижимался к левому краю ---------- */
.entry-header,.entry-content,.forge-byline,.forge-standfirst,.forge-kicker,.forge-process-note{
  margin-left:auto;margin-right:auto;
}
.entry-content>*{max-width:none}
.inside-article,.no-sidebar .inside-article{padding-left:0;padding-right:0}
@media(max-width:768px){.grid-container{padding-left:20px;padding-right:20px}}

/* ссылки в тёмном подвале должны читаться: без подчёрка в покое, hairline-подчёрк на ховере */
.site-footer a,.forge-imprint a{color:var(--footer-link) !important;text-decoration:none}
.site-footer a:hover,.forge-imprint a:hover{text-decoration:underline;text-decoration-color:var(--footer-link)}
.site-info a{color:var(--footer-link) !important}

.entry-header,.forge-byline,.forge-standfirst,.forge-kicker,.forge-process-note{max-width:min(40rem,100%)}

/* Главная — полоса выпуска, а не колонка чтения. Мера 40rem душила lead 58/42 до 640px и
   оставляла правую половину экрана пустой (панч-лист #12). У статей мера остаётся. */
.home .entry-content{max-width:none}
.home .entry-content>p{max-width:min(40rem,100%)}   /* нижняя строка со ссылками — по мере */
.home .forge-kicker{max-width:none;margin-left:0;margin-right:0}


/* ---------- страховка от горизонтального выезда ---------- */
html,body{max-width:100%}
.entry-content img,.entry-content iframe,.entry-content pre,.entry-content table{max-width:100%}
.forge-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:768px){
  .forge-hub,.forge-people-index{max-width:100%}
  .forge-kicker{letter-spacing:.08em}
  .forge-stat .label{letter-spacing:.06em}
}
/* кнопка меню на мобильном была тёмной на тёмном */
.menu-toggle,.mobile-menu-control-wrapper .menu-toggle{color:var(--ink) !important;background:transparent !important}
.menu-toggle .gp-icon,.menu-toggle span{color:var(--ink) !important}

/* ================= правки по визуальному разбору команды ================= */

/* бумага издания монолитна: белый бокс контента на кремовом фоне выдавал шаблон */
.site-content,.content-area,.inside-article,article,.entry-content,.page .inside-article{background:transparent}
body,html{background:#F8F9F8}

/* футер прижат к низу: #page/.site (один и тот же узел) держали min-height:100vh, но оба .site-footer —
   его СОСЕДИ, не потомки, поэтому футер оставался за краем экрана. Флекс — на body, общем родителе. */
body{display:flex;flex-direction:column;min-height:100vh}
#page{display:flex;flex-direction:column;flex:1 0 auto}
/* Побочный эффект флекса на body: #page стал флекс-элементом, а у флекс-элемента auto-margins
   (они у .grid-container) ОТКЛЮЧАЮТ stretch — контейнер схлопывался до fit-content. На любой
   странице уже 1180px (архив: 960px) вся полоса уезжала к центру и не совпадала с шапкой.
   width:100% возвращает растяжку; max-width + auto-margins продолжают центрировать.
   box-sizing обязателен: у .grid-container на узком экране появляется padding 20px, и при
   content-box width:100% давал 540px при вьюпорте 500 — горизонтальный вылет. */
body>#page{width:100%;box-sizing:border-box}
.site-content{flex:1 0 auto}
.site-footer,.site-info{flex-shrink:0}

/* буквица — привилегия первого абзаца СТАТЬИ, на служебных страницах рвала слова */
.page .entry-content>p:first-of-type::first-letter,
.archive .entry-content>p:first-of-type::first-letter,
.author .entry-content>p:first-of-type::first-letter{
  float:none;font-size:inherit;line-height:inherit;padding:0;font-weight:inherit;
}

/* активный пункт меню: чёрная плашка была дефолтом движка. Реальный DOM даёт current-menu-parent/
   current-post-parent на архивах рубрики (не только current-menu-item) — покрываем всё семейство. */
.main-navigation .main-nav ul li[class*="current-menu-"]>a,
.main-navigation .main-nav ul li[class*="current-post-"]>a,
.main-navigation .main-nav ul li.current_page_item>a{
  background:transparent !important;color:#0E5C60 !important;
  box-shadow:inset 0 -2px 0 #0E5C60;
}

/* две линейки с ролями вместо трёх случайных */
.rule-hairline,hr.wp-block-separator{border:0;border-top:1px solid #DFE4E3;margin:2rem 0}
.rule-heavy{border:0;border-top:2px solid #12181A;margin:2.5rem 0}

/* выходные данные в копирайте */
.forge-imprint-line{display:block;margin-top:.35rem;color:rgba(201,212,210,.55);font-size:.75rem}

/* блок внешних профилей вместо ряда голых доменов */
.forge-elsewhere{margin:1.5rem 0 0}
.forge-elsewhere-label{display:block;font-size:.6875rem;text-transform:uppercase;letter-spacing:.12em;color:#8A8378;margin-bottom:.35rem}
.forge-hub-links{margin:0;font-size:.9375rem;text-transform:none;letter-spacing:0}
.forge-hub-links a{margin-right:0;white-space:nowrap}
.forge-sep{color:#B9B2A5}

/* шапка хаба (панч-лист E): фото 180px — не марка; имя/дек/роль прижаты к низу фото, не к верху */
.forge-hub-head.has-portrait{align-items:end}
.forge-hub-head.has-portrait .forge-hub-ident{padding-top:0}

/* логотип на узком экране обрезался по правому краю */
.main-title{font-size:clamp(1.35rem,6.4vw,2.25rem) !important}
@media(max-width:600px){
  .main-title{letter-spacing:.03em !important}
  .forge-hub-portrait img{max-height:62vw;object-fit:cover;object-position:top center}
}


/* ---------- таблица: канон FT/Economist ---------- */
.entry-content table{font-size:.9375rem;line-height:1.45;border-top:2px solid var(--ink);margin:2.25rem 0 .5rem}
.entry-content thead th{
  font-family:'Inter',sans-serif;font-size:.6875rem;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--mute);
  padding:.55rem 2rem .55rem 0;border-bottom:1px solid var(--line-strong);
}
.entry-content tbody td{padding:.85rem 2rem .85rem 0;vertical-align:top;border-bottom:1px solid var(--line)}
.entry-content tbody tr:last-child td{border-bottom:1.5px solid var(--ink)}
/* первая колонка — ось чтения */
.entry-content tbody td:first-child{font-family:'Inter',sans-serif;font-weight:600;font-size:.875rem;color:var(--ink)}
.entry-content th:last-child,.entry-content td:last-child{padding-right:0}
.entry-content table+p>em:first-child,.forge-source{
  display:block;font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--mute);margin:.5rem 0 2rem;
}

/* ---------- врезка-число: показатель, а не цитата ---------- */
.forge-stat{
  border-left:0;border-top:3px solid var(--accent);
  padding:1rem 0 1.1rem;margin:2.5rem 0;
}
.forge-stat .num{
  font-family:'IBM Plex Mono',monospace;font-size:4rem;font-weight:500;
  line-height:.95;color:var(--ink);display:block;font-variant-numeric:tabular-nums;
}
/* моноширинный "." и "%" держат полную ширину цифры-ячейки — вручную сжимаем их разметкой
   <span class="sep">.</span>/<span class="pct">%</span>, letter-spacing тут не помогает (буквы тоже разъедет) */
.forge-stat .num .sep{display:inline-block;margin:0 -.16em 0 -.1em}
.forge-stat .num .pct{display:inline-block;margin-left:-.06em}
.forge-stat .label{
  display:block;font-family:'Source Serif 4',serif;font-size:1.0625rem;line-height:1.4;
  text-transform:none;letter-spacing:0;color:var(--ink-2);font-weight:400;margin-top:.5rem;max-width:32rem;
}
.forge-stat .src{
  display:block;font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--mute);
  border-top:1px solid var(--line);margin-top:.9rem;padding-top:.5rem;
}
@media(max-width:600px){.forge-stat .num{font-size:2.75rem}.forge-stat .label{font-size:1rem}}

/* методология — отбитая сноска в языке линеек дома (2px teal top-rule рифмуется со stat-каллаутом) */
.entry-content h2#methodology,.entry-content h2:last-of-type+dl{font-size:1.125rem}
.entry-content dl{
  background:#F4F6F5;border-top:2px solid var(--accent);
  padding:1.25rem 1.5rem;margin:2rem 0;font-size:.9375rem;
}
.entry-content dl dt{font-family:'Inter',sans-serif;font-size:.6875rem;text-transform:uppercase;letter-spacing:.1em;color:var(--mute);font-weight:600;margin-top:1rem}
.entry-content dl dt:first-child{margin-top:0}
.entry-content dl dd{margin:.3rem 0 0;color:var(--ink-2);line-height:1.5}

/* flex-потомки по умолчанию не сжимаются ниже min-content — из-за этого таблица
   распирала всю страницу и текст обрезался на мобильном. Разрешаем сжатие. */
.site,#page{min-width:0}
.site>*,#page>*,.site-content,.content-area,.inside-article,.entry-content{min-width:0}
.entry-content>*{min-width:0;max-width:100%}

/* ================= волна 2: главная — афиша выпуска (панч-лист B/12) ================= */

.forge-home-lead{display:grid;grid-template-columns:58fr 42fr;gap:48px;align-items:start;padding-bottom:.5rem}
.forge-home-lead-title{
  font-family:'Inter',sans-serif;font-weight:600;font-size:2.625rem;line-height:1.15;
  letter-spacing:-.02em;margin:.85rem 0 .85rem;
}
.forge-home-lead-title a{text-decoration:none !important}
.forge-home-lead-standfirst{
  font-family:'Source Serif 4',serif;font-style:italic;font-size:1.1875rem;line-height:1.5;
  color:var(--ink-2);margin:0 0 1rem;max-width:34rem;
}
.forge-home-lead-date{font-family:'IBM Plex Mono',monospace;font-size:.8125rem;color:var(--mute);margin:0}
.forge-home-lead-visual{display:block;text-decoration:none !important;color:inherit}
.forge-home-lead-visual .forge-stat{margin:0;transition:border-top-color .15s ease}
.forge-home-lead-visual:hover .num{color:var(--accent)}
/* врезка-число дома чуть компактнее полноразмерной статейной версии — она делит полосу с текстом */
.forge-home-lead-visual .forge-stat{border-top-width:2px}
.forge-home-lead-visual .forge-stat .num{font-size:3.5rem}
.forge-home-lead-visual .forge-stat .label{font-family:'Source Serif 4',serif;font-size:.9375rem}
.forge-home-lead-visual .forge-stat .src{font-size:.6875rem}
@media(max-width:768px){.forge-home-lead{grid-template-columns:1fr;gap:1.75rem}}

.forge-home-people{margin:.25rem 0}
.forge-home-people-row{display:flex;align-items:center;gap:1.25rem}
.forge-home-people-photo{
  width:72px;height:72px;object-fit:cover;flex:0 0 72px;
  filter:grayscale(1) contrast(1.04);border:1px solid var(--rule-hair);
}
.forge-home-people-text{margin:0;font-size:1.0625rem;line-height:1.45;max-width:42rem}
.forge-home-people-text a{color:var(--ink);text-decoration:none}
.forge-home-people-text a:hover{color:var(--accent)}
.forge-home-people-text .arrow{color:var(--accent);margin-left:.15rem}
@media(max-width:600px){.forge-home-people-photo{width:56px;height:56px;flex-basis:56px}}

.forge-home-datasets{font-family:'Source Serif 4',serif;font-size:1.0625rem;line-height:1.5;color:var(--ink-2);margin:.25rem 0}

/* ================= индексный список: лента главной И архив рубрики =================
   Один компонент на двух потребителях (лента выпуска + /category/*), чтобы полоса читалась
   одинаково: ISO-дата моно слева, заголовок Inter 600, дек серифом, hairline между строками.
   Для аналитического издания честнее карточек — строка = запись в реестре. */

.forge-index-head{
  font-family:'IBM Plex Mono',monospace;font-size:.75rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.12em;margin:0 0 .75rem;
}
/* h2 a глобально прибит к чернилам через !important — рубрика живёт акцентом, бьём тем же весом */
.forge-index-head,.forge-index-head a{color:var(--accent) !important;text-decoration:none !important}
.forge-index-head a:hover{color:var(--accent-deep) !important}

.forge-index{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.forge-index-item{
  display:grid;grid-template-columns:120px minmax(0,1fr);gap:1.5rem;align-items:baseline;
  border-bottom:1px solid var(--line);padding:1.05rem 0;
}
.forge-index-date{
  font-family:'IBM Plex Mono',monospace;font-size:.8125rem;color:var(--mute);
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.forge-index-title{
  font-family:'Inter',sans-serif;font-weight:600;font-size:1.125rem;line-height:1.3;
  letter-spacing:-.01em;margin:0 0 .3rem;
}
.forge-index-title a{color:var(--ink) !important;text-decoration:none !important}
.forge-index-title a:hover{color:var(--accent) !important}
.forge-index-dek{
  font-family:'Source Serif 4',serif;font-size:.9375rem;line-height:1.5;
  color:var(--ink-2);margin:0;max-width:46rem;
}
@media(max-width:600px){
  .forge-index-item{grid-template-columns:1fr;gap:.35rem}
  .forge-index-title{font-size:1.0625rem}
}

/* архив рубрики: шапка полосы и колонка контента по левому краю (GP центрирует .entry-content
   через общее правило меры — на архиве это давало плавающую колонку) */
.forge-archive{padding:2.25rem 0 3.5rem}
.forge-archive-head{border-bottom:2px solid var(--ink);margin:0 0 1.75rem;padding-bottom:.9rem}
.forge-archive-title{font-size:2.125rem;line-height:1.12;margin:0}
.forge-archive-dek{
  font-family:'Source Serif 4',serif;font-size:1.0625rem;line-height:1.5;
  color:var(--ink-2);margin:.6rem 0 0;max-width:40rem;
}
.forge-archive-count{
  font-family:'IBM Plex Mono',monospace;font-size:.75rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--mute);margin:.55rem 0 0;
}
/* шапка архива уже закрыта 2px-линейкой — верхний hairline списка давал двойную линейку
   (дефект из панч-листа). На главной border-top списка нужен: там рубрика-лейбл без своей линейки. */
.forge-archive .forge-index{margin:0;border-top:0}
.forge-archive-nav{margin:2rem 0 0;font-family:'IBM Plex Mono',monospace;font-size:.8125rem}
.forge-archive-empty{color:var(--mute);margin:0}
@media(max-width:768px){.forge-archive-title{font-size:1.6rem}}

/* ================= волна 2: первый график издания (панч-лист C/26) ================= */
.forge-chart{margin:2rem 0}
.forge-chart svg{width:100%;height:auto;display:block}
.forge-chart-head{margin:0 0 .75rem}
/* forge-core перепроверяет контент через DOMDocument, когда в статье есть таблица (классификатор
   числовых колонок) — его HTML4-парсер не знает тег svg и оборачивает его в безымянный <p>,
   который иначе унаследовал бы margin-bottom от .entry-content p. Гасим этот параграф явно. */
.forge-chart-head+p{margin:0}
.forge-chart-title{font-family:'Inter',sans-serif;font-weight:600;font-size:1.0625rem;color:var(--ink);margin:0 0 .2rem;line-height:1.35}
.forge-chart-sub{font-family:'Inter',sans-serif;font-size:.875rem;color:var(--mute);margin:0}
.forge-chart-source{
  display:block;font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--mute);
  border-top:1px solid var(--line);margin-top:.75rem;padding-top:.5rem;
}

/* ================= волна 2: хвост статьи — автор-панель (панч-лист D/15) ================= */
.forge-author-panel{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin:1.5rem 0 2.5rem}
.forge-author-panel-photo{
  width:56px;height:56px;object-fit:cover;flex:0 0 56px;
  filter:grayscale(1) contrast(1.04);border:1px solid var(--rule-hair);
}
.forge-author-panel-body{flex:1 1 auto;min-width:12rem}
.forge-author-panel-name{margin:0;font-family:'Inter',sans-serif;font-weight:600;font-size:1rem}
.forge-author-panel-name a{color:var(--ink);text-decoration:none}
.forge-author-panel-name a:hover{color:var(--accent)}
.forge-author-panel-role{margin:.2rem 0 0;font-size:.8125rem;color:var(--mute)}
/* специфичность .entry-content a (класс+тег) выше одного класса — поднимаем через родителя,
   иначе базовое подчёркивание ссылок в теле статьи перебивает mono-CTA без подчёрка */
.forge-author-panel a.forge-author-panel-link{
  font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--accent);
  text-decoration:none;white-space:nowrap;margin-left:auto;
}
.forge-author-panel a.forge-author-panel-link:hover{text-decoration:underline}
