/* skrutka.ru — дизайн-система (редизайн 2026).
 * Подключается последней на всех страницах (functions.php), поверх main.css, front.css, sections.css, article.css.
 *
 * Как устроено:
 *  1. Базовые токены (--ds-*) — палитра, скругления.
 *  2. Цвет раздела (--section-accent*) — по классу на <body> (section-calc | section-schemes | section-ref | section-repair,
 *     ставит skrutka_section_body_class() по рубрике страницы или статьи) или по классу блока (tone-*) на главной.
 *  3. Прежние переменные компонентов (--blue, --page, --border, --soft …) переназначаются на токены — поэтому шапка,
 *     калькуляторы, таблицы, списки и статьи получают новую палитру и цвет раздела без копий правил для каждого раздела.
 *  4. Компоненты: шапка, Hero, карточки разделов, панели, карточки материалов, боковая навигация, крошки, пагинация,
 *     статья, калькуляторы.
 * Содержимое статей (тексты, схемы, GIF-символы, таблицы) не перекрашивается и не обрезается. */

/* ───────── 1–2. Токены и цвета разделов ───────── */
:root {
  --ds-bg: #F3F6FA;
  --ds-card: #FFFFFF;
  --ds-text: #172C43;
  --ds-muted: #64778A;
  --ds-border: #E0E7EE;
  --ds-border-strong: #C6D1DC;
  --ds-blue: #1769E0;
  --ds-radius: 10px;
  --ds-radius-sm: 8px;
  --ds-gap: 20px;
}

/* По умолчанию (главная, поиск, старые рубрики, служебные страницы) — основной синий. */
:root,
.section-calc, .tone-calc {
  --section-accent: #1769E0;        /* полосы, рамки, заливки */
  --section-accent-text: #1769E0;   /* ссылки и текст на белом (контраст ≥ 4,5:1) */
  --section-accent-dark: #1052B4;   /* наведение */
  --section-accent-light: #EAF3FF;  /* светлый фон */
  --section-accent-border: #C7DCF9;
}
.section-schemes, .tone-schemes {
  --section-accent: #E67E20;
  --section-accent-text: #A65309;
  --section-accent-dark: #854206;
  --section-accent-light: #FFF3E7;
  --section-accent-border: #F5D3B1;
}
.section-ref, .tone-ref {
  --section-accent: #7850D5;
  --section-accent-text: #6A43C6;
  --section-accent-dark: #53309F;
  --section-accent-light: #F2EDFF;
  --section-accent-border: #DACDF6;
}
.section-repair, .tone-repair {
  --section-accent: #148B50;
  --section-accent-text: #0F7A45;
  --section-accent-dark: #0B5E35;
  --section-accent-light: #EAF8F0;
  --section-accent-border: #BCE4CC;
}

/* ───────── 3. Переменные прежних компонентов → токены ─────────
   Повторяются на каждом элементе, где компонент задавал свои значения (шапка, главная, разделы, статья, блоки tone-*),
   чтобы цвет раздела пересчитывался именно там. */
:root, body, .site-header, .home, .section-page, .section-hero, .section-aside, .article-layout,
.tone-calc, .tone-schemes, .tone-ref, .tone-repair {
  --page: var(--ds-bg);
  --white: var(--ds-card);
  --text: var(--ds-text);
  --graphite: var(--ds-text);
  --muted: var(--ds-muted);
  --border: var(--ds-border);
  --border-strong: var(--ds-border-strong);
  --line: var(--ds-border);
  --blue: var(--section-accent-text);
  --blue-dark: var(--section-accent-dark);
  --soft: #F7F9FC;
  --zebra: #FAFBFD;
  --radius: var(--ds-radius-sm);
}

body { background: var(--ds-bg); color: var(--ds-text); }
a { color: var(--section-accent-text); }
a:hover { color: var(--section-accent-dark); }
:focus-visible { outline-color: var(--section-accent); }

/* ───────── 4. Шапка ───────── */
.site-header { background: var(--ds-card); border-bottom: 1px solid var(--ds-border); }
.site-header__top { min-height: 84px; }
.header-search { border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius-sm); overflow: hidden; }
.header-search:focus-within { border-color: var(--section-accent); box-shadow: 0 0 0 3px var(--section-accent-light); }
.header-search__btn { color: var(--section-accent-text); }
.site-nav { border-top: 1px solid var(--ds-border); border-bottom: 0; }
.site-nav__list { gap: 6px; }
.site-nav__link { position: relative; padding: 14px 12px 13px; color: var(--ds-text); font-size: 15px; }
.site-nav__link:hover { color: var(--section-accent-text); }
.site-nav__item.is-current > .site-nav__link { color: var(--section-accent-text); }
.site-nav__item.is-current > .site-nav__link::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--section-accent);
}
.site-nav__drop { top: 100%; border: 1px solid var(--ds-border); border-radius: 0 0 var(--ds-radius) var(--ds-radius); }
.site-nav__drop li a:hover { background: var(--section-accent-light); color: var(--section-accent-text); }
@media (max-width: 860px) {
  .nav-toggle { border-color: var(--ds-border-strong); border-radius: var(--ds-radius-sm); min-height: 44px; }
  .site-nav__item.is-current > .site-nav__link::after { left: -10px; right: auto; top: 10px; bottom: 10px; width: 3px; height: auto; border-radius: 3px; }
}

/* ───────── Общие блоки ───────── */
.page { padding: 22px 0 36px; }
.page__stack { gap: var(--ds-gap); }
.panel { border: 1px solid var(--ds-border); border-radius: var(--ds-radius); background: var(--ds-card); }
.panel__title { color: var(--ds-text); letter-spacing: -.01em; }
.panel__more { color: var(--section-accent-text); font-weight: 700; }

.btn { border-radius: var(--ds-radius-sm); background: var(--section-accent-text); min-height: 42px; }
.btn:hover { background: var(--section-accent-dark); }
.btn--ghost { background: var(--ds-card); color: var(--section-accent-text); border: 1px solid var(--section-accent-text); }
.btn--ghost:hover { background: var(--section-accent-light); color: var(--section-accent-dark); }

/* Хлебные крошки — общий компонент (статьи, разделы) */
.crumbs ol { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; font-size: 13px; line-height: 1.5; color: var(--ds-muted); }
.crumbs li + li::before { content: "/"; margin: 0 7px; color: #A9B6C3; }
.crumbs a { color: var(--section-accent-text); }
.crumbs [aria-current] { color: var(--ds-muted); }

/* Пагинация */
.page-numbers { min-width: 38px; min-height: 38px; padding: 8px 12px; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-sm); background: var(--ds-card); color: var(--ds-text); }
a.page-numbers:hover { border-color: var(--section-accent); color: var(--section-accent-text); }
.page-numbers.current,
.section-page .page-numbers.current { background: var(--section-accent-text); border-color: var(--section-accent-text); color: #FFFFFF; }
.page-numbers.dots { background: transparent; }

/* Списки на поиске и старых рубриках: превью не обрезаются */
.feed__thumb { border-radius: var(--ds-radius-sm); }
.feed__thumb img { object-fit: contain; }

/* ───────── Главная ───────── */
.home .hero {
  background: linear-gradient(135deg, #FFFFFF 0%, #F4F8FE 45%, #E4EFFE 100%);
  border-bottom: 1px solid var(--ds-border);
}
.home .hero__title { color: var(--ds-text); }
.home .hero__lead { color: #33475C; }
.home .search__row { border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius-sm); overflow: hidden; background: #FFFFFF; }
.home .search__row:focus-within { border-color: var(--section-accent); outline: 0; box-shadow: 0 0 0 3px var(--section-accent-light); }
.home .search__btn { background: var(--section-accent-text); border-radius: 0; }
.home .search__btn:hover { background: var(--section-accent-dark); }
.home .frequent { color: var(--ds-muted); }

/* Калькулятор закона Ома на главной — белая карточка */
.home .ohm { padding: 20px; border: 1px solid var(--ds-border); border-top: 1px solid var(--ds-border); border-radius: var(--ds-radius); background: #FFFFFF; }
.home .ohm__mark { border-radius: 6px; }
.home .seg, .seg { border-radius: var(--ds-radius-sm); overflow: hidden; }
.seg input:checked + span, .home .seg input:checked + span { background: var(--section-accent-text); color: #FFFFFF; }
.home .ohm .field__box { border-radius: var(--ds-radius-sm); }
.home .ohm .btn { border-radius: var(--ds-radius-sm); background: var(--section-accent-text); }
.home .ohm .btn:hover { background: var(--section-accent-dark); }
.home .plate { border-radius: var(--ds-radius-sm); overflow: hidden; }
.home .plate__v { color: var(--section-accent-text); }
.home .plate__formula::before { color: var(--section-accent-text); }

/* Блоки главной */
.home .panel { border-radius: var(--ds-radius); }
.home .panel__head { border-bottom: 2px solid var(--section-accent); }
.home .panel__note { color: var(--ds-muted); }

/* Четыре карточки разделов: светлый фон раздела, вся карточка — ссылка */
.home .panel--dirs { border: 0; background: transparent; }
.home .dirs { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.home .dir {
  position: relative; padding: 20px 20px 18px;
  border: 1px solid var(--section-accent-border); border-radius: var(--ds-radius);
  background: var(--section-accent-light);
}
.home .dir:last-child, .home .dir:nth-child(2) { border-right: 1px solid var(--section-accent-border); }
.home .dir:nth-child(-n+2) { border-bottom: 1px solid var(--section-accent-border); }
.home .dir__icon { color: var(--section-accent); }
.home .dir__title a { color: var(--ds-text); }
.home .dir__text { color: #3F5267; }
.home .dir__more { color: var(--section-accent-text); }
.home .dir--link .dir__title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--ds-radius); }
.home .dir--link:hover { border-color: var(--section-accent); }
.home .dir--link:hover .dir__title a { color: var(--section-accent-text); text-decoration: none; }
.home .dir--link:focus-within { outline: 2px solid var(--section-accent); outline-offset: 2px; }
.home .dir__more { position: relative; z-index: 1; }

/* Популярные калькуляторы, схемы, справочник, подборки, лента */
.home .row:hover { background: var(--section-accent-light); }
.home .row::after { color: var(--section-accent-text); }
.home .row:hover .row__name { color: var(--section-accent-text); }
.home .scheme-main__img, .home .scheme-item__img { border-radius: var(--ds-radius-sm); }
.home .scheme-item::after { color: var(--section-accent-text); }
.home .tech-table th { background: var(--section-accent-light); }
.home .table-wrap { border-radius: var(--ds-radius-sm); }
.home .set__title { color: var(--ds-text); }
.home .feed__thumb { border-radius: var(--ds-radius-sm); }

@media (max-width: 1024px) {
  .home .dirs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .home .dirs { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .home .dir, .home .dir:last-child { border: 1px solid var(--section-accent-border); }
}

/* ───────── Страницы разделов ───────── */
.section-hero {
  padding: 22px 28px 24px;
  border: 1px solid var(--section-accent-border); border-radius: var(--ds-radius);
  background: linear-gradient(135deg, #FFFFFF 0%, var(--section-accent-light) 100%);
}
.section-hero__title { margin-top: 10px; font-size: 30px; line-height: 1.2; letter-spacing: -.015em; color: var(--ds-text); }
.section-hero__intro { max-width: 52em; margin-top: 8px; font-size: 15px; line-height: 1.6; color: #3F5267; }
.section-hero__subnav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.section-hero__subnav a {
  display: inline-flex; align-items: center; min-height: 36px; padding: 6px 12px;
  border: 1px solid var(--section-accent-border); border-radius: var(--ds-radius-sm);
  background: #FFFFFF; color: var(--section-accent-text); font-size: 14px; line-height: 1.3;
}
.section-hero__subnav a:hover { border-color: var(--section-accent); color: var(--section-accent-dark); text-decoration: none; }

.section-layout { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: var(--ds-gap); align-items: start; }
.section-layout--single { grid-template-columns: minmax(0, 1fr); }
.section-page { padding: 0; }
.section-list { margin: 0; border: 0; display: grid; gap: 12px; }
.section-item,
.section-page--media .section-item {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 18px; align-items: start;
  padding: 16px 18px; border: 1px solid var(--ds-border); border-radius: var(--ds-radius); background: var(--ds-card);
}
.section-page--media .section-item--thumb { grid-template-columns: 150px minmax(0, 1fr); }
.section-item:hover { border-color: var(--section-accent-border); }
.section-item__thumb {
  width: 150px; height: 112px; padding: 4px; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-sm); background: #FFFFFF;
}
.section-item__thumb img { width: 100%; height: 100%; object-fit: contain; } /* схема целиком, без обрезки */
.section-item__title { font-size: 17px; line-height: 1.35; }
.section-item__title a { color: var(--section-accent-text); }
.section-item__title a:hover { color: var(--section-accent-dark); }
.section-item__text { margin-top: 6px; font-size: 14px; line-height: 1.55; color: var(--ds-muted); -webkit-line-clamp: 3; line-clamp: 3; }
.section-item__go { display: none; }
.section-page .navigation.pagination { margin-top: 20px; }

.section-aside .aside-box { position: sticky; top: 18px; }
.aside-box { padding: 18px 18px 12px; border: 1px solid var(--ds-border); border-radius: var(--ds-radius); background: var(--ds-card); }
.aside-box__title { margin: 0 0 8px; padding-bottom: 10px; border-bottom: 2px solid var(--section-accent); font-size: 15px; color: var(--ds-text); }
.link-list { list-style: none; margin: 0; padding: 0; font-size: 14px; line-height: 1.4; }
.link-list a { display: block; padding: 8px 10px; margin: 0 -10px; border-bottom: 1px solid var(--ds-border); border-radius: 6px; color: var(--section-accent-text); }
.link-list li:last-child a { border-bottom: 0; }
.link-list a:hover { background: var(--section-accent-light); text-decoration: none; }
.section-aside__list .is-current > a { background: var(--section-accent-light); color: var(--section-accent-dark); font-weight: 700; box-shadow: inset 3px 0 0 var(--section-accent); }

@media (max-width: 900px) {
  .section-layout { grid-template-columns: minmax(0, 1fr); }
  .section-aside .aside-box { position: static; }
}
@media (max-width: 600px) {
  .section-hero { padding: 18px 16px 20px; }
  .section-hero__title { font-size: 24px; }
  .section-hero__intro { font-size: 14px; }
  .section-item, .section-page--media .section-item { padding: 14px; }
  .section-page--media .section-item--thumb { grid-template-columns: 96px minmax(0, 1fr); gap: 0 12px; }
  .section-item__thumb { width: 96px; height: 76px; padding: 2px; }
  .section-item__title { font-size: 16px; }
  .section-item__text { font-size: 13px; }
}

/* ───────── Статьи ───────── */
.article-layout { gap: var(--ds-gap); }
.entry--v2 { border-radius: var(--ds-radius); padding: 24px 32px 32px; }
.entry--v2 .entry__head { margin: 14px 0 24px; padding-bottom: 16px; border-bottom: 2px solid var(--section-accent); }
.entry--v2 .entry__title { color: var(--ds-text); }
.entry--v2 .entry__meta { color: var(--ds-muted); }
.entry--v2 .entry__content { color: #22364B; }
.entry--v2 .entry__content h2:not([class]) { border-bottom-color: var(--ds-border); color: var(--ds-text); }
.entry--v2 .entry__content h3:not([class]) { color: var(--ds-text); }
.entry--v2 .entry__content a { color: var(--section-accent-text); }
.entry__content blockquote { border-left-color: var(--section-accent); }
.entry__content th { background: #F1F5F9; }
/* Таблицы старых статей прокручиваются внутри рамки, а не всей страницей */
.entry__content .legacy-table, .entry__content .wp-block-table { border-radius: var(--ds-radius-sm); max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.entry__content > table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
/* Схемы и изображения статей — целиком, в исходных пропорциях */
.entry__content img { max-width: 100%; height: auto; object-fit: contain; }
.entry__content a.img-zoom::after { color: var(--section-accent-text); }
.entry__content .legacy-form { border-radius: var(--ds-radius-sm); }

.aside-box .toc__item a, .aside-box .link-list a { color: var(--section-accent-text); }
.toc { list-style: none; margin: 0; padding: 0; font-size: 14px; line-height: 1.4; }
.toc__item a { display: block; padding: 7px 0; border-bottom: 1px solid var(--ds-border); }
.entry-related { border-top: 2px solid var(--section-accent); }
.entry-related__title { color: var(--ds-text); }
.rel-card__link { border: 1px solid var(--ds-border); border-radius: var(--ds-radius); overflow: hidden; color: var(--section-accent-text); }
.rel-card__link:hover { border-color: var(--section-accent); }
.rel-card__link:hover .rel-card__title { color: var(--section-accent-dark); }
.rel-card__img { border-bottom: 1px solid var(--ds-border); }
.rel-card__img img { object-fit: contain; }

/* Статья без нового шаблона, поиск, старые рубрики, 404 */
.entry__title { color: var(--ds-text); }

@media (max-width: 600px) {
  .entry--v2 { padding: 18px 16px 22px; }
}

/* ───────── Калькуляторы (только оформление; разметка и логика не меняются) ───────── */
.calc, .entry__content .ohm, .calc-slot .ohm { border: 1px solid var(--ds-border); border-radius: var(--ds-radius); background: #F8FAFD; overflow: hidden; }
.calc__title { color: var(--section-accent-text); }
.field__box { border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius-sm); background: #FFFFFF; }
.field__box:focus-within { border-color: var(--section-accent); box-shadow: 0 0 0 3px var(--section-accent-light); }
.field.is-source .field__box { box-shadow: inset 3px 0 0 var(--section-accent); }
.field__select { border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius-sm); }
.field__select:focus { outline: 0; border-color: var(--section-accent); box-shadow: 0 0 0 3px var(--section-accent-light); }
.choice__item { border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius-sm); }
.choice__item:has(input:checked) { border-color: var(--section-accent); background: var(--section-accent-light); box-shadow: inset 3px 0 0 var(--section-accent); }
.choice__item input { accent-color: var(--section-accent-text); }
.plate { border: 1px solid var(--ds-border); border-radius: var(--ds-radius-sm); background: #FFFFFF; overflow: hidden; }
.plate__v { color: var(--section-accent-text); }
.plate.is-empty .plate__v { color: var(--ds-border-strong); }
.calc__alert { border-radius: var(--ds-radius-sm); }
.calc__ref summary { color: var(--section-accent-text); }
.diodes-wrap { border-radius: var(--ds-radius-sm); }
.diodes th { background: var(--section-accent-light); color: #3F5267; }
@media (max-width: 600px) {
  .diodes tr { border-radius: var(--ds-radius-sm); overflow: hidden; }
  .diodes td:first-child { background: var(--section-accent-light); }
}

/* ───────── Подвал ───────── */
.site-footer { background: #13253A; }
.site-footer__row { padding-top: 24px; padding-bottom: 20px; }

/* ───────── Вертикальный ритм текста статьи ─────────
   Только область текста статьи (.entry__content); встроенные калькуляторы (.calc-slot, .ohm, .calc) не затрагиваются.
   Соседние вертикальные отступы схлопываются: между блоками действует больший из двух, поэтому двойных отступов нет
   (абзац 16 → H2 32 = 32; список 24 → абзац 16 = 24; H2 16 → изображение 24 = 24). */
.entry__content > :first-child { margin-top: 0; }
.entry__content :is(p, .legacy-block):not(.calc-slot *):not(.ohm *):not(.calc *):not(td *):not(th *):not(li *) { margin: 0 0 16px; }
.entry__content .legacy-block + .legacy-block { margin-top: 0; }
.entry__content :is(ul, ol):not([class]):not(.calc-slot *):not(.ohm *):not(.calc *) { margin: 0 0 24px; }
.entry__content :is(ul, ol):not([class]) :is(ul, ol) { margin: 6px 0 0; }
.entry__content > table,
.entry__content :is(.legacy-table, .wp-block-table, figure):not(.calc-slot *) { margin: 24px 0; }
.entry__content h2:not([class]), .entry--v2 .entry__content h2:not([class]) { margin: 32px 0 16px; }
.entry__content h3:not([class]), .entry--v2 .entry__content h3:not([class]) { margin: 24px 0 12px; }
.entry__content > :is(h2, h3):first-child { margin-top: 0; }
/* Остатки старой вёрстки: пустые переносы строк в самом конце текста не добавляют лишнего пустого места */
.entry__content > br:not(:has(~ :not(br))) { display: none; }
/* Перенос строки сразу до или после заголовка внутри старого блока лишний: заголовок и так начинается с новой строки */
.entry__content :is(h2, h3) + br, .entry__content :is(h2, h3) + br + br,
.entry__content br:has(+ :is(h2, h3)), .entry__content br:has(+ br + :is(h2, h3)) { display: none; }

/* Изображения: отдельной строкой — крупные (legacy-img--wide) и стоящие в начале абзаца (legacy-img--lead);
   отступ 24 px сверху и снизу, исходные пропорции. Мелкие символы в тексте и в таблицах остаются в строке. */
.entry--v2 .entry__content img.legacy-img--wide,
.entry__content img.legacy-img--lead { display: block; max-width: 100%; height: auto; margin: 24px auto; }
.entry--v2 .entry__content a.img-zoom { margin: 24px auto; }
.entry--v2 .entry__content a.img-zoom img.legacy-img { margin: 0 auto; }
.entry__content a:has(> img.legacy-img--lead) { display: block; width: fit-content; max-width: 100%; margin: 24px auto; }
.entry__content a:has(> img.legacy-img--lead) > img { margin: 0 auto; }

/* Обтекание: заголовки, списки и таблицы текста статьи начинаются ниже изображений, а не справа от них
   (только внутри текста статьи; калькуляторы и оформленные блоки не затрагиваются). */
.entry__content :is(h2, h3, h4, ul, ol, table, .legacy-table, .wp-block-table, hr):not(.calc-slot *):not(.ohm *):not(.calc *) { clear: both; }

/* ───────── Без горизонтальной прокрутки страницы ─────────
   Длинные слова в заголовках карточек переносятся; таблицы старых статей без обёртки прокручиваются сами;
   встроенные объекты старых страниц (Flash и т. п.) не шире колонки. */
.section-item__body, .feed__body { min-width: 0; }
.section-item__title, .panel__title, .entry__title, .section-hero__title, .rel-card__title, .dir__title { overflow-wrap: break-word; hyphens: auto; }
.entry__content table:not(.legacy-table table):not(.wp-block-table table):not(.calc table) { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.entry__content object, .entry__content embed, .entry__content iframe, .entry__content video { max-width: 100%; }
@media (max-width: 420px) {
  .panel__head { flex-wrap: wrap; row-gap: 6px; }
  .panel__more { white-space: normal; }
}

/* ───────── Телефон: общие поля, без горизонтальной прокрутки ───────── */
@media (max-width: 600px) {
  .page { padding: 14px 0 26px; }
  .page__stack { gap: 14px; }
}
@media (max-width: 360px) {
  .site-header .logo__img { --logo-w: 185px; }
}


/* Главное изображение записи в статье (сразу после H1 и даты, первым в тексте): ширина 100 % колонки, высота auto, без обрезки */
.entry__content .entry__featured { margin: 0 0 24px; clear: both; }
.entry__content .entry__featured-img { display: block; width: 100%; max-width: 100%; height: auto; object-fit: contain; border-radius: var(--ds-radius-sm); }

/* ───────── Увеличение изображений статьи (assets/js/content.js) ─────────
   Подпись «Открыть в полном размере» не выводится; увеличиваемые изображения — курсор-лупа и лайтбокс. */
.entry__content a.img-zoom::after { content: none; display: none; }
.entry__content img.is-zoomable { cursor: zoom-in; }
.entry__content img.is-zoomable:focus-visible { outline: 2px solid var(--section-accent); outline-offset: 3px; }
.entry__content .entry__featured, .entry__content .entry__featured-img { cursor: default; }

.lightbox {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  padding: 56px 16px 16px;
  background: rgba(10, 18, 28, .88);
  cursor: zoom-out;
}
.lightbox[hidden] { display: none; }
.lightbox__img {
  display: block; width: auto; height: auto;
  max-width: 100%; max-height: 100%;          /* весь в пределах экрана, исходные пропорции */
  object-fit: contain;
  background: #FFFFFF;                          /* схемы на прозрачном фоне остаются читаемыми */
  border-radius: 4px;
  cursor: default;
  box-shadow: 0 6px 30px rgba(0, 0, 0, .35);
}
.lightbox__close {
  position: absolute; top: 10px; right: 12px;
  width: 44px; height: 44px; padding: 0;
  border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .14); color: #FFFFFF;
  font: 400 30px/44px Arial, sans-serif; text-align: center;
  cursor: pointer;
}
.lightbox__close:hover { background: rgba(255, 255, 255, .26); }
.lightbox__close:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 2px; }
@media (max-width: 600px) {
  .lightbox { padding: 52px 8px 8px; }
  .lightbox__close { top: 6px; right: 6px; }
}
