/* ============================================================
   BBB2 — components.css
   Переиспользуемые компоненты дизайн-системы.
   Подключается ПОСЛЕ index.css на всех страницах.

   Правила:
   - Токены (цвета, радиусы, шрифты) — ТОЛЬКО из :root в index.css
   - Никаких хардкод-цветов — только var(--...)
   - Инструкция по вёрстке: workspace/DESIGN.md
   ============================================================ */

/* ════════════════════════════════════════════════════════════
   КНОПКИ (design-system-buttons.css, 17.07.2026)
   Анатомия (Figma, 17.07): [left icon] [content] [right icon]
   - gap кнопки 8px (между икон-слотами и контентом)
   - content: padding 0 10px, gap 4px, text (Inter 400, LH 100%) + chevron 16×16
   - икон-слоты: S 16×16 | M 20×20 | L 24×24; скрыты по умолчанию
   HTML:
   <button class="btn btn--m btn--primary">
     <span class="btn__content">
       <span class="btn__text">Сохранить</span>
       <svg class="btn__chevron">…</svg>
     </span>
   </button>
   Icon-only: <button class="btn btn--m btn--primary btn--icon-only"><svg class="btn__icon">…</svg></button>
   ════════════════════════════════════════════════════════════ */
.btn {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  width: auto;                      /* hug content */
  gap: 8px;
  border: none;
  border-radius: 99px;
  font-family: Inter, -apple-system, Roboto, Helvetica, sans-serif;
  font-weight: 400;                 /* Inter Regular */
  line-height: 1;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  box-sizing: border-box;
  transition: opacity 0.15s, background 0.15s, outline-color 0.15s;
}
.btn__content { display: inline-flex; align-items: center; gap: 4px; padding: 0 10px; min-width: 0; }
.btn--s .btn__content { padding: 0 6px; }   /* S: контент-паддинг 6px (Figma) */
.btn__text { display: inline-block; }
.btn__chevron { width: 16px; height: 16px; flex-shrink: 0; }
.btn__icon { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; }
.btn--s .btn__icon { width: 16px; height: 16px; }
.btn--m .btn__icon { width: 20px; height: 20px; }
.btn--l .btn__icon { width: 24px; height: 24px; }
.btn__icon svg { width: 100%; height: 100%; }

/* ── Размеры ── */
.btn--s { height: 32px; font-size: 14px; padding: 8px; }
.btn--m { height: 40px; font-size: 16px; padding: 8px 10px; }
.btn--l { height: 52px; font-size: 16px; padding: 8px 14px; }

/* ── Типы ── */
/* Primary — главное действие в группе («Сохранить», «Далее») */
.btn--primary {
  background: var(--color-surface-dark);
  color: var(--color-text-primary-on-dark);
}
/* CTA — ОДНА на страницу/секцию («Купить», «Оформить заявку») */
.btn--cta {
  background: var(--color-accent-primary-orange);
  color: var(--color-text-primary-on-dark);
}
/* Secondary — альтернатива/отмена («Отменить», «Подробнее») */
.btn--secondary {
  background: var(--color-surface-v1);
  color: var(--color-text-primary);
}
/* Ghost — третичное, минимальный вес («Ещё», инлайн-действия) */
.btn--ghost {
  background: transparent;
  color: var(--color-text-primary);
}
/* Border — нейтральный акцент на цветных подложках (фильтры, теги) */
.btn--border {
  background: var(--color-surface-white);
  color: var(--color-text-primary);
  outline: 1px solid var(--color-surface-v1);
  outline-offset: -1px;
}

/* ── Hover ──
   Primary/CTA → opacity .8 (цвет остаётся)
   Secondary/Ghost/Border → сдвиг заливки на шаг темнее (V0→V1→V2) */
.btn--primary:hover:not(:disabled),
.btn--cta:hover:not(:disabled) { opacity: 0.8; }
.btn--secondary:hover:not(:disabled) { background: var(--color-surface-v2); }
.btn--ghost:hover:not(:disabled) { background: var(--color-surface-v1); }
.btn--border:hover:not(:disabled) { background: var(--color-surface-v1); outline-color: var(--color-surface-v2); }

/* ── Disabled ── */
.btn:disabled, .btn.is-disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}
.btn--secondary:disabled, .btn--secondary.is-disabled { background: var(--color-surface-v0); }

/* ── Icon-only → круг (S 32×32 | M 40×40 | L 52×52) ── */
.btn--icon-only { padding: 0; aspect-ratio: 1; }
.btn--icon-only .btn__content, .btn--icon-only .btn__text, .btn--icon-only .btn__chevron { display: none; }


/* ════════════════════════════════════════════════════════════
   Карточки / Бейджи / Формы / Модалки — по мере поступления спек
   ════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════
   РЕТРОФИТ: существующие кнопки сайта → новая система (17.07.2026)
   Грузится после index.css — переопределяет старые стили.
   При редизайне шаблонов заменить классы на .btn btn--m btn--primary и удалить этот блок.
   ════════════════════════════════════════════════════════════ */

/* ── Primary (тёмные): фон surface-dark, текст on-dark, Inter Regular ── */
.vibecode-cta, .about-skills-cta, .help-modal__btn, .consult-btn,
.cookie-banner__btn, .bp-btn-save, .btn-dark-sm {
  background: var(--color-surface-dark);
  color: var(--color-text-primary-on-dark);
  font-weight: 400;
  line-height: 1;
  border-radius: 99px;
  transition: opacity 0.15s;
}
/* размер L (52px, font 16) */
.about-skills-cta { font-size: 18px !important; height: 52px; padding: 8px 14px; }
.help-modal__btn, .consult-btn { font-size: 18px; height: 52px; }
/* размер M (40px, font 16) */
.vibecode-cta, .bp-btn-save, .btn-dark-sm { font-size: 16px; height: 40px; }
/* размер S (32px, font 14) */
.cookie-banner__btn { font-size: 14px; height: 32px; padding: 8px; display: inline-flex; align-items: center; }

/* hover: primary → opacity .8, цвет остаётся */
.vibecode-cta:hover, .about-skills-cta:hover, .help-modal__btn:hover,
.consult-btn:hover:not(:disabled), .cookie-banner__btn:hover,
.bp-btn-save:hover, .btn-dark-sm:hover {
  opacity: 0.8;
  background: var(--color-surface-dark);
}
/* disabled: 0.4 */
.consult-btn:disabled { opacity: 0.4; }

/* ── CTA (оранжевые): фон accent-primary-orange ── */
.btn-menu--accent {
  background: var(--color-accent-primary-orange);
  color: var(--color-text-primary-on-dark);
  font-weight: 400;
  font-size: 18px;
  height: 40px;
  padding: 8px 14px;
  border-radius: 99px;
}
.btn-menu--accent:hover {
  background: var(--color-accent-primary-orange);
  color: var(--color-text-primary-on-dark);
  opacity: 0.8;
}
.bp-btn-arrow:hover:not(:disabled) { background: var(--primary); opacity: 0.8; }

/* ── Ghost: пилюли навигации хедера уже соответствуют (hover → v1) ── */
.btn-menu:hover { background: var(--color-surface-v1); }

/* ════════════════════════════════════════════════════════════
   БЕЙДЖИ (design-system-badges.css, 17.07.2026)
   Статичные лейблы: НЕТ иконок, НЕТ ховеров/active/disabled.
   HTML: <span class="badge badge--s badge--secondary">Бизнес-план</span>
   Группа: <div class="badge-group">…</div>
   ════════════════════════════════════════════════════════════ */
.badge {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  width: fit-content;                     /* hug content */
  border-radius: 8px;              /* --radius-xs */
  font-family: Inter, -apple-system, Roboto, Helvetica, sans-serif;
  font-weight: 400;                /* Inter Regular */
  color: var(--color-text-primary);
  white-space: nowrap;
  box-sizing: border-box;
}

/* ── Размеры ── */
/* S — внутри компактных компонентов: blockquote, ячейки таблиц, метрики */
.badge--s { height: 24px; font-size: 12px; padding: 4px 8px; line-height: 1.4; }
/* M — самостоятельные лейблы: категории страниц, фильтры, hero */
.badge--m { height: 32px; font-size: 14px; padding: 4px 12px; line-height: 1.6; }

/* ── Типы ── */
.badge--white     { background: var(--color-surface-white); border: 1px solid var(--color-surface-v1); }  /* на цветных подложках (TAM/SAM/SOM в blockquote) */
.badge--secondary { background: var(--color-surface-v0); }     /* ДЕФОЛТ на белом: категории, теги («B2C», «Москва») */
.badge--attention { background: var(--color-accent-yellow); }  /* «Важно», «Новое», «Beta» */
.badge--success   { background: var(--color-accent-green); }   /* «Готово», «Активный» */
.badge--warning   { background: var(--color-accent-orange); }  /* «Ошибка», «Критично» */

.badge-group { display: flex; flex-wrap: wrap; gap: 8px; }

/* ── РЕТРОФИТ: существующие бейджи/теги → новая система ──
   При редизайне шаблонов заменить классы на .badge badge--s/--m badge--тип */

.products-header__badge, .vibecode-badge, .about-ru-ai__pill, .about-see__badge {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  width: fit-content;
  background: var(--color-surface-v0);
  color: var(--color-text-primary);
  border-radius: 8px;
  height: 32px;
  padding: 4px 12px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
}

/* M white — на цветной подложке hero */
.hero__badge {
  display: inline-flex;
  flex: 0 0 auto;
  width: fit-content;
  background: var(--color-surface-white);
  color: var(--color-text-primary);
  border-radius: 8px;
  height: 32px;
  padding: 4px 12px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
}

/* S secondary — теги категорий на карточках и в статьях */
.product-card__tag, .about-see-card__tag, .who-feat__pill {
  background: var(--color-surface-v0);
  color: var(--color-text-primary);
  border-radius: 8px;
  height: 24px;
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}
.product-card__tag { cursor: pointer; }

/* S white — бейджи внутри blockquote бизнес-плана («Рекомендации», TAM/SAM/SOM) */
.bp-review-badge {
  background: var(--color-surface-white);
  color: var(--color-text-primary);
  border-radius: 8px;
  height: 24px;
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  display: inline-flex;
  align-items: center;
}

/* ── РЕТРОФИТ кнопок, волна 2 (17.07: недобитые) ── */
/* Ghost: пилюли меню — Inter Regular */
.btn-menu { font-weight: 400; }

/* Secondary: «Войти» (хедер), соцкнопки success-страницы */
.btn-login, .success-social-btn {
  background: var(--color-surface-v1);
  color: var(--color-text-primary);
  font-weight: 400;
  line-height: 1;
}
.btn-login:hover, .success-social-btn:hover {
  background: var(--color-surface-v2);
  opacity: 1;
}

/* CTA: старая .btn-primary (статьи/лендинги) */
.btn-primary {
  background: var(--color-accent-primary-orange);
  color: var(--color-text-primary-on-dark);
  border-radius: 99px !important;
  font-size: 18px;
  font-weight: 400;
  height: 52px;
  padding: 8px 14px;
  line-height: 1;
}
.btn-primary:hover {
  box-shadow: none;
  transform: none;
  opacity: 0.8;
}

/* CTA small: кнопки в карточках статей (генерированный контент) */
.post-premium-card__body .btn-primary-sm, .post-yandex-card__body .btn-primary-sm {
  background: var(--color-accent-primary-orange);
  font-weight: 400;
  border-radius: 99px !important;
}
.post-premium-card__body .btn-primary-sm:hover, .post-yandex-card__body .btn-primary-sm:hover { opacity: 0.8; }

/* Border: outline-кнопки в статьях */
.btn-outline, .btn-outline-sm {
  background: var(--color-surface-white);
  color: var(--color-text-primary);
  border-radius: 99px !important;
  font-weight: 400;
}
.btn-outline:hover, .btn-outline-sm:hover { background: var(--color-surface-v1); }

/* Icon-only: копирование кода в статьях → круг */
.pre-copy-btn { border-radius: 99px; }

/* Дашборд: radius 99, Regular; primary-вариант → CTA-ховер */
.dash-btn { border-radius: 99px; font-weight: 400; }
.dash-btn-delete { border-radius: 99px; }
.dash-btn-primary:hover { opacity: 0.8; }

/* Primary: кнопки модалок и банков БП */
.bp-modal-footer button {
  background: var(--color-surface-dark);
  font-weight: 400;
  line-height: 1;
}
.bp-modal-footer button:hover { opacity: 0.8; background: var(--color-surface-dark); }
.bp-bank-btn { background: var(--color-surface-dark); font-weight: 400; }
.bp-bank-btn:hover { opacity: 0.8; background: var(--color-surface-dark); }

/* Футер (тёмный): полупрозрачные соцкнопки — вне спеки, нормализуем шрифт */
.footer-social-btn { font-weight: 400; line-height: 1; }

/* ── Семантика: div/p → h2/h3 (17.07) — сброс дефолтных margin у h-тегов ── */
.product-card__title, .about-ru-ai__skills-heading { margin: 0; }

/* ════════════════════════════════════════════════════════════
   ИНФОБЛОК Info-block-v1 + МЕТРИКА block-metric-V1 (17.07.2026)
   Карточка: иконка + заголовок + описание + разделитель + ряд метрик.
   HTML:
   <div class="info-block-v1">
     <div class="info-block-v1__header">
       <div class="info-block-v1__icon"><svg><!-- 24×24 --></svg></div>
       <h4 class="info-block-v1__title">Бизнес выходит в плюс</h4>
     </div>
     <p class="info-block-v1__description">Расчёт средней чистой прибыли…</p>
     <hr class="info-block-v1__divider" />
     <div class="info-block-v1__metrics">
       <div class="block-metric-v1 block-metric-v1--l">
         <span class="block-metric-v1__value">300 000 ₽</span>
         <span class="block-metric-v1__label">Чистая прибыль</span>
       </div>
     </div>
   </div>
   Правила: минимум одна секция (header ИЛИ metrics); метрик 1–4;
   скрываешь divider → скрой также description ИЛИ metrics.
   ════════════════════════════════════════════════════════════ */
.info-block-v1 {
  display: flex;
  flex-direction: column;
  padding: 24px;
  gap: 24px;
  margin: 16px 0;
  background: var(--color-surface-v0);
  outline: 1px solid var(--color-surface-v1);
  outline-offset: -1px;
  border-radius: 16px;              /* --radius-md */
  box-sizing: border-box;
}
.info-block-v1__header {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
}
.info-block-v1__icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface-white);
  outline: 1px solid var(--color-surface-v1);
  outline-offset: -1px;
  border-radius: 12px;
}
.info-block-v1__icon svg { width: 24px; height: 24px; color: var(--color-neutral-dark); }
.info-block-v1__title {
  font-size: var(--font-h4);        /* 24px desktop / 20px mobile */
  font-weight: var(--fw-heading);
  line-height: var(--lh-heading);
  color: var(--color-text-primary);
  margin: 0;
}
.info-block-v1__description {
  font-size: 18px;                  /* Body/16px/Regular */
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-text-secondary);
  margin: 0;
  width: 100%;
}
.info-block-v1__divider {
  width: 100%;
  height: 1px;
  border: none;
  background: var(--color-surface-v1);
  margin: 0;
}
.info-block-v1__metrics {
  /* GRID (18.07, просьба Скуфа): до 4 метрик в ряд на десктопе,
     адаптив через auto-fit: узкий экран → 3/2 колонки, ширины всегда равные */
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(max(110px, calc(25% - 18px)), 1fr)); /* кап 4 колонки */
  gap: 16px 24px;                /* строки / колонки */
  width: 100%;
}
.info-block-v1__metrics > .block-metric-v1 { min-width: 0; } /* в гриде ширину диктует трек */

/* Модификаторы видимости секций */
.info-block-v1--no-header .info-block-v1__header { display: none; }
.info-block-v1--no-description .info-block-v1__description { display: none; }
.info-block-v1--no-divider .info-block-v1__divider { display: none; }
.info-block-v1--no-metrics .info-block-v1__metrics { display: none; }
.info-block-v1--no-icon .info-block-v1__icon { display: none; }
.info-block-v1--compact .info-block-v1__description,
.info-block-v1--compact .info-block-v1__divider { display: none; }
.info-block-v1--text-only .info-block-v1__divider,
.info-block-v1--text-only .info-block-v1__metrics { display: none; }

/* ── block-metric-v1: значение + подпись (можно вне инфоблока) ── */
.block-metric-v1 {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1 1 auto;
  min-width: calc(50% - 12px);    /* 2 колонки на мобилке с учётом gap */
  /* без фона/рамок/паддингов — наследует от родителя */
}
.block-metric-v1__value { font-weight: 600; color: var(--color-text-primary); }
.block-metric-v1__label { font-weight: 400; color: var(--color-text-secondary); }
/* L — внутри Info-block-v1 */
.block-metric-v1--l .block-metric-v1__value { font-size: 24px; line-height: 1.6; }
.block-metric-v1--l .block-metric-v1__label { font-size: 14px; line-height: 1.6; }
/* M — компакт/standalone */
.block-metric-v1--m .block-metric-v1__value { font-size: 18px; line-height: 1.6; }
.block-metric-v1--m .block-metric-v1__label { font-size: 12px; line-height: 1.4; }

/* ════════════════════════════════════════════════════════════
   ИНФОБЛОК Info-block-v2 + строка tr-Info-block-v2 (17.07.2026)
   Таблица «ключ-значение». ПРОЗРАЧНЫЙ фон, только рамка — работает
   на любой подложке. HTML:
   <div class="info-block-v2">
     <div class="info-block-v2__header">
       <div class="info-block-v2__icon"><svg><!-- 24×24 --></svg></div>
       <h4 class="info-block-v2__title">Входные данные</h4>
     </div>
     <p class="info-block-v2__description">Описание…</p>
     <hr class="info-block-v2__divider" />
     <!-- <h5 class="info-block-v2__subtitle">Группа строк</h5> — скрыт по умолчанию -->
     <div class="info-block-v2__table">
       <div class="tr-info-block-v2">
         <div class="tr-info-block-v2__label">
           <span class="tr-info-block-v2__label-text">Регион:</span>
           <!-- <span class="tr-info-block-v2__label-subtext">подсказка</span> -->
         </div>
         <span class="tr-info-block-v2__value">Вся Россия</span>
       </div>
     </div>
   </div>
   Правила: лейблы secondary, значения primary, ВСЁ Body/16 Regular
   (без жирных значений); последняя строка без нижней рамки.
   ════════════════════════════════════════════════════════════ */
.info-block-v2 {
  display: flex;
  flex-direction: column;
  padding: 24px;
  gap: 24px;
  background: transparent;          /* НЕ менять: только рамка */
  outline: 1px solid var(--color-surface-v1);
  outline-offset: -1px;
  border-radius: 16px;
  box-sizing: border-box;
}
.info-block-v2__header { display: flex; flex-direction: row; align-items: center; gap: 12px; width: 100%; }
.info-block-v2__icon {
  width: 40px; height: 40px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--color-surface-white);
  outline: 1px solid var(--color-surface-v1); outline-offset: -1px;
  border-radius: 12px;
}
.info-block-v2__icon svg { width: 24px; height: 24px; color: var(--color-neutral-dark); }
.info-block-v2__title {
  font-size: var(--font-h4);
  font-weight: var(--fw-heading);
  line-height: var(--lh-heading);
  color: var(--color-text-primary);
  margin: 0;
}
.info-block-v2__description { font-size: 18px; font-weight: 400; line-height: 1.6; color: var(--color-text-secondary); margin: 0; width: 100%; }
.info-block-v2__divider { width: 100%; height: 1px; border: none; background: var(--color-surface-v1); margin: 0; }
/* SubTitle — скрыт по умолчанию, показывать для группировки строк */
.info-block-v2__subtitle { font-size: 18px; font-weight: 600; line-height: 1.6; color: var(--color-text-primary); margin: 0; }
.info-block-v2__table { display: flex; flex-direction: column; gap: 0; width: 100%; }

/* Модификаторы */
.info-block-v2--no-header .info-block-v2__header { display: none; }
.info-block-v2--no-description .info-block-v2__description { display: none; }
/* ── Naked: без визуальной «коробки» (18.07) — для вложений внутри других карточек */
.info-block-v2--naked {
    padding: 12px 0;
    gap: 12px;
    outline: none;
    border-radius: 0;
}
.info-block-v2--naked .info-block-v2__divider { display: none; }
.info-block-v2--naked .info-block-v2__title { font-size: var(--font-h4); font-weight: 600; line-height: var(--lh-h4); }
.info-block-v2--no-divider .info-block-v2__divider { display: none; }
.info-block-v2--no-icon .info-block-v2__icon { display: none; }

/* ── tr-info-block-v2: строка ключ-значение ── */
.tr-info-block-v2 {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  padding: 12px 0;
  gap: 12px;
  border-bottom: 1px solid var(--color-surface-v1);
}
.tr-info-block-v2:last-child { border-bottom: none; }   /* последняя строка без рамки */
.tr-info-block-v2__label { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; }
.tr-info-block-v2__label-text { font-size: 18px; font-weight: 400; line-height: 1.6; color: var(--color-text-secondary); }
.tr-info-block-v2__label-subtext { font-size: 14px; font-weight: 400; line-height: 1.6; color: var(--color-text-secondary); }
.tr-info-block-v2__value { flex: 1 1 0; min-width: 0; font-size: 18px; font-weight: 400; line-height: 1.6; color: var(--color-text-primary); }
/* Доп. колонки td3–td9 (фикс. ширина, по умолчанию не используются) */
.tr-info-block-v2__td-3 { flex: 0 0 84px; }
.tr-info-block-v2__td-4 { flex: 0 0 94px; }
.tr-info-block-v2__td-5 { flex: 0 0 107px; }
.tr-info-block-v2__td-6 { flex: 0 0 125px; }
.tr-info-block-v2__td-7 { flex: 0 0 150px; }
.tr-info-block-v2__td-8 { flex: 0 0 188px; }
.tr-info-block-v2__td-9 { flex: 0 0 251px; }
.tr-info-block-v2__td-3, .tr-info-block-v2__td-4, .tr-info-block-v2__td-5,
.tr-info-block-v2__td-6, .tr-info-block-v2__td-7, .tr-info-block-v2__td-8,
.tr-info-block-v2__td-9 { font-size: 18px; font-weight: 400; line-height: 1.6; color: var(--color-text-primary); }

/* ════════════════════════════════════════════════════════════
   ТАБЛИЦА table-v1 + thead-classic + tr-classic (17.07.2026)
   Полная таблица: цветная шапка (название+описание) + заголовки
   колонок + строки с бейджами.
   ЕДИНОЕ МЕСТО для названий и описаний таблиц — больше никаких
   разнобойных подписей.

   ДВА ТИПА ИКОНОК у заголовка (ВЗАИМОИСКЛЮЧАЮЩИЕ):
   1) .table-v1__logo — ЦЕЛЬНАЯ svg/img 40×40 (бренд: Wordstat, Яндекс…)
   2) .table-v1__icon — css-контейнер 40×40 (white, r12, рамка v1)
      с svg 24×24 внутри; включается модификатором --use-icon

   HTML:
   <div class="table-v1">
     <div class="table-v1__header">
       <div class="table-v1__title-row">
         <img class="table-v1__logo" src="/assets/icons/wordstat.svg" alt="">
         <div class="table-v1__icon"><svg><!-- 24×24 --></svg></div>
         <h4 class="table-v1__title">Ключевые запросы (Wordstat)</h4>
       </div>
       <p class="table-v1__description">ВЧ, НЧ и похожие запросы…</p>
     </div>
     <div class="table-v1__body">
       <div class="thead-classic">
         <span class="thead-classic__col">Запрос</span>
         <span class="thead-classic__col">Тип</span>
         <span class="thead-classic__col">Количество</span>
       </div>
       <div class="tr-classic">
         <div class="tr-classic__row">
           <div class="tr-classic__td">
             <img class="tr-classic__td-icon" src="ya.svg" alt="">
             <span class="tr-classic__td-text">Купить духи</span>
           </div>
           <div class="tr-classic__td">
             <span class="tr-classic__td-text">ВЧ</span>
             <span class="badge badge--s badge--attention">Бизнес-план</span>
           </div>
           <div class="tr-classic__td"><span class="tr-classic__td-text">1 245</span></div>
         </div>
       </div>
     </div>
   </div>
   ════════════════════════════════════════════════════════════ */
.table-v1 {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: transparent;              /* фона НЕТ — только рамка */
  outline: 1px solid var(--color-surface-v1);
  outline-offset: -1px;
  border-radius: 16px;
  overflow: hidden;                     /* шапка обрезается радиусом */
  box-sizing: border-box;
}
/* Шапка: тёплая подложка v0, визуально отделена */
.table-v1__header {
  display: flex;
  flex-direction: column;
  padding: 24px;
  gap: 24px;
  background: var(--color-surface-v0);
}
.table-v1__title-row { display: flex; flex-direction: row; align-items: center; gap: 12px; }
/* Тип 1: цельный брендовый логотип */
.table-v1__logo { width: 40px; height: 40px; flex-shrink: 0; display: block; }
/* Тип 2: css-контейнер + svg 24×24 — скрыт по умолчанию, включается --use-icon */
.table-v1__icon {
  width: 40px; height: 40px; flex-shrink: 0;
  display: none;
  align-items: center; justify-content: center;
  background: var(--color-surface-white);
  outline: 1px solid var(--color-surface-v1); outline-offset: -1px;
  border-radius: 12px;
  overflow: hidden;  /* FIX 20.07: запрет вылета SVG за контейнер */
}
.table-v1__icon svg { width: 24px; height: 24px; color: var(--color-neutral-dark); }
.table-v1__title {
  font-size: var(--font-h4);
  font-weight: var(--fw-heading);
  line-height: var(--lh-heading);
  color: var(--color-text-primary);
  margin: 0;
}
.table-v1__description { font-size: 18px; font-weight: 400; line-height: 1.6; color: var(--color-text-secondary); margin: 0; width: 100%; }
.table-v1__body {
  display: table;
  table-layout: fixed;
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

/* Модификаторы table-v1 */
.table-v1--no-header .table-v1__header { display: none; }
.table-v1--no-description .table-v1__description { display: none; }
.table-v1--use-icon .table-v1__logo { display: none; }
.table-v1--use-icon .table-v1__icon { display: inline-flex; }
.table-v1--no-thead .thead-classic { display: none; }

/* ── thead-classic: строка заголовков колонок ── */
.thead-classic {
  display: table-row;
}
.table-v1--no-header .thead-classic { border-top: none; }
.thead-classic__col {
  display: table-cell;
  vertical-align: middle;
  padding: 16px 12px;
  border-top: 1px solid var(--color-surface-v1);
  border-bottom: 1px solid var(--color-surface-v1);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--color-text-primary);
}

/* ── tr-classic: строка данных ── */
.tr-classic {
  display: table-row;
}
.tr-classic:last-child .tr-classic__td { border-bottom: none; }
.tr-classic__row { display: contents; }  /* прозрачный — td участвуют в grid напрямую */
.tr-classic__td {
  display: table-cell;
  padding: 16px;
  border-bottom: 1px solid var(--color-surface-v1);
}
.tr-classic__td-icon { display: inline-block; vertical-align: middle; width: 24px; height: 24px; margin-right: 8px; }
.tr-classic__td-text { font-size: 18px; font-weight: 400; line-height: 1.6; color: var(--color-text-primary); overflow-wrap: break-word; word-break: break-word; }
.tr-classic__td-text * { font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; font-family: inherit !important; }
/* В ячейках НИКОГДА не жирнить текст; бейдж ставится ПОСЛЕ текста */

/* Модификаторы tr-classic */
.tr-classic--no-icon .tr-classic__td-icon { display: none; }
.tr-classic--no-badge .badge { display: none; }

/* ── Адаптив: широкая таблица на мобилке → боковой скролл ── */
@media (max-width: 767px) {
  .table-v1 {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-v1__header {
    display: flex;
    position: sticky;          /* прилипает к левому краю при скролле */
    left: 0;
    min-width: fit-content;    /* не обрезается */
    z-index: 1;
  }
  .table-v1__body {
    display: table;
    table-layout: auto;
    min-width: 100%;
  }
  .thead-classic__col, .tr-classic__td {
    white-space: nowrap;
    padding: 10px 8px;
    min-width: 120px;
    flex-shrink: 0;
  }
  /* Первая колонка (код/название) — короткая, nowrap. Остальные — перенос (18.07) */
  .thead-classic__col:first-child, .tr-classic__td:first-child {
    white-space: nowrap;
    min-width: 80px;
  }
  .thead-classic__col:not(:first-child), .tr-classic__td:not(:first-child) {
    white-space: normal;
    word-break: break-word;
    min-width: 80px;
  }
  .tr-classic__td-text { font-size: 14px; }
  .table-v1__description { font-size: 14px; line-height: var(--lh-14); }
}

/* ═══════════════════════════════════════════════════════
   blockquote-v1 — выделенный блок: рекомендации, итоги, советы
   Спека: design-system/blockquote-V1 Documentation.png (17.07.2026)
   Бейдж — swap-компонент (.badge--white/--secondary/--attention/--success/--warning, размер S)
   ═══════════════════════════════════════════════════════ */
.blockquote-v1 {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  border-radius: 16px;
  background: var(--color-surface-v0);           /* #F9F7F3 */
  border: 1px solid var(--color-surface-v1);     /* #EEEBE5 */
  margin: 0;                                     /* сброс дефолта <blockquote> */
}
.blockquote-v1__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
/* Бейдж: дефолт badge--white badge--s; текст редактируемый («Рекомендации», «Итог», «Важно», «Совет») */
.blockquote-v1__badge { flex-shrink: 0; }
.blockquote-v1__text {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.6;                              /* 160% — читабельность мультистрок */
  color: var(--color-text-primary);              /* Primary, НЕ Secondary — это акцентный контент */
  margin: 0;
}

/* Модификаторы */
.blockquote-v1--no-badge .blockquote-v1__badge { display: none; }
.blockquote-v1--badge-only .blockquote-v1__text { display: none; }  /* редкий кейс */

/* Совместимость: старые планы с <p> без класса внутри контента blockquote */
.blockquote-v1__content p {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-text-primary);
  margin: 0;
}

/* ═══════════════════════════════════════════════════════
   blockquote-v2 — stacked cards: TAM/SAM/SOM, сравнения, метрики
   Спека: design-system/blockquote-V2 Documentation.png (17.07.2026)
   Отличие от V1: N белых карточек внутри wrapper, разделённых фоном V0 (gap 2px)
   ═══════════════════════════════════════════════════════ */
.blockquote-v2 {
  display: flex;
  flex-direction: column;
  gap: 2px;                      /* фон V0 просвечивает = разделители */
  padding: 2px;
  border-radius: 16px;
  background: var(--color-surface-v0);   /* #F9F7F3 */
  border: 1px solid var(--color-surface-v1); /* #EEEBE5 */
  margin: 0;                     /* сброс дефолта <blockquote> */
}
.blockquote-v2__card {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 24px;
  border-radius: 12px;           /* 12, НЕ 16 — чтобы вписаться в wrapper */
  background: var(--color-surface-white); /* #FFFFFF */
}
.blockquote-v2__card-body {
  display: flex;
  flex-direction: column;
  gap: 0;                        /* value + description tight together */
}
/* Бейдж: Background/Light (#F9F7F3), НЕ Surface/White как в V1! */
.blockquote-v2__badge {
  flex-shrink: 0;
  background: var(--color-surface-v0) !important;  /* перебить дефолт badge--white */
  border-color: var(--color-surface-v1) !important;
}
.blockquote-v2__value {
  font-size: 24px;
  font-weight: 600;              /* Semi Bold */
  line-height: 1.6;              /* 160% */
  color: var(--color-text-primary);
}
.blockquote-v2__desc {
  font-size: 18px;
  font-weight: 400;              /* Regular */
  line-height: 1.6;              /* 160% */
  color: var(--color-text-primary); /* Primary, не Secondary */
}

/* ═══════════════════════════════════════════════════════
   bp-step-card — пошаговый план (раздел 10)
   Вариант blockquote-v2: бейдж + h4 + описание
   Спека: 27.07.2026
   ═══════════════════════════════════════════════════════ */
.bp-step-card {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 2px;
  border-radius: 16px;
  background: var(--color-surface-v0);
  border: 1px solid var(--color-surface-v1);
  margin: 0 0 16px;
}
.bp-step-item {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  border-radius: 12px;
  background: var(--color-surface-white);
}
.bp-step-item__badge {
  flex-shrink: 0;
  background: var(--color-surface-v0) !important;
  border-color: var(--color-surface-v1) !important;
}
.bp-step-item__title {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-text-primary);
  margin: 0;
}
.bp-step-item__desc {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-text-primary);
  margin: 0;
}

/* ════════════════════════════════════════════════════════════
   block-metric-V2 — значение + подпись (новый размерный ряд)
   Спека: Info-block-v3 + block-metric-V2 Documentation.png (17.07.2026)
   Отличие от V1: фиксированные размеры, НЕТ --l/--m модификаторов
   ════════════════════════════════════════════════════════════ */
.block-metric-v2 {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: fit-content;
  /* полностью прозрачный — без фона/рамок/паддингов */
}
.block-metric-v2__value {
  font-size: 18px;
  font-weight: 600;              /* Semi Bold */
  line-height: 1.6;              /* 160% */
  color: var(--color-text-primary);
}
.block-metric-v2__label {
  font-size: 14px;
  font-weight: 400;              /* Regular */
  line-height: 1.6;              /* 160% */
  color: var(--color-text-secondary);
}

/* ════════════════════════════════════════════════════════════
   Info-block-v3 — комбинированный инфоблок: метрики + детали
   Спека: Info-block-v3 + block-metric-V2 Documentation.png (17.07.2026)
   V3 = V1-метрики (сверху) + V2-строки (снизу) + expand + ПРОЗРАЧНЫЙ фон
   ════════════════════════════════════════════════════════════ */
.info-block-v3 {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0;
  background: transparent;
  /* НЕТ фона и рамки — в отличие от V0/V1 рамки V1 и V2 */
  box-sizing: border-box;
}
.info-block-v3__metrics {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 20px;
  padding: 0;
}
/* Секция детализации (V2-style rows, скрыта по умолчанию) */
.info-block-v3__details {
  display: none;                  /* collapsed by default */
  flex-direction: column;
  gap: 0;
  padding: 0;
}
.info-block-v3__details .tr-info-block-v2 {
  border-bottom: 1px solid var(--color-surface-v1);
}
.info-block-v3__details .tr-info-block-v2:last-child {
  border-bottom: none;
}
/* Кнопка разворачивания */
.info-block-v3__expand {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 0;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-text-secondary);
}
.info-block-v3__expand:hover { color: var(--color-text-primary); }
.info-block-v3__expand-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  transition: transform 0.2s;
}
/* Развёрнутое состояние */
.info-block-v3--expanded .info-block-v3__details { display: flex; }
.info-block-v3--expanded .info-block-v3__expand-icon { transform: rotate(180deg); }

/* ════════════════════════════════════════════════════════
   Info-block-v4 — карточка контента: header + stacked cards
   Спека: Info-block-v4 Documentation.png (17.07.2026)
   Two-part: цветной header (V0) + белые карточки (gap 2px = разделители)
   Используется для 4.3 Креативы и рекламные объявления
   ════════════════════════════════════════════════════════ */
.info-block-v4 {
  display: flex;
  flex-direction: column;
  padding: 0;
  gap: 0;
  border-radius: 16px;
  border: 1px solid var(--color-surface-v1);   /* #EEEBE5 */
  background: transparent;
  box-sizing: border-box;
  overflow: hidden;
}
/* Header: V0 фон, свой pad */
.info-block-v4__header {
  display: flex;
  flex-direction: column;
  padding: 24px;
  gap: 24px;
  background: var(--color-surface-v0);         /* #F9F7F3 */
}
.info-block-v4__title-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
}
.info-block-v4__logo {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: var(--color-surface-v0);         /* Background/Light, НЕ белый */
}
.info-block-v4__logo svg { width: 40px; height: 40px; }
.info-block-v4__title {
  font-size: 18px;
  font-weight: 600;                            /* Semi Bold */
  line-height: 1.1;                            /* 110% — tight heading */
  color: var(--color-text-primary);
  margin: 0;
}
.info-block-v4__description {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.6;                            /* 160% */
  color: var(--color-text-secondary);          /* #8B8A84 */
  margin: 0;
}
/* Cards container: V0 фон, gap 2px = разделители */
.info-block-v4__cards {
  display: flex;
  flex-direction: column;
  padding: 0 2px 2px 2px;                      /* 0/2/2/2, нет верхнего паддинга! */
  gap: 2px;
  background: var(--color-surface-v0);         /* просвечивает между карточками */
}
/* Inner card — белая, r12 */
.info-block-v4__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;                     /* бейджи hug content, не stretch */
  padding: 24px;
  gap: 24px;
  border-radius: 12px;                         /* 12, НЕ 16 */
  background: var(--color-surface-white);      /* #FFFFFF */
}
.info-block-v4__card > *:not(.badge) { align-self: stretch; }  /* текст на всю ширину, бейдж — по контенту */
/* Content inside cards 1-3 */
.info-block-v4__card-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.info-block-v4__card-strong {
  font-size: 18px;
  font-weight: 600;                            /* Semi Bold */
  line-height: 1.6;
  color: var(--color-text-primary);
}
.info-block-v4__card-body {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-text-primary);            /* Primary, НЕ Secondary! */
}
/* Service card (card 4) — другая структура */
.info-block-v4__service {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.info-block-v4__service .btn { align-self: flex-start; } /* кнопка → hug content, не тянется на всю ширину (18.07) */
.info-block-v4__service-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.info-block-v4__service-name {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--color-neutral-dark);            /* Neutral/Dark → #3A3735 */
}
.info-block-v4__service-desc {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-text-secondary);          /* #8B8A84 */
}
/* Кнопка использует .btn--m.btn--primary — стили из компонента .btn */
.info-block-v4__divider {
  border: none;
  border-top: 1px solid var(--color-surface-v1);
  margin: 0;
}
/* Модификаторы */
.info-block-v4--no-header .info-block-v4__header { display: none; }
.info-block-v4--no-cards .info-block-v4__cards { display: none; }

/* ════════════════════════════════════════════════════════
   Bank-CPA — карточка рекомендации банка (CPA-партнёр)
   Спека: Bank-CPA + Banks-CPA-list Documentation.png (17.07.2026)
   Два размера: Size=M (горизонтальный) и Size=L (вертикальный)
   ════════════════════════════════════════════════════════ */
.bank-cpa {
  display: flex;
  border-radius: 16px;
  border: 1px solid var(--color-surface-v1);
  background: var(--color-surface-v0);
  box-sizing: border-box;
}
/* Size=M: горизонтальный, фикс. высота 96px */
.bank-cpa--m {
  flex-direction: row;
  align-items: center;
  padding: 24px;
  gap: 24px;
  min-height: 96px;
}
/* Size=L: вертикальный, авто-высота */
.bank-cpa--l {
  flex-direction: column;
  padding: 16px;
  gap: 24px;
  width: 100%;
}
/* Header: logo + name */
.bank-cpa__header {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 24px;
}
.bank-cpa--l .bank-cpa__header {
  flex-direction: row;            /* logo после name, но внутри header — row */
}
.bank-cpa__logo {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 8px;             /* 8, НЕ 12! */
  overflow: hidden;
}
.bank-cpa__logo img, .bank-cpa__logo svg {
  width: 40px;
  height: 40px;
  display: block;
}
.bank-cpa__name {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1 1 auto;
  min-width: 0;
}
.bank-cpa__title {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--color-text-primary);
}
.bank-cpa__subtitle {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-text-secondary);
}
/* Size=L: logo справа от name */
.bank-cpa--l .bank-cpa__logo { order: 2; }   /* logo AFTER name */
.bank-cpa--l .bank-cpa__name { order: 1; }

/* Кнопка использует .btn--m.btn--secondary / .btn--s.btn--secondary */

/* ── Mobile: M-вариант → L-вариант (лого вправо, кнопка вниз) ── */
@media (max-width: 767px) {
  .bank-cpa--m {
    flex-direction: column;
    padding: 16px;
    gap: 24px;
    height: auto;
  }
  .bank-cpa--m .bank-cpa__header {
    flex-direction: row;
    width: 100%;
  }
  .bank-cpa--m .bank-cpa__logo {
    order: 2;              /* лого вправо */
  }
  .bank-cpa--m .bank-cpa__name {
    order: 1;              /* title слева */
  }
  .bank-cpa--m .bank-cpa__action {
    margin-left: 0;        /* убрать auto-margin M-варианта */
    width: 100%;
  }
  .bank-cpa--m .bank-cpa__action .btn {
    width: 100%;
    justify-content: center;
  }
}

/* ── Бухгалтерия: M → L на мобилке ── */
@media (max-width: 767px) {
  .bp-bk-card {
    flex-direction: column;
    padding: 16px;
    gap: 24px;
    height: auto;
  }
  .bp-bk-card__header {
    flex-direction: row;
    width: 100%;
  }
  .bp-bk-card__logo { order: 2; }
  .bp-bk-card__name { order: 1; }
  .bp-bk-card__action {
    margin-left: 0;
    width: 100%;
  }
  .bp-bk-card__action .btn {
    width: 100%;
    justify-content: center;
  }
}
.bank-cpa__action {
  display: flex;
  flex-shrink: 0;
}
.bank-cpa--m .bank-cpa__action { margin-left: auto; }
.bank-cpa--l .bank-cpa__action { align-self: flex-start; }

/* Бухгалтерия — те же стили что bank-cpa--m, свой класс */
.bp-bk-card {
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 24px;
  gap: 24px;
  min-height: 96px;
  border-radius: 16px;
  border: 1px solid var(--color-surface-v1);
  background: var(--color-surface-v0);
  box-sizing: border-box;
}
.bp-bk-card__header { display: flex; flex-direction: row; align-items: center; gap: 24px; }
.bp-bk-card__logo { width: 40px; height: 40px; flex-shrink: 0; border-radius: 8px; overflow: hidden; }
.bp-bk-card__logo img, .bp-bk-card__logo svg { width: 40px; height: 40px; display: block; }
.bp-bk-card__name { display: flex; flex-direction: column; gap: 0; flex: 1 1 auto; min-width: 0; }
.bp-bk-card__title { font-size: 18px; font-weight: 600; line-height: 1.6; color: var(--color-text-primary); }
.bp-bk-card__subtitle { font-size: 14px; font-weight: 400; line-height: 1.6; color: var(--color-text-secondary); }
.bp-bk-card__action { display: flex; flex-shrink: 0; margin-left: auto; }

/* ════════════════════════════════════════════════════════
   Banks-CPA-list — контейнер-список банковских карточек
   Прозрачный, вертикальный стек, gap 8px
   ════════════════════════════════════════════════════════ */
.banks-cpa-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0;
  background: transparent;
  width: 100%;
}

/* ════════════════════════════════════════════════════════
   Input — поле ввода (10 вариантов: Size L/M × State ×5)
   Спека: Select System + Input + Segmented Control (17.07.2026)
   ════════════════════════════════════════════════════════ */
/* Input по Figma-спеке: r99, white bg, V1 outline, лёгкая тень в default/hover.
   States: Default (тень + V1) / Hover (тень + V2) / Focused (orange, БЕЗ тени) /
   Filled (V1, без тени) / Disabled (opacity .5).
   Текст: placeholder secondary op.7; filled — text-primary. LH 1.6 */
.input, input.input, select.input, textarea.input {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--color-surface-v1);
  border-radius: 99px;
  background: var(--color-surface-white);
  box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.05);
  font-family: Inter, sans-serif;
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-text-primary);
  box-sizing: border-box;
  width: 100%;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.input::placeholder { color: var(--color-text-secondary); opacity: 0.7; }
/* Number-инпуты: убрать спиннеры + выровнять текст по вертикали как у text */
.input::-webkit-outer-spin-button,
.input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input.input[type="number"] { -moz-appearance: textfield; line-height: normal; }
/* Sizes: L 52px/16px, M 40px/14px. Pad-right из спеки (10/4) — для варианта
   со встроенным addon (segmented); без addon — симметричный */
.input--l { height: 52px; font-size: 16px; padding-left: 16px; padding-right: 16px; }
.input--m { height: 40px; font-size: 14px; padding-left: 12px; padding-right: 12px; }
.input-group .input--l { padding-right: 118px; }   /* место под сегмент S (2 таба ~100px + 10px) */
.input-group .input--m { padding-right: 112px; }
/* States */
.input:hover:not(:disabled):not(:focus) { border-color: var(--color-surface-v2); }
.input:focus { border-color: var(--color-accent-primary-orange); box-shadow: none; }
.input:disabled { opacity: 0.5; cursor: not-allowed; }
.input--error { border-color: var(--color-accent-primary-red); }
/* Textarea-вариант: multiline, r16 вместо пилюли */
textarea.input { border-radius: 16px; height: auto; padding-top: 12px; padding-bottom: 12px; resize: vertical; }
/* Обёртка со встроенным segmented control (справа внутри инпута) */
.input-group { position: relative; display: flex; align-items: center; }
.input-group__addon { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); }
.input-group--m .input-group__addon { right: 4px; }

/* Нативный <select> со стилем .input */
select.input {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none'%3E%3Cpath d='M3.99 6.04L8.01 10.02 11.99 6' stroke='%238B8A84' stroke-width='1.333' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 40px;
  cursor: pointer;
}
select.input::-ms-expand { display: none; }

/* ════════════════════════════════════════════════════════
   Segmented Control — переключатель вкладок (2 варианта)
   Спека: Select System + Input + Segmented Control (17.07.2026)
   ════════════════════════════════════════════════════════ */
.segmented-control {
  display: inline-flex;
  flex-direction: row;
  padding: 2px;
  gap: 0;
  border-radius: 99px;
  background: var(--color-surface-v1);
  box-sizing: border-box;
}
.segmented-control__tab {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  border-radius: 99px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-family: Inter, sans-serif;
  font-weight: 600;
  line-height: 1;
  color: var(--color-text-secondary);
  transition: all 0.15s;
}
/* Size=M */
.segmented-control--m { padding: 2px; }
.segmented-control--m .segmented-control__tab { padding: 11px 12px; font-size: 14px; }
/* Size=S */
.segmented-control--s { padding: 2px; }
.segmented-control--s .segmented-control__tab { padding: 8px 12px; font-size: 12px; }
/* States */
.segmented-control__tab:hover:not(.is-active) { color: var(--color-text-primary); }
.segmented-control__tab.is-active {
  background: var(--color-surface-white);
  color: var(--color-text-primary);
  box-shadow: 0px 1px 2px rgba(0,0,0,0.05);
}

/* ════════════════════════════════════════════════════════
   Select System — select_trigger + select_option + select_modal
   Спека: Select System + Input + Segmented Control (17.07.2026)
   ════════════════════════════════════════════════════════ */
/* Trigger — кнопка-селект. Система как у .btn: Primary/Secondary/Ghost/Border × S/M/L */
.select-trigger {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  border-radius: 99px;
  font-family: Inter, sans-serif;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  box-sizing: border-box;
  outline: none;
  text-decoration: none;
  transition: all 0.15s;
  width: auto;
}
/* Анатомия: [left-icon-slot] [content] [chevron] */
.select-trigger__content {
  flex: 1 1 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;
}
.select-trigger__text { flex: 1 1 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.select-trigger__chevron { width: 16px; height: 16px; flex-shrink: 0; }
.select-trigger__chevron path { opacity: 0.5; }
.select-trigger:hover .select-trigger__chevron path { opacity: 1; }
/* Optional icon inside content */
.select-trigger__icon { width: 20px; height: 20px; flex-shrink: 0; }
.select-trigger__icon svg { width: 100%; height: 100%; display: block; }

/* Sizes: padding on the TRIGGER, left pad inside __content */
.select-trigger--s { height: 32px; font-size: 14px; padding: 8px 12px; }
.select-trigger--s .select-trigger__content { padding: 0; }
.select-trigger--m { height: 40px; font-size: 16px; padding: 8px 16px; }
.select-trigger--m .select-trigger__content { padding: 0; }
.select-trigger--l { height: 52px; font-size: 16px; padding: 8px 20px; }
.select-trigger--l .select-trigger__content { padding: 0; }

/* Types (как у .btn) */
/* Primary: dark bg, white text */
.select-trigger--primary { background: var(--color-surface-dark); color: white; border: none; }
.select-trigger--primary:hover { opacity: 0.85; }
/* Secondary: V1 bg */
.select-trigger--secondary { background: var(--color-surface-v1); color: var(--color-text-primary); border: none; }
.select-trigger--secondary:hover:not(:disabled) { background: var(--color-surface-v2); }
/* Ghost: transparent, no bg */
.select-trigger--ghost { background: transparent; color: var(--color-text-primary); border: none; padding-right: 0; }
.select-trigger--ghost:hover:not(:disabled) { color: var(--color-accent-primary-orange); }
.select-trigger--ghost:hover .select-trigger__chevron path { fill: var(--color-accent-primary-orange); }
/* Border: white bg, outline */
.select-trigger--border { background: var(--color-surface-white); color: var(--color-text-primary); outline: 1px solid var(--color-surface-v1); outline-offset: -1px; }
.select-trigger--border:hover:not(:disabled) { outline-color: var(--color-surface-v2); }

/* Disabled */
.select-trigger:disabled, .select-trigger[aria-disabled="true"] { opacity: 0.4; cursor: not-allowed; pointer-events: none; }
.select-trigger--secondary:disabled, .select-trigger--secondary[aria-disabled="true"] { background: var(--color-surface-v1); }
.select-trigger--ghost:disabled, .select-trigger--ghost[aria-disabled="true"] { color: var(--color-text-primary); }

/* ── Контекст: форма БП (business-plan.php) ── */
/* Триггеры в строке формы: компактные, как старые bp-dropdown */
.bp-form-row .select-trigger { max-width: 160px; overflow: hidden; }
/* Триггеры в сайдбаре: на всю ширину секции */
.bp-sidebar-section .select-trigger { display: flex; width: 100%; }
@media (max-width: 767px) {
  .bp-form-row .select-trigger { max-width: none; flex: 1 1 0; min-width: 0; }
}


/* Option — строка выбора (в меню или модалке) */
.select-option {
  display: flex;
  flex-direction: row;
  align-items: center;
  cursor: pointer;
  transition: background 0.1s;
  background: transparent;
}
/* Size=M: r12, pad 8/12, gap 12, text 16/400/LH 1.6 */
.select-option--m { padding: 8px 12px; border-radius: 12px; gap: 12px; font-size: 18px; font-weight: 400; line-height: 1.6; color: var(--color-text-primary); }
.select-option--m.is-selected { font-weight: 600; }
/* Size=S: r8, pad 4/8, gap 10, text 14/400/LH 1.6 */
.select-option--s { padding: 4px 8px; border-radius: 8px; gap: 10px; font-size: 14px; font-weight: 400; line-height: 1.6; color: var(--color-text-primary); }
/* Label + subtext */
.select-option__label { display: flex; flex-direction: column; gap: 1px; flex: 1 1 auto; min-width: 0; }
.select-option__title { line-height: 1.6; }
.select-option__subtext { font-weight: 400; line-height: 1.6; color: var(--color-text-secondary); }
.select-option--s .select-option__subtext { font-size: 12px; }
.select-option--m .select-option__subtext { font-size: 14px; }
/* Check icon (real SVG, NOT ::after) */
.select-option__check { flex-shrink: 0; display: none; }
.select-option.is-selected .select-option__check { display: block; }
.select-option--m .select-option__check { width: 24px; height: 24px; }
.select-option--s .select-option__check { width: 16px; height: 16px; }
/* States */
.select-option--m:hover:not(.is-selected):not(:disabled) { background: var(--color-surface-v1); }
.select-option--s:hover:not(.is-selected):not(:disabled) { background: var(--color-surface-v1); }
.select-option.is-selected { background: var(--color-surface-white); }
.select-option:disabled { color: var(--color-text-secondary); cursor: not-allowed; pointer-events: none; background: transparent; }/* Inline menu — выпадает под trigger'ом. NO fill, darker border (#DDD9D1). */
.select-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 100;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 4px;
  border: 1px solid #DDD9D1;
  border-radius: 16px;
  background: transparent;
  box-shadow: 0px 4px 16px rgba(0,0,0,0.08);
  max-height: 280px;
  overflow-y: auto;
  width: max-content;
  min-width: 160px;
}

/* Modal — оверлей с модалкой выбора. Width: 480px, r16, V1 outline, overflow:hidden */
.select-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.3);
}
.select-modal__dialog {
  width: 480px;
  max-width: 94vw;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  background: var(--color-surface-white);
  border: 1px solid var(--color-surface-v1);
  border-radius: 16px;
  overflow: hidden;
}
.select-modal__header {
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 24px;
  gap: 10px;
  position: relative;
  overflow: hidden;
}
.select-modal__title { flex: 1 1 0; font-size: 32px; font-weight: 600; line-height: 1.1; color: var(--color-text-primary); word-wrap: break-word; }
.select-modal__close { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: none; background: var(--color-surface-v1); cursor: pointer; border-radius: 99px; color: var(--color-text-primary); flex-shrink: 0; padding: 0; }
.select-modal__close:hover { opacity: 0.8; }
.select-modal__body {
  flex: 1;
  overflow-y: auto;
  padding: 0 24px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.select-modal__description { font-size: 18px; font-weight: 400; line-height: 1.6; color: var(--color-text-secondary); }
.select-modal__options { display: flex; flex-direction: column; gap: 4px; }
.select-modal__option-divider { height: 0; outline: 1px solid var(--color-surface-v0); outline-offset: -0.5px; }
.select-modal__footer { padding: 0 24px 24px 24px; display: flex; justify-content: flex-end; }
.select-modal__search { margin-bottom: 0; }


/* ═══ ВНЕШНИЕ ОТСТУПЫ МЕЖДУ КОМПОНЕНТАМИ ═══ */
.info-block-v1,
.info-block-v2,
.info-block-v3,
.info-block-v4,
.table-v1,
.bank-cpa,
.bp-bk-card,
.blockquote-v1,
.blockquote-v2,
.banks-cpa-list {
    margin: 16px 0;
}
/* У последнего в контейнере убираем */
.info-block-v1:last-child,
.info-block-v2:last-child,
.info-block-v3:last-child,
.info-block-v4:last-child,
.table-v1:last-child,
.bank-cpa:last-child,
.bp-bk-card:last-child,
.blockquote-v1:last-child,
.blockquote-v2:last-child,
.banks-cpa-list:last-child {
}
@media (max-width: 767px) {
  .info-block-v1,
  .info-block-v2,
  .info-block-v3,
  .info-block-v4,
  .table-v1,
  .bank-cpa,
  .bp-bk-card,
  .blockquote-v1,
  .blockquote-v2,
  .banks-cpa-list {
    margin: 16px 0;
  }
  .info-block-v1:last-child,
  .info-block-v2:last-child,
  .info-block-v3:last-child,
  .info-block-v4:last-child,
  .table-v1:last-child,
  .bank-cpa:last-child,
  .bp-bk-card:last-child,
  .blockquote-v1:last-child,
  .blockquote-v2:last-child,
  .banks-cpa-list:last-child {
    margin-bottom: 0;
  }
}


/* ═══════════════════════════════════════════════════════
   INFO-ATTENTION / INFO-SUCCESS / INFO-WARNING
   Контекстные алерты (спека: info-attention + info-success +
   info-warning Documentation, 17.07.2026)
   Структура идентична, отличается ТОЛЬКО фон:
   - attention (жёлтый #FBF6E6) — уведомление, heads-up
   - success  (зелёный #F7FBE6) — подтверждение, совпадение
   - warning  (оранжевый #FBE9E6) — потенциальная проблема
   ═══════════════════════════════════════════════════════ */
.info-attention,
.info-success,
.info-warning {
  display: flex;
  flex-direction: row;
  align-items: flex-start;      /* иконка к ВЕРХУ — критично для многострочного текста */
  gap: 12px;
  padding: 24px;
  border-radius: 16px;
  border: none;                 /* NO stroke на всех вариантах */
}
.info-attention { background: var(--color-accent-yellow); margin: 32px 0; }
.info-success   { background: var(--color-accent-green); margin-top: 24px; }
.info-warning   { background: var(--color-accent-orange); margin-top: 24px; }

/* Иконка 24×24, цвет Text/Primary (НЕ цветная по типу!), swap-слот */
.info-attention svg, .info-success svg, .info-warning svg,
.info-attention__icon, .info-success__icon, .info-warning__icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  color: var(--color-text-primary);
}

/* Текст: Body/16 Regular/160%, fill-ширина */
.info-attention__text, .info-success__text, .info-warning__text {
  flex: 1;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-text-primary);
}

/* ===== Точка безубыточности (2026.07) ===== */
.bev-visual { margin:18px 0 24px; padding:16px; border-radius:var(--radius-md,8px); }
.bev-visual.bev-pass { background:#F0FDF4; border:1px solid #BBF7D0; }
.bev-visual.bev-fail { background:#FEF2F2; border:1px solid #FECACA; }
.bev-header { margin-bottom:12px; font-size:14px; color:var(--color-text-primary,#3A3735); }
.bev-icon { font-size:18px; margin-right:4px; }
.bev-scale { position:relative; height:32px; background:#E5E7EB; border-radius:6px; overflow:hidden; margin-bottom:14px; }
.bev-bar { height:100%; border-radius:6px; display:flex; align-items:center; padding:0 12px; min-width:fit-content; }
.bev-bar.bev-revenue { background:linear-gradient(135deg,#27ae60,#2ecc71); }
.bev-bar-label { color:#fff; font-size:12px; font-weight:600; white-space:nowrap; }
.bev-marker { position:relative; height:0; margin-bottom:8px; }
.bev-marker-line { position:absolute; top:-40px; width:2px; height:40px; background:#e74c3c; }
.bev-marker-line::before { content:""; position:absolute; top:-6px; left:-4px; width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-top:6px solid #e74c3c; }
.bev-marker-label { position:absolute; top:-58px; left:4px; font-size:11px; color:#991B1B; font-weight:600; white-space:nowrap; transform:translateX(-50%); }
.bev-delta { font-size:13px; font-weight:600; margin-top:8px; }
.bev-pass .bev-delta { color:#166534; }
.bev-fail .bev-delta { color:#991B1B; }

/* ===== Стоимость часа мастера (2026.07) ===== */
.hr-visual { margin:16px 0 24px; padding:16px; border-radius:var(--radius-md,8px); }
.hr-visual.hr-error { background:#FEF2F2; border:1px solid #FECACA; }
.hr-visual.hr-warning { background:#FFFBEB; border:1px solid #FDE68A; }
.hr-visual.hr-success { background:#F0FDF4; border:1px solid #BBF7D0; }
.hr-header { font-size:15px; color:var(--color-text-primary,#3A3735); margin-bottom:4px; }
.hr-detail { font-size:12px; color:var(--muted-foreground,#888); margin-bottom:12px; }
.hr-scale { margin:12px 0 8px; }
.hr-bench { display:flex; align-items:center; gap:8px; font-size:13px; margin-bottom:6px; color:var(--color-text-primary,#3A3735); }
.hr-bench-rate { font-weight:600; min-width:70px; text-align:right; }
.hr-bench-bar { flex:1; height:10px; background:#E5E7EB; border-radius:5px; overflow:hidden; }
.hr-fill { height:100%; border-radius:5px; background:linear-gradient(135deg,#27ae60,#2ecc71); }
.hr-rating { font-size:13px; font-weight:600; margin-top:10px; }
.hr-error .hr-rating { color:#991B1B; }
.hr-warning .hr-rating { color:#92400E; }
.hr-success .hr-rating { color:#166534; }

/* ===== Предупреждение об авторских правах (2026.07) ===== */
.copyright-warning { margin:16px 0; padding:14px 16px; background:#FFF1F0; border:2px solid #FF4D4F; border-radius:var(--radius-md,8px); color:#991B1B; font-size:13px; line-height:1.5; }

/* ════════════════════════════════════════════════════════════
   SECTIONS — 3 типа карточек-контейнеров (25.07.2026)
   Спека: https://rub2.ru Скуф

   .m-section — белая плитка внутри max-width:1170px
   .l-section — full-width белая подложка
   .s-section — гибкая белая карточка (сайдбар/колонка)
   ════════════════════════════════════════════════════════════ */

/* ── .m-section: white tile, inside 1170px container ── */
.m-section {
  background: var(--color-surface-white);
  border-radius: 24px;
  padding: 60px 200px;
  margin-bottom: 4px;
}
.m-section--sm { padding: 40px 100px; }
.m-section--lg { padding: 80px 240px; }

/* ── .l-section: full-width white band, inner at 1170px ── */
.l-section {
  background: var(--color-surface-white);
  width: 100%;
  padding: 100px 0;
  border-radius: 24px;
}
.l-section__inner {
  max-width: 1170px;
  margin: 0 auto;
  padding: 0 20px;
}
.l-section--sm { padding: 60px 0; }
.l-section--lg { padding: 140px 0; }
.l-section--tile { margin-bottom: 4px; }

/* ── .s-section: flexible white card (sidebar/column) ── */
.s-section {
  background: var(--color-surface-white);
  border-radius: 24px;
  padding: 24px;
}
.s-section--sm { padding: 16px; border-radius: 16px; }
.s-section--lg { padding: 32px; }

/* ── .s-section внутри .l-section/.m-section: колонка ── */
.l-section .s-section,
.m-section .s-section {
  flex-shrink: 0;
}

/* ════════════════════════════════════════════════════════════
   АДАПТИВ — Sections (mobile < 768px)
   ════════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
  .m-section {
    padding: 40px 16px;
    border-radius: 16px;
  }
  .m-section--sm { padding: 32px 16px; }
  .m-section--lg { padding: 48px 20px; }

  .l-section {
    padding: 40px 0;
    border-radius: 0;
  }
  .l-section__inner { padding: 0 16px; }
  .l-section--sm { padding: 32px 0; }
  .l-section--lg { padding: 56px 0; }

  .s-section {
    padding: 16px;
    border-radius: 16px;
  }
  .s-section--sm { padding: 12px; }
  .s-section--lg { padding: 20px; }
}

/* Tablet 768–1169px */
@media (min-width: 768px) and (max-width: 1169px) {
  .m-section {
    padding: 60px 40px;
  }
  .m-section--sm { padding: 40px 32px; }
  .m-section--lg { padding: 80px 60px; }

  .l-section { padding: 60px 0; }
  .l-section--sm { padding: 40px 0; }
  .l-section--lg { padding: 100px 0; }
}
