/* ==========================================================================
   БизнесСтат — блоки контента из админки (шаблоны «bsb-*», BS-PLAN-013)
   Общая обёртка: <section class="bsb bsb-{тип} bsb-bg-* bsb-mb-* bsb-py-*">
   Ширина — классом контейнера внутри: .bsb-container | .bsb-container-narrow | .container-fluid
   Цвета — токены из style.css; тёмные фоны переключают --bsb-* разом.
   ========================================================================== */

.bsb {
  --bsb-space-sm: 1.5rem;
  --bsb-space-md: 3rem;
  --bsb-space-lg: 5rem;
  --bsb-ink: var(--bst-ink);
  --bsb-text: var(--bst-text);
  --bsb-muted: var(--bst-muted);
  --bsb-accent: var(--bst-forest);
  --bsb-eyebrow: var(--bst-brass-text);
  --bsb-card-bg: #fff;
  --bsb-card-line: var(--bst-line);
  --bsb-icon-bg: var(--bst-forest-tint);
  --bsb-radius: var(--bst-radius-lg);
  position: relative;
  color: var(--bsb-text);
}
@media (max-width: 767.98px) {
  .bsb { --bsb-space-sm: 1rem; --bsb-space-md: 2rem; --bsb-space-lg: 3rem; }
}

/* ---------- Отступы: одна шкала на весь сайт ---------- */
.bsb-mb-0 { margin-bottom: 0; }
.bsb-mb-sm { margin-bottom: var(--bsb-space-sm); }
.bsb-mb-md { margin-bottom: var(--bsb-space-md); }
.bsb-mb-lg { margin-bottom: var(--bsb-space-lg); }
.bsb-py-0 { padding-block: 0; }
.bsb-py-sm { padding-block: var(--bsb-space-sm); }
.bsb-py-md { padding-block: var(--bsb-space-md); }
.bsb-py-lg { padding-block: var(--bsb-space-lg); }

/* ---------- Ширина ---------- */
.bsb-container,
.bsb-container-narrow { width: 100%; margin-inline: auto; padding-inline: 1rem; }
.bsb-container { max-width: 1320px; }
.bsb-container-narrow { max-width: calc(760px + 2rem); }
@media (min-width: 992px) {
  .bsb-container { padding-inline: 3rem; max-width: calc(1320px + 3rem); }
  .bsb-container-narrow { padding-inline: 3rem; max-width: calc(760px + 6rem); }
}
.bsb > .container-fluid { padding-inline: 0; }

/* Страница из блоков: старые текстовые блоки и HTML-вставки между ними держим в контейнере */
.page-blocks > :not(.bsb) { max-width: calc(1320px + 3rem); margin-inline: auto; padding-inline: 1rem; }
@media (min-width: 992px) { .page-blocks > :not(.bsb) { padding-inline: 3rem; } }
.page-blocks > :not(.bsb):not(script):not(style) { margin-bottom: 3rem; }

/* Внутри колонки статьи (новость, блог, страница в карточке) блок занимает колонку,
   цветной фон — скруглённая плашка, а не полоса во всю ширину экрана. */
.prose .bsb .bsb-container,
.prose .bsb .bsb-container-narrow { padding-inline: 0; }
.prose .bsb[class*="bsb-bg-"]:not(.bsb-bg-none) { border-radius: var(--bsb-radius); overflow: hidden; }
.prose .bsb[class*="bsb-bg-"]:not(.bsb-bg-none) .bsb-container,
.prose .bsb[class*="bsb-bg-"]:not(.bsb-bg-none) .bsb-container-narrow { padding-inline: clamp(1.25rem, 4vw, 3rem); }
.prose .bsb img { border-radius: 0; }

/* ---------- Фоны ---------- */
.bsb-bg-white { background: #fff; }
.bsb-bg-ivory { background: var(--bst-ivory); }
.bsb-bg-sand { background: var(--bst-sand); }
.bsb-bg-mint { background: #F1F4EF; }
.bsb-bg-night {
  background:
    radial-gradient(50% 70% at 88% 18%, rgba(46, 158, 102, .16) 0%, rgba(46, 158, 102, 0) 70%),
    radial-gradient(45% 80% at 0% 100%, rgba(10, 107, 69, .22) 0%, rgba(10, 107, 69, 0) 70%),
    var(--bst-night);
}
.bsb-bg-forest {
  background:
    radial-gradient(45% 90% at 0% 0%, rgba(10, 107, 69, .6) 0%, rgba(10, 107, 69, 0) 65%),
    radial-gradient(30% 60% at 100% 100%, rgba(201, 169, 110, .16) 0%, rgba(201, 169, 110, 0) 70%),
    var(--bst-deep);
}
.bsb-bg-image { background: var(--bst-night) center / cover no-repeat; }
.bsb-bg-image::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(16, 21, 17, .92) 0%, rgba(16, 21, 17, .72) 45%, rgba(16, 21, 17, .35) 100%);
}
.bsb-bg-image > * { position: relative; }

.bsb-bg-night,
.bsb-bg-forest,
.bsb-bg-image {
  --bsb-ink: #fff;
  --bsb-text: var(--bst-on-dark);
  --bsb-muted: var(--bst-on-dark-muted);
  --bsb-accent: var(--bst-green-on-dark);
  --bsb-eyebrow: var(--bst-green-on-dark);
  --bsb-card-bg: rgba(255, 255, 255, .04);
  --bsb-card-line: rgba(255, 255, 255, .12);
  --bsb-icon-bg: rgba(61, 181, 122, .14);
}
.bsb-bg-night .btn-outline-primary,
.bsb-bg-forest .btn-outline-primary,
.bsb-bg-image .btn-outline-primary {
  --bs-btn-color: #fff; --bs-btn-border-color: rgba(255, 255, 255, .35);
  --bs-btn-hover-color: var(--bst-deep); --bs-btn-hover-bg: #fff; --bs-btn-hover-border-color: #fff;
  --bs-btn-active-color: var(--bst-deep); --bs-btn-active-bg: #fff; --bs-btn-active-border-color: #fff;
  background: transparent;
}
.bsb-bg-night .btn-primary,
.bsb-bg-forest .btn-primary,
.bsb-bg-image .btn-primary {
  --bs-btn-bg: #12805A; --bs-btn-border-color: #12805A;
  --bs-btn-hover-bg: #179366; --bs-btn-hover-border-color: #179366;
  --bs-btn-active-bg: #179366; --bs-btn-active-border-color: #179366;
}

/* ---------- Общие элементы ---------- */
.bsb .bsb-eyebrow {
  display: block; margin: 0 0 .75rem;
  font-family: var(--bst-font-display); font-size: .8125rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--bsb-eyebrow);
}
.bsb .bsb-title {
  margin: 0; color: var(--bsb-ink);
  font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.15; text-wrap: balance;
}
.bsb .bsb-title em,
.bsb .bsb-accent { font-style: normal; color: var(--bsb-accent); }
.bsb .bsb-lead { margin: 1rem 0 0; max-width: 42rem; font-size: 1.1875rem; line-height: 1.55; color: var(--bsb-text); }
.bsb-head { margin-bottom: clamp(1.75rem, 3vw, 2.5rem); }
.bsb-head--center { text-align: center; }
.bsb-head--center .bsb-lead { margin-inline: auto; }
.bsb-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.bsb-head--center + * .bsb-actions,
.bsb-actions--center { justify-content: center; }
.bsb .btn-lg { min-width: 12rem; }
@media (max-width: 575.98px) {
  .bsb .bsb-lead { font-size: 1.0625rem; }
  .bsb-actions .btn { flex: 1 1 100%; }
}

/* Текст из визуального редактора внутри блоков */
.bsb-rich { color: var(--bsb-text); font-size: 1.0625rem; line-height: 1.7; }
.bsb-rich > :first-child { margin-top: 0; }
.bsb-rich > :last-child { margin-bottom: 0; }
.bsb-rich h2, .bsb-rich h3, .bsb-rich h4 { color: var(--bsb-ink); margin: 2rem 0 .75rem; line-height: 1.25; }
.bsb-rich h2 { font-size: clamp(1.5rem, 2.4vw, 1.875rem); }
.bsb-rich h3 { font-size: 1.375rem; }
.bsb-rich ul, .bsb-rich ol { padding-left: 1.25rem; }
.bsb-rich li + li { margin-top: .375rem; }
.bsb-rich li::marker { color: var(--bsb-accent); }
.bsb-rich a { color: var(--bsb-accent); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.bsb-rich blockquote {
  margin: 1.75rem 0; padding: .25rem 0 .25rem 1.5rem; border-left: 3px solid var(--bst-champagne);
  font-family: var(--bst-font-display); font-size: 1.25rem; line-height: 1.5; color: var(--bsb-ink);
}
.bsb-rich img { max-width: 100%; height: auto; border-radius: var(--bst-radius); }
.bsb-rich table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.bsb-rich th, .bsb-rich td { padding: .625rem .75rem; border-bottom: 1px solid var(--bsb-card-line); text-align: left; }
.bsb-rich th { font-family: var(--bst-font-display); font-weight: 600; color: var(--bsb-ink); }

/* ==========================================================================
   1. Hero — первый экран
   ========================================================================== */
.bsb-hero__grid {
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  gap: clamp(2rem, 4vw, 3.5rem); align-items: center;
}
.bsb-hero--media-left .bsb-hero__media { order: -1; }
.bsb-hero--no-media .bsb-hero__grid { grid-template-columns: minmax(0, 1fr); max-width: 52rem; }
.bsb-hero .bsb-hero__title {
  margin: 0; color: var(--bsb-ink); font-weight: 800;
  font-size: clamp(2.25rem, 4.1vw, 3.75rem); line-height: 1.04; letter-spacing: -.03em; text-wrap: balance;
}
.bsb-hero .bsb-lead { margin-top: 1.25rem; max-width: 36rem; }
.bsb-hero__media { min-width: 0; }
.bsb-hero__media img { display: block; width: 100%; height: auto; border-radius: var(--bsb-radius); }
.bsb-stats-inline { display: flex; flex-wrap: wrap; gap: .75rem 3rem; margin: 1.75rem 0 0; padding: 0; list-style: none; }
.bsb-stats-inline li { display: flex; flex-direction: column; gap: .25rem; }
.bsb-stats-inline b {
  font-family: var(--bst-font-display); font-weight: 700; font-size: clamp(1.75rem, 2.4vw, 2.25rem);
  line-height: 1.05; letter-spacing: -.02em; color: var(--bsb-accent); white-space: nowrap;
}
.bsb-stats-inline span { font-size: .9375rem; color: var(--bsb-muted); }
@media (max-width: 991.98px) {
  .bsb-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .bsb-hero--media-left .bsb-hero__media { order: 0; }
}
@media (max-width: 575.98px) {
  .bsb-stats-inline { gap: .75rem 1.75rem; }
}

/* ==========================================================================
   2. Hero на фоновом изображении
   ========================================================================== */
.bsb-cover { display: flex; align-items: center; min-height: var(--bsb-cover-h, 520px); }
.bsb-cover--sm { --bsb-cover-h: 380px; }
.bsb-cover--lg { --bsb-cover-h: 640px; }
.bsb-cover > div { width: 100%; }
.bsb-cover__copy { max-width: 46rem; }
.bsb-cover--center .bsb-cover__copy { margin-inline: auto; text-align: center; }
.bsb-cover--center .bsb-actions { justify-content: center; }
.bsb-cover--center .bsb-lead { margin-inline: auto; }
.bsb-cover--center.bsb-bg-image::before { background: rgba(16, 21, 17, .72); }
.bsb-cover .bsb-cover__title {
  margin: 0; color: var(--bsb-ink); font-weight: 800;
  font-size: clamp(2rem, 3.6vw, 3.25rem); line-height: 1.08; letter-spacing: -.025em; text-wrap: balance;
}
.prose .bsb-cover { --bsb-cover-h: 360px; }

/* ==========================================================================
   3. Текст
   ========================================================================== */
.bsb-text .bsb-title { margin-bottom: 1.25rem; }
.bsb-text--center { text-align: center; }
.bsb-text--center .bsb-rich ul, .bsb-text--center .bsb-rich ol { text-align: left; display: inline-block; }

/* ==========================================================================
   4. Картинка + текст
   ========================================================================== */
.bsb-split__grid {
  --bsb-media: 1fr; --bsb-copy: 1fr;
  display: grid; grid-template-columns: minmax(0, var(--bsb-media)) minmax(0, var(--bsb-copy));
  gap: clamp(2rem, 5vw, 4.5rem); align-items: center;
}
/* Соотношение задаётся для картинки и не зависит от её стороны */
.bsb-split--media-wide .bsb-split__grid { --bsb-media: 7fr; --bsb-copy: 5fr; }
.bsb-split--media-narrow .bsb-split__grid { --bsb-media: 5fr; --bsb-copy: 7fr; }
.bsb-split--image-right .bsb-split__grid { grid-template-columns: minmax(0, var(--bsb-copy)) minmax(0, var(--bsb-media)); }
.bsb-split--top .bsb-split__grid { align-items: start; }
.bsb-split--image-right .bsb-split__media { order: 2; }
/* Без картинки и подписи — одна колонка текста на ширину контейнера */
.bsb-split--text .bsb-split__grid { grid-template-columns: minmax(0, 1fr); }
.bsb-split__media { min-width: 0; margin: 0; }
.bsb-split__media img {
  display: block; width: 100%; height: auto; border-radius: var(--bsb-radius);
  border: 1px solid var(--bsb-card-line); background: #fff;
}
.bsb-split__media figcaption { margin-top: .75rem; font-size: .875rem; color: var(--bsb-muted); }
.bsb-split .bsb-title { margin-bottom: 1.25rem; }
@media (max-width: 991.98px) {
  .bsb-split__grid,
  .bsb-split--image-right .bsb-split__grid { grid-template-columns: minmax(0, 1fr); }
  .bsb-split--image-right .bsb-split__media { order: 0; }
}

/* ==========================================================================
   5. Картинка
   ========================================================================== */
.bsb-image figure { margin: 0; }
.bsb-image img { display: block; width: 100%; height: auto; border-radius: var(--bsb-radius); }
.bsb-image > .container-fluid img { border-radius: 0; }
.bsb-image--framed img { border: 1px solid var(--bsb-card-line); background: #fff; padding: clamp(.75rem, 2vw, 1.5rem); }
.bsb-image figcaption { margin-top: .875rem; font-size: .9375rem; color: var(--bsb-muted); }
.bsb-image > .container-fluid figcaption { padding-inline: 1rem; text-align: center; }

/* ==========================================================================
   6. Видео (VK Видео, Rutube) — плеер грузится по нажатию
   ========================================================================== */
.bsb-video figure { margin: 0; }
.bsb-video__frame {
  position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--bsb-radius);
  background:
    radial-gradient(60% 80% at 80% 10%, rgba(46, 158, 102, .28) 0%, rgba(46, 158, 102, 0) 70%),
    var(--bst-night);
}
.bsb-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.bsb-video__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bsb-video__play {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 1rem; width: 100%; padding: 1.5rem; border: 0; cursor: pointer; color: #fff; text-align: center;
  background: linear-gradient(180deg, rgba(16, 21, 17, .15) 0%, rgba(16, 21, 17, .55) 100%);
  font-family: var(--bst-font-display); font-weight: 600; font-size: 1.125rem;
}
.bsb-video__icon {
  width: 84px; height: 84px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: var(--bst-forest); color: #fff; font-size: 2.25rem; padding-left: .25rem;
  box-shadow: 0 0 0 10px rgba(255, 255, 255, .14); transition: transform .2s ease, background-color .2s ease;
}
.bsb-video__play:hover .bsb-video__icon { transform: scale(1.06); background: #12805A; }
.bsb-video__play:focus-visible { outline: 3px solid var(--bst-champagne); outline-offset: -3px; }
.bsb-video__source { font-family: var(--bst-font-body); font-weight: 500; font-size: .8125rem; color: rgba(255, 255, 255, .7); }
.bsb-video figcaption { margin-top: .875rem; font-size: .9375rem; color: var(--bsb-muted); }
@media (max-width: 575.98px) {
  .bsb-video__icon { width: 64px; height: 64px; font-size: 1.75rem; }
}

/* ==========================================================================
   7. Показатели
   ========================================================================== */
.bsb-stats__grid { display: grid; grid-template-columns: repeat(var(--bsb-cols, 4), minmax(0, 1fr)); gap: 1.25rem; list-style: none; margin: 0; padding: 0; }
.bsb-stats--cols-2 { --bsb-cols: 2; }
.bsb-stats--cols-3 { --bsb-cols: 3; }
.bsb-stats__item {
  container-type: inline-size;
  padding: 1.75rem 1.5rem; border-radius: 18px;
  background: var(--bsb-card-bg); border: 1px solid var(--bsb-card-line);
}
.bsb-stats__value {
  display: block; font-family: var(--bst-font-display); font-weight: 700;
  font-size: clamp(1.75rem, 15cqi, 3rem); line-height: 1.05; letter-spacing: -.02em; color: var(--bsb-ink);
  white-space: nowrap;
}
.bsb-stats__value small { font-size: .5em; font-weight: 600; letter-spacing: 0; color: var(--bsb-accent); margin-left: .2em; }
.bsb-stats__label { display: block; margin-top: .625rem; font-family: var(--bst-font-display); font-weight: 600; font-size: 1.0625rem; color: var(--bsb-ink); }
.bsb-stats__note { display: block; margin-top: .375rem; font-size: .9375rem; line-height: 1.5; color: var(--bsb-muted); }
/* Вариант «линии»: без карточек, разделитель слева — как блок цифр на главной */
.bsb-stats--lines .bsb-stats__item { padding: 0 0 0 1.5rem; background: none; border: 0; border-left: 1px solid rgba(201, 169, 110, .55); border-radius: 0; }
@media (max-width: 991.98px) { .bsb-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 339.98px) { .bsb-stats__grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 575.98px) { .bsb-stats__grid { gap: .75rem; } .bsb-stats__item { padding: 1.25rem 1rem; } .bsb-stats--lines .bsb-stats__item { padding: 0 0 0 1rem; } }

/* «Текст + показатели»: сетка «Картинки + текст», справа плитки «Показателей» по 2 в ряд */
.bsb-statsplit .bsb-split__grid { align-items: start; }
.bsb-statsplit__grid { --bsb-cols: 2; }
.bsb-statsplit .bsb-stats__value { white-space: normal; }
.bsb-statsplit__image { display: block; width: 100%; height: auto; margin-top: 1.25rem; }
.bsb-statsplit__tags { display: flex; flex-wrap: wrap; gap: .375rem; list-style: none; margin: 1.25rem 0 0; padding: 0; }
.bsb-statsplit__tags li {
  padding: .25rem .7rem; border-radius: 999px; border: 1px solid var(--bsb-card-line);
  font-size: .8125rem; line-height: 1.4; color: var(--bsb-text);
}
.bsb-statsplit__tags li:first-child { background: var(--bsb-icon-bg); border-color: transparent; color: var(--bsb-ink); font-weight: 600; }
@media (max-width: 991.98px) { .bsb-statsplit .bsb-split__grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 339.98px) { .bsb-statsplit__grid { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   8. Шаги
   ========================================================================== */
.bsb-steps__list { display: grid; grid-template-columns: repeat(var(--bsb-cols, 4), minmax(0, 1fr)); gap: 1.5rem; list-style: none; margin: 0; padding: 0; counter-reset: bsb-step; }
.bsb-steps--cols-3 { --bsb-cols: 3; }
.bsb-steps--cols-5 { --bsb-cols: 5; }
.bsb-steps__item { position: relative; counter-increment: bsb-step; }
.bsb-steps__num {
  position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center;
  width: 52px; height: 52px; margin-bottom: 1.25rem; border-radius: 50%;
  font-family: var(--bst-font-display); font-weight: 700; font-size: 1.125rem;
  background: var(--bst-forest); color: #fff; box-shadow: 0 0 0 6px var(--bsb-step-ring, var(--bst-forest-tint));
}
.bsb-steps__num::before { content: counter(bsb-step, decimal-leading-zero); }
.bsb-steps__item:not(:last-child)::after {
  content: ""; position: absolute; top: 26px; left: 64px; right: -1.5rem; height: 0;
  border-top: 2px dashed var(--bsb-card-line);
}
.bsb-steps__title { margin: 0 0 .5rem; font-family: var(--bst-font-display); font-weight: 600; font-size: 1.1875rem; line-height: 1.3; color: var(--bsb-ink); }
.bsb-steps__text { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--bsb-muted); }
.bsb-bg-night .bsb-steps__num, .bsb-bg-forest .bsb-steps__num, .bsb-bg-image .bsb-steps__num { --bsb-step-ring: rgba(61, 181, 122, .18); background: #12805A; }
/* Вертикальная лента — для длинных описаний и на телефоне */
.bsb-steps--vertical .bsb-steps__list { grid-template-columns: minmax(0, 1fr); gap: 0; max-width: 46rem; }
.bsb-steps--vertical .bsb-steps__item { display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 1.5rem; padding-bottom: 2rem; }
.bsb-steps--vertical .bsb-steps__item:last-child { padding-bottom: 0; }
.bsb-steps--vertical .bsb-steps__num { grid-row: span 2; margin-bottom: 0; }
.bsb-steps--vertical .bsb-steps__title { padding-top: .75rem; }
.bsb-steps--vertical .bsb-steps__item:not(:last-child)::after { top: 64px; bottom: 10px; left: 25px; right: auto; height: auto; border-top: 0; border-left: 2px dashed var(--bsb-card-line); }
@media (max-width: 991.98px) {
  .bsb-steps__list { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .bsb-steps__item { display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 1.25rem; padding-bottom: 1.75rem; }
  .bsb-steps__item:last-child { padding-bottom: 0; }
  .bsb-steps__num { grid-row: span 2; margin-bottom: 0; }
  .bsb-steps__title { padding-top: .75rem; }
  .bsb-steps__item:not(:last-child)::after { top: 64px; bottom: 10px; left: 25px; right: auto; height: auto; border-top: 0; border-left: 2px dashed var(--bsb-card-line); }
}

/* ==========================================================================
   9. Карточки с иконками (преимущества, услуги)
   ========================================================================== */
.bsb-cards__grid { display: grid; grid-template-columns: repeat(var(--bsb-cols, 3), minmax(0, 1fr)); gap: 1.25rem; list-style: none; margin: 0; padding: 0; }
.bsb-cards--cols-2 { --bsb-cols: 2; }
.bsb-cards--cols-4 { --bsb-cols: 4; }
.bsb-cards__item {
  position: relative; display: flex; flex-direction: column; height: 100%; padding: 1.75rem;
  background: var(--bsb-card-bg); border: 1px solid var(--bsb-card-line); border-radius: 18px;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.bsb-cards__icon {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  width: 52px; height: 52px; margin-bottom: 1.25rem; border-radius: 14px;
  background: var(--bsb-icon-bg); color: var(--bsb-accent); font-size: 1.5rem;
  transition: background-color .15s ease, color .15s ease;
}
.bsb-cards__title { margin: 0 0 .5rem; font-family: var(--bst-font-display); font-weight: 600; font-size: 1.1875rem; line-height: 1.3; color: var(--bsb-ink); }
.bsb-cards__text { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--bsb-muted); }
.bsb-cards__link { margin-top: auto; padding-top: 1.25rem; font-family: var(--bst-font-display); font-weight: 600; font-size: 1rem; color: var(--bsb-accent); }
.bsb-cards__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.bsb-cards__link:hover { text-decoration: none; }
.bsb-cards__link .bi { transition: transform .15s ease; display: inline-block; }
.bsb-cards__item:has(.bsb-cards__link):hover { border-color: var(--bst-forest); box-shadow: var(--bst-shadow-soft); transform: translateY(-2px); }
.bsb-cards__item:has(.bsb-cards__link):hover .bsb-cards__icon { background: var(--bst-forest); color: #fff; }
.bsb-cards__item:has(.bsb-cards__link):hover .bsb-cards__link .bi { transform: translateX(3px); }
@media (max-width: 991.98px) { .bsb-cards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .bsb-cards__grid { grid-template-columns: minmax(0, 1fr); } .bsb-cards__item { padding: 1.5rem; } }

/* ==========================================================================
   10. Призыв к действию
   ========================================================================== */
.bsb-cta__box {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem 3rem; align-items: center;
  padding: clamp(2rem, 4vw, 3.5rem); border-radius: 24px; overflow: hidden; position: relative;
  color: var(--bst-on-dark);
  background:
    radial-gradient(60% 120% at 100% 0%, rgba(201, 169, 110, .22) 0%, rgba(201, 169, 110, 0) 60%),
    radial-gradient(50% 120% at 0% 100%, rgba(46, 158, 102, .45) 0%, rgba(46, 158, 102, 0) 70%),
    var(--bst-deep);
  --bsb-ink: #fff; --bsb-text: var(--bst-on-dark); --bsb-muted: var(--bst-on-dark-muted);
  --bsb-accent: var(--bst-green-on-dark); --bsb-eyebrow: var(--bst-champagne);
}
.bsb-cta--light .bsb-cta__box {
  color: var(--bst-text); background: #fff; border: 1px solid var(--bst-line); box-shadow: var(--bst-shadow-soft);
  --bsb-ink: var(--bst-ink); --bsb-text: var(--bst-text); --bsb-muted: var(--bst-muted);
  --bsb-accent: var(--bst-forest); --bsb-eyebrow: var(--bst-brass-text);
}
.bsb-cta--center .bsb-cta__box { grid-template-columns: minmax(0, 1fr); text-align: center; justify-items: center; }
.bsb-cta--center .bsb-lead { margin-inline: auto; }
.bsb-cta .bsb-actions { margin-top: 0; }
.bsb-cta__box .btn-champagne { min-width: 12rem; }
.bsb-cta__box .btn-outline-primary {
  --bs-btn-color: #fff; --bs-btn-border-color: rgba(255, 255, 255, .35);
  --bs-btn-hover-color: var(--bst-deep); --bs-btn-hover-bg: #fff; --bs-btn-hover-border-color: #fff;
  background: transparent;
}
.bsb-cta--light .bsb-cta__box .btn-outline-primary {
  --bs-btn-color: var(--bst-forest); --bs-btn-border-color: var(--bst-forest);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--bst-forest); --bs-btn-hover-border-color: var(--bst-forest);
  background: #fff;
}
@media (max-width: 767.98px) {
  .bsb-cta__box { grid-template-columns: minmax(0, 1fr); }
  .bsb-cta .bsb-actions { width: 100%; }
}

/* ---------- 11. Частые вопросы (BS-PLAN-010): аккордеон как на /faq, вопросы подставляет сайт ---------- */
.bsb-faq .faq-accordion .accordion-header { margin: 0; font-size: inherit; }
.bsb-faq .faq-accordion .accordion-button { font-size: 1.0625rem; line-height: 1.4; }
.bsb-faq .bsb-head--center + .faq-accordion { margin-inline: auto; }

/* ---------- 13. «Отзывы — письма»: превью письма слева, справа компания, год, цитата, автор ---------- */
.bsb-letters__grid {
  --bsb-cols: 2;
  display: grid; grid-template-columns: repeat(var(--bsb-cols), minmax(0, 1fr)); gap: 1.25rem;
  list-style: none; margin: 0; padding: 0;
}
.bsb-letters--cols-1 .bsb-letters__grid { --bsb-cols: 1; }
.bsb-letters__item { display: flex; }
.bsb-letters__card {
  display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 1.375rem; width: 100%; margin: 0;
  background: var(--bsb-card-bg); border: 1px solid var(--bsb-card-line); border-radius: var(--bsb-radius); padding: 1.375rem;
}
.bsb-letters__card:not(:has(.bsb-letters__thumb)) { grid-template-columns: minmax(0, 1fr); }
.bsb-letters__thumb {
  display: block; align-self: start; aspect-ratio: 230 / 300; overflow: hidden;
  border: 1px solid var(--bsb-card-line); border-radius: 6px; background: #fff;
  box-shadow: 0 10px 22px -16px rgba(10, 42, 30, .5);
  transition: transform .2s ease, box-shadow .2s ease;
}
.bsb-letters__thumb:hover { transform: translateY(-3px); box-shadow: 0 18px 34px -22px rgba(10, 42, 30, .45); }
.bsb-letters__thumb { position: relative; cursor: zoom-in; }
.bsb-letters__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.bsb-letters__zoom {
  position: absolute; right: .5rem; bottom: .5rem; display: grid; place-items: center; width: 2rem; height: 2rem;
  border-radius: 50%; background: rgba(16, 21, 17, .72); color: #fff; font-size: .8125rem;
  opacity: 0; transform: scale(.85); transition: opacity .2s ease, transform .2s ease;
}
.bsb-letters__thumb:hover .bsb-letters__zoom, .bsb-letters__thumb:focus-visible .bsb-letters__zoom { opacity: 1; transform: none; }
@media (hover: none) { .bsb-letters__zoom { opacity: 1; transform: none; width: 1.625rem; height: 1.625rem; font-size: .6875rem; right: .3125rem; bottom: .3125rem; } }
.bsb-letters__body { display: flex; flex-direction: column; min-width: 0; }
.bsb-letters__head { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; margin-bottom: .625rem; }
.bsb-letters__company { font-family: var(--bst-font-display); font-size: 1.25rem; font-weight: 800; line-height: 1.25; color: var(--bsb-ink); }
.bsb-letters__logo { display: block; max-width: 180px; max-height: 44px; width: auto; height: auto; object-fit: contain; object-position: left center; }
.bsb-letters__year { flex-shrink: 0; font-size: .8125rem; color: var(--bsb-muted); }
.bsb-letters__quote {
  margin: 0 0 .875rem; padding-left: 1.125rem; border-left: 3px solid var(--bst-champagne);
  font-size: .96875rem; line-height: 1.55; color: var(--bsb-text);
}
.bsb-letters__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: .75rem; margin-top: auto; }
.bsb-letters__author { min-width: 0; }
.bsb-letters__name { display: block; font-size: .90625rem; font-weight: 600; color: var(--bsb-ink); }
.bsb-letters__role { display: block; font-size: .78125rem; line-height: 1.4; color: var(--bsb-muted); }
.bsb-letters__open { flex-shrink: 0; font-size: .875rem; font-weight: 600; color: var(--bsb-accent); text-decoration: none; }
.bsb-letters__open:hover { color: var(--bst-forest-hover); }
@media (prefers-reduced-motion: reduce) { .bsb-letters__thumb, .bsb-letters__zoom { transition: none; } .bsb-letters__thumb:hover { transform: none; } }
@media (max-width: 991.98px) { .bsb-letters__grid { --bsb-cols: 1; } }
/* На телефоне превью уменьшается и встаёт рядом с названием компании, цитата — на всю ширину карточки */
@media (max-width: 575.98px) {
  .bsb-letters__card { display: flow-root; padding: 1rem; }
  .bsb-letters__thumb { float: left; width: 64px; margin: 0 .875rem .75rem 0; }
  .bsb-letters__body { display: block; }
  .bsb-letters__head { flex-direction: column; align-items: flex-start; gap: .125rem; min-height: 4.5rem; }
  .bsb-letters__company { font-size: 1.0625rem; }
  .bsb-letters__quote { clear: both; }
  .bsb-letters__foot { flex-direction: column; align-items: flex-start; gap: .625rem; }
}

/* Лайтбокс писем (blocks.js): скан на тёмном фоне, справа — компания, цитата и автор; на телефоне подпись под письмом */
html.bsb-lightbox-open { overflow: hidden; }
.bsb-lightbox {
  width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0;
  display: none; flex-direction: column; background: #0c110e; color: #fff;
}
.bsb-lightbox[open] { display: flex; animation: bsb-lightbox-in .18s ease-out; }
.bsb-lightbox::backdrop { background: rgba(12, 17, 14, .6); }
@keyframes bsb-lightbox-in { from { opacity: 0; } to { opacity: 1; } }
.bsb-lightbox__bar {
  flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .75rem 1rem .75rem 1.5rem;
}
.bsb-lightbox__counter { font-size: .875rem; font-variant-numeric: tabular-nums; color: var(--bst-on-dark); }
.bsb-lightbox__tools { display: flex; gap: .5rem; margin-left: auto; }
.bsb-lightbox__btn, .bsb-lightbox__nav {
  display: grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .1); color: #fff; font-size: 1.125rem; text-decoration: none; cursor: pointer;
  transition: background-color .15s ease;
}
.bsb-lightbox__btn:hover, .bsb-lightbox__nav:hover { background: rgba(255, 255, 255, .2); color: #fff; }
.bsb-lightbox__btn:focus-visible, .bsb-lightbox__nav:focus-visible { outline: 2px solid var(--bst-champagne); outline-offset: 2px; }
.bsb-lightbox__btn[aria-pressed="true"] { background: var(--bst-champagne); color: var(--bst-night); }
.bsb-lightbox__main { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 360px; }
.bsb-lightbox__stage {
  position: relative; min-height: 0; overflow: hidden; display: flex; align-items: center; justify-content: center;
  padding: 0 5rem 1.5rem; overscroll-behavior: contain; touch-action: pan-y pinch-zoom;
}
.bsb-lightbox__img {
  display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain;
  background: #fff center top / cover no-repeat; border-radius: 4px;
  box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .8); cursor: zoom-in; user-select: none;
}
.bsb-lightbox.is-zoomed .bsb-lightbox__stage { display: block; overflow: auto; padding: 0; cursor: grab; touch-action: auto; }
.bsb-lightbox.is-zoomed.is-dragging .bsb-lightbox__stage { cursor: grabbing; }
.bsb-lightbox.is-zoomed .bsb-lightbox__img {
  max-width: none; max-height: none; height: auto;
  margin: 0 auto; border-radius: 0; cursor: zoom-out;
}
.bsb-lightbox.is-zoomed .bsb-lightbox__nav { display: none; }
/* Увеличенное письмо занимает всю ширину — подпись прячется до возврата к обычному виду */
.bsb-lightbox.is-zoomed .bsb-lightbox__main { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
.bsb-lightbox.is-zoomed .bsb-lightbox__info { display: none; }
.bsb-lightbox__nav { position: absolute; top: 50%; margin-top: -1.375rem; width: 3rem; height: 3rem; font-size: 1.25rem; }
.bsb-lightbox__nav--prev { left: 1rem; }
.bsb-lightbox__nav--next { right: 1rem; }
.bsb-lightbox__nav[hidden] { display: none; }
.bsb-lightbox__spinner {
  position: absolute; top: 50%; left: 50%; width: 2.5rem; height: 2.5rem; margin: -1.25rem 0 0 -1.25rem;
  border: 3px solid rgba(255, 255, 255, .25); border-top-color: #fff; border-radius: 50%;
  opacity: 0; pointer-events: none; transition: opacity .2s ease .15s;
  animation: bsb-lightbox-spin .8s linear infinite;
}
.bsb-lightbox.is-loading .bsb-lightbox__spinner { opacity: 1; }
@keyframes bsb-lightbox-spin { to { transform: rotate(360deg); } }
.bsb-lightbox__info {
  min-height: 0; overflow-y: auto; margin: 0 1.5rem 1.5rem 0; padding: 1.75rem;
  background: var(--bst-night-raised); border: 1px solid rgba(255, 255, 255, .08); border-radius: var(--bst-radius-lg);
  align-self: start; max-height: calc(100% - 1.5rem);
}
.bsb-lightbox__head { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.bsb-lightbox__head .bsb-letters__company { font-family: var(--bst-font-display); font-size: 1.375rem; font-weight: 800; line-height: 1.25; color: #fff; }
.bsb-lightbox__head .bsb-letters__logo { display: block; max-width: 180px; max-height: 44px; padding: .5rem .75rem; background: #fff; border-radius: 8px; box-sizing: content-box; }
.bsb-lightbox__head .bsb-letters__year { flex-shrink: 0; font-size: .875rem; color: var(--bst-on-dark); }
.bsb-lightbox__quote {
  margin: 0 0 1.25rem; padding-left: 1.125rem; border-left: 3px solid var(--bst-champagne);
  font-size: 1rem; line-height: 1.6; color: #fff;
}
.bsb-lightbox__author .bsb-letters__name { display: block; font-weight: 600; color: #fff; }
.bsb-lightbox__author .bsb-letters__role { display: block; margin-top: .125rem; font-size: .8125rem; line-height: 1.45; color: var(--bst-on-dark); }
.bsb-lightbox.is-single .bsb-lightbox__counter { visibility: hidden; }
@media (max-width: 991.98px) {
  .bsb-lightbox__main { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; }
  .bsb-lightbox__stage { padding: 0 1rem 1rem; }
  .bsb-lightbox__info { margin: 0; max-height: 34dvh; border-radius: var(--bst-radius-lg) var(--bst-radius-lg) 0 0; padding: 1.125rem 1.25rem calc(1.125rem + env(safe-area-inset-bottom)); }
  .bsb-lightbox__quote { font-size: .9375rem; margin-bottom: .875rem; }
  .bsb-lightbox__nav { width: 2.5rem; height: 2.5rem; margin-top: -1.25rem; background: rgba(16, 21, 17, .6); }
  .bsb-lightbox__nav--prev { left: .5rem; }
  .bsb-lightbox__nav--next { right: .5rem; }
}
@media (max-width: 575.98px) {
  .bsb-lightbox__bar { padding: .5rem .5rem .5rem 1rem; }
  .bsb-lightbox__btn { width: 2.5rem; height: 2.5rem; }
  .bsb-lightbox__head .bsb-letters__company { font-size: 1.125rem; }
}
@media (prefers-reduced-motion: reduce) {
  .bsb-lightbox[open] { animation: none; }
  .bsb-lightbox__spinner { animation-duration: 2.4s; }
}
