/*
 * Beam landing page (/raschet-balki) — компоненты SEO-лендинга калькулятора.
 * Namespaced `blp-` во избежание коллизий с дизайн-системой guru и Elementor.
 * Цвета — на переменных дизайн-системы (авто-поддержка тёмной темы через [data-theme]).
 * Слайдеры переиспользуют .feature-slider (движок FeaturesSlider из main.js).
 * Грузится только на страницах с beam-виджетами (Elementor style-deps).
 */

:root{
  --blp-green: var(--primary-color, #28A745);
  --blp-green-600: var(--primary-color-hover, #1F9A3D);
  --blp-green-700: var(--primary-color-focus, #178338);
  --blp-tint: var(--primary-color-10, rgba(40,167,69,.10));
  --blp-tint-2: var(--primary-color-20, rgba(40,167,69,.18));
  --blp-ink: var(--text-primary, #14202E);
  --blp-ink-2: var(--text-secondary, #54687C);
  --blp-ink-3: #8A9AAB;
  --blp-bg: var(--bg-secondary, #F5F9FF);
  --blp-surface: var(--surface-primary, #FFFFFF);
  --blp-band: #EEF4FB;
  --blp-line: var(--border-color, #DCE6F0);
  --blp-line-2: #E9F0F8;
  --blp-blue:#2F6BE0; --blp-amber:#E8A33D;
  --blp-shadow:0 14px 44px 0 rgba(31,61,43,.09);
  --blp-shadow-sm:0 4px 16px rgba(20,32,46,.06);
  --blp-r:18px; --blp-r-sm:12px; --blp-r-lg:28px;
  --blp-measure:70ch;
  --blp-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
}
[data-theme="dark"]{
  --blp-ink-3:#6B7787; --blp-band:#131922; --blp-line-2:#202836;
  --blp-surface: var(--surface-primary, #161B22);
  --blp-shadow:0 18px 50px rgba(0,0,0,.45); --blp-shadow-sm:0 4px 16px rgba(0,0,0,.35);
}

/* Глобальный сетевой фон темы (.main-bg) — для главной; на beam-лендинге
   у страницы своя эстетика, поэтому скрываем его и поднимаем контент. */
/* Анимированный фон темы (орбиты) виден и здесь — фон как на главной;
   сетку формул тема вырезает сама (только front-page). */

/* ---- корневой ритм ---- */
.blp{ position:relative; z-index:1; font-family:'Onest',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif; color:var(--blp-ink); font-size:16px; line-height:1.6; }
.blp *,.blp *::before,.blp *::after{ box-sizing:border-box; }
.blp-wrap{ max-width:1200px; margin:0 auto; padding:0 24px; }
.blp-measure{ max-width:var(--blp-measure); }

/* ---- типографика ---- */
.blp-eyebrow{ display:inline-flex; align-items:center; gap:9px; font-size:12.5px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; color:var(--blp-green); }
.blp-eyebrow::before{ content:""; width:22px; height:2px; background:var(--blp-green); border-radius:2px; }
.blp-h2{ font-size:clamp(26px,3.2vw,33px); line-height:1.15; letter-spacing:-.02em; font-weight:700; margin:12px 0 0; text-wrap:balance; }
.blp-prose h3{ font-size:19.5px; font-weight:700; letter-spacing:-.01em; margin:30px 0 0; color:var(--blp-ink); }
.blp-prose p{ margin:15px 0 0; color:var(--blp-ink-2); line-height:1.72; }
.blp-prose strong{ color:var(--blp-ink); font-weight:600; }
.blp-prose ul{ margin:16px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:12px; }
.blp-prose ul li{ position:relative; padding-left:30px; color:var(--blp-ink-2); }
.blp-prose ul li::before{ content:""; position:absolute; left:2px; top:9px; width:15px; height:15px; border-radius:50%; background:var(--blp-tint); border:1.5px solid var(--blp-green); }
.blp-prose ul li::after{ content:""; position:absolute; left:7px; top:13px; width:5px; height:3px; border-left:1.6px solid var(--blp-green); border-bottom:1.6px solid var(--blp-green); transform:rotate(-45deg); }
/* формулы: инлайн-код в WYSIWYG стилизуется как инженерный чип */
.blp-prose code,.blp-f{ font-family:var(--blp-mono); font-size:.9em; background:var(--blp-band); border:1px solid var(--blp-line); border-radius:7px; padding:.12em .5em; color:var(--blp-ink); white-space:nowrap; }
.blp-prose code b,.blp-f b{ color:var(--blp-green-600); font-weight:600; }

/* ---- секция ---- */
.blp-sec{ padding:58px 0; }
/* Тройка отдельной секцией сразу под hero: свой верхний отступ короче,
   иначе паддинги двух секций складываются в пустую полосу. */
.blp-show--solo{ padding:26px 0 44px; }
.blp-show--solo .blp-show__blocks{ margin-top:0; }
.blp-sec--band{
  /* растворение краев в фон страницы — как у опакных секций главной */
  background:linear-gradient(180deg,
    transparent 0, var(--blp-band) 140px,
    var(--blp-band) calc(100% - 140px), transparent 100%);
}
.blp-head{ max-width:var(--blp-measure); }
.blp-head--center{ max-width:640px; margin:0 auto; text-align:center; }
.blp-head--center .blp-eyebrow{ justify-content:center; }
.blp-head p{ color:var(--blp-ink-2); margin-top:14px; }
.blp-grid{ display:grid; grid-template-columns:minmax(0,1fr) 50%; gap:56px; align-items:start; margin-top:26px; }
.blp-grid--rev .blp-prose{ order:2; }
.blp-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.blp-chip{ font-size:13.5px; font-weight:600; color:var(--blp-ink-2); background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:9px; padding:6px 12px; }

/* ---- кнопки ---- */
.blp-btn{ display:inline-flex; align-items:center; gap:12px; height:56px; padding:0 14px 0 26px; border-radius:100px; font-weight:600; font-size:16.5px; text-decoration:none; cursor:pointer; border:0; transition:transform .18s ease, box-shadow .18s ease, background .18s; }
.blp-btn--primary{ background:var(--blp-green); color:#fff; box-shadow:0 10px 26px var(--blp-tint-2); }
.blp-btn--primary:hover{ background:var(--blp-green-700); transform:translateY(-2px); color:#fff; }
.blp-btn--primary .blp-tick{ width:34px; height:34px; border-radius:50%; background:#0c1a10; display:grid; place-items:center; }
.blp-btn--ghost{ background:var(--blp-surface); color:var(--blp-ink); border:1px solid var(--blp-line); padding:0 26px; }
.blp-btn--ghost:hover{ border-color:var(--blp-green); color:var(--blp-green); }

/* ---- HERO ---- */
.blp-hero{ padding:54px 0 26px; }
.blp-hero__grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:52px; align-items:center; }
.blp-h1{ font-size:clamp(38px,5vw,56px); line-height:1.07; letter-spacing:-.025em; font-weight:700; margin:18px 0 0; text-wrap:balance; }
.blp-h1 .u{ background:linear-gradient(transparent 66%, var(--blp-tint-2) 0); padding:0 .04em; }
.blp-lead{ font-size:19.5px; line-height:1.62; color:var(--blp-ink-2); margin:20px 0 0; max-width:34ch; }
.blp-hero__cta{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; margin-top:32px; }
.blp-hero__cta-row{ display:flex; gap:14px; flex-wrap:wrap; }
.blp-hero__note{ font-size:14px; color:var(--blp-ink-3); }
.blp-trust{ display:flex; gap:26px; margin-top:34px; padding-top:26px; border-top:1px solid var(--blp-line); }
.blp-trust__n{ font-size:26px; font-weight:700; letter-spacing:-.02em; font-variant-numeric:tabular-nums; color:var(--blp-ink); }
.blp-trust__l{ font-size:13.5px; color:var(--blp-ink-3); line-height:1.35; margin-top:2px; }

/* ---- embed (калькулятор/картинка) ---- */
.blp-embed{ background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:var(--blp-r-lg); box-shadow:var(--blp-shadow); overflow:hidden; }
.blp-embed__bar{ display:flex; align-items:center; gap:8px; padding:13px 16px; border-bottom:1px solid var(--blp-line-2); background:var(--blp-band); }
.blp-embed__dot{ width:11px; height:11px; border-radius:50%; background:var(--blp-line); }
.blp-embed__dot:nth-child(1){background:#e5695f}.blp-embed__dot:nth-child(2){background:#e6b34d}.blp-embed__dot:nth-child(3){background:#5bbd68}
.blp-embed__title{ margin-left:8px; font-size:13px; color:var(--blp-ink-2); font-weight:600; }
.blp-embed__title .live{ display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--blp-green); margin-right:7px; box-shadow:0 0 0 0 var(--blp-tint-2); animation:blp-pulse 2.6s ease-out infinite; }
@keyframes blp-pulse{0%{box-shadow:0 0 0 0 var(--blp-tint-2)}70%{box-shadow:0 0 0 9px transparent}100%{box-shadow:0 0 0 0 transparent}}
.blp-embed__stage{ padding:0; background:var(--blp-surface); }
.blp-embed__stage img{ display:block; width:100%; height:auto; }
.blp-embed__stage iframe{ display:block; width:100%; height:520px; border:0; }

/* ---- shot-card (скриншот/слайдер) ---- */
.blp-shot{ position:sticky; top:110px; display:flex; flex-direction:column; gap:14px; }
.blp-shot__card{ background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:var(--blp-r); box-shadow:var(--blp-shadow-sm); overflow:hidden; }
.blp-shot__bar{ display:flex; align-items:center; gap:7px; padding:11px 14px; border-bottom:1px solid var(--blp-line-2); background:var(--blp-band); }
.blp-shot__bar i{ width:9px; height:9px; border-radius:50%; background:var(--blp-line); }
.blp-shot__bar span{ margin-left:6px; font-size:12px; color:var(--blp-ink-3); font-weight:600; }
.blp-shot__body{ background:var(--blp-surface); }
.blp-shot__body img{ display:block; width:100%; height:auto; }
.blp-shot__cap{ font-family:var(--blp-mono); font-size:11.5px; color:var(--blp-ink-3); line-height:1.5; padding:0 2px; }
.blp-shot__cap b{ color:var(--blp-green-600); font-weight:600; }

/* ---- шаги ---- */
.blp-steps{ counter-reset:s; list-style:none; margin:0; padding:0; max-width:840px; }
.blp-steps li{ position:relative; padding:18px 0 18px 62px; border-top:1px solid var(--blp-line-2); color:var(--blp-ink-2); }
.blp-steps li:first-child{ border-top:0; }
.blp-steps li::before{ counter-increment:s; content:counter(s); position:absolute; left:0; top:16px; width:40px; height:40px; border-radius:12px; background:var(--blp-tint); color:var(--blp-green-600); font-weight:700; font-size:17px; display:grid; place-items:center; font-variant-numeric:tabular-nums; }
.blp-steps li::after{ content:""; position:absolute; left:19px; top:56px; bottom:-1px; width:2px; background:var(--blp-line); }
.blp-steps li:last-child::after{ display:none; }
.blp-steps li strong{ color:var(--blp-ink); }
.blp-steps li code{ font-family:var(--blp-mono); font-size:.86em; background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:6px; padding:.1em .4em; white-space:nowrap; }

/* ---- карточки (апселл) ---- */
.blp-cards3{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:30px; }
.blp-card{ background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:var(--blp-r); padding:24px; box-shadow:var(--blp-shadow-sm); transition:transform .2s ease, border-color .2s; }
.blp-card:hover{ transform:translateY(-4px); border-color:var(--blp-green); }
.blp-card h4{ margin:14px 0 0; font-size:18px; font-weight:700; color:var(--blp-ink); }
.blp-card p{ margin:8px 0 0; font-size:15.5px; color:var(--blp-ink-2); line-height:1.62; }
.blp-card__ic{ width:44px; height:44px; border-radius:12px; background:var(--blp-tint); color:var(--blp-green-600); display:grid; place-items:center; }
.blp-card__ic img{ width:24px; height:24px; }

/* ---- возможности (caps: авто-сетка карточек icon+заголовок+текст) ---- */
.blp-caps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:20px; margin-top:30px; }
.blp-cap{ background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:var(--blp-r); padding:24px; box-shadow:var(--blp-shadow-sm); transition:transform .2s ease, border-color .2s; }
.blp-cap:hover{ transform:translateY(-3px); border-color:var(--blp-green); }
.blp-cap__ic{ width:44px; height:44px; border-radius:12px; background:var(--blp-tint); color:var(--blp-green-600); display:grid; place-items:center; }
.blp-cap__ic img{ width:24px; height:24px; }
.blp-cap h4{ margin:14px 0 0; font-size:17px; font-weight:700; color:var(--blp-ink); }
.blp-cap p{ margin:8px 0 0; font-size:15.5px; color:var(--blp-ink-2); line-height:1.62; }

/* ---- расчётные схемы (schemes: карточки с диаграммой + бейджем метода) ---- */
.blp-schemes{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:18px; margin-top:30px; }
.blp-scheme{ background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:var(--blp-r); padding:20px; display:flex; flex-direction:column; gap:6px; transition:transform .2s ease, border-color .2s; }
.blp-scheme:hover{ transform:translateY(-3px); border-color:var(--blp-green); }
.blp-scheme__pic svg,.blp-scheme__pic img{ display:block; width:100%; height:auto; }
.blp-scheme b{ font-size:16px; font-weight:700; color:var(--blp-ink); margin-top:6px; }
.blp-scheme span{ font-size:14.5px; color:var(--blp-ink-2); line-height:1.55; }
.blp-scheme i{ font-style:normal; font-size:11.5px; font-weight:600; color:var(--blp-green-600); background:var(--blp-tint); padding:3px 10px; border-radius:100px; align-self:flex-start; margin-top:4px; }

/* ---- инструменты ---- */
.blp-tools{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:30px; }
.blp-tool{ display:flex; flex-direction:column; gap:12px; padding:22px; border:1px solid var(--blp-line); border-radius:var(--blp-r); background:var(--blp-surface); text-decoration:none; color:inherit; transition:.2s; }
.blp-tool:hover{ border-color:var(--blp-green); transform:translateY(-3px); }
.blp-tool__ic{ width:40px; height:40px; border-radius:10px; display:grid; place-items:center; color:#fff; }
.blp-tool__ic img{ width:22px; height:22px; }
.blp-tool b{ font-size:16px; font-weight:700; color:var(--blp-ink); }
.blp-tool span{ font-size:14px; color:var(--blp-ink-3); }
.blp-tool i{ margin-top:auto; font-size:14px; font-weight:600; color:var(--blp-green); font-style:normal; }

/* ---- TOC ---- */
.blp-toc{ position:sticky; top:0; z-index:20; background:color-mix(in srgb,var(--blp-bg) 88%, transparent); backdrop-filter:blur(10px); border-block:1px solid var(--blp-line); }
.blp-toc__inner{ display:flex; gap:8px; overflow-x:auto; padding:12px 0; }
.blp-toc a{ flex:0 0 auto; font-size:13.5px; font-weight:600; color:var(--blp-ink-2); text-decoration:none; padding:7px 14px; border:1px solid var(--blp-line); border-radius:100px; background:var(--blp-surface); white-space:nowrap; transition:.15s; }
.blp-toc a:hover,.blp-toc a.is-active{ color:var(--blp-green); border-color:var(--blp-green); }

/* ---- FAQ ---- */
.blp-faq{ max-width:820px; margin:28px auto 0; }
.blp-faq details{ border-top:1px solid var(--blp-line); }
.blp-faq details:last-child{ border-bottom:1px solid var(--blp-line); }
.blp-faq summary{ list-style:none; cursor:pointer; padding:22px 44px 22px 4px; position:relative; font-weight:600; font-size:18px; color:var(--blp-ink); letter-spacing:-.01em; }
.blp-faq summary::-webkit-details-marker{ display:none; }
/* Рамку фокуса после щелчка мышью не рисуем: ее ставит общее правило темы :focus (main.css). С клавиатуры
   (Tab) рамка остается — без нее не видно, где фокус (решение владельца 05.11.2026) */
.blp-faq summary:focus:not(:focus-visible){ outline:none; }
.blp-faq summary::after{ content:""; position:absolute; right:8px; top:26px; width:11px; height:11px; border-right:2px solid var(--blp-ink-3); border-bottom:2px solid var(--blp-ink-3); transform:rotate(45deg); transition:transform .2s; }
.blp-faq details[open] summary::after{ transform:rotate(-135deg); }
.blp-faq details p{ margin:0 0 22px; padding-right:44px; color:var(--blp-ink-2); font-size:16px; line-height:1.65; }
.blp-faq details p code{ font-family:var(--blp-mono); font-size:.88em; background:var(--blp-band); border:1px solid var(--blp-line); border-radius:6px; padding:.1em .4em; }

/* ---- финальный CTA ---- */
.blp-final{ position:relative; overflow:hidden; background:linear-gradient(135deg,#0f2a17,#154a29); color:#eaf5ee; border-radius:var(--blp-r-lg); padding:60px 48px; text-align:center; box-shadow:var(--blp-shadow); }
.blp-final .blp-h2{ color:#fff; margin:0; }
.blp-final p{ color:#bfe0c9; max-width:52ch; margin:16px auto 0; }
.blp-final .blp-eyebrow{ color:#7fe39a; justify-content:center; }
.blp-final .blp-btn--primary{ background:#fff; color:#123d22; margin-top:30px; }
.blp-final .blp-btn--primary:hover{ background:#eafbef; color:#123d22; }
.blp-final .blp-btn--primary .blp-tick{ background:var(--blp-green); }
.blp-final__grid{ position:absolute; inset:0; opacity:.16; pointer-events:none; }

/* ---- без проявления при прокрутке: ScrollReveal снят из main.js темы (просьба владельца 29.10.2026 —
   блоки сразу на странице); атрибут data-reveal в разметке остался и ни на что не влияет ---- */

/* ---- слайдер изображений (реюз .feature-slider): габариты под shot/embed ---- */
.blp-embed .feature-slider,.blp-shot__card .feature-slider{ position:relative; overflow:hidden; }
.blp-embed .feature-slider__track,.blp-shot__card .feature-slider__track{ display:flex; transition:transform .3s ease; }
/* ширину слайда задает инлайн виджета (100%/N) — min-width здесь ломал шаг */
.blp-embed .feature-slider__slide img,.blp-shot__card .feature-slider__slide img{ display:block; width:100%; height:auto; }
.blp-embed .feature-slider__dots,.blp-shot__card .feature-slider__dots{ display:flex; gap:8px; justify-content:center; padding:12px; }
.blp-embed .feature-slider__dot,.blp-shot__card .feature-slider__dot{ width:26px; height:5px; border:0; border-radius:100px; background:var(--blp-line); cursor:pointer; padding:0; transition:.2s; }
.blp-embed .feature-slider__dot--active,.blp-shot__card .feature-slider__dot--active{ background:var(--blp-green); }

/* ---- адаптив ---- */
@media (max-width:960px){
  .blp-hero__grid{ grid-template-columns:1fr; gap:36px; }
  .blp-grid{ grid-template-columns:1fr; gap:30px; }
  .blp-grid--rev .blp-prose{ order:0; }
  .blp-shot{ position:static; }
  .blp-cards3{ grid-template-columns:1fr; }
  .blp-tools{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  .blp-wrap{ padding:0 18px; }
  .blp-trust{ flex-wrap:wrap; gap:18px; }
  .blp-tools{ grid-template-columns:1fr; }
  .blp-final{ padding:44px 22px; }
  .blp-hero__cta{ align-items:stretch; }
  .blp-btn{ width:100%; justify-content:center; }
}
@media (prefers-reduced-motion:reduce){
  .blp-embed__title .live{ animation:none; }
}

/* ── Слайдеры скриншотов в окнах лендинга ─────────────────────────────────
   Стили карточек главной позиционируют img слайда абсолютно и держат высоту
   на контейнере; в blp-окнах высоту задает сама картинка — возвращаем поток.
   Пары light/dark: правила дублируют тему с большей специфичностью, потому
   что .blp-embed__stage img { display:block } иначе перебивает скрытие. */
.blp .feature-slider__slide img{ position:static; width:100%; height:auto; }
/* Специфичность (0,3,1)+ — перебиваем базовое «.blp-embed .feature-slider__slide img{display:block}» */
.blp .feature-slider__slide img.feature-slider__img--dark,
.blp-embed__stage > img.feature-slider__img--dark,
.blp-shot__body > img.feature-slider__img--dark{ display:none; }
html[data-theme="dark"] .blp .feature-slider__slide img.feature-slider__img--light,
html[data-theme="dark"] .blp-embed__stage > img.feature-slider__img--light,
html[data-theme="dark"] .blp-shot__body > img.feature-slider__img--light{ display:none; }
html[data-theme="dark"] .blp .feature-slider__slide img.feature-slider__img--dark,
html[data-theme="dark"] .blp-embed__stage > img.feature-slider__img--dark,
html[data-theme="dark"] .blp-shot__body > img.feature-slider__img--dark{ display:block; }

/* ── Hero product-demo (layout=wide) ──────────────────────────────────────
   Интро по центру, демо-окно продукта на всю контентную ширину, product-табы
   вместо карусельных точек (точки скрыты, табы кликают их программно). */
.blp-hero--wide{ padding:56px 0 8px; }
.blp-hero--wide .blp-hero__intro{ max-width:760px; margin:0 auto; text-align:center; }
.blp-hero--wide .blp-hero__intro .blp-lead{ margin:14px auto 22px; }
.blp-hero--wide .blp-hero__cta-row{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.blp-hero--wide .blp-hero__note{ display:block; margin-top:12px; color:var(--blp-ink-3); font-size:13.5px; }

.blp-demo{ max-width:1100px; margin:34px auto 0; border:1px solid var(--blp-line);
  border-radius:16px; background:var(--blp-surface); box-shadow:0 24px 60px -28px rgba(20,32,46,.28); overflow:hidden; }
.blp-demo__bar{ display:flex; align-items:center; gap:7px; padding:11px 16px; border-bottom:1px solid var(--blp-line); background:var(--blp-band); }
.blp-demo__title{ display:flex; align-items:center; gap:8px; margin-left:8px; font-size:13.5px; color:var(--blp-ink-2); }
.blp-demo__title .live{ width:8px; height:8px; border-radius:50%; background:var(--blp-green); display:inline-block; }
.blp-demo__open{ margin-left:auto; font-size:13.5px; font-weight:600; color:var(--blp-green-600); text-decoration:none; }
.blp-demo__open:hover{ text-decoration:underline; }

.blp-demo__tabs{ display:flex; gap:6px; padding:10px 12px; border-bottom:1px solid var(--blp-line); overflow-x:auto; }
.blp-demo__tab{ border:1px solid var(--blp-line); background:transparent; color:var(--blp-ink-2);
  font:inherit; font-size:13.5px; font-weight:600; padding:7px 14px; border-radius:100px; cursor:pointer; white-space:nowrap; transition:.15s; }
.blp-demo__tab:hover{ border-color:var(--blp-green); color:var(--blp-green-600); }
.blp-demo__tab.is-active{ background:var(--blp-green); border-color:var(--blp-green); color:#fff; }

.blp-demo__stage{ position:relative; background:var(--blp-surface); }
.blp-demo__stage .feature-slider__dots{ display:none; }

/* Плавающая карточка проверки — элемент дизайн-системы поверх скриншота */
.blp-demo__overlay{ position:absolute; right:18px; bottom:18px; z-index:2; min-width:230px;
  background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:12px;
  padding:12px 14px; box-shadow:0 14px 34px -16px rgba(20,32,46,.35); font-size:13.5px; }
.blp-demo__overlay > b{ display:block; font-size:12.5px; letter-spacing:.02em; color:var(--blp-ink-3);
  text-transform:uppercase; margin-bottom:8px; }
.blp-demo__row{ display:flex; justify-content:space-between; gap:16px; padding:3px 0; }
.blp-demo__row i{ font-style:normal; color:var(--blp-ink-2); }
.blp-demo__row em{ font-style:normal; font-weight:700; color:var(--blp-ink); font-variant-numeric:tabular-nums; }
.blp-demo__badge{ display:inline-block; margin-top:8px; padding:4px 10px; border-radius:100px;
  background:rgba(40,167,69,.12); color:var(--blp-green-600); font-weight:700; font-size:12.5px; }

.blp-trust--wide{ max-width:1100px; margin:26px auto 0; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }

@media (max-width:900px){
  .blp-trust--wide{ grid-template-columns:repeat(2,1fr); }
  .blp-demo__overlay{ position:static; margin:10px 12px 14px auto; max-width:280px; }
}

/* ── Showcase: продукт-герой блока возможностей ───────────────────────────
   Короткое интро → демо-окно → полоса фактов → контекстный CTA →
   три инженерных блока (номер/код/поток вместо иконок) → proof points. */
.blp-show .blp-head--center{ max-width:820px; margin-left:auto; margin-right:auto; }
.blp-show__h2{ letter-spacing:-.02em; }
.blp-show__h2 .u{ font-weight:800; }
.blp-show__lead{ font-size:18.5px; line-height:1.6; color:var(--blp-ink-2); margin-top:16px; }
.blp-show__sub{ font-size:15.5px; color:var(--blp-ink-3); margin-top:10px; }
.blp-show .blp-demo{ max-width:1200px; margin-top:36px; }

.blp-demo__facts{ display:flex; flex-wrap:wrap; gap:6px 34px; padding:13px 18px;
  border-top:1px solid var(--blp-line); background:var(--blp-band); }
.blp-demo__facts > div{ display:flex; align-items:baseline; gap:9px; }
.blp-demo__facts i{ font-style:normal; font-size:13px; color:var(--blp-ink-3); }
.blp-demo__facts b{ font-size:15.5px; font-weight:700; color:var(--blp-ink); font-variant-numeric:tabular-nums; white-space:nowrap; }

.blp-show__cta{ display:flex; align-items:center; justify-content:center; gap:18px;
  flex-wrap:wrap; margin:26px auto 0; }
.blp-show__cta > span{ color:var(--blp-ink-2); font-size:16.5px; }

.blp-show__blocks{ display:grid; grid-template-columns:repeat(3,1fr); gap:38px;
  max-width:1200px; margin:54px auto 0; }
.blp-show__block{ border-top:2px solid var(--blp-ink); padding-top:18px; }
.blp-show__num{ font-family:var(--blp-mono); font-size:13.5px; font-weight:600; color:var(--blp-green-600); letter-spacing:.08em; }
.blp-show__block h3{ margin:8px 0 0; font-size:17px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--blp-ink); }
.blp-show__code{ display:block; margin-top:10px; font-family:var(--blp-mono); font-size:15px; color:var(--blp-ink); background:none; border:0; padding:0; }
.blp-show__flow{ display:block; margin-top:4px; font-size:13.5px; color:var(--blp-ink-3); }
.blp-show__block p{ margin:12px 0 0; font-size:15.5px; line-height:1.62; color:var(--blp-ink-2); }

.blp-show__proofs{ display:grid; grid-template-columns:repeat(6,1fr); gap:20px;
  max-width:1200px; margin:44px auto 0; padding-top:22px; border-top:1px solid var(--blp-line); }
.blp-show__proofs b{ display:block; font-size:15px; font-weight:700; color:var(--blp-ink); font-variant-numeric:tabular-nums; }
.blp-show__proofs span{ display:block; margin-top:3px; font-size:13.5px; color:var(--blp-ink-3); line-height:1.4; }

@media (max-width:960px){
  .blp-show__blocks{ grid-template-columns:1fr; gap:26px; }
  .blp-show__proofs{ grid-template-columns:repeat(2,1fr); }
}

/* Видео-демонстрация в стейдже: ролики — первые табы (по одному на таб), слайдер — остальные.
   Пара light/dark переключается темой страницы (классы как у скринов). */
.blp-demo__video{ display:none; }
.blp-demo__stage--video .blp-demo__video.is-active{ display:block; }
.blp-demo__stage--video .feature-slider{ display:none; }
.blp-demo__video video{ display:block; width:100%; height:auto; }
.blp-demo__video video.feature-slider__img--dark{ display:none; }
html[data-theme="dark"] .blp-demo__video video.feature-slider__img--light{ display:none; }
html[data-theme="dark"] .blp-demo__video video.feature-slider__img--dark{ display:block; }
.blp-demo__stage--video .blp-demo__overlay{ display:none; }

/* ---- полноэкранный просмотр скриншотов — в теме (assets/css/guru-gallery.css) ---- */


/* ── Разбор одного расчета: Дано — Решение — Ответ (guru-beam-derivation) ──
   Форма записи задачи из задачника: исходные данные, шаги на общей
   направляющей (номер шага — узел на ней, итог — узел «=»), ответ.
   Фрагменты — кадры модуля парой light/dark, крупнее 1:1 не растягиваются. */
/* --why-canvas — фон холста и отчета модуля на кадрах: карточка «Дано» и рамки
   фрагментов берут его, чтобы кадр сливался с подложкой без видимого прямоугольника */
.blp-why{ --why-rail:60px; --why-node:42px; --why-canvas:#ffffff; }
html[data-theme="dark"] .blp-why{ --why-canvas:#232730; }
.blp-why__head{ max-width:760px; }
.blp-why__head p{ font-size:17px; line-height:1.65; }
.blp-why__head p strong{ color:var(--blp-ink); }
.blp-why__tag{ display:flex; align-items:center; gap:14px; margin:0; font-family:var(--blp-mono); font-size:12.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--blp-ink-3); }
.blp-why__tag::after{ content:""; flex:1; height:1px; background:var(--blp-line); }
.blp-why code{ font-family:var(--blp-mono); font-size:.88em; background:var(--blp-band); border:1px solid var(--blp-line); border-radius:6px; padding:.08em .42em; color:var(--blp-ink); white-space:nowrap; }
.blp-why sub{ font-size:.72em; line-height:0; }

/* пары light/dark */
.blp-why__pic > img.feature-slider__img--dark{ display:none; }
html[data-theme="dark"] .blp-why__pic > img.feature-slider__img--light{ display:none; }
html[data-theme="dark"] .blp-why__pic > img.feature-slider__img--dark{ display:block; }
.blp-why__pic{ position:relative; }
.blp-why__pic img{ display:block; width:100%; height:auto; margin:0 auto; }

/* Дано */
.blp-why__given{ margin-top:34px; background:var(--why-canvas); border:1px solid var(--blp-line); border-radius:var(--blp-r-lg); padding:24px 30px 26px; box-shadow:var(--blp-shadow-sm); }
.blp-why__scheme{ margin:14px 0 4px; }
.blp-why__scheme img{ max-width:877px; }
.blp-why__data{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:18px 0 0; border-top:1px solid var(--blp-line-2); }
.blp-why__data > div{ padding:12px 18px 12px 0; border-bottom:1px solid var(--blp-line-2); }
.blp-why__data dt{ font-size:13px; color:var(--blp-ink-3); line-height:1.35; }
.blp-why__data dd{ margin:3px 0 0; font-family:var(--blp-mono); font-size:15px; font-weight:500; color:var(--blp-ink); line-height:1.45; }
.blp-why__find{ margin:16px 0 0; color:var(--blp-ink-2); line-height:1.6; }
.blp-why__find b{ color:var(--blp-ink); font-weight:700; }

/* Решение: направляющая слева, узлы — номера шагов */
.blp-why__flow{ position:relative; margin-top:44px; padding-left:var(--why-rail); }
.blp-why__tag--solve{ margin-left:calc(-1 * var(--why-rail)); }
.blp-why__steps{ list-style:none; margin:26px 0 0; padding:0; counter-reset:why; }
.blp-why__step{ counter-increment:why; position:relative; display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:20px 40px; align-items:start; padding-bottom:56px; }
.blp-why__step::before{ content:counter(why); position:absolute; left:calc(-1 * var(--why-rail)); top:-4px; width:var(--why-node); height:var(--why-node); border-radius:50%; display:grid; place-items:center;
  background:var(--blp-surface); border:2px solid var(--blp-green); color:var(--blp-green-600); font:700 17px/1 var(--blp-mono); box-shadow:0 0 0 6px var(--blp-bg); }
/* отрезок направляющей от узла шага до следующего узла (последний — до «=» ответа) */
.blp-why__step::after{ content:""; position:absolute; left:calc(var(--why-node) / 2 - 1px - var(--why-rail)); top:calc(var(--why-node) - 4px); bottom:-30px; width:2px; background:var(--blp-green); opacity:.38; }
.blp-why__step--wide{ grid-template-columns:minmax(0,1fr); }
.blp-why__step--wide .blp-why__txt{ max-width:760px; }
.blp-why__meta{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; margin:0; }
.blp-why__meta span{ font-size:12.5px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--blp-green); }
.blp-why__meta i{ font-style:normal; font-family:var(--blp-mono); font-size:12px; color:var(--blp-ink-3); }
/* текст шага держится в кадре, пока рядом прокручивается длинный фрагмент */
.blp-why__step:not(.blp-why__step--wide) .blp-why__txt{ position:sticky; top:110px; }
.blp-why__txt h3{ margin:8px 0 0; font-size:21px; line-height:1.28; letter-spacing:-.012em; font-weight:700; color:var(--blp-ink); text-wrap:balance; }
.blp-why__txt > p:not([class]){ margin:12px 0 0; color:var(--blp-ink-2); line-height:1.7; }
.blp-why__res{ display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 0; }
.blp-why__res span{ font-family:var(--blp-mono); font-size:13.5px; font-weight:600; line-height:1.3; color:var(--blp-ink); background:var(--blp-tint); border:1px solid var(--blp-tint-2); border-radius:8px; padding:6px 10px; font-variant-numeric:tabular-nums; }
.blp-why__fig{ margin:0; background:var(--why-canvas); border:1px solid var(--blp-line); border-radius:var(--blp-r); overflow:hidden; box-shadow:var(--blp-shadow-sm); }
.blp-why__fig--fit{ background:var(--blp-band); }
.blp-why__fig--fit .blp-why__pic{ padding:22px; }
.blp-why__fig--fit .blp-why__pic img{ border-radius:12px; box-shadow:var(--blp-shadow-sm); }

/* Ответ: узел «=» на направляющей */
.blp-why__answer{ position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,330px); gap:36px; align-items:center; padding:30px 34px; border-radius:var(--blp-r-lg);
  background:linear-gradient(135deg, var(--blp-tint) 0%, transparent 70%), var(--blp-surface); border:1px solid var(--blp-tint-2); box-shadow:var(--blp-shadow); }
.blp-why__answer::before{ content:"="; position:absolute; left:calc(-1 * var(--why-rail)); top:26px; width:var(--why-node); height:var(--why-node); border-radius:50%; display:grid; place-items:center;
  background:var(--blp-green); color:#fff; font:700 22px/1 var(--blp-mono); box-shadow:0 0 0 6px var(--blp-bg); }
.blp-why__ans-title{ margin:14px 0 0; font-size:clamp(34px,4.4vw,50px); line-height:1; font-weight:800; letter-spacing:-.03em; color:var(--blp-ink); }
.blp-why__ans-sub{ margin:10px 0 0; color:var(--blp-ink-2); line-height:1.55; }
.blp-why__util{ list-style:none; margin:22px 0 0; padding:0; display:flex; flex-direction:column; gap:14px; max-width:520px; }
.blp-why__util li{ display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:baseline; gap:4px 14px; }
.blp-why__util span{ color:var(--blp-ink-2); font-size:15px; }
.blp-why__util b{ font-family:var(--blp-mono); font-size:14px; font-weight:500; color:var(--blp-ink-2); white-space:nowrap; }
.blp-why__util em{ font-style:normal; font-family:var(--blp-mono); font-size:15px; font-weight:700; color:var(--blp-ink); min-width:4.2ch; text-align:right; }
.blp-why__util i{ grid-column:1 / -1; height:6px; border-radius:6px; background:linear-gradient(90deg, var(--blp-green) var(--u), var(--blp-line-2) var(--u)); }
/* строка-значение (без процента): величина слева, число справа, тонкая линия-разделитель */
.blp-why__util li.blp-why__val{ grid-template-columns:minmax(0,1fr) auto; padding-bottom:10px; border-bottom:1px solid var(--blp-line); }
.blp-why__util li.blp-why__val b{ font-size:15px; font-weight:600; color:var(--blp-ink); }
.blp-why__answer--solo{ grid-template-columns:minmax(0,1fr); }
.blp-why__util--vals{ max-width:none; display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px 32px; }
.blp-why__answer--solo .blp-why__ans-sub{ max-width:760px; }
.blp-why__cta{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 26px; margin-top:28px; }
.blp-why__link{ font-weight:600; color:var(--blp-green-600); text-decoration:none; }
.blp-why__link:hover{ color:var(--blp-green-700); text-decoration:underline; }
.blp-why__report{ margin:0; justify-self:end; width:100%; }
/* страница отчета Word — верх листа: заголовок, схема, эпюры */
.blp-why__sheet{ aspect-ratio:1 / 1.02; overflow:hidden; border-radius:6px; background:#fff; border:1px solid var(--blp-line); box-shadow:0 18px 40px rgba(20,32,46,.14), 0 2px 6px rgba(20,32,46,.06); transform:rotate(1.4deg); transition:transform .25s ease; }
.blp-why__sheet img{ max-width:none!important; }
.blp-why__report:hover .blp-why__sheet{ transform:rotate(0); }
.blp-why__report figcaption{ margin-top:14px; font-size:13px; line-height:1.5; color:var(--blp-ink-3); text-align:center; }
/* веер страниц отчета (report_pages): лист 1 спереди и почти прямо, следующие — за ним, повернуты
   вокруг нижнего левого угла (общий размах 16°) и сдвинуты вправо; при наведении веер раздвигается
   вбок, лист под курсором чуть поднимается. Повернутые листы опускают правый нижний угол — под ними
   в высоте веера заложен запас (aspect-ratio), чтобы листы не закрывали подпись.
   --n — листов в веере, --i — номер листа (0 — передний) */
.blp-why__report--fan{ justify-self:center; }
.blp-why__fan{ --spread:16deg; --shift:2%; position:relative; width:min(100%, 420px); aspect-ratio:1 / 1.18; margin:0 auto; }
.blp-why__fan:hover{ --shift:4.5%; }
.blp-why__page{ position:absolute; left:3%; top:2%; z-index:calc(20 - var(--i, 0)); width:68%; aspect-ratio:994 / 1405;
  overflow:hidden; border-radius:5px; background:#fff; border:1px solid var(--blp-line);
  box-shadow:0 16px 34px rgba(20,32,46,.15), 0 2px 6px rgba(20,32,46,.06);
  transform-origin:14% 100%;
  transform:rotate(calc(var(--i, 0) * var(--spread) / max(1, var(--n) - 1) - 2deg)) translateX(calc(var(--i, 0) * var(--shift)));
  transition:transform .3s ease, translate .2s ease, box-shadow .2s ease; }
.blp-why__page img{ display:block; width:100%; height:auto; max-width:none!important; }
.blp-why__page:hover{ translate:0 -6px; box-shadow:0 22px 44px rgba(20,32,46,.2), 0 2px 6px rgba(20,32,46,.06); }
.blp-why__fan-count{ position:absolute; left:3%; top:83.5%; z-index:30; transform:translate(10px, -50%); /* у нижнего края переднего листа */ padding:5px 11px;
  border-radius:100px; background:var(--blp-ink); color:#fff; font-size:12px; font-weight:600; line-height:1.2; letter-spacing:.01em; pointer-events:none; }
html[data-theme="dark"] .blp-why__page{ border-color:rgba(255,255,255,.12); box-shadow:0 18px 40px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.4); }
html[data-theme="dark"] .blp-why__fan-count{ background:#e8ecf1; color:#14202e; }
@media (prefers-reduced-motion:reduce){
  .blp-why__page{ transition:none; }
}

@media (max-width:960px){
  .blp-why__step{ grid-template-columns:minmax(0,1fr); gap:18px; padding-bottom:46px; }
  .blp-why__step:not(.blp-why__step--wide) .blp-why__txt{ position:static; }
  .blp-why__data{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .blp-why__answer{ grid-template-columns:minmax(0,1fr); }
  .blp-why__report{ justify-self:start; max-width:330px; }
}
@media (max-width:560px){
  .blp-why{ --why-rail:40px; --why-node:30px; }
  .blp-why__given{ padding:18px 16px 20px; border-radius:var(--blp-r); }
  .blp-why__data{ grid-template-columns:minmax(0,1fr); }
  .blp-why__step::before{ font-size:14px; box-shadow:0 0 0 4px var(--blp-bg); }
  /* текст шага держится в кадре, пока рядом прокручивается длинный фрагмент */
.blp-why__step:not(.blp-why__step--wide) .blp-why__txt{ position:sticky; top:110px; }
.blp-why__txt h3{ font-size:19px; }
  .blp-why__scheme{ margin-left:-8px; margin-right:-8px; }
  /* ответ — на всю ширину, узел «=» садится на верхнюю кромку карточки под направляющей */
  .blp-why__answer{ margin-left:calc(-1 * var(--why-rail)); padding:30px 18px 22px; border-radius:var(--blp-r); }
  .blp-why__answer::before{ left:0; top:calc(var(--why-node) / -2); font-size:17px; box-shadow:0 0 0 4px var(--blp-bg); }
  .blp-why__util li{ grid-template-columns:minmax(0,1fr) auto; }
  .blp-why__util span{ grid-column:1 / -1; }
  .blp-why__util li.blp-why__val span{ grid-column:auto; }
  .blp-why__fig--fit .blp-why__pic{ padding:12px; }
}

/* ── Детали интерфейса модуля: плитки с кадрами (guru-beam-tiles) ──────────
   Плитка = «сцена» с кадром модуля на подложке + текст. Кадр встает на нижний
   край сцены (окно модуля «выглядывает» снизу) и не растягивается крупнее
   натуральной ширины (--nat-w — половина ширины файла, кадры сняты с DPR 2).
   Ширины 5 и 7 колонок — пары в ряд, 12 — текст слева, кадр справа. */
.blp-ui{ --ui-stage-h:360px; }
.blp-ui__head{ max-width:760px; }
.blp-ui__head p{ font-size:17px; line-height:1.65; }
.blp-ui__grid{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:20px; margin-top:34px; }
.blp-ui__tile{ grid-column:span 7; display:flex; flex-direction:column; min-width:0; background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:var(--blp-r-lg); overflow:hidden; box-shadow:var(--blp-shadow-sm); }
.blp-ui__tile--5{ grid-column:span 5; }
.blp-ui__tile--6{ grid-column:span 6; }
.blp-ui__tile--12{ grid-column:1 / -1; flex-direction:row-reverse; }

.blp-ui__stage{ position:relative; height:var(--ui-stage-h); display:flex; align-items:flex-end; justify-content:center; padding:26px 26px 0; border-bottom:1px solid var(--blp-line);
  background:radial-gradient(120% 95% at 50% 0%, var(--blp-tint) 0%, transparent 72%), var(--blp-band); }
.blp-ui__shot{ margin:0; min-width:0; max-width:100%; max-height:100%; display:flex; }
.blp-ui__pic{ position:relative; display:flex; max-width:100%; }
.blp-ui__pic img{ display:block; width:auto; height:auto; max-width:min(100%, var(--nat-w, 100%)); max-height:calc(var(--ui-stage-h) - 26px);
  border:1px solid var(--blp-line); border-bottom:0; border-radius:12px 12px 0 0; box-shadow:0 -6px 28px rgba(20,32,46,.10); }
/* пары light/dark */
.blp-ui img.feature-slider__img--dark{ display:none; }
html[data-theme="dark"] .blp-ui img.feature-slider__img--light{ display:none; }
html[data-theme="dark"] .blp-ui img.feature-slider__img--dark{ display:block; }
html[data-theme="dark"] .blp-ui__pic img{ box-shadow:0 -6px 28px rgba(0,0,0,.45); }

.blp-ui__body{ padding:22px 26px 26px; }
.blp-ui__kicker{ margin:0; font-size:12.5px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--blp-green); }
.blp-ui__body h3{ margin:8px 0 0; font-size:20px; line-height:1.3; letter-spacing:-.012em; font-weight:700; color:var(--blp-ink); text-wrap:balance; }
.blp-ui__body > p:not([class]){ margin:10px 0 0; font-size:15.5px; line-height:1.65; color:var(--blp-ink-2); }
.blp-ui__body code{ font-family:var(--blp-mono); font-size:.9em; background:var(--blp-band); border:1px solid var(--blp-line); border-radius:6px; padding:.08em .42em; color:var(--blp-ink); white-space:nowrap; }
/* клавиша в тексте — тот же «колпачок», что в шпаргалке (без темной плашки браузерного kbd) */
.blp-ui kbd{ display:inline-block; min-width:1.75em; padding:.06em .45em; font-family:var(--blp-mono); font-size:.8em; font-weight:600; line-height:1.45; text-align:center; vertical-align:.06em;
  color:var(--blp-ink); background:var(--blp-surface); border:1px solid var(--blp-line); border-bottom-width:2px; border-radius:6px; box-shadow:none; white-space:nowrap; }

/* во всю ширину: текст слева, сцена справа (row-reverse — в разметке сцена первая);
   плитке со шпаргалкой клавиш текст нужнее — ему больше места, кадр небольшой */
.blp-ui__tile--12 .blp-ui__body{ flex:0 0 36%; align-self:center; padding:30px 32px; }
.blp-ui__tile--12 .blp-ui__stage{ flex:1 1 auto; min-width:0; height:auto; min-height:300px; padding:28px 28px 0; border-bottom:0; border-left:1px solid var(--blp-line); }
.blp-ui__tile--12.blp-ui__tile--keys .blp-ui__body{ flex-basis:58%; }
/* у широкой плитки высота сцены — по кадру: ограничение высоты сцены кадр не ужимает */
.blp-ui__tile--12 .blp-ui__pic img{ max-height:none; }

/* шпаргалка клавиш модуля: клавиши над подписью */
.blp-ui__keys{ list-style:none; margin:20px 0 0; padding:16px 0 0; border-top:1px solid var(--blp-line); display:grid; grid-template-columns:repeat(auto-fill,minmax(104px,1fr)); gap:16px 14px; }
.blp-ui__keys li{ display:flex; flex-direction:column; align-items:flex-start; gap:7px; min-width:0; }
.blp-ui__combo{ display:flex; align-items:center; gap:4px; }
.blp-ui__combo > i{ font-style:normal; font-size:12px; color:var(--blp-ink-3); }
.blp-ui__cap{ font-size:13px; line-height:1.35; color:var(--blp-ink-2); }
.blp-ui__keys kbd{ display:inline-grid; place-items:center; min-width:30px; height:28px; padding:0 7px; font-size:12.5px; line-height:1; vertical-align:0; border-bottom-width:3px; border-radius:7px; }

/* слайдер сравнения до/после: «после» поверх, видна часть правее ползунка; подписи — кнопки
   под кадром (в кадре заняли бы схему): показать «до» или «после» целиком */
.blp-ui__cmpbox{ align-self:center; width:100%; max-width:1020px; margin-bottom:24px; }
.blp-ui__cmp{ position:relative; border:1px solid var(--blp-line); border-radius:12px; overflow:hidden; box-shadow:var(--blp-shadow-sm); user-select:none; -webkit-user-select:none; touch-action:pan-y; }
.blp-ui__cmp img{ display:block; width:100%; height:auto; }
.blp-ui__cmp-after{ position:absolute; inset:0; clip-path:inset(0 0 0 var(--pos)); }
.blp-ui__cmp-handle{ position:absolute; top:0; bottom:0; left:var(--pos); width:2px; margin-left:-1px; background:var(--blp-green); pointer-events:none; }
.blp-ui__cmp-handle i{ position:absolute; top:50%; left:50%; width:34px; height:34px; margin:-17px 0 0 -17px; border-radius:50%; background:var(--blp-green); box-shadow:0 4px 14px rgba(20,32,46,.25); }
.blp-ui__cmp-handle i::before,.blp-ui__cmp-handle i::after{ content:""; position:absolute; top:50%; width:0; height:0; margin-top:-5px; border:5px solid transparent; }
.blp-ui__cmp-handle i::before{ left:6px; border-right-color:#fff; }
.blp-ui__cmp-handle i::after{ right:6px; border-left-color:#fff; }
.blp-ui__cmp-range{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; }
.blp-ui__cmp:has(.blp-ui__cmp-range:focus-visible) .blp-ui__cmp-handle i{ outline:2px solid var(--blp-green); outline-offset:3px; }
.blp-ui__cmp-tags{ display:flex; justify-content:space-between; gap:10px; margin-top:12px; }
.blp-ui__cmp-tag{ display:inline-flex; align-items:center; gap:7px; min-height:34px; padding:6px 13px; font:inherit; font-size:13.5px; font-weight:600; line-height:1.2; text-align:left;
  color:var(--blp-ink-2); background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:100px; cursor:pointer; transition:border-color .15s ease, color .15s ease; }
.blp-ui__cmp-tag--before::before{ content:"←"; color:var(--blp-ink-3); }
.blp-ui__cmp-tag--after{ color:var(--blp-green); text-align:right; }
.blp-ui__cmp-tag--after::after{ content:"→"; }
.blp-ui__cmp-tag:hover{ border-color:var(--blp-green); color:var(--blp-ink); }
.blp-ui__cmp-tag--after:hover{ color:var(--blp-green); }
.blp-ui__cmp-tag:focus-visible{ outline:2px solid var(--blp-green); outline-offset:2px; }

@media (max-width:960px){
  .blp-ui{ --ui-stage-h:auto; }
  .blp-ui__grid{ grid-template-columns:minmax(0,1fr); gap:16px; }
  .blp-ui__tile,.blp-ui__tile--5,.blp-ui__tile--12{ grid-column:1 / -1; flex-direction:column; }
  .blp-ui__stage,.blp-ui__tile--12 .blp-ui__stage{ height:auto; min-height:0; padding:18px 18px 0; border-left:0; border-bottom:1px solid var(--blp-line); }
  .blp-ui__pic img{ max-height:none; }
  .blp-ui__tile--12 .blp-ui__body{ flex:none; padding:22px 22px 24px; }
  .blp-ui__cmpbox{ margin-bottom:18px; }
}
@media (max-width:560px){
  .blp-ui__body{ padding:18px 18px 22px; }
  .blp-ui__body h3{ font-size:18.5px; }
  .blp-ui__keys{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 10px; }
  .blp-ui__cmp-tag{ min-height:32px; padding:5px 11px; font-size:12.5px; }
}

/* ── Карта платформы (guru-beam-platform) ──────────────────────────────────
   Блок внизу лендингов модулей: карта всех модулей платформы утвержденными
   плитками лаунчера кабинета (Dashboard.scss .tile__ic: 56px, скругление 26%,
   градиент --sg-mod-*, белый глиф маской, три слоя тени), главная связка
   с кадром модуля, две карточки соседей и строка «Разобраться и проверить».
   Градиенты плиток от темы не зависят — как в кабинете. */
/* плитка модуля .blp-pm-ic, переменные .blp-pm (--pm-tile, --blp-tile-rgb) и .blp-sr — в guru-tiles.css
   (общий файл с 404 темы; подключается раньше этого как зависимость стиля guru-beam) */
.blp-pm__head p{ font-size:17px; line-height:1.6; max-width:62ch; }


/* карта */
.blp-pm-map{ margin-top:30px; background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:var(--blp-r-lg); box-shadow:var(--blp-shadow-sm); padding:22px 28px 16px; }
.blp-pm-groups{ display:grid; grid-template-columns:minmax(0,3fr) 76px minmax(0,1fr) 40px minmax(0,2fr) 40px minmax(0,1fr); align-items:stretch; }
.blp-pm-group__cap{ margin:0 0 8px; min-height:18px; font-size:12.5px; line-height:18px; font-weight:600; color:var(--blp-ink-2); }
.blp-pm-group__note{ font-weight:500; color:var(--blp-ink-3); }
.blp-pm-tiles{ list-style:none; margin:0; padding:0; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:6px; }
.blp-pm-group--rods > .blp-pm-tiles{ grid-auto-flow:row; grid-template-columns:minmax(0,1fr) minmax(0,2fr); }
.blp-pm-tiles > li{ display:flex; min-width:0; }
.blp-pm-pair{ position:relative; padding-bottom:12px; }
.blp-pm-pair > .blp-pm-tiles{ flex:1 1 auto; }
.blp-pm-pair::before{ content:""; position:absolute; inset:-2px -2px 4px; border:1.5px dashed var(--blp-ink-3); border-radius:18px; pointer-events:none; }
.blp-pm-pair__cap{ position:absolute; left:50%; bottom:4px; transform:translate(-50%,50%); padding:0 8px; background:var(--blp-surface); font-size:11.5px; line-height:1.4; font-weight:600; color:var(--blp-ink-2); white-space:nowrap; }

.blp-pm-tile{ position:relative; flex:1 1 auto; min-width:0; display:flex; flex-direction:column; align-items:center; gap:9px; padding:14px 6px 14px; border:1px solid transparent; border-radius:16px; text-align:center; text-decoration:none; color:inherit; transition:background .15s ease, border-color .15s ease; }
a.blp-pm-tile:hover{ background:var(--blp-band); border-color:var(--blp-line-2); }
a.blp-pm-tile:hover .blp-pm-ic{ transform:translateY(-2px) scale(1.04); }
/* кольцо фокуса — псевдоэлементом: тема глушит у ссылок outline и box-shadow (a:focus-visible{…!important}) */
a.blp-pm-tile::after{ content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none; }
a.blp-pm-tile:focus-visible::after{ outline:2px solid var(--blp-green); outline-offset:1px; }
.blp-pm-tile__t{ font-size:13px; line-height:1.25; font-weight:600; color:var(--blp-ink); overflow-wrap:break-word; }
.blp-pm-ext{ position:absolute; top:9px; right:9px; color:var(--blp-ink-3); }
.blp-pm-tile.is-current{ background:color-mix(in srgb, var(--blp-green) 7%, var(--blp-surface)); border-color:color-mix(in srgb, var(--blp-green) 32%, var(--blp-line)); }
.blp-pm-tile.is-current .blp-pm-ic{ box-shadow:0 0 0 3px var(--blp-surface), 0 0 0 5px var(--pm-ring), 0 8px 18px -10px rgba(var(--blp-tile-rgb),.45), inset 0 1.5px 1px rgba(255,255,255,.35), inset 0 -2px 5px rgba(0,0,0,.14); }
.blp-pm-here{ margin-top:-2px; padding:2px 8px; border-radius:999px; background:var(--blp-ink); color:var(--blp-surface); font-size:11px; line-height:1.35; font-weight:700; white-space:nowrap; }

/* связь «сечения»: стрелка от конструктора сечений к стержневым системам; 68px — центр плитки */
.blp-pm-rel{ position:relative; margin:0; min-height:112px; }
.blp-pm-rel::before{ content:""; position:absolute; left:6px; right:6px; top:68px; border-top:1.5px solid var(--blp-ink-3); }
.blp-pm-rel__dot{ position:absolute; left:50%; top:68px; width:30px; height:30px; transform:translate(-50%,-50%); display:grid; place-items:center; border-radius:50%; background:var(--blp-surface); border:1.5px solid var(--blp-line); color:var(--blp-ink-2); }
.blp-pm-rel__t{ position:absolute; left:0; right:0; top:88px; text-align:center; font-size:11.5px; line-height:1.3; font-weight:600; color:var(--blp-ink-2); }
.blp-pm-sep{ justify-self:center; width:1px; margin:26px 0 10px; background:var(--blp-line); }


/* бенто: главная связка слева на две строки, соседи справа */
.blp-pm-bento{ list-style:none; margin:24px 0 0; padding:0; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:24px; }
.blp-pm-lead{ grid-column:1 / span 7; grid-row:1 / span 2; display:flex; min-width:0; }
.blp-pm-nb{ grid-column:8 / span 5; display:flex; min-width:0; }
.blp-pm-card{ position:relative; flex:1 1 auto; min-width:0; background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:var(--blp-r-lg); box-shadow:var(--blp-shadow-sm); overflow:hidden; transition:border-color .2s ease, box-shadow .2s ease; }
.blp-pm-card:hover{ border-color:color-mix(in srgb, var(--blp-green) 45%, var(--blp-line)); box-shadow:var(--blp-shadow); }
.blp-pm-h{ margin:6px 0 0; font-size:19px; line-height:1.3; letter-spacing:-.01em; font-weight:700; color:var(--blp-ink); text-wrap:balance; }
.blp-pm-link{ color:inherit; text-decoration:none; }
.blp-pm-link::after{ content:""; position:absolute; inset:0; z-index:1; border-radius:inherit; }
.blp-pm-link:focus-visible{ outline:none; }
.blp-pm-link:focus-visible::after{ outline:2px solid var(--blp-green); outline-offset:-3px; border-radius:var(--blp-r-lg); }
.blp-pm-why{ margin:8px 0 0; font-size:15px; line-height:1.6; color:var(--blp-ink-2); }
.blp-pm-chips{ list-style:none; margin:14px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px 8px; }
.blp-pm-chips li{ padding:5px 10px; font-size:12.5px; line-height:1.3; font-weight:600; color:var(--blp-ink-2); background:var(--blp-band); border:1px solid var(--blp-line-2); border-radius:8px; }
.blp-pm-cta{ display:inline-block; margin-top:16px; font-size:14.5px; line-height:1.4; font-weight:600; color:var(--blp-green); }
.blp-pm-cta .blp-pm-arr{ display:inline-block; margin-left:6px; vertical-align:-3px; }
.blp-pm-arr{ flex:0 0 auto; transition:transform .2s ease; }
.blp-pm-card:hover .blp-pm-cta .blp-pm-arr{ transform:translateX(3px); }
.blp-pm-k{ margin:0; font-size:12px; line-height:1.4; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--blp-green); }

/* главная связка */
.blp-pm-card--lead{ display:flex; flex-direction:column; }
.blp-pm-lead__text{ padding:30px 32px 0; }
.blp-pm-card--lead .blp-pm-h{ margin-top:18px; font-size:24px; line-height:1.25; }
.blp-pm-card--lead .blp-pm-why{ margin-top:10px; font-size:16px; max-width:54ch; }
.blp-pm-duo{ display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; margin:0; }
.blp-pm-duo__pair{ display:inline-flex; align-items:center; gap:10px; }
.blp-pm-duo__arr{ width:20px; height:20px; color:var(--blp-ink-3); }
.blp-pm-duo__pair.is-same{ gap:0; }
.blp-pm-duo__pair.is-same .blp-pm-ic + .blp-pm-ic{ margin-left:-14px; box-shadow:0 0 0 3px var(--blp-surface), 0 8px 18px -10px rgba(var(--blp-tile-rgb),.45), inset 0 1.5px 1px rgba(255,255,255,.35), inset 0 -2px 5px rgba(0,0,0,.14); }
.blp-pm-duo__cap{ font-size:13px; line-height:1.35; font-weight:600; color:var(--blp-ink-2); }
.blp-pm-deep{ position:relative; z-index:2; margin:14px 0 0; font-size:14.5px; line-height:1.4; }
.blp-pm-deep a{ display:inline-block; padding:4px 0; font-weight:600; color:var(--blp-green); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.blp-pm-deep a:hover{ color:var(--blp-green-600); }
.blp-pm-deep a{ position:relative; }
.blp-pm-deep a::after{ content:""; position:absolute; inset:0 -4px; border-radius:6px; pointer-events:none; }
.blp-pm-deep a:focus-visible::after{ outline:2px solid var(--blp-green); }
.blp-pm-lead__media{ position:relative; flex:1 0 250px; margin-top:24px; }
.blp-pm-lead__shot{ position:absolute; top:0; left:32px; width:640px; overflow:hidden; border:1px solid var(--blp-line); border-right:0; border-bottom:0; border-radius:14px 0 0 0; box-shadow:var(--blp-shadow-sm); }
.blp-pm-lead__inset{ position:absolute; right:24px; bottom:24px; z-index:1; width:236px; overflow:hidden; border:1px solid var(--blp-line); border-radius:12px; box-shadow:var(--blp-shadow); }
.blp-pm-img{ display:block; width:100%; height:auto; }
.blp-pm img.feature-slider__img--dark{ display:none; }
html[data-theme="dark"] .blp-pm img.feature-slider__img--light{ display:none; }
html[data-theme="dark"] .blp-pm img.feature-slider__img--dark{ display:block; }

/* соседи */
.blp-pm-card--nb{ display:grid; grid-template-columns:var(--pm-tile) minmax(0,1fr); align-content:start; column-gap:18px; padding:24px 26px 24px; border-radius:var(--blp-r); }
.blp-pm-card--nb .blp-pm-link:focus-visible::after{ border-radius:var(--blp-r); }

/* строка «Разобраться и проверить» */
.blp-pm-docs{ margin-top:24px; display:grid; grid-template-columns:180px minmax(0,1fr); align-items:center; gap:0 24px; padding:20px 24px; border:1px solid var(--blp-line); border-radius:var(--blp-r); }
.blp-pm-docs__cap{ margin:0; font-size:12px; line-height:1.4; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--blp-ink-2); }
.blp-pm-docs ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 24px; }
.blp-pm-docs li{ position:relative; min-width:0; padding-left:24px; border-left:1px solid var(--blp-line); }
.blp-pm-doc{ font-size:15px; line-height:1.35; font-weight:600; color:var(--blp-ink); text-decoration:none; }
/* стрелка идет за последним словом и при переносе ссылки на две строки */
.blp-pm-doc .blp-pm-arr{ display:inline-block; margin-left:5px; vertical-align:-3px; }
.blp-pm-nw{ white-space:nowrap; }
.blp-pm-doc::after{ content:""; position:absolute; inset:-6px 0; }
.blp-pm-doc:hover{ color:var(--blp-green); }
.blp-pm-doc:hover .blp-pm-arr{ transform:translateX(3px); }
.blp-pm-doc:focus-visible{ outline:none; }
.blp-pm-doc:focus-visible::after{ outline:2px solid var(--blp-green); outline-offset:2px; border-radius:8px; }
.blp-pm-doc__d{ display:block; margin-top:3px; font-size:13.5px; line-height:1.45; color:var(--blp-ink-2); }
.blp-pm-empty{ padding:24px; border:1px dashed var(--blp-line); border-radius:12px; color:var(--blp-ink-2); text-align:center; }

/* системная темная тема без явного выбора — двойники dark-правил блока */

/* 961–1199: карта и кадр уже */
@media (min-width:961px) and (max-width:1199px){
  .blp-pm-map{ padding:22px 20px 16px; }
  .blp-pm-groups{ grid-template-columns:minmax(0,3fr) 60px minmax(0,1.15fr) 28px minmax(0,2fr) 28px minmax(0,1fr); }
  .blp-pm-lead__shot{ width:580px; }
  .blp-pm-lead__inset{ width:204px; }
}

/* планшет: карта в две строки, связка во всю ширину, соседи парой */
@media (max-width:960px){
  .blp-pm-map{ padding:20px 20px 16px; border-radius:24px; }
  .blp-pm-groups{ grid-template-columns:minmax(0,3fr) 64px minmax(0,1.2fr); row-gap:22px; }
  .blp-pm-group--rods{ grid-column:1; grid-row:1; }
  .blp-pm-rel{ grid-column:2; grid-row:1; }
  .blp-pm-group--section{ grid-column:3; grid-row:1; }
  .blp-pm-group--foundation{ grid-column:1; grid-row:2; }
  .blp-pm-group--docs{ grid-column:3; grid-row:2; }
  .blp-pm-sep{ display:none; }
  .blp-pm-bento{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .blp-pm-lead{ grid-column:1 / -1; grid-row:auto; }
  .blp-pm-nb{ grid-column:auto; }
  .blp-pm-lead__text{ padding:28px 26px 0; }
  .blp-pm-lead__media{ flex-basis:280px; }
  .blp-pm-lead__shot{ left:26px; width:620px; }
  .blp-pm-docs{ grid-template-columns:minmax(0,1fr); gap:12px; }
  /* сосед: плитка рядом с надзаголовком и заголовком, описание и чипы — во всю ширину карточки */
  .blp-pm-card--nb{ align-items:center; padding:22px 22px; }
  .blp-pm-card--nb > .blp-pm-ic{ grid-column:1; grid-row:1 / span 2; }
  .blp-pm-nb__b{ display:contents; }
  .blp-pm-card--nb .blp-pm-k{ grid-column:2; grid-row:1; align-self:end; }
  .blp-pm-card--nb .blp-pm-h{ grid-column:2; grid-row:2; align-self:start; margin-top:2px; }
  .blp-pm-card--nb .blp-pm-why, .blp-pm-card--nb .blp-pm-chips, .blp-pm-card--nb .blp-pm-cta{ grid-column:1 / -1; }
  .blp-pm-card--nb .blp-pm-why{ margin-top:14px; }
  .blp-pm-card--nb .blp-pm-cta{ justify-self:start; }
}
@media (max-width:720px){
  .blp-pm-nb{ grid-column:1 / -1; }
}
@media (max-width:600px){
  .blp-pm-lead__inset{ display:none; }
}

/* телефон: группы карты 2×2, все семь плиток видны сразу, плитка остается 56px */
@media (max-width:560px){
  .blp-pm__head p{ font-size:16px; }
  .blp-pm-map{ margin-top:24px; padding:16px 12px 14px; border-radius:22px; }
  .blp-pm-groups{ grid-template-columns:minmax(0,3fr) minmax(0,1.2fr); column-gap:10px; row-gap:16px; }
  .blp-pm-group--section{ grid-column:2; }
  .blp-pm-group--docs{ grid-column:2; }
  .blp-pm-rel{ display:none; }
  .blp-pm-group__cap{ font-size:12px; }
  .blp-pm-tiles{ gap:4px; }
  .blp-pm-tile{ gap:7px; padding:10px 2px 10px; border-radius:14px; }
  .blp-pm-tile__t{ font-size:11.5px; line-height:1.2; }
  .blp-pm-here{ padding:1px 6px; font-size:10.5px; }
  .blp-pm-ext{ top:5px; right:4px; }
  .blp-pm-bento{ gap:14px; margin-top:18px; }
  .blp-pm-card{ border-radius:22px; }
  .blp-pm-lead__text{ padding:22px 18px 0; }
  .blp-pm-card--lead .blp-pm-h{ font-size:21px; margin-top:16px; }
  .blp-pm-card--lead .blp-pm-why{ font-size:15.5px; line-height:1.55; }
  .blp-pm-deep a{ padding:12px 0; }
  .blp-pm-lead__media{ flex-basis:200px; margin-top:18px; }
  .blp-pm-lead__shot{ left:18px; width:520px; }
  .blp-pm-card--nb{ column-gap:14px; padding:20px 18px; border-radius:18px; }
  .blp-pm-docs{ margin-top:14px; padding:14px 16px 6px; gap:6px; }
  .blp-pm-docs ul{ grid-template-columns:minmax(0,1fr); }
  .blp-pm-docs li{ padding:12px 0; border-left:0; border-top:1px solid var(--blp-line-2); }
  .blp-pm-doc__d{ font-size:13px; }
}
@media (prefers-reduced-motion:reduce){
  .blp-pm-arr, .blp-pm-card, .blp-pm-tile{ transition:none; }
  a.blp-pm-tile:hover .blp-pm-ic{ transform:none; }
}

/* ── Примечание-выноска под таблицей и сеткой примеров (blp-note) ───────── */
.blp-note{ margin-top:18px; padding:14px 18px; max-width:var(--blp-measure); background:var(--blp-band); border:1px solid var(--blp-line-2); border-left:3px solid var(--blp-green); border-radius:4px var(--blp-r-sm) var(--blp-r-sm) 4px; font-size:15px; line-height:1.6; color:var(--blp-ink-2); }
.blp-note p{ margin:0; }
.blp-note p + p{ margin-top:8px; }
.blp-note b, .blp-note strong{ color:var(--blp-ink); font-weight:600; }
.blp-note a{ color:var(--blp-green-600); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.blp-note sub, .blp-note sup{ font-size:.72em; line-height:0; }

/* ── Инженерная таблица (guru-beam-table) ──────────────────────────────────
   Десктоп: волосяные линии строк, шапка на подложке, числа — по правому краю
   табличными цифрами, выделенная колонка («Δ, %») — на тонкой подложке.
   Метки метода — два спокойных чипа: аналитика (синий), МКЭ (янтарный);
   цвет текста смешан с --blp-ink, поэтому контраст держится в обеих темах.
   Телефон (≤ 640px): строка — карточка, у ячейки подпись колонки из data-label. */
.blp-tbl__head{ max-width:760px; }
.blp-tbl__head p{ font-size:17px; line-height:1.65; }
.blp-tbl__box{ margin-top:28px; }
.blp-tbl__scroll{ position:relative; overflow-x:auto; background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:var(--blp-r); box-shadow:var(--blp-shadow-sm); }
.blp-tbl__scroll:focus-visible{ outline:2px solid var(--blp-green); outline-offset:2px; }
.blp-tbl__t{ width:100%; border-collapse:collapse; border-spacing:0; margin:0; font-size:15px; line-height:1.45; color:var(--blp-ink); background:none; border:0; }
.blp-tbl__t th, .blp-tbl__t td{ padding:11px 16px; text-align:left; vertical-align:baseline; border:0; background:none; }
.blp-tbl__t thead th{ padding-top:12px; padding-bottom:12px; font-size:12.5px; line-height:1.35; font-weight:600; letter-spacing:.02em; color:var(--blp-ink-2); vertical-align:bottom; background:var(--blp-band); border-bottom:1px solid var(--blp-line); }
.blp-tbl__t tbody th, .blp-tbl__t tbody td{ border-top:1px solid var(--blp-line-2); }
.blp-tbl__t tbody tr:first-child > *{ border-top:0; }
.blp-tbl__t tbody th{ font-weight:600; color:var(--blp-ink); }
.blp-tbl__t td{ color:var(--blp-ink-2); }
.blp-tbl__t .blp-tbl__r{ text-align:right; font-variant-numeric:tabular-nums; }
.blp-tbl__t .blp-tbl__ctr{ text-align:center; }
.blp-tbl__t .blp-tbl__mono{ font-family:var(--blp-mono); font-size:.9em; font-variant-numeric:tabular-nums; color:var(--blp-ink); white-space:nowrap; }
.blp-tbl__t thead .blp-tbl__mono{ font-family:inherit; font-size:12.5px; color:var(--blp-ink-2); }
.blp-tbl__t .blp-tbl__hl{ background:var(--blp-tint); }
.blp-tbl__t thead .blp-tbl__hl{ color:var(--blp-ink); background:color-mix(in srgb, var(--blp-green) 12%, var(--blp-band)); }
.blp-tbl__t tbody .blp-tbl__hl{ font-weight:600; }
.blp-tbl__t sub, .blp-tbl__t sup{ font-size:.72em; line-height:0; }
.blp-tbl__t a{ position:relative; color:var(--blp-green-600); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.blp-tbl__t a::after{ content:""; position:absolute; inset:-2px -3px; border-radius:4px; pointer-events:none; }
.blp-tbl__t a:focus-visible::after{ outline:2px solid var(--blp-green); }
.blp-tbl__m{ display:inline-block; margin:0 2px; padding:1px 7px; font-family:'Onest',system-ui,sans-serif; font-size:11.5px; font-weight:600; line-height:1.5; letter-spacing:.02em; white-space:nowrap; vertical-align:1px; border:1px solid; border-radius:6px; }
.blp-tbl__m--an{ color:color-mix(in srgb, var(--blp-blue) 72%, var(--blp-ink)); background:color-mix(in srgb, var(--blp-blue) 9%, transparent); border-color:color-mix(in srgb, var(--blp-blue) 30%, transparent); }
.blp-tbl__m--fem{ color:color-mix(in srgb, var(--blp-amber) 45%, var(--blp-ink)); background:color-mix(in srgb, var(--blp-amber) 13%, transparent); border-color:color-mix(in srgb, var(--blp-amber) 40%, transparent); }
.blp-tbl__foot{ margin:12px 0 0; font-size:13px; line-height:1.5; color:var(--blp-ink-2); font-variant-numeric:tabular-nums; }

@media (max-width:640px){
  .blp-tbl__head p{ font-size:16px; }
  .blp-tbl__box{ margin-top:20px; }
  /* карточки вместо таблицы: прокрутки нет, рамка и подложка — у каждой строки */
  .blp-tbl__scroll{ overflow:visible; background:none; border:0; border-radius:0; box-shadow:none; }
  .blp-tbl__t, .blp-tbl__t tbody, .blp-tbl__t tr, .blp-tbl__t th, .blp-tbl__t td{ display:block; }
  .blp-tbl__t thead{ position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .blp-tbl__t tbody{ display:grid; gap:8px; }
  .blp-tbl__t tbody tr{ padding:9px 14px 6px; background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:var(--blp-r-sm); }
  .blp-tbl__t tbody th, .blp-tbl__t tbody td{ border-top:0; }
  .blp-tbl__t tbody th{ padding:0 0 7px; margin-bottom:2px; font-size:15px; line-height:1.35; text-align:left; border-bottom:1px solid var(--blp-line-2); }
  .blp-tbl__t tbody th.blp-tbl__hl{ background:none; }
  .blp-tbl__t tbody td{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:12px; align-items:baseline; padding:5px 0; font-size:14px; line-height:1.4; text-align:right; overflow-wrap:anywhere; }
  .blp-tbl__t tbody td::before{ content:attr(data-label); font-family:'Onest',system-ui,sans-serif; font-size:12.5px; font-weight:500; line-height:1.4; letter-spacing:0; color:var(--blp-ink-2); text-align:left; white-space:normal; }
  .blp-tbl__t tbody td.blp-tbl__ctr{ text-align:right; }
  .blp-tbl__t tbody td.blp-tbl__mono{ white-space:normal; }
  .blp-tbl__t tbody td.blp-tbl__hl{ margin:2px -8px; padding:5px 8px; border-radius:8px; }
  .blp-note{ padding:12px 14px; font-size:14.5px; }
}

/* ── Примеры расчета с файлами (guru-beam-examples) ────────────────────────
   Сетка 3 / 2 / 1 колонки; карточка: эскиз сечения 4:3 парой light/dark
   (вписан целиком, открывается галереей), метка, заголовок, контекст, итог <dl>
   табличными цифрами, файлы — ссылки-кнопки ≥ 44px внизу карточки.
   Тема глушит у ссылок outline и box-shadow с !important — кольцо фокуса
   рисует псевдоэлемент ::after (как у .blp-pm). */
.blp-ex__head{ max-width:760px; }
.blp-ex__head p{ font-size:17px; line-height:1.65; }
.blp-ex__grid{ list-style:none; margin:30px 0 0; padding:0; display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
.blp-ex__card{ display:flex; flex-direction:column; min-width:0; margin:0; background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:var(--blp-r); box-shadow:var(--blp-shadow-sm); overflow:hidden; }
.blp-ex__pic{ position:relative; margin:0; aspect-ratio:4 / 3; background:var(--blp-surface); border-bottom:1px solid var(--blp-line); }
.blp-ex__pic img{ position:absolute; inset:0; display:block; width:100%; height:100%; max-width:none; padding:12px; object-fit:contain; }
.blp-ex__pic img.feature-slider__img--dark{ display:none; }
html[data-theme="dark"] .blp-ex__pic img.feature-slider__img--light{ display:none; }
html[data-theme="dark"] .blp-ex__pic img.feature-slider__img--dark{ display:block; }
.blp-ex__body{ display:flex; flex-direction:column; align-items:flex-start; flex:1 1 auto; min-width:0; padding:18px 20px 20px; }
.blp-ex__tag{ margin:0; padding:3px 9px; font-size:12px; line-height:1.4; font-weight:600; color:color-mix(in srgb, var(--blp-green) 60%, var(--blp-ink)); background:var(--blp-tint); border-radius:6px; }
.blp-ex__title{ margin:10px 0 0; font-size:18.5px; line-height:1.3; letter-spacing:-.01em; font-weight:700; color:var(--blp-ink); text-wrap:balance; }
.blp-ex__practice{ margin:8px 0 0; font-size:14.5px; line-height:1.6; color:var(--blp-ink-2); }
.blp-ex__res{ align-self:stretch; margin:14px 0 0; padding:0; border-top:1px solid var(--blp-line-2); }
.blp-ex__res > div{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,max-content); gap:12px; align-items:baseline; padding:7px 0; border-bottom:1px solid var(--blp-line-2); }
.blp-ex__res dt{ font-size:13.5px; line-height:1.4; color:var(--blp-ink-2); }
.blp-ex__res dd{ margin:0; font-family:var(--blp-mono); font-size:13.5px; line-height:1.4; font-weight:600; color:var(--blp-ink); font-variant-numeric:tabular-nums; text-align:right; overflow-wrap:anywhere; }
.blp-ex__res sub, .blp-ex__res sup{ font-size:.72em; line-height:0; }
.blp-ex__act{ align-self:stretch; display:flex; flex-direction:column; align-items:flex-start; gap:6px; margin-top:auto; padding-top:16px; }
.blp-ex__files{ align-self:stretch; list-style:none; margin:0; padding:0; display:grid; grid-template-columns:minmax(0,1fr); gap:8px; }
.blp-ex__files li{ display:flex; min-width:0; }
.blp-ex__file{ position:relative; flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:10px; min-height:44px; padding:8px 12px; font-size:14px; line-height:1.3; font-weight:600; color:var(--blp-ink); text-decoration:none; background:var(--blp-surface); border:1px solid var(--blp-line); border-radius:10px; transition:border-color .15s ease, background-color .15s ease; }
.blp-ex__file:hover{ color:var(--blp-ink); border-color:var(--blp-green); background:var(--blp-tint); }
.blp-ex__file::after{ content:""; position:absolute; inset:-3px; border-radius:12px; pointer-events:none; }
.blp-ex__file:focus-visible::after{ outline:2px solid var(--blp-green); }
.blp-ex__fmt{ order:-1; flex:0 0 auto; min-width:42px; padding:3px 6px; font-family:var(--blp-mono); font-size:11px; line-height:1.3; font-weight:700; letter-spacing:.04em; text-align:center; color:var(--blp-ink-2); background:var(--blp-band); border:1px solid var(--blp-line); border-radius:6px; }
.blp-ex__fl{ flex:1 1 auto; min-width:0; overflow-wrap:break-word; }
.blp-ex__sz{ flex:0 0 auto; font-size:12.5px; font-weight:500; color:var(--blp-ink-2); font-variant-numeric:tabular-nums; white-space:nowrap; }
.blp-ex__dl{ flex:0 0 auto; color:var(--blp-ink-3); transition:color .15s ease; }
.blp-ex__file:hover .blp-ex__dl{ color:var(--blp-green); }
.blp-ex__open{ position:relative; display:inline-flex; align-items:center; gap:6px; min-height:44px; font-size:14.5px; line-height:1.3; font-weight:600; color:var(--blp-green-600); text-decoration:none; }
.blp-ex__open:hover{ color:var(--blp-green-700); text-decoration:underline; text-underline-offset:3px; }
.blp-ex__open::after{ content:""; position:absolute; inset:4px -6px; border-radius:8px; pointer-events:none; }
.blp-ex__open:focus-visible::after{ outline:2px solid var(--blp-green); }
.blp-ex__open:hover .blp-pm-arr{ transform:translateX(3px); }
.blp-ex__note{ margin-top:22px; }

@media (min-width:720px){
  .blp-ex__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
}
@media (min-width:1200px){
  .blp-ex__grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
/* последняя карточка, оставшаяся одна в ряду, — во всю ширину: эскиз слева, итоги и файлы в две колонки */
@media (min-width:720px) and (max-width:1199.98px){
  .blp-ex__grid > .blp-ex__card:last-child:nth-child(odd){ grid-column:1 / -1; flex-direction:row; }
  .blp-ex__grid > .blp-ex__card:last-child:nth-child(odd) .blp-ex__pic{ flex:0 0 40%; aspect-ratio:auto; min-height:300px; border-bottom:0; border-right:1px solid var(--blp-line); }
  .blp-ex__grid > .blp-ex__card:last-child:nth-child(odd) .blp-ex__body{ display:grid; grid-template-columns:minmax(0,1fr); align-content:start; }
}
@media (min-width:1200px){
  .blp-ex__grid > .blp-ex__card:last-child:nth-child(3n+1){ grid-column:1 / -1; flex-direction:row; }
  .blp-ex__grid > .blp-ex__card:last-child:nth-child(3n+1) .blp-ex__pic{ flex:0 0 36%; aspect-ratio:auto; min-height:320px; border-bottom:0; border-right:1px solid var(--blp-line); }
  .blp-ex__grid > .blp-ex__card:last-child:nth-child(3n+1) .blp-ex__body{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:32px; align-content:start; padding:24px 28px; }
  .blp-ex__grid > .blp-ex__card:last-child:nth-child(3n+1) .blp-ex__body > *{ grid-column:1 / -1; justify-self:start; }
  .blp-ex__grid > .blp-ex__card:last-child:nth-child(3n+1) .blp-ex__body > .blp-ex__res{ grid-column:1; justify-self:stretch; }
  .blp-ex__grid > .blp-ex__card:last-child:nth-child(3n+1) .blp-ex__body > .blp-ex__act{ grid-column:2; justify-self:stretch; margin-top:14px; padding-top:0; }
}
@media (max-width:560px){
  .blp-ex__head p{ font-size:16px; }
  .blp-ex__grid{ margin-top:22px; gap:14px; }
  .blp-ex__body{ padding:16px 16px 18px; }
  .blp-ex__title{ font-size:18px; }
}
@media (prefers-reduced-motion:reduce){
  .blp-ex__file, .blp-ex__dl{ transition:none; }
  .blp-ex__open:hover .blp-pm-arr{ transform:none; }
}

/* системная темная тема без явного выбора — двойники dark-правил таблицы и примеров */
