
/* ==== ebi · токены ============================================== */
:root{
  --ebi-canvas:#ded8c8; --ebi-sheet:#ffffff; --ebi-inset:#f2eee5;
  --ebi-band:#18302a; --ebi-char:#17140f; --ebi-onband:#f0ece2;
  --ebi-verd:#1d4c3c; --ebi-amber:#7d450e; --ebi-hedge:#cdc6b6; --ebi-mute:#5f594e;
  /* ⛔ имена --*-serif/--*-sans и хвосты Georgia / Iowan Old Style / Segoe UI —
     сетевой футпринт (перепись 27.09.2026: 17/24, 15/24, 14/24, 7/24, 11/24 сайтов).
     Здесь и имена свои, и хвосты другие. */
  --ebi-face-read:Charter,'Bitstream Charter','Charis SIL','Source Serif 4',
              'PT Serif','Liberation Serif',serif;
  --ebi-face-svc:'Roboto Condensed','Liberation Sans Narrow','Arial Narrow',
              'Helvetica Neue',Helvetica,sans-serif;
  --ebi-pad:20px;            /* боковое поле полноширинной полосы */
  --ebi-gap:26px;            /* внутреннее поле листа */
  --ebi-lead:96px;           /* левое поле под цифру фолио */
  --ebi-rail:300px;          /* рельс данных, прижат к правому краю ОКНА */
  --ebi-col:720px;           /* колонка текста */
  --ebi-air:48px;            /* воздух между секциями — единственный разделитель */
}
@media (max-width:1180px){:root{--ebi-lead:48px;--ebi-rail:260px;--ebi-air:40px}}
@media (max-width:900px){:root{--ebi-lead:24px;--ebi-air:32px}}
@media (max-width:640px){:root{--ebi-pad:14px;--ebi-gap:16px;--ebi-lead:16px;--ebi-air:28px}}

/* ==== сброс донорского слоя голых тегов (0,0,1 — без !important) ==== */
:where(.ebi-page) *{box-sizing:border-box}
:where(.ebi-page) body,:where(.ebi-page) div,:where(.ebi-page) p,
:where(.ebi-page) ul,:where(.ebi-page) ol,:where(.ebi-page) li,
:where(.ebi-page) h1,:where(.ebi-page) h2,:where(.ebi-page) h3,
:where(.ebi-page) h4,:where(.ebi-page) h5,:where(.ebi-page) h6,
:where(.ebi-page) figure,:where(.ebi-page) blockquote,:where(.ebi-page) dl,
:where(.ebi-page) dd,:where(.ebi-page) table,:where(.ebi-page) form{margin:0;padding:0}
:where(.ebi-page) img{max-width:100%;height:auto;display:block}
:where(.ebi-page) table{border-collapse:collapse;width:100%}

html{-webkit-text-size-adjust:100%}
body.ebi-page{
  margin:0;background:var(--ebi-canvas);color:var(--ebi-char);
  font:400 17px/1.72 var(--ebi-face-read);
  font-variant-numeric:tabular-nums;
  overflow-x:hidden;
}
.ebi-page a{color:var(--ebi-verd);text-underline-offset:.18em;
  text-decoration-thickness:from-font}
.ebi-page a:hover{color:var(--ebi-amber)}
.ebi-page ::selection{background:var(--ebi-band);color:var(--ebi-onband)}
.ebi-skip{position:absolute;left:-9999px}
.ebi-skip:focus{left:8px;top:8px;z-index:99;background:var(--ebi-sheet);
  padding-block:10px;padding-inline:14px}

/* ==== служебный слой: узкий гротеск капсом с разрядкой ============ */
.ebi-kick,.ebi-lab,.ebi-date{
  font-family:var(--ebi-face-svc);font-stretch:condensed;text-transform:uppercase;
  letter-spacing:.13em;font-size:11px;line-height:1.5;font-weight:600;
  color:var(--ebi-mute)
}
.ebi-kick{color:var(--ebi-verd)}

/* ==== ОСЬ 1 · раскладка без центрирующего контейнера ============== */
/* колонка текста прижата влево от поля --lead; рельс — впритык к правому краю окна */
.ebi-shell{
  display:grid;
  grid-template-columns:var(--ebi-lead) minmax(0,var(--ebi-col)) 1fr var(--ebi-rail);
  column-gap:0;align-items:start;
}
.ebi-shell>.ebi-folio{grid-column:1;min-width:0}
.ebi-shell>.ebi-col{grid-column:2;min-width:0}
.ebi-shell>.ebi-rail{grid-column:4;min-width:0;padding-inline-end:var(--ebi-pad)}
.ebi-shell>.ebi-wide{grid-column:1/-1;min-width:0}
/* ⛔ `grid-column:1/-1` — это ВСЯ ширина окна вместе с колонцифренным полем,
   поэтому блокам внутри поля нужны свои: без них строка реестра начинается
   с x=0 и текст лежит на самом краю экрана (gate_render R7, 26 узлов).
   Тонированная полоса — исключение: она полноширинная по замыслу, её отступ
   живёт внутри, в `.ebi-band-in`. */
.ebi-shell>.ebi-wide>*{padding-inline:var(--ebi-lead) var(--ebi-pad)}
.ebi-shell>.ebi-wide>.ebi-band{padding-inline:0}
@media (max-width:1180px){
  .ebi-shell{grid-template-columns:var(--ebi-lead) minmax(0,1fr) 24px var(--ebi-rail)}
}
@media (max-width:980px){
  .ebi-shell{grid-template-columns:var(--ebi-lead) minmax(0,1fr) var(--ebi-pad)}
  .ebi-shell>.ebi-rail{grid-column:2;padding-inline-end:0;margin-block-start:var(--ebi-air)}
}
@media (max-width:640px){
  .ebi-shell{grid-template-columns:var(--ebi-lead) minmax(0,1fr) var(--ebi-pad)}
}

/* контурная цифра фолио — единственный разделитель, кроме воздуха */
.ebi-folio{
  font-family:var(--ebi-face-svc);font-weight:800;font-size:44px;line-height:1;
  color:transparent;-webkit-text-stroke:1px var(--ebi-hedge);
  padding-block-start:6px;user-select:none
}
@media (max-width:900px){.ebi-folio{font-size:22px;-webkit-text-stroke-width:1px}}
@media (max-width:640px){.ebi-folio{display:none}}

.ebi-sec{margin-block-start:var(--ebi-air);clear:both}
.ebi-sec:first-of-type{margin-block-start:0}
.ebi-leg{display:flow-root}

/* ==== ОСЬ 2 · Г-образный мастхед ================================= */
.ebi-mast{
  position:relative;top:0;background:var(--ebi-sheet);
  border-block-end:1px solid var(--ebi-hedge)
}
.ebi-mast-in{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:auto auto;
  padding-inline:var(--ebi-pad)
}
/* левая ячейка-скоба охватывает ОБЕ строки */
.ebi-brand{
  grid-column:1;grid-row:1/3;display:flex;align-items:center;gap:14px;
  padding-inline-end:26px;padding-block:14px;
  border-inline-end:1px solid var(--ebi-hedge);text-decoration:none;color:inherit
}
.ebi-em{flex:none;display:block;width:44px;height:44px}
.ebi-brand-t{display:flex;flex-direction:column;justify-content:center;min-width:0}
.ebi-brand b{font:700 30px/1 var(--ebi-face-read);letter-spacing:.02em;display:block}
.ebi-brand span{font-family:var(--ebi-face-svc);font-size:9.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--ebi-mute);margin-block-start:6px;display:block}
.ebi-util{
  grid-column:2;grid-row:1;display:flex;flex-wrap:wrap;align-items:center;gap:18px;
  padding-inline-start:26px;min-height:44px;
  border-block-end:1px solid var(--ebi-hedge)
}
.ebi-util a,.ebi-util span{font-family:var(--ebi-face-svc);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ebi-mute);text-decoration:none;
  display:flex;align-items:center;min-height:44px;line-height:1.4}
.ebi-util a:hover{color:var(--ebi-verd)}
.ebi-rubs{grid-column:2;grid-row:2;padding-inline-start:26px}
.ebi-rubs ul{list-style:none;display:flex;flex-wrap:wrap;gap:0 22px}
.ebi-rubs li{display:flex}
.ebi-rubs a{
  display:flex;align-items:center;min-height:44px;line-height:1.4;
  font:600 14.5px/1.4 var(--ebi-face-svc);letter-spacing:.04em;
  color:var(--ebi-char);text-decoration:none;border-block-end:2px solid transparent
}
.ebi-rubs a:hover,.ebi-rubs a[aria-current]{border-block-end-color:var(--ebi-verd);
  color:var(--ebi-verd)}
/* бургер — чекбокс + label, без <details> (Chrome 131+ ::details-content) */
.ebi-bt{position:absolute;opacity:0;pointer-events:none}
.ebi-bl{display:none;align-items:center;justify-content:center;min-height:44px;
  min-width:44px;cursor:pointer;grid-column:2;grid-row:1;justify-self:end}
.ebi-bl svg{width:22px;height:22px;display:block}
@media (max-width:900px){
  .ebi-mast-in{grid-template-columns:minmax(0,1fr) auto}
  .ebi-brand{grid-column:1;grid-row:1;border-inline-end:0;padding-inline-end:0}
  .ebi-bl{display:flex}
  .ebi-util{grid-column:1/-1;grid-row:3;padding-inline-start:0;
    border-block-end:0;border-block-start:1px solid var(--ebi-hedge);gap:14px}
  .ebi-rubs{grid-column:1/-1;grid-row:2;padding-inline-start:0;display:none}
  .ebi-bt:checked~.ebi-mast-in .ebi-rubs{display:block}
  .ebi-rubs ul{flex-direction:column;gap:0}
  .ebi-rubs li{border-block-start:1px solid var(--ebi-hedge)}
  .ebi-rubs a{width:100%}
}

/* зазор под шапкой */
.ebi-body{padding-block-start:28px;padding-block-end:var(--ebi-air)}
@media (max-width:640px){.ebi-body{padding-block-start:18px}}


/* ==== полоса-фотография вверху главной =========================== */
/* Кадр идёт ВО ВСЮ ширину окна, поэтому у самой полосы полей нет; поля есть
   у строки кредита — и задаются они МАРДЖИНОМ и padding'ом строки, а не
   полосы: строка кредита прямым ребёнком листа валит R7 «текст у края»
   (гейт меряет коробку, а не текст). */
.ebi-hero{margin:0 0 var(--ebi-air)}
/* ⛔ Полоса шире, чем кадр (3.2:1): на 1440×900 герой в 3.2 съедал 480 px и
   уводил H1 и оба лида под сгиб — первый экран состоял из одной фотографии.
   Кадрируется рамкой (`object-fit:cover`), сам файл не трогаем. */
.ebi-hero img{display:block;width:100%;max-width:none;aspect-ratio:4.2/1;
  object-fit:cover;object-position:50% 42%;background:var(--ebi-inset)}
/* На узком экране полоса схлопывается в ленту — даём кадр ВЫШЕ, а не второй
   файл: то же изображение, другой кроп. */
@media (max-width:820px){.ebi-hero img{aspect-ratio:2.1/1}}
@media (max-width:520px){.ebi-hero img{aspect-ratio:1.7/1}}
.ebi-credit{padding-inline:var(--ebi-lead) var(--ebi-pad);margin-block-start:10px;
  font:400 13px/1.5 var(--ebi-face-svc);color:var(--ebi-mute)}
.ebi-credit a{color:inherit}

/* ==== ОСЬ 3 · два равноправных лида 16:5 ========================= */
.ebi-leads{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}
@media (max-width:820px){.ebi-leads{grid-template-columns:minmax(0,1fr);gap:26px}}
.ebi-lead{container-type:inline-size;min-width:0}
.ebi-lead figure{margin:0}
.ebi-lead .ebi-fr{aspect-ratio:16/5;overflow:hidden;background:var(--ebi-inset)}
.ebi-lead .ebi-fr img{width:100%;height:100%;object-fit:cover}
.ebi-lead h2{
  font:700 clamp(22px,min(2.5vw,9cqi),31px)/1.22 var(--ebi-face-read);
  margin-block-start:12px;hyphens:manual;overflow-wrap:break-word
}
.ebi-lead h2 a{color:inherit;text-decoration:none}
.ebi-lead h2 a:hover{color:var(--ebi-verd)}
.ebi-lead .ebi-dek{color:var(--ebi-mute);font-size:16px;margin-block-start:8px}
.ebi-lead figcaption{margin-block-start:7px}
/* одиночный лид в колонке хаба отделён от подзаголовка линейкой */
.ebi-solo{margin-block-start:26px;border-block-start:1px solid var(--ebi-hedge);
  padding-block-start:22px}

/* ==== полноширинная тонированная полоса «Week in numbers» ======== */
.ebi-band{background:var(--ebi-band);color:var(--ebi-onband);
  margin-block-start:var(--ebi-air)}
.ebi-band-in{padding-inline:var(--ebi-lead) var(--ebi-pad);padding-block:30px;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
/* ⛔ Подпись полосы — ПЕРВАЯ ячейка сетки, и без этой строки она съедает
   колонку: три числа перестают помещаться в ряд, третье уезжает во вторую
   строку, а рядом с ним остаются две пустые клетки. Подпись идёт во всю
   ширину, числа — ровным рядом под ней. */
.ebi-band-in>.ebi-lab{grid-column:1/-1;margin:0 0 -6px}
@media (max-width:760px){.ebi-band-in{grid-template-columns:minmax(0,1fr);gap:20px}}
.ebi-band .ebi-lab{color:var(--ebi-onband);opacity:.72}
.ebi-num{font:700 40px/1.05 var(--ebi-face-read);display:block;margin-block-start:6px;
  font-variant-numeric:tabular-nums}
.ebi-band p{font-size:14.5px;line-height:1.55;margin-block-start:8px;opacity:.88}
.ebi-band a{color:var(--ebi-onband)}

/* ==== ОСЬ 4 · фронтовая сетка = строки-реестр ==================== */
.ebi-reg{list-style:none}
.ebi-reg>li{
  display:grid;align-items:start;gap:0 20px;
  /* ⛔ 96px первой колонки — это ширина надписи «29 SEP 2026» в общей
     типографике даты (11px, condensed, uppercase, трекинг .13em), а не
     круглое число: при 82px надпись ложилась в ТРИ строки и роняла высоту
     строки реестра. Месяц печатается в три буквы (SEO.human short=True) —
     полный в эту колонку не влезает ни при какой разумной ширине, а
     расширять её дальше значит отнимать у заголовка. */
  grid-template-columns:96px 104px minmax(0,1fr) 92px 88px;
  padding-block:22px
}
.ebi-reg>li+li{border-block-start:0}          /* разделитель — воздух, не линейка */
/* ⛔ Колонка каждой ячейки — явная. У строки без даты span даты не печатается
   вовсе, и на автораскладке всё съезжает на колонку влево: заголовок попадает
   в 104px рубрики и рвётся по буквам (gate_render R21). */
.ebi-reg .ebi-d1{grid-column:1}
.ebi-reg .ebi-d2{grid-column:2}
.ebi-reg .ebi-rt{grid-column:3;min-width:0;container-type:inline-size}
.ebi-reg .ebi-fmt{grid-column:4}
.ebi-reg .ebi-thw{grid-column:5}
.ebi-reg h3{font:600 clamp(17px,4.4cqi,21px)/1.34 var(--ebi-face-read);
  hyphens:manual;overflow-wrap:break-word}
.ebi-reg h3 a{color:inherit;text-decoration:none}
.ebi-reg h3 a:hover{color:var(--ebi-verd)}
.ebi-reg .ebi-dek{color:var(--ebi-mute);font-size:15px;margin-block-start:6px}
.ebi-reg .ebi-th{width:88px;height:88px;object-fit:cover;background:var(--ebi-inset)}
.ebi-reg .ebi-fmt{justify-self:start}
/* Пачка, в которой ни у одной строки нет даты (материалы робота без
   datePublished): колонка даты снимается целиком, остальные съезжают влево.
   ⛔ Колонки переписываются ВСЕ до одной — при живом `grid-column:3` у текста
   в сетке из четырёх колонок заголовок уедет в колонку метки формата. */
.ebi-reg--nd>li{grid-template-columns:104px minmax(0,1fr) 92px 88px}
.ebi-reg--nd .ebi-d2{grid-column:1}
.ebi-reg--nd .ebi-rt{grid-column:2}
.ebi-reg--nd .ebi-fmt{grid-column:3}
.ebi-reg--nd .ebi-thw{grid-column:4}
/* Пачка, в которой ни у одной строки нет плитки (свои материалы кадра в теле
   не несут): последний столб снимается, иначе справа от метки формата стоит
   88px + зазор мёртвого поля на КАЖДОЙ строке. Ячейки `.ebi-thw` в такой пачке
   не печатаются вовсе, поэтому переставлять нечего — довольно убрать дорожку.
   ⛔ Порядок колонок у остальных ячеек не трогается: он задан явно выше и в
   четырёх дорожках остаётся верным. */
.ebi-reg--nt>li{grid-template-columns:96px 104px minmax(0,1fr) 92px}
.ebi-reg--nd.ebi-reg--nt>li{grid-template-columns:104px minmax(0,1fr) 92px}
/* ==== лента автопостинга ======================================== */
/* ⛔⛔ Разметку внутри кладёт РОБОТ, а не сборщик, и своих классов в ней нет:
   `<div style='margin-bottom: 20px;'><h4><a href=…>Заголовок</a></h4>
   <p>дата или врезка</p></div>` сразу за маркером ленты. Форма снята с
   донорской /blog этого же сайта — там таких анонсов 23, — поэтому правила
   пишутся ПО ТЕГАМ внутри ограды, иначе публикации робота приезжают голым
   h4+p посреди редакционного скина.
   ⛔ Контейнеру своей коробки (рамки, фона, отступов) не давать: до первой
   публикации он пуст, и пустая коробка — полоса ни о чём. Прятать его через
   `:empty` нельзя — маркер и переводы строк внутри делают `:empty` ложным
   (ЭТАП 12), а `:has` внутри `:has` браузер выбрасывает молча. Поэтому всё
   оформление висит на детях-элементах: нет детей — нет и оформления. */
/* Секция ленты целиком — легенда, пояснение и ограда — снимается, пока робот
   не опубликовал НИ ОДНОГО анонса: иначе на хабе висит заголовок над пустотой.
   ⛔ Условие пишется по ДЕТЯМ-ЭЛЕМЕНТАМ ограды (`>*`), а не через `:empty`:
   внутри ограды лежат маркер-комментарий и переводы строк, и `:empty` там
   ложно с первого дня (ЭТАП 12). `:has` здесь одиночный — вложенного `:has`,
   который браузер выбрасывает молча, нет.
   ⚠️ Браузер без `:has` правило отбросит и покажет пустую секцию — это и есть
   запасной ход: показать лишнее честнее, чем спрятать ленту. */
.ebi-sec--wire:not(:has(.ebi-wire>*)){display:none}

/* ⛔ `!important` здесь по делу, а не от лени: сетевой `news_sync.py` печатает
   обёртку анонса с ПРИПИСАННЫМ В АТРИБУТЕ `style='margin-bottom: 20px'`, и
   обычным правилом инлайн не перебить. Без сброса к своим 22px сверху и снизу
   прибавляется чужих 20 снизу — интервал между анонсами становится
   несимметричным, а последний анонс отрывается от низа секции. Скрипт общий
   для сети, править его ради одного сайта нельзя (autopost-scope). */
.ebi-wire>div{padding-block:22px;margin-block-end:0!important;
  border-block-start:1px solid var(--ebi-hedge)}
.ebi-wire>div:first-child{border-block-start:0}
.ebi-wire h4{font:600 clamp(17px,2.2vw,21px)/1.34 var(--ebi-face-read);
  hyphens:manual;overflow-wrap:break-word}
.ebi-wire h4 a{color:inherit;text-decoration:none}
.ebi-wire h4 a:hover{color:var(--ebi-verd)}
/* Единственный `<p>` анонса — это дата публикации, и больше ничего: робот
   лида не даёт. Значит и одевается она как дата везде на сайте (служебный
   слой, капс с разрядкой), а не как обрезанный абзац текста. */
.ebi-wire p{font-family:var(--ebi-face-svc);font-stretch:condensed;
  text-transform:uppercase;letter-spacing:.13em;font-size:11px;line-height:1.5;
  font-weight:600;color:var(--ebi-mute);margin-block-start:8px}
@media (max-width:900px){
  .ebi-reg>li{grid-template-columns:minmax(0,1fr) 88px;
    grid-template-areas:"meta thumb" "text thumb";gap:4px 16px}
  .ebi-reg .ebi-d1{grid-area:meta;display:flex;gap:14px}
  .ebi-reg .ebi-d2{display:none}
  .ebi-reg .ebi-rt{grid-area:text}
  .ebi-reg .ebi-fmt{display:none}
  .ebi-reg .ebi-thw{grid-area:thumb}
  /* ⛔ На телефоне столб плитки тоже 88px, и в пачке без плиток он съедает
     четверть строки. Правило стоит ПОСЛЕ `.ebi-reg>li` — вес тот же (0,1,1),
     решает порядок. */
  .ebi-reg--nt>li{grid-template-columns:minmax(0,1fr);
    grid-template-areas:"meta" "text"}
}
@media (max-width:480px){
  .ebi-reg>li{grid-template-columns:72px minmax(0,1fr);
    grid-template-areas:"thumb meta" "thumb text";gap:4px 14px}
  .ebi-reg .ebi-th{width:72px;height:72px}
  .ebi-reg--nt>li{grid-template-columns:minmax(0,1fr);
    grid-template-areas:"meta" "text"}
}

/* ==== карточки — только в хабах рубрик и архиве =================== */
.ebi-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));
  gap:30px 26px;list-style:none}
.ebi-card{display:flex;flex-direction:column;min-width:0;container-type:inline-size}
.ebi-card .ebi-fr{aspect-ratio:3/2;overflow:hidden;background:var(--ebi-inset)}
.ebi-card .ebi-fr img{width:100%;height:100%;object-fit:cover}
.ebi-card__txt{display:flex;flex-direction:column;flex:1;padding-block-start:11px}
.ebi-card h3{font:600 clamp(16px,6.2cqi,19px)/1.32 var(--ebi-face-read);
  hyphens:manual;overflow-wrap:break-word;margin-block-start:5px}
.ebi-card h3 a{color:inherit;text-decoration:none}
.ebi-card h3 a:hover{color:var(--ebi-verd)}
.ebi-card p{color:var(--ebi-mute);font-size:14.5px;margin-block-start:6px}
.ebi-card__meta{margin-top:auto;padding-block-start:10px}

/* ==== проза материала ============================================ */
/* `overflow-wrap:anywhere` — страховка от донорских «слов» в 200 знаков
   (потерянные разделители перечня): текст переносится, а не растягивает
   документ шире вьюпорта. Сам перечень чинится в сборке, а не скином. */
.ebi-prose{max-width:100%;overflow-wrap:anywhere}
.ebi-prose p{margin-block:0 1.05em}
.ebi-prose h2{font:700 27px/1.28 var(--ebi-face-read);margin-block:1.5em .45em;
  hyphens:manual;overflow-wrap:break-word}
.ebi-prose h3{font:600 21px/1.34 var(--ebi-face-read);margin-block:1.3em .4em}
.ebi-prose h4{font:600 18px/1.4 var(--ebi-face-read);margin-block:1.2em .35em}
.ebi-prose ul,.ebi-prose ol{margin-block:0 1.05em;padding-inline-start:1.3em}
.ebi-prose li{margin-block-end:.4em}
.ebi-prose blockquote{border-inline-start:2px solid var(--ebi-verd);
  padding-inline-start:18px;margin-block:1.3em;font-style:italic;color:var(--ebi-mute)}
.ebi-prose figure{margin-block:1.5em}
.ebi-prose figcaption{margin-block-start:7px}
.ebi-prose img{margin-inline:0}
.ebi-prose a{overflow-wrap:break-word}
.ebi-h1{font:700 clamp(28px,4.6vw,43px)/1.14 var(--ebi-face-read);
  hyphens:manual;overflow-wrap:break-word;letter-spacing:-.005em}
.ebi-standfirst{font-size:19.5px;line-height:1.6;color:var(--ebi-mute);
  margin-block-start:14px}
/* Раскрытие о партнёрских ссылках стоит в тёмном подвале: серый --ebi-mute
   (#5f594e) на полосе даёт 2.02 — раскрытие, которого не видно, всё равно что
   нет. Цвет берётся полосный, приглушение — прозрачностью (rem. R3). */
.ebi-adline{font-size:14.5px;line-height:1.6;color:var(--ebi-onband);opacity:.82;
  margin-block-start:1.2em}
.ebi-adline b{font-family:var(--ebi-face-svc);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;display:block;margin-block-end:4px;color:inherit}

/* ==== таблицы: подпись колонки в ячейке, карточка на узком ======= */
.ebi-prose table{font-size:15.5px}
.ebi-prose th,.ebi-prose td{
  text-align:start;vertical-align:top;
  padding-block:10px;padding-inline:0 16px;
  border-block-end:1px solid var(--ebi-hedge)
}
.ebi-prose th{font-family:var(--ebi-face-svc);font-size:11px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ebi-mute);font-weight:600}
@media (max-width:640px){
  .ebi-prose table,.ebi-prose tbody,.ebi-prose tr,.ebi-prose td{display:block;width:100%}
  .ebi-prose thead{position:absolute;left:-9999px}
  .ebi-prose tr{padding-block:12px;border-block-end:1px solid var(--ebi-hedge)}
  .ebi-prose td{border-block-end:0;padding-inline-end:0;
    display:grid;grid-template-columns:40% minmax(0,1fr);gap:10px}
  .ebi-prose td:before{content:attr(data-ebi-l);font-family:var(--ebi-face-svc);font-size:10.5px;
    letter-spacing:.11em;text-transform:uppercase;color:var(--ebi-mute);font-weight:600;
    padding-block-start:3px}
}

/* ==== рельс данных и виджеты ===================================== */
.ebi-rail>*+*{margin-block-start:var(--ebi-air)}
.ebi-w{background:var(--ebi-inset);padding:18px}
.ebi-w h2{font:600 14px/1.35 var(--ebi-face-svc);letter-spacing:.11em;text-transform:uppercase;
  color:var(--ebi-verd);margin-block-end:12px}
.ebi-w dl{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:7px 14px;
  font-size:14.5px}
.ebi-w dt{font-family:var(--ebi-face-svc);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ebi-mute);padding-block-start:4px}
.ebi-w dd{min-width:0;overflow-wrap:break-word}
.ebi-w ol,.ebi-w ul{list-style:none;font-size:14.5px}
.ebi-w li+li{margin-block-start:11px}
.ebi-w p{font-size:14.5px;line-height:1.6}
.ebi-w .ebi-src{font-size:12px;color:var(--ebi-mute);margin-block-start:12px;
  line-height:1.5}
/* Голый путь `/go/…`, набранный прежним владельцем прямо в абзаце: надпись
   остаётся байт в байт (правило 4), но длинный путь в узкой колонке иначе
   вылезает за край — переносится по любому знаку и набирается тем же
   служебным гротеском, что остальная техническая мелочь. */
.ebi-go-in{overflow-wrap:anywhere;font-family:var(--ebi-face-svc);font-size:.94em}

/* врезка «с чего начать» — ведущий материал раздела в рельсе там, где виджета
   по данным не вышло. Заголовок крупнее служебного `.ebi-w p`, поэтому правило
   стоит НИЖЕ него и держится двумя классами (0,2,0 против 0,1,1). */
.ebi-sh .ebi-fr{display:block;aspect-ratio:16/9;overflow:hidden;
  background:var(--ebi-hedge);margin-block-end:12px}
.ebi-sh .ebi-fr img{width:100%;height:100%;object-fit:cover}
.ebi-sh .ebi-sht{font:600 19px/1.32 var(--ebi-face-read);margin-block-start:5px}
.ebi-sh .ebi-sht a{color:inherit;text-decoration:none}
.ebi-sh .ebi-sht a:hover,.ebi-sh .ebi-sht a:focus-visible{color:var(--ebi-verd);
  text-decoration:underline}
.ebi-sh .ebi-dek{font-size:14.5px;line-height:1.6;color:var(--ebi-mute);
  margin-block-start:8px}
/* шкала RTP */
.ebi-bar{display:block;height:7px;background:var(--ebi-hedge);margin-block-start:5px}
.ebi-bar i{display:block;height:100%;background:var(--ebi-verd)}
.ebi-rtp li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px}
.ebi-rtp li b{font-weight:600;font-size:14.5px}
.ebi-rtp li span{font-variant-numeric:tabular-nums}
.ebi-rtp .ebi-bar{grid-column:1/-1}
/* лента регулирования */
.ebi-tl li{display:grid;grid-template-columns:78px minmax(0,1fr);gap:10px}
.ebi-tl b{font-family:var(--ebi-face-svc);font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ebi-verd);padding-block-start:3px}
/* ступени лимитов и платёжные рельсы */
.ebi-lim li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}
.ebi-lim li b{font-weight:600}
.ebi-lim li span{min-width:0;text-align:end}
.ebi-lim li i{font-family:var(--ebi-face-svc);font-style:normal;font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ebi-mute);
  margin-inline:8px 5px}
.ebi-lim li i:first-child{margin-inline-start:0}
@media (max-width:420px){
  .ebi-lim li{grid-template-columns:minmax(0,1fr)}
  .ebi-lim li span{text-align:start}
}
/* ссылка на страницу, где цифра сказана: хабовый виджет ничего не сводит вслепую */
.ebi-cite{display:block;grid-column:1/-1;font-style:normal;font-size:12px;
  line-height:1.5;color:var(--ebi-mute);margin-block-start:3px}
.ebi-cite a{color:inherit;text-decoration:underline;
  text-underline-offset:2px;text-decoration-thickness:1px}
.ebi-cite a:hover,.ebi-cite a:focus-visible{color:var(--ebi-verd)}

/* ==== подвал ===================================================== */
.ebi-foot{background:var(--ebi-band);color:var(--ebi-onband);margin-block-start:var(--ebi-air)}
.ebi-foot-in{padding-inline:var(--ebi-pad);padding-block:38px 30px;
  display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:34px}
@media (max-width:860px){.ebi-foot-in{grid-template-columns:minmax(0,1fr)}}
.ebi-foot h2{font:600 12px/1.4 var(--ebi-face-svc);letter-spacing:.14em;text-transform:uppercase;
  opacity:.68;margin-block-end:12px}
.ebi-foot a{color:var(--ebi-onband)}
.ebi-foot ul{list-style:none;font-size:15px}
.ebi-foot li+li{margin-block-start:2px}
.ebi-foot li a{display:flex;align-items:center;min-height:44px;line-height:1.4;
  text-decoration:none}
.ebi-foot li a:hover{text-decoration:underline}
.ebi-foot p{font-size:14.5px;line-height:1.62;opacity:.86}
.ebi-foot p+p{margin-block-start:10px}
.ebi-help{font-variant-numeric:tabular-nums}
.ebi-help b{display:block;font-family:var(--ebi-face-svc);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;opacity:.7;font-weight:600}
.ebi-18{display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border:1.5px solid var(--ebi-onband);border-radius:50%;
  font:700 13px/1 var(--ebi-face-svc);margin-block-end:10px}
.ebi-colo{border-block-start:1px solid rgba(240,236,226,.22);
  padding-inline:var(--ebi-pad);padding-block:16px 22px;
  display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;
  font-family:var(--ebi-face-svc);font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  opacity:.66}

/* ==== выкупленное размещение =====================================
   Это НЕ наша реклама и не витрина: адрес и анкор перенесены без изменений
   (правило 4). Блок стоит под материалом, помечен явно, из потока чтения выведен,
   но не спрятан: скрывать проданное нельзя. */
/* Блок стоит СВОИМ элементом в <main>, а не внутри сетки, — свои поля ему
   нужны собственные, иначе анкор лежит на краю экрана (gate_render R7). */
.ebi-part{margin-block-start:var(--ebi-air);padding-block-start:14px;
  padding-inline:var(--ebi-lead) var(--ebi-pad);
  border-block-start:1px solid var(--ebi-hedge)}
.ebi-part h2{font:600 10.5px/1.4 var(--ebi-face-svc);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ebi-mute);margin-block-end:8px}
.ebi-part ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 22px}
.ebi-part a{font-size:13.5px;color:var(--ebi-mute);text-decoration:underline;
  text-underline-offset:2px;text-decoration-thickness:1px;
  display:inline-block;min-height:26px;line-height:26px}
.ebi-part a:hover,.ebi-part a:focus-visible{color:var(--ebi-verd)}

/* ==== FAQ всегда развёрнут; своё оглавление — свёрнутое ========== */
.ebi-faq dt{font:600 18px/1.4 var(--ebi-face-read);margin-block-start:1.2em;
  font-family:var(--ebi-face-read);letter-spacing:0;text-transform:none;font-size:18px;
  color:var(--ebi-char)}
.ebi-faq dd{margin-block-start:.35em}
/* Источники донора: перечень внизу статьи, набором мельче основного текста —
   это аппарат, а не проза, но он читается и потому не прячется. */
.ebi-sources{margin-block-start:2.2em;padding-block-start:1.2em;
  border-block-start:1px solid var(--ebi-hedge)}
.ebi-sources h2{font-family:var(--ebi-face-svc);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ebi-mute);margin:0 0 .7em}
.ebi-sources ol,.ebi-sources ul{list-style:decimal;padding-inline-start:1.5em;
  font-size:14.5px;line-height:1.6;margin:0}
.ebi-sources li{margin-block-end:.35em}
.ebi-toc{margin-block:1.4em}
.ebi-toc summary{font-family:var(--ebi-face-svc);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ebi-mute);cursor:pointer;
  min-height:44px;display:flex;align-items:center;line-height:1.4}
.ebi-toc ol{list-style:decimal;padding-inline-start:1.5em;font-size:15.5px}
.ebi-toc li{margin-block-end:.3em}

/* ==== блоки, которые лепит ebi_body из донорского тела ============ */
/* остаток «класс без правил» обязан быть 0 — здесь закрываются
   picks · alt · verdict · pc · pros · cons · q · note · go · tag     */
.ebi-picks,.ebi-alt{background:var(--ebi-inset);padding:20px;margin-block:1.6em}
.ebi-picks>h2,.ebi-alt>h2{font:600 13px/1.4 var(--ebi-face-svc);letter-spacing:.12em;
  text-transform:uppercase;color:var(--ebi-verd);margin-block-end:14px}
.ebi-note{font-size:12.5px;line-height:1.55;color:var(--ebi-mute);margin-block-start:12px}
/* ⛔ Селектор кнопки — с `.ebi-page`, а не `.ebi-go` в одиночку: общее правило
   `.ebi-page a` (0,1,1) бьёт одиночный класс (0,1,0), и `color` кнопки не
   применяется — зелёная надпись на зелёной плашке, контраст 1.00, а глазами
   это читается как «кнопка без текста». Ловит gate_render R3. */
.ebi-page .ebi-go{display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding-inline:16px;background:var(--ebi-verd);color:var(--ebi-sheet);
  font-family:var(--ebi-face-svc);font-size:11.5px;letter-spacing:.11em;
  text-transform:uppercase;font-weight:600;text-decoration:none;white-space:nowrap}
.ebi-page .ebi-go:hover{background:var(--ebi-amber);color:var(--ebi-sheet)}
.ebi-tag{display:block;font-family:var(--ebi-face-svc);font-size:10px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ebi-amber);margin-block-start:3px}
.ebi-verdict{margin-block:1.6em}
.ebi-verdict>h2{font:700 21px/1.3 var(--ebi-face-read);margin-block-end:.55em}
/* `align-items:start` — чтобы короткая колонка не растягивалась плашкой в
   пустоту под длинной: плюсов и минусов поровну не бывает (R «карточка
   растянута в пустоту»). */
.ebi-pc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;
  align-items:start}
@media (max-width:620px){.ebi-pc{grid-template-columns:minmax(0,1fr)}}
.ebi-pros,.ebi-cons{background:var(--ebi-inset);padding:16px 18px;min-width:0}
.ebi-pros h3,.ebi-cons h3{font:600 11px/1.4 var(--ebi-face-svc);letter-spacing:.12em;
  text-transform:uppercase;margin-block-end:9px}
.ebi-pros h3{color:var(--ebi-verd)}
.ebi-cons h3{color:var(--ebi-amber)}
.ebi-pros ul,.ebi-cons ul{list-style:none;padding-inline-start:0;font-size:15px;margin:0}
.ebi-pros li,.ebi-cons li{padding-inline-start:17px;position:relative;margin-block-end:.45em}
.ebi-pros li:before,.ebi-cons li:before{position:absolute;inset-inline-start:0;
  font-family:var(--ebi-face-svc);font-weight:700;line-height:inherit}
.ebi-pros li:before{content:"+";color:var(--ebi-verd)}
.ebi-cons li:before{content:"\2212";color:var(--ebi-amber)}
.ebi-q{margin-block-start:1.15em}
.ebi-q h3{font:600 17.5px/1.4 var(--ebi-face-read);margin-block-end:.3em}
.ebi-q p{margin-block:0 .7em}

/* ==== разметка, которой на сайте ЕЩЁ НЕТ ========================== */
/* автопостинг принесёт её позже — правила пишутся заранее (этап 05)  */
.ebi-prose>table{display:block;max-width:100%;width:100%;overflow-x:auto;
  -webkit-overflow-scrolling:touch}
.ebi-prose>table th,.ebi-prose>table td{max-width:340px}
.ebi-prose code{font-family:ui-monospace,'DejaVu Sans Mono','Liberation Mono',monospace;
  font-size:.88em;background:var(--ebi-inset);padding-block:1px;padding-inline:5px;
  overflow-wrap:break-word}
.ebi-prose pre{background:var(--ebi-inset);padding:14px 16px;margin-block:1.3em;
  overflow-x:auto;max-width:100%}
.ebi-prose pre code{background:none;padding:0;font-size:13.5px;line-height:1.6;
  white-space:pre}
.ebi-prose hr{border:0;height:1px;background:var(--ebi-hedge);margin-block:1.9em}
.ebi-prose dl{margin-block:0 1.05em}
.ebi-prose dt{font-weight:700;margin-block-start:.7em}
.ebi-prose dd{margin-inline-start:0;padding-inline-start:16px;
  border-inline-start:2px solid var(--ebi-hedge)}
.ebi-prose li>ul,.ebi-prose li>ol{margin-block:.35em 0}
.ebi-prose li>ul{list-style:circle}
.ebi-prose li>ol{list-style:lower-alpha}
.ebi-prose figcaption{font-size:12.5px;line-height:1.5;color:var(--ebi-mute)}
.ebi-prose sup,.ebi-prose sub{font-size:.7em;line-height:0}
.ebi-prose mark{background:var(--ebi-inset);padding-inline:3px}
.ebi-prose small{font-size:13px;color:var(--ebi-mute)}
.ebi-prose abbr[title]{text-decoration-style:dotted}
/* Класс носят ДВА разных абзаца, и правило одно на оба. Первый — дата, которую
   робот приносит внутри своего текста. Второй — НАША строка даты под
   заголовком страницы робота (`<p class="ebi-dl pbn-published-date">`): класс
   на ней стоит ради сетевого `news_sync.py`, который иначе печатает в ленте
   хаба день последней выкладки (разбор в сборщике, у ROBOT_PUB). Обёртке
   достаётся только отбивка снизу — типографику несёт `<time class="ebi-date">`
   внутри, и она у даты на сайте всюду одна. */
.ebi-page .pbn-published-date{font-family:var(--ebi-face-svc);font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ebi-mute);
  display:block;margin-block-end:1.1em}
/* маркеры списков — только донорским спискам, во врезки не течь */
.ebi-prose ul:not([class*="ebi-"]){list-style:disc}
.ebi-prose ol:not([class*="ebi-"]){list-style:decimal}
h1,h2,h3,h4{hyphens:manual;overflow-wrap:break-word}

/* ==== путеводитель главной: фронт сверху, материал под ним ======== */
/* Донорская главная — не витрина, а вход сайта на 7 тыс. слов. Фронт её не
   заменяет: он стоит НАД ней, а текст живёт в обычном листе со своим рельсом. */
.ebi-pillar{border-block-start:3px double var(--ebi-hedge);
  margin-block-start:var(--ebi-air);padding-block-start:var(--ebi-air)}
.ebi-pillar .ebi-h1{font-size:34px;line-height:1.16}
@media (max-width:640px){.ebi-pillar .ebi-h1{font-size:27px}}
/* оглавление — такой же виджет рельса, только со своими цифрами */
.ebi-toc ol{counter-reset:t}
.ebi-toc li{counter-increment:t;display:grid;
  grid-template-columns:26px minmax(0,1fr);gap:8px;line-height:1.45}
.ebi-toc li:before{content:counter(t,decimal-leading-zero);
  font-family:var(--ebi-face-svc);font-size:11px;letter-spacing:.06em;
  color:var(--ebi-mute);padding-block-start:3px}
.ebi-toc a{text-decoration:none}
.ebi-toc a:hover,.ebi-toc a:focus-visible{text-decoration:underline;
  text-underline-offset:2px}
@media (min-width:981px){.ebi-toc{position:sticky;top:14px;max-height:78vh;
  overflow:auto}}

/* ==== свой правовой текст, дописанный к донорскому ================ */
.ebi-own{border-inline-start:2px solid var(--ebi-verd);padding-inline-start:18px;
  margin-block:1.8em}
.ebi-own h2{font:700 22px/1.28 var(--ebi-face-read);margin-block:0 .5em}
.ebi-own h3{font:600 17px/1.34 var(--ebi-face-read);margin-block:1.1em .35em}
.ebi-own p{margin-block:0 1em}
.ebi-own b{font-family:var(--ebi-face-svc);font-weight:600;font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ebi-mute)}
.ebi-own h3 b,.ebi-own a b{font:inherit;letter-spacing:normal;
  text-transform:none;color:inherit}

/* ==== формы владельца (fortunida) ================================= */
/* ⛔ Классы РЕАЛЬНЫЕ, из самого виджета; скоуп — по id контейнера, поэтому
   `!important` нужен только на honeypot, который виджет уводит инлайном
   за экран и роняет этим проверку overflow. */
.ebi-form{margin-block:var(--ebi-air) 0}
#subscribe-form-target,#feedback-form{font-family:var(--ebi-face-read)}
#subscribe-form-target .subscribe-form-container,
#feedback-form .feedback-form-container{
  max-width:100%;background:var(--ebi-inset);border:1px solid var(--ebi-hedge);
  border-radius:0;box-shadow:none;padding:22px}
#subscribe-form-target .subscribe-form-header,
#feedback-form .feedback-form-header{
  font-family:var(--ebi-face-read);color:var(--ebi-char)}
#subscribe-form-target .subscribe-form-input,
#feedback-form .feedback-form-input,
#feedback-form .feedback-form-textarea{
  border-radius:0;border:1px solid var(--ebi-hedge);background:var(--ebi-sheet);
  color:var(--ebi-char);font-family:var(--ebi-face-read);font-size:16px;
  min-height:44px}
#subscribe-form-target .subscribe-form-input::placeholder,
#feedback-form .feedback-form-input::placeholder,
#feedback-form .feedback-form-textarea::placeholder{color:var(--ebi-mute)}
#subscribe-form-target .subscribe-form-label,
#feedback-form .feedback-form-label{
  font-family:var(--ebi-face-svc);font-size:11px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ebi-mute)}
#feedback-form .feedback-form-required{color:var(--ebi-amber)}
#subscribe-form-target .subscribe-form-submit,
#feedback-form .feedback-form-submit{
  border-radius:0;background:var(--ebi-verd);color:var(--ebi-onband);
  font:600 11.5px/1 var(--ebi-face-svc);letter-spacing:.11em;
  text-transform:uppercase;min-height:44px;padding-inline:22px;box-shadow:none}
#subscribe-form-target .subscribe-form-privacy,
#feedback-form .feedback-form-privacy{color:var(--ebi-mute);font-size:12.5px;
  line-height:1.5}
#subscribe-form-target .subscribe-form-icon{color:var(--ebi-verd)}
#subscribe-form-target .subscribe-form-success,
#feedback-form .feedback-form-success{color:var(--ebi-verd)}
#subscribe-form-target .subscribe-form-error,
#feedback-form .feedback-form-error{color:var(--ebi-amber)}
/* honeypot: инлайновый left:-10000px даёт overflow [INPUT.] в гейте рендера */
#subscribe-form-target input[aria-hidden="true"][tabindex="-1"],
#feedback-form input[aria-hidden="true"][tabindex="-1"]{
  left:0!important;width:0;height:0;opacity:0;position:absolute;
  pointer-events:none}

/* ==== ЭТАП 09: тропа, даты, редакционная подпись ================== */
/* Крошки заняли место кикера и держат его типографику: служебный гротеск
   капсом. Разделитель — не текстовый символ, а рамка: его не читает
   скринридер и он не уезжает в выдачу вместе с заголовком. */
.ebi-crumbs{
  font-family:var(--ebi-face-svc);font-stretch:condensed;text-transform:uppercase;
  letter-spacing:.13em;font-size:11px;line-height:1.5;font-weight:600;
  display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;color:var(--ebi-mute)}
.ebi-crumbs a{color:var(--ebi-verd);text-decoration:none}
.ebi-crumbs a:hover{color:var(--ebi-amber);text-decoration:underline}
.ebi-crumbs>*+*{padding-inline-start:12px;position:relative}
.ebi-crumbs>*+*::before{content:"";position:absolute;inset-inline-start:0;
  inset-block-start:.34em;width:4px;height:4px;
  border-block-start:1px solid var(--ebi-hedge);
  border-inline-end:1px solid var(--ebi-hedge);transform:rotate(45deg)}
.ebi-crumbs span[aria-current]{color:var(--ebi-mute);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46ch}

/* дата: одна типографика у всех трёх мест — шапка, шапка материала, подпись */
.ebi-dl,.ebi-pub,.ebi-upd,.ebi-d1{
  font-family:var(--ebi-face-svc);font-stretch:condensed;text-transform:uppercase;
  letter-spacing:.13em;font-size:11px;line-height:1.5;font-weight:600;
  color:var(--ebi-mute)}
.ebi-dl{margin-block-start:10px}
.ebi-upd-l{color:var(--ebi-mute);opacity:.78}
.ebi-util-d{font-variant-numeric:tabular-nums;white-space:nowrap}

/* ==== подпись редакции: одна плита в конце КАЖДОЙ страницы ======== */
.ebi-sig{
  margin-block-start:44px;padding-block:20px 4px;
  padding-inline:var(--ebi-pad);
  border-block-start:3px double var(--ebi-hedge);
  font-family:var(--ebi-face-read);font-size:14.5px;line-height:1.62;
  color:var(--ebi-mute);max-inline-size:74ch}
.ebi-sig p{margin:0 0 8px}
.ebi-sig-w{font-family:var(--ebi-face-svc);font-stretch:condensed;
  text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:600;
  color:var(--ebi-char)}
.ebi-sig-w b{font-weight:700}
.ebi-sig-m{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;
  font-family:var(--ebi-face-svc);font-stretch:condensed;text-transform:uppercase;
  letter-spacing:.13em;font-size:11px;font-weight:600}
.ebi-sig-m a{color:var(--ebi-verd);text-decoration:none}
.ebi-sig-m a:hover{color:var(--ebi-amber);text-decoration:underline}
/* ⛔ Бледной волосяной линией красится ТОЛЬКО разделитель `<span>·</span>`.
   Голый `>span` красил ею же «Published» и дату — контраст 1.20 на каждой
   странице: цвет служебного текста задаётся классом, а не позицией в потоке. */
.ebi-sig-m>span:not([class]){color:var(--ebi-hedge)}

/* ==== редакционное обещание в мачте (8б) ========================== */
/* ⛔ Отступ от края окна — ПОЛЕ, а не внутренний отступ: рендер-гейт меряет
   прямоугольник самого элемента, и строка с `padding-inline` считается
   прижатой к краю на каждой странице. */
.ebi-say{
  border-block-start:1px solid var(--ebi-hedge);
  margin-inline:var(--ebi-pad);padding-block:8px;
  font:italic 400 13.5px/1.45 var(--ebi-face-read);color:var(--ebi-mute)}
@media (max-width:640px){.ebi-say{font-size:12.5px;padding-block:7px}}

/* ==== своя полоса печенья (без сторонней CMP) ===================== */
.ebi-cb{position:fixed;inset-inline:0;inset-block-end:0;z-index:40;
  background:var(--ebi-band);color:var(--ebi-onband);
  padding-inline:var(--ebi-pad);padding-block:14px;
  display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;
  font-size:14px;line-height:1.55}
.ebi-cb p{margin:0;flex:1 1 320px;min-width:0}
.ebi-cb a{color:var(--ebi-onband)}
.ebi-cb button{min-height:44px;padding-inline:20px;border:0;cursor:pointer;
  background:var(--ebi-onband);color:var(--ebi-band);
  font:600 11.5px/1 var(--ebi-face-svc);letter-spacing:.11em;text-transform:uppercase}
.ebi-cb[hidden]{display:none}

/* ==== §13б плита одного бренда на его обзоре ====================== */
/* Порядок чтения — личность, предложение, кнопка; плита стоит НАД телом, блок
   фактов идёт после неё. На 560 px складывается в одну колонку. */
.ebi-plate{display:grid;grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:'id act' 'offer act';gap:10px 22px;align-items:center;
  margin-block:1.2em 1.9em;padding:18px 20px;background:var(--ebi-inset);
  border-inline-start:3px solid var(--ebi-verd)}
.ebi-plate-id{grid-area:id;display:flex;align-items:center;gap:14px;min-width:0}
.ebi-plate-logo{width:64px;height:auto;max-height:44px;object-fit:contain;
  flex:0 0 auto;background:var(--ebi-sheet)}
.ebi-plate-name{font:700 21px/1.25 var(--ebi-face-read);margin:0}
.ebi-plate-lic{font-family:var(--ebi-face-svc);font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ebi-mute);margin:3px 0 0}
.ebi-plate-offer{grid-area:offer;font:600 15px/1.4 var(--ebi-face-svc);
  letter-spacing:.03em;color:var(--ebi-char);margin:0}
.ebi-plate-act{grid-area:act;display:flex;flex-direction:column;
  align-items:stretch;gap:6px;justify-self:end;min-width:0}
.ebi-page .ebi-plate-act .ebi-go{width:100%}
.ebi-plate-fine{font-family:var(--ebi-face-svc);font-size:10px;letter-spacing:.06em;
  color:var(--ebi-mute);margin:0;text-align:center}
.ebi-plate--arc{grid-template-areas:'id act';
  border-inline-start-color:var(--ebi-hedge)}
.ebi-plate--arc .ebi-plate-note{font:400 13.5px/1.55 var(--ebi-face-read);
  color:var(--ebi-mute);margin:4px 0 0;max-width:46em}
@media (max-width:560px){
  .ebi-plate{grid-template-columns:minmax(0,1fr);
    grid-template-areas:'id' 'offer' 'act';padding:16px}
  .ebi-plate--arc{grid-template-areas:'id' 'act'}
  .ebi-plate-act{justify-self:stretch}
  .ebi-page .ebi-plate-act .ebi-go{white-space:normal;text-align:center;
    padding-block:8px}
}
