diff: qwmaxc — Qwen3.8-Max

Сравнение с master 3d131f2 · ветка design/conv-qwmax · f5cdaac fix(page): qwmaxc — замечания ревью

файлов (без картинок): 11 открыть страницу ← к витрине
assets/scss/_b24qwmaxc.scss                 | 693 ++++++++++++++++++++++++++++
 assets/scss/custom.scss                     |   1 +
 content/russian/service/deployment/index.md | 576 ++++++++++++-----------
 layouts/partials/b24/qwmaxc/block-a.html    |  80 ++++
 layouts/partials/b24/qwmaxc/block-b.html    | 124 +++++
 layouts/partials/b24/qwmaxc/block-c.html    | 137 ++++++
 layouts/partials/b24/qwmaxc/head.html       |  17 +
 layouts/partials/b24/qwmaxc/hero.html       |  39 ++
 layouts/partials/b24/qwmaxc/img.html        |  22 +
 layouts/partials/b24/qwmaxc/page.html       |  40 ++
 layouts/service/single.html                 |   9 +
 11 files changed, 1474 insertions(+), 264 deletions(-)
assets/scss/_b24qwmaxc.scss +693 −0
diff --git a/assets/scss/_b24qwmaxc.scss b/assets/scss/_b24qwmaxc.scssnew file mode 100644index 0000000..9a81f6d--- /dev/null+++ b/assets/scss/_b24qwmaxc.scss@@ -0,0 +1,693 @@+/* ============================================================================+   Вариант b24-qwmaxc — страница /service/deployment/ (вход через AI Советник).+   Скоуп: .b24-qwmaxc (корневой div своего partial-дерева). Глобальные цвета+   темы (шапка/футер/другие страницы) не затрагиваются.++   Палитра AA (контраст посчитан, обе темы) — та же система токенов, что+   проверена в соседних вариантах:+     светлая:  #4d5a58/белый 7.19 · #556563/белый 6.13 · #0a6e6e/белый 6.05+               #fff/#0a7d4f 5.17 · #17313a/белый 13.66 · #4d5a58/#eaf4f2 6.8+     тёмная:   #b9c7ca/#1b2229 9.24 · #f2f2f2/#1b2229 14.35 · #7fd8cf/#1b2229 9.66+   ============================================================================ */++.b24-qwmaxc {+  --b24-bg: #fff;+  --b24-alt: #f4f8f7;+  --b24-card: #fff;+  --b24-border: #dbe6e4;+  --b24-text: #4d5a58;+  --b24-heading: #17313a;+  --b24-muted: #556563;+  --b24-accent: #0a6e6e;+  --b24-fill: #0a7d4f;+  --b24-fill-h: #08663f;+  --b24-chip: #eaf4f2;+  --b24-shadow: 0 8px 28px rgba(23,49,58,.07);+  --b24-img-plate: #fff;+  background: var(--b24-bg);+  color: var(--b24-text);+}++body.dark .b24-qwmaxc {+  --b24-bg: #1e262c;+  --b24-alt: #1b2229;+  --b24-card: #1b2229;+  --b24-border: #3a4750;+  --b24-text: #b9c7ca;+  --b24-heading: #f2f2f2;+  --b24-muted: #b9c7ca;+  --b24-accent: #7fd8cf;+  --b24-fill: #0a7d4f;+  --b24-fill-h: #08663f;+  --b24-chip: #22303a;+  --b24-shadow: 0 8px 28px rgba(0,0,0,.35);+  --b24-img-plate: #1e262c;+}++/* ---- общая сетка секций ---- */+.b24-qwmaxc .b24qwc-sec {+  padding: 3.25rem 0;+  background: var(--b24-bg);+  scroll-margin-top: 90px;+}+.b24-qwmaxc .b24qwc-sec--alt { background: var(--b24-alt); }+.b24-qwmaxc .b24qwc-hero { padding-top: 2.5rem; padding-bottom: 2.25rem; }++/* ---- типографика ---- */+.b24-qwmaxc h1, .b24-qwmaxc h2, .b24-qwmaxc h3, .b24-qwmaxc h4 { color: var(--b24-heading); }+.b24-qwmaxc p, .b24-qwmaxc li { max-width: 64ch; }+.b24-qwmaxc p, .b24-qwmaxc li, .b24-qwmaxc td, .b24-qwmaxc th,+.b24-qwmaxc dd, .b24-qwmaxc dt, .b24-qwmaxc label, .b24-qwmaxc span,+.b24-qwmaxc caption, .b24-qwmaxc summary { color: var(--b24-text); }+.b24-qwmaxc strong { color: var(--b24-heading); }+.b24-qwmaxc .b24qwc-h1 {+  font-size: clamp(1.7rem, 3.2vw, 2.85rem);+  line-height: 1.14;+  margin-bottom: 1rem;+  letter-spacing: -.01em;+  text-wrap: balance;+}+.b24-qwmaxc .b24qwc-h2 {+  font-size: clamp(1.5rem, 2.2vw, 2.05rem);+  line-height: 1.22;+  margin-bottom: .85rem;+  overflow-wrap: anywhere;+}+.b24-qwmaxc .b24qwc-kicker {+  font-size: .95rem;+  font-weight: 600;+  line-height: 1.45;+  color: var(--b24-accent);+  margin-bottom: .8rem;+}+.b24-qwmaxc .b24qwc-hero__lead {+  font-size: 1.0625rem;+  line-height: 1.62;+  max-width: 58ch;+  margin-bottom: 1.2rem;+}+.b24-qwmaxc .b24qwc-price-note {+  margin: 1.1rem 0 0;+  padding: .8rem 1rem;+  border-left: 3px solid var(--b24-fill);+  border-radius: 0 12px 12px 0;+  background: var(--b24-chip);+  font-size: .9375rem;+  line-height: 1.55;+  max-width: 62ch;+}++/* ---- шапка секции ---- */+.b24-qwmaxc .b24qwc-head { margin-bottom: 1.5rem; }+.b24-qwmaxc .b24qwc-sec__num {+  display: inline-block;+  font-size: .875rem;+  font-weight: 700;+  letter-spacing: .09em;+  color: var(--b24-accent);+  margin-bottom: .45rem;+}+.b24-qwmaxc .b24qwc-sec__lead {+  font-size: 1rem;+  line-height: 1.6;+  max-width: 64ch;+  margin: 0;+}++/* ---- кнопки: штатные классы, цвета внутри скоупа дают AA ---- */+.b24-qwmaxc .btn {+  min-height: 48px;+  display: inline-flex;+  align-items: center;+  justify-content: center;+  text-align: center;+  font-weight: 600;+}+.b24-qwmaxc .btn-primary,+.b24-qwmaxc .btn-primary:active { background: var(--b24-fill) !important; border-color: var(--b24-fill) !important; color: #fff !important; }+.b24-qwmaxc .btn-primary:hover,+.b24-qwmaxc .btn-primary:focus { background: var(--b24-fill-h) !important; border-color: var(--b24-fill-h) !important; color: #fff !important; }+.b24-qwmaxc .btn-primary:before { display: none; }+.b24-qwmaxc .btn-outline-primary { color: var(--b24-fill); border-color: var(--b24-fill); background: transparent; }+.b24-qwmaxc .btn-outline-primary:hover,+.b24-qwmaxc .btn-outline-primary:focus { background: var(--b24-fill) !important; border-color: var(--b24-fill) !important; color: #fff !important; }+body.dark .b24-qwmaxc .btn-outline-primary { color: #7fd8cf; border-color: #7fd8cf; }+body.dark .b24-qwmaxc .btn-outline-primary:hover,+body.dark .b24-qwmaxc .btn-outline-primary:focus { background: #7fd8cf !important; border-color: #7fd8cf !important; color: #0f2b22 !important; }+.b24-qwmaxc .btn:focus-visible { outline: 3px solid var(--b24-accent); outline-offset: 3px; }++.b24-qwmaxc .b24qwc-cta { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.4rem; }++/* ---- иллюстрации: light/dark пары, plate = фон темы ---- */+.b24-qwmaxc .b24qwc-figure { margin: 0; }+.b24-qwmaxc .b24qwc-figure img,+.b24-qwmaxc .b24qwc-screen__shot img {+  display: block;+  width: 100%;+  height: auto;+  max-height: 380px;+  object-fit: contain;+  border-radius: 16px;+  border: 1px solid var(--b24-border);+  background: var(--b24-img-plate);+}+.b24-qwmaxc .b24qwc-figure--hero img { max-height: 520px; }+/* иллюстрация в шапке секции: колонка col-lg-4, компактнее — секция цен ≤1350px */+.b24-qwmaxc .b24qwc-head .b24qwc-figure img { max-height: 300px; }+/* показываем только версию под текущую тему */+.b24-qwmaxc img.b24qwc-img--dark { display: none; }+body.dark .b24-qwmaxc img.b24qwc-img--light { display: none; }+body.dark .b24-qwmaxc img.b24qwc-img--dark { display: block; }++/* ---- факты под hero ---- */+.b24-qwmaxc .b24qwc-facts {+  display: grid;+  grid-template-columns: repeat(3, minmax(0, 1fr));+  gap: 1rem;+  margin: 2rem 0 0;+  padding: 0;+}+.b24-qwmaxc .b24qwc-fact {+  display: block;+  padding: 1rem 1.15rem;+  border: 1px solid var(--b24-border);+  border-radius: 14px;+  background: var(--b24-card);+}+.b24-qwmaxc .b24qwc-fact__title {+  display: block;+  font-weight: 700;+  font-size: 1rem;+  line-height: 1.35;+  color: var(--b24-heading);+  margin-bottom: .8rem;+}+.b24-qwmaxc .b24qwc-fact__text {+  display: block;+  font-size: .9375rem;+  line-height: 1.5;+  color: var(--b24-muted);+}++/* ---- сетки карточек ---- */+.b24-qwmaxc .b24qwc-grid { display: grid; gap: 1rem; }+.b24-qwmaxc .b24qwc-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }+.b24-qwmaxc .b24qwc-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }+.b24-qwmaxc .b24qwc-grid--pains { grid-template-columns: repeat(3, minmax(0, 1fr)); }+.b24-qwmaxc .b24qwc-grid--gap-s { gap: .85rem; }++.b24-qwmaxc .b24qwc-card {+  padding: 1.35rem 1.4rem;+  border: 1px solid var(--b24-border);+  border-radius: 16px;+  background: var(--b24-card);+  box-shadow: var(--b24-shadow);+}+.b24-qwmaxc .b24qwc-card__num {+  display: inline-block;+  font-size: .875rem;+  font-weight: 700;+  color: var(--b24-accent);+  margin-bottom: .5rem;+}+.b24-qwmaxc .b24qwc-card__title {+  font-size: 1.06rem;+  line-height: 1.35;+  margin-bottom: .8rem;+}+.b24-qwmaxc .b24qwc-card__text {+  font-size: .9688rem;+  line-height: 1.58;+  margin: 0;+}+.b24-qwmaxc .b24qwc-card--small { padding: 1.1rem 1.15rem; box-shadow: none; }+.b24-qwmaxc .b24qwc-card--proof { display: flex; flex-direction: column; }+.b24-qwmaxc .b24qwc-card__source {+  margin: auto 0 0;+  padding-top: .6rem;+  font-size: .875rem;+  line-height: 1.45;+  color: var(--b24-muted);+  border-top: 1px solid var(--b24-border);+}+.b24-qwmaxc .b24qwc-card__source span { color: var(--b24-accent); }+.b24-qwmaxc .b24qwc-badge {+  display: inline-block;+  font-size: .8125rem;+  font-weight: 600;+  letter-spacing: .02em;+  padding: .25rem .6rem;+  border-radius: 999px;+  background: var(--b24-chip);+  color: var(--b24-accent);+  margin-bottom: .6rem;+}++/* ---- экраны приложения (блок «как это выглядит») ---- */+.b24-qwmaxc .b24qwc-screens { display: grid; gap: 1.35rem; }+.b24-qwmaxc .b24qwc-screen {+  display: grid;+  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);+  gap: 1.35rem;+  align-items: center;+  margin: 0;+  padding: 1.25rem;+  border: 1px solid var(--b24-border);+  border-radius: 18px;+  background: var(--b24-card);+}+.b24-qwmaxc .b24qwc-screen:nth-child(even) { direction: rtl; }+.b24-qwmaxc .b24qwc-screen:nth-child(even) > * { direction: ltr; }+.b24-qwmaxc .b24qwc-screen__shot img {+  max-height: 420px;+  border-radius: 12px;+}+.b24-qwmaxc .b24qwc-screen figcaption { padding: .2rem 0; }+.b24-qwmaxc .b24qwc-screen__title { font-size: 1.15rem; line-height: 1.3; margin-bottom: .8rem; }+.b24-qwmaxc .b24qwc-screen__text { font-size: .9688rem; line-height: 1.6; margin: 0; }++/* ---- неделя по дням ---- */+.b24-qwmaxc .b24qwc-steps {+  display: grid;+  grid-template-columns: repeat(5, minmax(0, 1fr));+  gap: .9rem;+  margin: 0;+  padding: 0;+}+.b24-qwmaxc .b24qwc-step {+  padding: 1.15rem 1.15rem 1.25rem;+  border: 1px solid var(--b24-border);+  border-radius: 16px;+  background: var(--b24-card);+}+.b24-qwmaxc .b24qwc-step__day {+  display: inline-block;+  font-size: .875rem;+  font-weight: 700;+  color: var(--b24-accent);+  margin-bottom: .4rem;+}+.b24-qwmaxc .b24qwc-step__title { font-size: 1rem; line-height: 1.35; margin-bottom: .8rem; }+.b24-qwmaxc .b24qwc-step__text { font-size: .9375rem; line-height: 1.5; margin-bottom: .6rem; }+.b24-qwmaxc .b24qwc-step__artefact {+  font-size: .875rem;+  line-height: 1.45;+  margin: 0;+  color: var(--b24-muted);+}+.b24-qwmaxc .b24qwc-step__artefact span { color: var(--b24-accent); font-weight: 600; }++/* ---- примечания ---- */+.b24-qwmaxc .b24qwc-note {+  margin-top: 1.25rem;+  padding: .85rem 1.1rem;+  border-left: 3px solid var(--b24-accent);+  border-radius: 0 12px 12px 0;+  background: var(--b24-chip);+}+.b24-qwmaxc .b24qwc-note p { margin: 0; font-size: 1rem; line-height: 1.58; }+.b24-qwmaxc .b24qwc-note--final { margin-top: 1.2rem; }++/* ---- правила перед тарифами ---- */+.b24-qwmaxc .b24qwc-rules {+  display: grid;+  grid-template-columns: repeat(3, minmax(0, 1fr));+  gap: .85rem;+  margin: 0 0 1rem;+  padding: 0;+}+.b24-qwmaxc .b24qwc-rule {+  padding: .85rem 1rem;+  border: 1px solid var(--b24-border);+  border-radius: 14px;+  background: var(--b24-card);+}+.b24-qwmaxc .b24qwc-rule p { margin: 0; font-size: .9688rem; line-height: 1.55; }++/* ---- пакеты ---- */+.b24-qwmaxc .b24qwc-plans {+  display: grid;+  grid-template-columns: repeat(3, minmax(0, 1fr));+  gap: 1rem;+  margin-bottom: 1.15rem;+}+/* секция цен ≤1.5 экрана (1350px @1440×900): карточки уплотнены */+.b24-qwmaxc .b24qwc-plan {+  display: flex;+  flex-direction: column;+  padding: 1.15rem 1.1rem;+  border: 1px solid var(--b24-border);+  border-radius: 16px;+  background: var(--b24-card);+}+.b24-qwmaxc .b24qwc-plan--rec { border: 2px solid var(--b24-fill); box-shadow: var(--b24-shadow); }+.b24-qwmaxc .b24qwc-plan__badge {+  align-self: flex-start;+  font-size: .8125rem;+  font-weight: 600;+  padding: .22rem .55rem;+  border-radius: 999px;+  background: var(--b24-chip);+  color: var(--b24-accent);+  margin-bottom: .45rem;+}+.b24-qwmaxc .b24qwc-plan__title { font-size: 1.1rem; line-height: 1.35; margin-bottom: .8rem; }+.b24-qwmaxc .b24qwc-plan__price {+  font-size: 1.5rem;+  font-weight: 700;+  line-height: 1.2;+  color: var(--b24-heading);+  margin-bottom: .2rem;+}+.b24-qwmaxc .b24qwc-plan__term { font-size: .875rem; line-height: 1.45; color: var(--b24-muted); margin-bottom: .5rem; }+.b24-qwmaxc .b24qwc-plan__for { font-size: .9375rem; line-height: 1.5; margin-bottom: .7rem; }+.b24-qwmaxc .b24qwc-plan__list { list-style: none; margin: 0 0 .9rem; padding: 0; }+.b24-qwmaxc .b24qwc-plan__list li {+  position: relative;+  padding-left: 1.15rem;+  font-size: .9063rem;+  line-height: 1.5;+  margin-bottom: .35rem;+  max-width: 100%;+}+.b24-qwmaxc .b24qwc-plan__list li::before {+  content: "";+  position: absolute;+  left: 0;+  top: .55em;+  width: .33rem;+  height: .33rem;+  border-radius: 50%;+  background: var(--b24-fill);+}+.b24-qwmaxc .b24qwc-plan__btn { margin-top: auto; }++/* ---- addon «Портал под ключ» ---- */+.b24-qwmaxc .b24qwc-addon {+  display: flex;+  flex-wrap: wrap;+  align-items: center;+  gap: 1.1rem;+  padding: 1rem 1.25rem;+  border: 1px solid var(--b24-border);+  border-radius: 16px;+  background: var(--b24-chip);+}+.b24-qwmaxc .b24qwc-addon__left { flex: 1 1 380px; min-width: 0; }+.b24-qwmaxc .b24qwc-addon__right { flex: 0 0 auto; text-align: right; }+.b24-qwmaxc .b24qwc-addon__title { font-size: 1.1rem; line-height: 1.3; margin-bottom: .8rem; }+.b24-qwmaxc .b24qwc-addon__sub { font-size: .9375rem; line-height: 1.5; color: var(--b24-accent); margin-bottom: .5rem; }+.b24-qwmaxc .b24qwc-addon__text { font-size: .9375rem; line-height: 1.55; margin: 0; }+.b24-qwmaxc .b24qwc-addon__price {+  font-size: 1.4rem;+  font-weight: 700;+  color: var(--b24-heading);+  margin: 0 0 .6rem;+  white-space: nowrap;+}++/* ---- таблицы (tco + лицензии) ---- */+.b24-qwmaxc .b24qwc-tablewrap {+  border: 1px solid var(--b24-border);+  border-radius: 16px;+  background: var(--b24-card);+  overflow: hidden;+}+/* тема красит table/tbody глобально — внутри скоупа гасим эти фоны */+.b24-qwmaxc .b24qwc-table {+  width: 100%;+  margin: 0;+  border: 0;+  background: transparent;+  border-collapse: collapse;+  table-layout: fixed;+  font-size: .9375rem;+}+.b24-qwmaxc .b24qwc-table tbody,+.b24-qwmaxc .b24qwc-table thead,+.b24-qwmaxc .b24qwc-table tr { background: transparent; }+.b24-qwmaxc .b24qwc-table tr:not(:last-child) { border-bottom: 0; }+.b24-qwmaxc .b24qwc-table__cap {+  caption-side: top;+  padding: .7rem 1rem;+  font-size: .875rem;+  line-height: 1.45;+  color: var(--b24-muted);+  text-align: left;+}+.b24-qwmaxc .b24qwc-table th,+.b24-qwmaxc .b24qwc-table td {+  padding: .62rem .7rem;+  text-align: left;+  vertical-align: top;+  overflow-wrap: anywhere;+  text-wrap: pretty;+  max-width: none;+}+.b24-qwmaxc .b24qwc-table thead th {+  background: var(--b24-chip);+  color: var(--b24-heading);+  font-weight: 600;+  font-size: .9375rem;+  line-height: 1.35;+  border-bottom: 1px solid var(--b24-border);+}+.b24-qwmaxc .b24qwc-table tbody td {+  border-top: 1px solid var(--b24-border);+  line-height: 1.5;+}+.b24-qwmaxc .b24qwc-table tbody tr:first-child td { border-top: 0; }+.b24-qwmaxc .b24qwc-table tbody td:first-child { color: var(--b24-heading); font-weight: 600; }+.b24-qwmaxc .b24qwc-table--num { font-weight: 700; color: var(--b24-heading) !important; white-space: nowrap; }+.b24-qwmaxc .b24qwc-table--total td {+  border-top: 2px solid var(--b24-border);+  background: var(--b24-chip);+}+.b24-qwmaxc .b24qwc-table--total td:first-child { font-size: 1rem; }++/* ---- TCO: строка примера + карточка итога ---- */+.b24-qwmaxc .b24qwc-tco__example {+  font-size: .9688rem;+  line-height: 1.55;+  margin: 0 0 1rem;+}+.b24-qwmaxc .b24qwc-tco__example span { color: var(--b24-accent); font-weight: 600; }+.b24-qwmaxc .b24qwc-tco__card {+  padding: 1.6rem 1.5rem;+  border: 2px solid var(--b24-fill);+  border-radius: 18px;+  background: var(--b24-card);+  text-align: center;+  position: sticky;+  top: 100px;+}+.b24-qwmaxc .b24qwc-tco__sum-label {+  font-size: .9375rem;+  font-weight: 600;+  color: var(--b24-accent);+  margin: 0 0 .4rem;+}+.b24-qwmaxc .b24qwc-tco__sum {+  font-size: 2.4rem;+  font-weight: 700;+  line-height: 1.15;+  color: var(--b24-heading);+  margin: 0 0 .5rem;+}+.b24-qwmaxc .b24qwc-tco__next {+  font-size: .9375rem;+  line-height: 1.5;+  color: var(--b24-muted);+  margin: 0;+}++/* ---- аккордеоны (возражения) ---- */+.b24-qwmaxc .b24qwc-accs { display: grid; gap: .6rem; }+.b24-qwmaxc .b24qwc-acc {+  border: 1px solid var(--b24-border);+  border-radius: 14px;+  background: var(--b24-card);+}+.b24-qwmaxc .b24qwc-acc summary {+  display: flex;+  align-items: flex-start;+  gap: .75rem;+  min-height: 48px;+  padding: 1rem 1.15rem;+  cursor: pointer;+  list-style: none;+  font-size: 1rem;+  font-weight: 600;+  line-height: 1.45;+  color: var(--b24-heading);+}+.b24-qwmaxc .b24qwc-acc summary::-webkit-details-marker { display: none; }+.b24-qwmaxc .b24qwc-acc summary::after {+  content: "+";+  margin-left: auto;+  flex: 0 0 auto;+  font-size: 1.25rem;+  line-height: 1;+  color: var(--b24-accent);+}+.b24-qwmaxc .b24qwc-acc[open] summary::after { content: "–"; }+.b24-qwmaxc .b24qwc-acc summary:focus-visible { outline: 3px solid var(--b24-accent); outline-offset: -3px; border-radius: 14px; }+.b24-qwmaxc .b24qwc-acc__body { padding: 0 1.15rem 1.15rem; }+.b24-qwmaxc .b24qwc-acc__body p { margin: 0; font-size: .9688rem; line-height: 1.6; }++/* ---- форма приманки: 2 поля, submit-кнопка ---- */+.b24-qwmaxc .b24qwc-form {+  padding: 1.5rem 1.5rem 1.35rem;+  border: 1px solid var(--b24-border);+  border-radius: 18px;+  background: var(--b24-card);+  box-shadow: var(--b24-shadow);+}+.b24-qwmaxc .b24qwc-form__title { font-size: 1.15rem; line-height: 1.35; margin-bottom: 1rem; }+.b24-qwmaxc .b24qwc-form__field { margin-bottom: .9rem; }+.b24-qwmaxc .b24qwc-form__label {+  display: block;+  font-size: .9375rem;+  font-weight: 600;+  color: var(--b24-heading);+  margin-bottom: .4rem;+}+.b24-qwmaxc .b24qwc-form__input {+  width: 100%;+  min-height: 50px;+  padding: .8rem 1rem;+  border: 1px solid var(--b24-border);+  border-radius: 12px;+  background: var(--b24-bg);+  color: var(--b24-heading);+  font-size: 1rem;+}+.b24-qwmaxc .b24qwc-form__input::placeholder { color: var(--b24-muted); opacity: 1; }+.b24-qwmaxc .b24qwc-form__input:focus { outline: 3px solid var(--b24-accent); outline-offset: 2px; border-color: var(--b24-accent); }+.b24-qwmaxc .b24qwc-form__submit { width: 100%; margin-top: .35rem; }+.b24-qwmaxc .b24qwc-form__note { margin: .8rem 0 0; font-size: .875rem; line-height: 1.5; color: var(--b24-muted); }+.b24-qwmaxc .b24qwc-friction { margin: 1rem 0 0; font-size: .875rem; line-height: 1.55; color: var(--b24-muted); }+.b24-qwmaxc .b24qwc-friction__link {+  display: inline-flex;+  align-items: center;+  min-height: 44px;   /* тап-таргет: голый URL-текст даёт 19px */+  color: var(--b24-accent);+  font-weight: 600;+  text-decoration: underline;+  text-underline-offset: 3px;+}++/* ---- финальная полоса ---- */+.b24-qwmaxc .b24qwc-final { padding-bottom: 3.75rem; }+.b24-qwmaxc .b24qwc-final__box {+  padding: 2rem 2rem 1.85rem;+  border: 1px solid var(--b24-border);+  border-radius: 20px;+  background: var(--b24-alt);+}+.b24-qwmaxc .b24qwc-final__text { font-size: 1rem; line-height: 1.6; margin-bottom: .7rem; }++/* ---- sticky CTA на мобиле ---- */+.b24-qwmaxc .b24qwc-sticky {+  display: none;+  position: fixed;+  left: 0;+  right: 0;+  bottom: 0;+  z-index: 900;+  padding: .6rem .9rem calc(.6rem + env(safe-area-inset-bottom, 0px));+  background: var(--b24-card);+  border-top: 1px solid var(--b24-border);+  box-shadow: 0 -6px 24px rgba(0,0,0,.12);+}+.b24-qwmaxc .b24qwc-sticky .btn { width: 100%; }++/* ---- подписи логотипов клиентов (partners.html) в тёмной теме:+   цвет темы #666 на тёмном фоне = 2.67:1; по образцу ai_adoption ---- */+body.dark:has(.b24-qwmaxc) .brand-caption { color: #b9c7ca; }++/* ---- зазор h3→текст ≥12px: правило в конце файла, каскад не перебивает ---- */+.b24-qwmaxc h3 { margin-bottom: .8rem; line-height: 1.32; }++/* ---- адаптив ---- */+@media (max-width: 1199.98px) {+  .b24-qwmaxc .b24qwc-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }+  .b24-qwmaxc .b24qwc-screen { grid-template-columns: minmax(0, 1fr); }+  .b24-qwmaxc .b24qwc-screen:nth-child(even) { direction: ltr; }+}+@media (max-width: 991.98px) {+  .b24-qwmaxc .b24qwc-sec { padding: 2.5rem 0; }+  .b24-qwmaxc .b24qwc-grid--2,+  .b24-qwmaxc .b24qwc-grid--3,+  .b24-qwmaxc .b24qwc-grid--pains,+  .b24-qwmaxc .b24qwc-plans,+  .b24-qwmaxc .b24qwc-rules { grid-template-columns: minmax(0, 1fr); }+  .b24-qwmaxc .b24qwc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }+  .b24-qwmaxc .b24qwc-figure img { max-height: 300px; }+  .b24-qwmaxc .b24qwc-tco__card { position: static; }+  /* таблицы → карточки */+  .b24-qwmaxc .b24qwc-tablewrap { border: 0; background: transparent; overflow: visible; }+  .b24-qwmaxc .b24qwc-table { display: block; font-size: .9375rem; }+  .b24-qwmaxc .b24qwc-table thead { display: none; }+  .b24-qwmaxc .b24qwc-table tbody,+  .b24-qwmaxc .b24qwc-table tr,+  .b24-qwmaxc .b24qwc-table td { display: block; width: auto; }+  .b24-qwmaxc .b24qwc-table__cap { padding: .2rem 0 .8rem; }+  .b24-qwmaxc .b24qwc-table tr {+    margin-bottom: .75rem;+    padding: .35rem 0 .45rem;+    border: 1px solid var(--b24-border);+    border-radius: 14px;+    background: var(--b24-card);+  }+  .b24-qwmaxc .b24qwc-table tbody td {+    border-top: 0;+    padding: .4rem 1rem;+    display: grid;+    grid-template-columns: minmax(0, 42%) minmax(0, 1fr);+    gap: .6rem;+    align-items: start;+    white-space: normal;+  }+  .b24-qwmaxc .b24qwc-table tbody td::before {+    content: attr(data-label);+    font-size: .875rem;+    font-weight: 600;+    line-height: 1.4;+    color: var(--b24-accent);+  }+  .b24-qwmaxc .b24qwc-table tbody td:first-child::before { display: none; }+  .b24-qwmaxc .b24qwc-table tbody td:first-child {+    display: block;+    font-size: 1rem;+    padding-top: .55rem;+  }+  .b24-qwmaxc .b24qwc-table--total td { border-top: 0; background: transparent; }+  .b24-qwmaxc .b24qwc-table--total { border: 2px solid var(--b24-fill) !important; }+}+@media (max-width: 767.98px) {+  .b24-qwmaxc .b24qwc-steps { grid-template-columns: minmax(0, 1fr); }+  .b24-qwmaxc .b24qwc-final__box { padding: 1.4rem 1.25rem 1.25rem; }+  .b24-qwmaxc .b24qwc-addon__right { text-align: left; width: 100%; }+  .b24-qwmaxc .b24qwc-addon__right .btn { width: 100%; }+  .b24-qwmaxc .b24qwc-sticky { display: block; }+  .b24-qwmaxc .b24qwc-final { padding-bottom: 6.5rem; }+  /* sticky-панель (~71px) не должна перекрывать футер: запас снизу (Bootstrap .pb-0 — !important) */+  body:has(.b24qwc-sticky) footer { padding-bottom: 5.5rem !important; }+}+@media (max-width: 575.98px) {+  /* первый экран: убираем «воздух», primary-CTA и цена выше сгиба */+  .b24-qwmaxc .b24qwc-hero { padding-top: 1.35rem; padding-bottom: 1.75rem; }+  .b24-qwmaxc .b24qwc-hero .b24qwc-kicker { margin-bottom: .55rem; }+  .b24-qwmaxc .b24qwc-h1 { margin-bottom: .75rem; }+  .b24-qwmaxc .b24qwc-hero__lead { font-size: 1rem; line-height: 1.5; margin-bottom: 1rem; }+  .b24-qwmaxc .b24qwc-cta { margin-top: 1rem; gap: .6rem; }+  .b24-qwmaxc .b24qwc-cta .btn { width: 100%; }+  .b24-qwmaxc .b24qwc-price-note { font-size: .875rem; }+  .b24-qwmaxc .b24qwc-facts { grid-template-columns: minmax(0, 1fr); }+  .b24-qwmaxc .b24qwc-card { padding: 1.15rem; }+  .b24-qwmaxc .b24qwc-form { padding: 1.2rem 1.15rem 1.1rem; }+  .b24-qwmaxc .b24qwc-screen { padding: .85rem; }+  .b24-qwmaxc .b24qwc-screen__shot img { max-height: 260px; }+  .b24-qwmaxc .b24qwc-tco__sum { font-size: 2rem; }+}
assets/scss/custom.scss +1 −0
diff --git a/assets/scss/custom.scss b/assets/scss/custom.scssindex ffaf1dd..a505eab 100644--- a/assets/scss/custom.scss+++ b/assets/scss/custom.scss@@ -1576,3 +1576,4 @@ h1.blog-post-title { }  @import 'aiad';+@import 'b24qwmaxc';
content/russian/service/deployment/index.md +312 −264
diff --git a/content/russian/service/deployment/index.md b/content/russian/service/deployment/index.mdindex 15a5606..5a2eebb 100644--- a/content/russian/service/deployment/index.md+++ b/content/russian/service/deployment/index.md@@ -1,271 +1,319 @@ ----date: "2021-07-14"+date: "2026-10-29" draft: false-title: "Внедрение Битрикс24 под ключ от 19 900р"-description: "Настраиваем CRM и бизнес-процессы"-icon: "fas fa-users"  # fontawesome icon pack : https://fontawesome.com/icons/-layout : "single"--######################### banner #####################-bannertwo:-  title: "Внедрение Битрикс24 <br />под ключ <br />от 19 900р"-  subtitle: Лаборатория Павла Жукова-  image: "images/service/301840.png"-  content : "Настраиваем CRM и бизнес-процессы"-  button:-    enable : true-    label : "Заказать консультацию"-    link : "contact/"-  background_class: "bg-light"--######################### about this product #####################-about_this_product:-  enable: true-  title: "Рутину должны делать роботы. "-  content: "Снимем эти задачи с ваших сотрудников"--  features:-  - title: "Дашборды руководства"-    icon: "fa-solid fa-chart-line"-    content: "Контролируйте всю происходящую в компании деятельность на удобных дашбордах. Максимально используем дашборды Битрикс24, а при необходимости пишем свои приложения."--  - title: "Контроль деятельности"-    icon: "fa-solid fa-clock"-    content: "Обеспечиваем строгое выполнение бизнес-процессов. От продаж до производства, не даем сотрудникам выйти за рамки процесса, «забыть о сроках» или «потерять результаты» выполнения задач."--  - title: "Процессы на задачах"-    icon: "fa-solid fa-list-check"-    content: "Никто не забудет про клиента. Задачи встают по расписанию, каждый чих на контроле у робота. Вышестоящее руководство уведомляется о нарушениях в процедурах."-  - title: "Собираем результаты"-    icon: "fa-solid fa-layer-group"-    content: "Каждый документ, звонок или любая информация проходящая в рамках процесса сохраняется. Специальное хранилище документов с категориями и возможностью использовать бизнес-процессы."-  - title: "Финансовый контроль"-    icon: "fa-solid fa-coins"-    content: "Мы разработали собственное приложение для контроля финансов в Битрикс24. Сохраняем платежи, расходы, предоставляем удобные отчеты."-  - title: "Личный кабинет"-    icon: "fa-solid fa-users-gear"-    content: "Мы разработали собственное приложение для создания зоны самообслуживания ваших клиентов. Централизованное общение с менеджерами, загрузка результатов и т.д."---######################### product_info #####################-product_info:-  enable : true-  title: "Почему мы?"-  content: "Мы знаем Битрикс24 изнутри и готовы предложить то, что не могут конкуренты"-  background_class: "bg-light"-  features:-  - image: "images/service/081703.png"-    button:-      enable : false-      label : "Заказать сейчас"-      link : "get-demo/"-    content : "##### Опыт внедрения в различных компаниях-  -  От фотостудии до юридического бюро. Мы знаем универсальные принципы, но всегда дорабатываем их с учетом задач Заказчика.-  -  ##### Готовый стек собственных приложений-  -  Продажи, производство, учет финансов, личный кабинет для ваших клиентов. Дашборды для руководителя. Мы уже сделали 95% работы."--  - image: "images/service/fplus.png"-    button:-      enable : false-      label : "Заказать сейчас"-      link : "get-demo/"-    content : "##### Разработка приложений под требования заказчика-  -  В случаях когда возможностей Битрикс24 или готовых приложений не хватает для решения ваших задач, мы готовы разработать приложения индивидуально под ваш Бизнес."--  ---##################################################--pricing:-  enable: true-  title: "Варианты внедрения"-  subtitle: "Внедряем Битрикс24 для компаний любого размера"-  fixed_plans_enable: true--  custom_plan:-    enable: true-    title: "Нет подходящего плана??"-    button:-      label: "Напишите нами"-      link: "contact/"--  fixed_plans:-    - title : "Старт"-      currency: "₽"-      price: "₽19 900"-      price_per : "шт"-      subtitle : "Базовая настройка: внедрение системы"-      button:-        enable : true-        label : "Связаться"-        link : "contact/"---    - title: "Взлёт"-      subtitle: "Настройка для средних компаний: внедрение системы"-      price: "₽89 900"-      price_per: "шт"+title: "Внедрение Битрикс24: готовый AI-отдел продаж на базе AI Советника"+description: "AI Советник уже внутри Битрикс24: распределяет лиды, держит клиента 360°, ловит недозвоны, разбирает звонки и переписку, ставит задачи менеджеру. Включаем работающий AI-отдел продаж за неделю и доводим портал до него. Внедрение от 19 250 ₽, подписки по прайсам вендоров без наценки."+image: "images/service/b24/hero.png"+icon: "fas fa-users"+layout: "single"+b24_variant: "qwmaxc"++######################### hero #####################+hero:+  kicker: "AI Советник внутри Битрикс24 · 430 установок · оценка 5,0 из 19 отзывов"+  title: "Готовый AI-отдел продаж внутри вашего Битрикс24"+  lead: "AI Советник уже делает то, ради чего «настраивают CRM»: распределяет лиды, держит клиента 360°, ловит недозвоны, разбирает звонки и переписку, ставит задачи менеджеру и показывает РОПу дашборд. Мы не настраиваем CRM с нуля — включаем работающий AI-отдел продаж и доводим портал до него: воронки, поля, каналы (Wappi), дашборды."+  image: "images/service/b24/hero.png"+  image_alt: "Портал Битрикс24, AI-советник в карточке сделки и диалог с клиентом собираются в один контур"+  buttons:+    - label: "Попробовать AI Советник 14 дней"+      link: "https://www.bitrix24.ru/apps/app/archeon.ai_rop/?utm_source=archeon&utm_medium=site&utm_campaign=deployment"+      style: "primary"+    - label: "Забрать буклет и расчёт первого года"+      link: "contact_form/"+      style: "outline"+  price_note: "Внедрение — от **19 250 ₽** (пакет «Старт», 5 часов; ставка 3 850 ₽/час). Подписки — по прайсам вендоров, без наценки: AI Советник от 990 ₽/мес, Wappi «Полный» 1 690 ₽/мес, облако Б24 от 2 490 ₽/мес. Первый год целиком — в блоке «Цена»."+  facts:+    - title: "430 установок, 5,0"+      text: "AI Советник в Маркетплейсе Б24; 19 отзывов — все пять звёзд"+    - title: "31 приложение"+      text: "собственные приложения лаборатории в Маркетплейсе Битрикс24"+    - title: "567 проектов"+      text: "автоматизации с 2020 года; медианный чек 38 тыс. ₽"++######################### blocks #####################+blocks:+  - role: "pains"+    num: 1+    title: "Портал куплен — а продаж больше не стало"+    lead: "Пять признаков, что Битрикс24 работает «для галочки». Если узнаёте хотя бы два — дело не в платформе, а в том, что её не довезли до продукта."+    image: "images/service/b24/pains.png"+    image_alt: "Заявка из мессенджера не доходит до карточки сделки"+    items:+      - title: "Лиды раздают в общем чате"+        text: "Кто первый ответил — того и клиент. Клиент звонит повторно и попадает в новую карточку: история обнуляется."+      - title: "«Не дозвонился» — и тишина"+        text: "Комментарий в карточке есть, а следующей попытки нет: ни задачи, ни напоминания, ни строки в отчёте."+      - title: "Переписка живёт в телефоне менеджера"+        text: "Звонки и чаты — в личном WhatsApp, карточка сделки пустая. Менеджер увольняется — история клиента уходит вместе с ним."+      - title: "Воронку собирают руками"+        text: "На вопрос руководителя «что с воронкой» ответ готовится вечером в Excel. Сделки — в CRM, часть в таблице, часть в переписке."+      - title: "Менеджеры работают «мимо» CRM"+        text: "Портал оплачен, но заявки дублируют в блокнот и мессенджер: ручной ввод отнимает время, а контроля не даёт."+    note: "Ни один пункт не лечится «ещё одной настройкой полей»: нужен слой, который сам распределяет, напоминает, разбирает и показывает — то есть продукт."++  - role: "mechanics"+    num: 2+    title: "Что вы получаете: механики AI Советника, а не «настройку CRM»"+    lead: "Шесть модулей приложения archeon.ai_rop работают внутри карточки лида и сделки — их не нужно разрабатывать, они уже в Маркетплейсе Битрикс24."+    image: "images/service/b24/ai.png"+    image_alt: "AI-ассистент внутри карточки сделки: разбор диалога, рекомендация, задача менеджеру"+    items:+      - title: "Анализ сделок и звонков"+        text: "Расшифровка звонков и чатов ложится в карточку: вероятность договора %, качество коммуникации, рекомендация AI и нарушения сценария — 11 полей UF_CRM_AIROP24_*."+      - title: "Распределение лидов и CRM-контроль"+        text: "Лиды распределяются поровну, по нагрузке или по должности; дедупликация; повторные попытки связи при «нет связи» по графику 1 / 5 / 24 / 72 часа."+      - title: "Клиент 360°"+        text: "Блок «Клиент» в карточке: связанные сделки, каналы коммуникации, дата следующего контакта. Лид прикрепляется к сделке одной кнопкой."+      - title: "Чат-бот по базе знаний"+        text: "Отвечает клиентам 24/7 по вашим документам, спорное передаёт менеджеру. В отладочном режиме видно рассуждение бота до отправки."+      - title: "Дашборды и дайджест РОПа"+        text: "Сигналы «требуют внимания руководителя / ответственного», KPI дня, конверсия за период, приоритетные задачи менеджера, ежедневный дайджест."+      - title: "Возврат зависших и мультиканальность"+        text: "Авто-напоминания «остывшим» клиентам, AI-рассылки по кластерам базы, автопереключение каналов WhatsApp → Telegram → MAX → Email → SMS."+    note: "Тарифы приложения: «Пульсар» — в подписке Б24, далее 990 / 4 990 / 9 990 / 24 990 ₽/мес — отличаются квотой анализов и моделью (Стандарт / Прайм). 14 дней бесплатно."++  - role: "ui"+    num: 3+    title: "Как это выглядит: живые экраны приложения"+    lead: "Три экрана из демо-портала. Всего в приложении 21 маршрут: дашборды, аналитика сделок, чат-бот, CRM-контроль, кластеризация и рассылки, доступы."+    screens:+      - image: "images/service/b24/ui-dashboard.png"+        image_alt: "Дашборд AI Советника: сигналы внимания, KPI дня, конверсия за период"+        title: "Дашборд"+        text: "«Требуют внимания руководителя: 14» — кликом открывает список. Ниже KPI дня (лиды, качественные, продажи) и показатели за период: новых сделок, успешных продаж, конверсия. Фильтры: направление, менеджеры, день / неделя / месяц / год."+      - image: "images/service/b24/ui-analytics.png"+        image_alt: "Очередь анализа сделок: вероятность договора, оценка коммуникации, флаги внимания"+        title: "Аналитика сделок"+        text: "Очередь задач на AI-разбор: профиль сценария, статус, вероятность заключения договора, оценка коммуникации, флаги «требует внимания». Квота тарифа видна сразу: лимит, использовано, остаток."+      - image: "images/service/b24/ui-card.png"+        image_alt: "Поля AI-анализа в карточке: вероятность договора, качество коммуникации, рекомендация AI"+        title: "Карточка лида и сделки"+        text: "Результат разбора — 11 полей UF_CRM_AIROP24_*: среднее время ответа сотрудника и клиента, вероятность договора, качество коммуникации, рекомендация AI, нарушения сценария, эскалация руководителю, дата анализа."+    note: "Скриншоты демо-портала: данные тестовые, интерфейс — живой продукт, который ставится из Маркетплейса за 2 минуты."++  - role: "week_plan"+    num: 4+    title: "Как проходит неделя запуска — по дням и с артефактом каждого дня"+    lead: "Приложение разрабатывать не нужно — оно уже готово. Неделя уходит на то, чтобы портал, воронки и каналы начали его кормить данными."+    image: "images/service/b24/funnel.png"+    image_alt: "Воронка продаж: заявки входят сверху, сделки с историей выходят снизу"+    steps:+      - day: "День 1"+        title: "Портал и лиды"+        text: "Доступы, структура компании, права, импорт базы, источники заявок: сайт, телефония, мессенджеры."+        artefact: "лиды падают в CRM и распределяются автоматически"+      - day: "День 2–3"+        title: "Воронки и поля"+        text: "Стадии под ваш процесс, обязательные поля, роботы и автозадачи, регламент «что считается обработанным лидом»."+        artefact: "карта воронки, живущая в CRM, а не в голове РОПа"+      - day: "День 4"+        title: "AI Советник"+        text: "Установка из Маркетплейса (2 минуты), сценарии анализа по вашим стадиям, правила распределения, чат-бот, дашборды."+        artefact: "AI-поля в карточках на реальных диалогах"+      - day: "День 5"+        title: "Каналы: Wappi"+        text: "Профили WhatsApp / Telegram / MAX, открытые линии, база знаний для бота, шаблоны ответов."+        artefact: "диалог из WhatsApp виден внутри сделки"+      - day: "День 6–7"+        title: "Обкатка и обучение"+        text: "Два занятия с командой, правка правил по живым лидам, приёмка по чек-листу из 18 пунктов."+        artefact: "подписанный чек-лист запуска"+    note: "**Неделя** — срок на готовом стеке для портала с одним каналом связи и типовым отделом продаж. Миграция большой базы, коробка, 1С и несколько юрлиц — дольше: срок фиксируем в смете до договора."++  - role: "price"+    num: 5+    title: "Цена: пакеты работ и подписки — раздельно"+    lead: "Пакеты внедрения AI Советника опубликованы на странице приложения — те же цифры попадают в договор. Лицензии и подписки платите вендорам по их прайсу: мы на них не нацениваем."+    image: "images/service/b24/calc.png"+    image_alt: "Смета: работы, лицензия и подписки отдельными строками"+    intro:+      - text: "В пакетах — только работы по запуску AI Советника. Лицензия Б24, подписка приложения и профили Wappi — отдельные строки, оплата вендорам."+      - text: "Работы по порталу (воронки, права, миграция, каналы, телефония, 1С) — по ставке 3 850 ₽/час, смета после разбора 60 минут."+      - text: "Вышли за пакет — согласуем письменно до начала работ. Сюрпризов в счёте нет."+    packages:+      - title: "Старт"+        price: "19 250 ₽"+        term: "5 часов"+        for_whom: "Проверить AI Советник в бою на одном направлении продаж."+        includes:+          - "Запуск AI-анализа по 1 воронке"+          - "Чат-бот «Продажи» по 1 направлению"+          - "1 база знаний (до 10 документов)"+          - "Расшифровка звонков, автообзоры сделок"+          - "Открытая линия, 1 сессия обучения"+        button:+          label: "Попробовать 14 дней"+          link: "https://www.bitrix24.ru/apps/app/archeon.ai_rop/?utm_source=archeon&utm_medium=site&utm_campaign=deployment"+      - title: "Рост"+        price: "38 500 ₽"+        term: "10 часов"+        recommended: true+        for_whom: "Отдел продаж 5–20 человек, несколько направлений и воронки, которые надо контролировать."+        includes:+          - "До 3 воронок и 3 чат-ботов"+          - "Контроль недозвонов, возврат зависших"+          - "CRM-контроль: квалификация, распределение, дубли"+          - "Дашборд и дайджест РОПа"+          - "Поддержка 1 месяц"+        button:+          label: "Попробовать 14 дней"+          link: "https://www.bitrix24.ru/apps/app/archeon.ai_rop/?utm_source=archeon&utm_medium=site&utm_campaign=deployment"+      - title: "Максимум"+        price: "77 000 ₽"+        term: "20 часов"+        for_whom: "Отдел с большим потоком диалогов, мультиканальностью и базой, которую надо сегментировать."+        includes:+          - "До 5 воронок, чат-боты «Продажи» и «Забота»"+          - "Мультиканальность с автопереключением"+          - "Кластеризация базы и AI-рассылки (до 3)"+          - "Тюнинг промптов под ваши сценарии"+          - "Поддержка 2 месяца"+        button:+          label: "Попробовать 14 дней"+          link: "https://www.bitrix24.ru/apps/app/archeon.ai_rop/?utm_source=archeon&utm_medium=site&utm_campaign=deployment"+    addon:+      title: "Портал под ключ"+      subtitle: "Воронки, права, миграция базы, каналы Wappi, телефония, 1С, коробка"+      price: "3 850 ₽/час"+      text: "Если Битрикс24 ещё не настроен или куплен и простаивает: считаем работы по часам после 60-минутного разбора. Миграция базы из Excel или другой CRM входит в смету."       button:-        label: "Связаться"+        label: "Записаться на разбор 60 минут"         link: "contact/"--    - title: "Полёт"-      subtitle: "Для крупного, действующего бизнеса: внедрение от"-      price: "₽149 000"-      price_per: "шт"-      button:-        label: "Связаться"+    note: "Цены пакетов и ставка — со страницы приложения archeon.ai_rop: те же, что в буклете. Сверьте на дату договора."++  - role: "tco"+    num: 6+    title: "Первый год целиком — на посчитанном примере"+    lead: "Рынок показывает цену работ и прячет ежемесячные расходы. Мы кладём на стол полную стоимость первого года: работы + лицензия + подписки, построчно, по прайсам вендоров."+    image: "images/service/b24/finance.png"+    image_alt: "Стоимость первого года складывается из работ, лицензии и подписок"+    example: "30 сотрудников · облако Б24 «Стандартный» · AI Советник «Метеор» · 1 профиль Wappi · оплата облака и Wappi за год"+    rows:+      - item: "Облако Битрикс24 «Стандартный»"+        calc: "6 990 ₽/мес → 5 590 ₽/мес при оплате за год (−20%)"+        year: "67 080 ₽"+      - item: "AI Советник, тариф «Метеор»"+        calc: "990 ₽/мес · 20 анализов в сутки (600 в месяц)"+        year: "11 880 ₽"+      - item: "Wappi «WhatsApp Полный», 1 профиль"+        calc: "1 350 ₽/мес при оплате за 12 мес"+        year: "16 200 ₽"+      - item: "Работы, пакет «Рост»"+        calc: "10 часов × 3 850 ₽/час, разово"+        year: "38 500 ₽"+    total:+      label: "Первый год"+      sum: "133 660 ₽"+      card_note: "работы 38 500 ₽ разово + подписки 95 160 ₽/год"+      next: "Со второго года — только подписки: 95 160 ₽/год. Портал и данные — ваши, подписки отключаются в любой момент."+    note: "Расчёт по прайсам вендоров на октябрь 2026. Лицензия Б24 уже оплачена — минусуйте её строку. Тариф «Пульсар» входит в подписку Б24: тогда строка AI Советника — 0 ₽."++  - role: "licenses"+    num: 7+    title: "Что платите не нам: лицензии и подписки по прайсам вендоров"+    lead: "Эти суммы идут напрямую вендорам. Мы не нацениваем: лицензия — не наша выручка, но без неё внедрения не бывает, поэтому она в смете отдельной строкой."+    table:+      caption: "Прайсы вендоров, октябрь 2026. Проверяйте на дату оплаты."+      headers:+        - "Что"+        - "Тарифы"+        - "Цена"+        - "Как платить"+      rows:+        - ["Облако Битрикс24", "Базовый / Стандартный / Профессиональный / Энтерпрайз", "2 490 / 6 990 / 13 990 / 33 990 ₽/мес за компанию", "Подписка; −20% при оплате за год"]+        - ["Коробка Битрикс24", "CRM (12) / КП-50 / КП-100 / КП-250", "59 000 / 159 000 / 229 000 / 349 000 ₽", "Срочная лицензия на 12 месяцев; продление в срок — 30%, после истечения — 100%. Без продления отключаются Маркетплейс, REST и телефония"]+        - ["AI Советник", "Пульсар / Метеор / Луч / Туманность / Вселенная", "в подписке Б24 / 990 / 4 990 / 9 990 / 24 990 ₽/мес", "Оплата в Маркетплейсе Б24; 14 дней бесплатно. Тарифы отличаются квотой анализов и моделью (Стандарт / Прайм)"]+        - ["Wappi (мессенджеры)", "«WhatsApp Полный» — единственный тариф с интеграцией Б24", "1 690 ₽/мес за профиль; 1 350 ₽/мес при оплате за 12 мес", "Пробный период 5 дней; счёт, акт УПД. «Базовый» (от 550 ₽) — без интеграции с CRM: диалоги в Б24 не приедут"]+    note: "Сопровождение после запуска — линия 3 850 ₽/час (рынок 3 500–4 000 ₽/час), без обязательной абонентки."++  - role: "proof"+    num: 8+    title: "Что можно открыть и проверить до оплаты"+    lead: "Только проверяемое: карточки в Маркетплейсе, прайсы вендоров и агрегаты нашего собственного портала. Кейсов «выручка выросла на N%» нет — публичных замеров нет, и выдумывать мы их не будем."+    image: "images/service/b24/audit.png"+    image_alt: "Открытая карточка приложения в Маркетплейсе с рейтингом и отзывами"+    items:+      - fact: "31 собственное приложение в Маркетплейсе Битрикс24."+        source: "archeon.io/apps/"+      - fact: "AI Советник (archeon.ai_rop): 430 установок, рейтинг 5,0, 19 отзывов — все пять звёзд."+        source: "карточка приложения, Маркетплейс Б24"+      - fact: "Отзывы с именами и датами: Дарья С. 28.09.2026, Динара 02.09.2026, Дауд 01.09.2026, Ivanka 22.07.2026."+        source: "страница приложения"+      - fact: "567 проектов автоматизации с 2020 года, 137 клиентов; 50 из них (каждый третий) вернулись со вторым проектом."+        source: "воронка «Автоматизация: Проекты», 9 398 сделок"+      - fact: "Медианный чек проекта — 38 тыс. ₽, крупнейший — 8,6 млн ₽; 730 обращений в поддержку за 2025 год."+        source: "выгрузка собственного Б24, сверка crm.deal.get"+      - fact: "Цифры страницы совпадают с прайсами bitrix24.ru, 1c-bitrix.ru и wappi.pro — сверьте сами."+        source: "сайты вендоров, октябрь 2026"++  - role: "offer"+    num: 9+    title: "Буклет «Как развернуть AI-отдел продаж за 1 день» + расчёт первого года"+    lead: "PDF на 12 страниц: пошаговый план на базе AI Советника — тот же, по которому мы запускаем порталы. Плюс 5 писем мини-курса и расчёт стоимости под вашу команду."+    image: "images/service/b24/course.png"+    image_alt: "Буклет с планом запуска AI-отдела продаж за один день"+    items:+      - title: "План дня по часам"+        text: "Установка из Маркетплейса (2 минуты), распределение лидов, клиент 360°, контроль недозвонов, дашборды, чат-бот по базе знаний, подключение Wappi."+      - title: "Чек-лист и тарифы"+        text: "18 пунктов приёмки запуска, тарифы AI Советника (Пульсар → Вселенная), раздел «чего не делать» и пять типовых ошибок."+      - title: "5 писем мини-курса"+        text: "«Система продаж в Битрикс24 за 5 шагов» — первое сразу, остальные по одному в день."+      - title: "Расчёт первого года"+        text: "Работы, лицензия, подписки — построчно под вашу команду, как в таблице выше."+    form:+      title: "Куда прислать буклет и расчёт"+      name_label: "Имя"+      name_placeholder: "Как к вам обращаться"+      contact_label: "E-mail или телефон"+      contact_placeholder: "name@company.ru или +7…"+      cta: "Забрать буклет и расчёт"+      action: "contact_form/"+      note: "Два поля, без «должности и размера команды». Буклет и первое письмо приходят сразу; звонок — только если сами попросите."+    friction:+      text: "Регистрация Wappi по нашей партнёрской ссылке цену не меняет: скидок по ссылке нет, она привязывает профиль к нам для поддержки."+      link_label: "wappi.pro/registration — открыть"+      link_url: "https://wappi.pro/registration?ref=350dfa3e"++  - role: "objections"+    num: 10+    title: "Возражения, которые слышим чаще всего"+    image: "images/service/b24/migration.png"+    image_alt: "Перенос базы из старой системы в настроенный портал"+    items:+      - q: "«Дорого. Настройка Битрикс24 предлагается от 25 000 ₽»"+        a: "Сравнивайте состав, а не первую цифру. За 25 000 на рынке обычно настраивают воронки и поля — без AI-разбора, чат-бота и контроля недозвонов. «Рост» за 38 500 ₽ — это до 3 воронок, 3 чат-бота, CRM-контроль, дашборд РОПа и месяц поддержки; подписки видны сразу и считаются по прайсам вендоров."+      - q: "«Сами настроим»"+        a: "Установка приложения действительно занимает 2 минуты — попробуйте: 14 дней бесплатно. Недели обычно уходят на сценарии анализа, стадии, базу знаний и правила распределения. В буклете — план на день, сделайте по нему; застрянете — подключимся пакетом, приложение к тому моменту уже установлено."+      - q: "«У нас своя CRM, не Битрикс24»"+        a: "AI Советник работает внутри Битрикс24 — это платформа. Перенос базы из Excel, amoCRM или самописной системы считаем в смете портала. Данные остаются у вас: экспорт — штатная функция Б24."+      - q: "«Сотрудники не будут пользоваться — уже пробовали»"+        a: "Саботируют ручной ввод, а не CRM. Здесь лиды создаются сами, следующий шаг ставит Советник, история диалогов собирается без усилий менеджера — ему остаётся один список «кому ответить и кому позвонить». В пакетах — обучение и регламент «что считается обработанным лидом»."+      - q: "«А это точно ИИ, а не скрипт?»"+        a: "Разбор делает языковая модель: в неё уходят чаты, расшифровки звонков, задачи и комментарии, а в карточку — рекомендация и нарушения сценария человеческим языком. В отладочном режиме чат-бота видно рассуждение «писать / не писать / позвать менеджера» до отправки. Тарифы отличаются моделью (Стандарт / Прайм) и квотой анализов — у скриптов так не тарифицируют."+      - q: "«А если WhatsApp заблокируют?»"+        a: "Риск есть: Wappi работает через WhatsApp Web, это не официальный Business API, лимиты — порядка 5–10 сообщений в минуту. Поэтому каналы дублируем: Telegram, MAX, Авито, ВК, чат на сайте, а Советник автопереключает цепочку WhatsApp → Telegram → MAX → Email → SMS при недоставке."++  - role: "final"+    num: 11+    title: "Включите AI-отдел продаж — и посчитайте первый год до договора"+    image: "images/service/b24/support.png"+    image_alt: "Поддержка отвечает на вопросы команды после запуска"+    items:+      - "Начните с демо: установите AI Советник из Маркетплейса за 2 минуты — 14 дней бесплатно, без обязательств. Интерфейс и логику увидите на своём портале."+      - "Или запишитесь на разбор 60 минут бесплатно: портал, воронки, каналы. На выходе — карта проблем, план на 30 дней и смета первого года построчно. Если хватит пакета «Старт» — скажем."+    buttons:+      - label: "Попробовать AI Советник 14 дней"+        link: "https://www.bitrix24.ru/apps/app/archeon.ai_rop/?utm_source=archeon&utm_medium=site&utm_campaign=deployment"+        style: "primary"+      - label: "Разбор портала, 60 минут бесплатно"         link: "contact/"+        style: "outline"+    note: "Процессы и данные остаются в вашем портале; подписки вендоров отключаются в любой момент. Объём, часы и срок фиксируются в смете до старта." -  -  # fixed plans features-  fixed_plan_rows:-  # table row-  - title: "Внедрение учета финансов"-    features:-    - name: "Старт"-      availability: true-      other:--    - name: "Взлёт"-      availability: true--    - name: "Полёт"-      availability: true--  # table row-  - title: "Настройка лидов"-    features:-    - name: "Старт"-      availability: true--    - name: "Взлёт"-      availability: true--    - name: "Полёт"-      availability: true--  # table row-  - title: "Воронки продаж"-    features:-    - name: "Старт"-      availability: true-      other: 1--    - name: "Взлёт"-      availability: true-      other: 2--    - name: "Полёт"-      availability: true-      other: не ограничено--  # table row-  - title: "Обучение"-    features:-    - name: "Старт"-      availability: true-      other: Базовое--    - name: "Взлёт"-      availability: true-      other: Сотрудников--    - name: "Полёт"-      availability: true-      other: Сотрудников--  # table row-  - title: "Автоматизация производства"-    features:-    - name: "Старт"-      availability: false-      other: --    - name: "Взлёт"-      availability: true-      other: Базовая--    - name: "Полёт"-      availability: true-      other: Любой уровень--  # table row-  - title: "Управленческий учет финансов"-    features:-    - name: "Старт"-      availability: false-      other: --    - name: "Взлёт"-      availability: false-      other: --    - name: "Полёт"-      availability: true-      other: --  # table row-  - title: "Личный кабинет для клиентов"-    features:-    - name: "Старт"-      availability: false-      other: --    - name: "Взлёт"-      availability: false-      other: --    - name: "Полёт"-      availability: true-      other: --  # table row-  - title: "Индивидуальная автоматизация"-    features:-    - name: "Старт"-      availability: false-      other: --    - name: "Взлёт"-      availability: false-      other: --    - name: "Полёт"-      availability: true-      other: --  # table row-  - title: "Индивидуальная разработка решений"-    features:-    - name: "Старт"-      availability: false-      other: --    - name: "Взлёт"-      availability: false-      other: --    - name: "Полёт"-      availability: true-      other: ---######################### CTA #####################-cta:-  enable : true-  title : "Запросите условия прямо сейчас"-  content : "Свяжитесь с нами для поучения условий"-  background_class: "bg-light"-  button:-    enable : true-    label : "Связаться"-    link : "contact_form/"--+######################### sticky mobile CTA #####################+sticky_cta:+  label: "Попробовать AI Советник"+  link: "https://www.bitrix24.ru/apps/app/archeon.ai_rop/?utm_source=archeon&utm_medium=site&utm_campaign=deployment" ---
layouts/partials/b24/qwmaxc/block-a.html +80 −0
diff --git a/layouts/partials/b24/qwmaxc/block-a.html b/layouts/partials/b24/qwmaxc/block-a.htmlnew file mode 100644index 0000000..651b85f--- /dev/null+++ b/layouts/partials/b24/qwmaxc/block-a.html@@ -0,0 +1,80 @@+{{/* ============================================================================+   b24/qwmaxc/block-a.html — блоки: pains, mechanics, ui, week_plan.+   Контекст — элемент .Params.blocks[] (поле role задаёт тип).+   ============================================================================ */}}+{{ $b := . }}+{{ $alt := modBool $b.num 2 }}++<section class="b24qwc-sec{{ if $alt }} b24qwc-sec--alt{{ end }}" id="b24qwc-{{ $b.role }}">+  <div class="container">++    {{ if eq $b.role "ui" }}+    {{/* экраны приложения: шапка без картинки, иллюстрации внутри карточек */}}+    <div class="b24qwc-head row g-4 align-items-center">+      <div class="col-lg-10">+        <span class="b24qwc-sec__num">{{ printf "%02d" $b.num }}</span>+        <h2 class="b24qwc-h2">{{ $b.title }}</h2>+        {{ with $b.lead }}<p class="b24qwc-sec__lead">{{ . }}</p>{{ end }}+      </div>+    </div>+    <div class="b24qwc-screens">+      {{ range $b.screens }}+      <figure class="b24qwc-screen">+        <div class="b24qwc-screen__shot">+          {{ partial "b24/qwmaxc/img.html" (dict "Src" .image "Alt" .image_alt "Size" "1100x" "Class" "b24qwc-img--ui") }}+        </div>+        <figcaption>+          <h3 class="b24qwc-screen__title">{{ .title }}</h3>+          <p class="b24qwc-screen__text">{{ .text }}</p>+        </figcaption>+      </figure>+      {{ end }}+    </div>++    {{ else }}++    {{ partial "b24/qwmaxc/head.html" (dict+         "num" $b.num "title" $b.title "lead" $b.lead+         "image" $b.image "alt" $b.image_alt) }}++    {{ if eq $b.role "pains" }}+    <div class="b24qwc-grid b24qwc-grid--pains">+      {{ range $i, $it := $b.items }}+      <article class="b24qwc-card b24qwc-card--pain">+        <span class="b24qwc-card__num" aria-hidden="true">{{ add $i 1 }}</span>+        <h3 class="b24qwc-card__title">{{ $it.title }}</h3>+        <p class="b24qwc-card__text">{{ $it.text }}</p>+      </article>+      {{ end }}+    </div>++    {{ else if eq $b.role "mechanics" }}+    <div class="b24qwc-grid b24qwc-grid--2">+      {{ range $b.items }}+      <article class="b24qwc-card b24qwc-card--mech">+        <span class="b24qwc-badge">внутри карточки, без разработки</span>+        <h3 class="b24qwc-card__title">{{ .title }}</h3>+        <p class="b24qwc-card__text">{{ .text }}</p>+      </article>+      {{ end }}+    </div>++    {{ else if eq $b.role "week_plan" }}+    <ol class="b24qwc-steps list-unstyled">+      {{ range $b.steps }}+      <li class="b24qwc-step">+        <span class="b24qwc-step__day">{{ .day }}</span>+        <h3 class="b24qwc-step__title">{{ .title }}</h3>+        <p class="b24qwc-step__text">{{ .text }}</p>+        <p class="b24qwc-step__artefact"><span>артефакт:</span> {{ .artefact }}</p>+      </li>+      {{ end }}+    </ol>+    {{ end }}++    {{ end }}++    {{ with $b.note }}<div class="b24qwc-note"><p>{{ . | markdownify }}</p></div>{{ end }}++  </div>+</section>
layouts/partials/b24/qwmaxc/block-b.html +124 −0
diff --git a/layouts/partials/b24/qwmaxc/block-b.html b/layouts/partials/b24/qwmaxc/block-b.htmlnew file mode 100644index 0000000..c7edb1c--- /dev/null+++ b/layouts/partials/b24/qwmaxc/block-b.html@@ -0,0 +1,124 @@+{{/* ============================================================================+   b24/qwmaxc/block-b.html — блоки: price (пакеты+addon), tco (первый год),+   licenses (таблица прайсов вендоров).+   Контекст — элемент .Params.blocks[] (поле role задаёт тип).+   Ширины колонок таблиц — на <th>: минификатор Hugo выбрасывает colgroup/col.+   ============================================================================ */}}+{{ $b := . }}+{{ $alt := modBool $b.num 2 }}++<section class="b24qwc-sec{{ if $alt }} b24qwc-sec--alt{{ end }}" id="b24qwc-{{ $b.role }}">+  <div class="container">++    {{ partial "b24/qwmaxc/head.html" (dict "num" $b.num "title" $b.title+         "lead" $b.lead "image" $b.image "alt" $b.image_alt) }}++    {{ if eq $b.role "price" }}+    {{ with $b.intro }}+    <ul class="b24qwc-rules list-unstyled">+      {{ range . }}+      <li class="b24qwc-rule"><p>{{ .text | markdownify }}</p></li>+      {{ end }}+    </ul>+    {{ end }}++    <div class="b24qwc-plans">+      {{ range $b.packages }}+      <article class="b24qwc-plan{{ if .recommended }} b24qwc-plan--rec{{ end }}">+        {{ if .recommended }}<span class="b24qwc-plan__badge">выбирают чаще всего</span>{{ end }}+        <h3 class="b24qwc-plan__title">{{ .title }}</h3>+        <p class="b24qwc-plan__price">{{ .price }}</p>+        <p class="b24qwc-plan__term">{{ .term }}</p>+        <p class="b24qwc-plan__for">{{ .for_whom }}</p>+        <ul class="b24qwc-plan__list">+          {{ range .includes }}<li>{{ . }}</li>{{ end }}+        </ul>+        <a class="btn btn-outline-primary b24qwc-plan__btn" href="{{ .button.link }}"{{ if hasPrefix .button.link "http" }} target="_blank" rel="noopener"{{ end }}>{{ .button.label }}</a>+      </article>+      {{ end }}+    </div>++    {{ with $b.addon }}+    <div class="b24qwc-addon">+      <div class="b24qwc-addon__left">+        <h3 class="b24qwc-addon__title">{{ .title }}</h3>+        <p class="b24qwc-addon__sub">{{ .subtitle }}</p>+        <p class="b24qwc-addon__text">{{ .text }}</p>+      </div>+      <div class="b24qwc-addon__right">+        <p class="b24qwc-addon__price">{{ .price }}</p>+        <a class="btn btn-outline-primary contact_form" href="{{ .button.link | relLangURL }}">{{ .button.label }}</a>+      </div>+    </div>+    {{ end }}++    {{ else if eq $b.role "tco" }}+    <div class="row g-4 g-lg-5 align-items-start">+      <div class="col-lg-7">+        {{ with $b.example }}<p class="b24qwc-tco__example"><span>пример:</span> {{ . }}</p>{{ end }}+        <div class="b24qwc-tablewrap">+          <table class="b24qwc-table b24qwc-table--tco">+            <caption class="b24qwc-table__cap">Первый год: работы разово, подписки помесячно, суммы за 12 месяцев</caption>+            <thead>+              <tr>+                <th scope="col" style="width:44%">Строка</th>+                <th scope="col" style="width:36%">Расчёт</th>+                <th scope="col" style="width:20%">За год</th>+              </tr>+            </thead>+            <tbody>+              {{ range $b.rows }}+              <tr>+                <td data-label="Строка">{{ .item }}</td>+                <td data-label="Расчёт">{{ .calc }}</td>+                <td data-label="За год" class="b24qwc-table--num">{{ .year }}</td>+              </tr>+              {{ end }}+              {{ with $b.total }}+              <tr class="b24qwc-table--total">+                <td data-label="Итого">{{ .label }}</td>+                <td data-label="Расчёт">{{ .next }}</td>+                <td data-label="За год" class="b24qwc-table--num">{{ .sum }}</td>+              </tr>+              {{ end }}+            </tbody>+          </table>+        </div>+      </div>+      <div class="col-lg-5">+        <div class="b24qwc-tco__card">+          <p class="b24qwc-tco__sum-label">{{ $b.total.label }} под ключ</p>+          <p class="b24qwc-tco__sum">{{ $b.total.sum }}</p>+          {{ with $b.total.card_note }}<p class="b24qwc-tco__next">{{ . }}</p>{{ end }}+        </div>+      </div>+    </div>++    {{ else if eq $b.role "licenses" }}+    <div class="b24qwc-tablewrap">+      <table class="b24qwc-table">+        <caption class="b24qwc-table__cap">{{ with $b.table.caption }}{{ . }}{{ end }}</caption>+        <thead>+          <tr>+            {{ range $i, $h := $b.table.headers }}+            <th scope="col"{{ if eq $i 0 }} style="width:16%"{{ else if eq $i 1 }} style="width:24%"{{ else if eq $i 2 }} style="width:24%"{{ else }} style="width:36%"{{ end }}>{{ $h }}</th>+            {{ end }}+          </tr>+        </thead>+        <tbody>+          {{ range $b.table.rows }}+          <tr>+            {{ range $i, $cell := . }}+            <td data-label="{{ index $b.table.headers $i }}">{{ $cell }}</td>+            {{ end }}+          </tr>+          {{ end }}+        </tbody>+      </table>+    </div>+    {{ end }}++    {{ with $b.note }}<div class="b24qwc-note"><p>{{ . | markdownify }}</p></div>{{ end }}++  </div>+</section>
layouts/partials/b24/qwmaxc/block-c.html +137 −0
diff --git a/layouts/partials/b24/qwmaxc/block-c.html b/layouts/partials/b24/qwmaxc/block-c.htmlnew file mode 100644index 0000000..c945955--- /dev/null+++ b/layouts/partials/b24/qwmaxc/block-c.html@@ -0,0 +1,137 @@+{{/* ============================================================================+   b24/qwmaxc/block-c.html — блоки: proof, offer, objections, final.+   Контекст — элемент .Params.blocks[] (поле role задаёт тип).+   Кнопка формы — <button type="submit"> внутри <form>: <a class="btn"> внутри+   формы теряет введённые поля (проверенный питфолл).+   ============================================================================ */}}+{{ $b := . }}+{{ $alt := modBool $b.num 2 }}++{{ if eq $b.role "final" }}+<section class="b24qwc-sec b24qwc-final" id="b24qwc-final">+  <div class="container">+    <div class="b24qwc-final__box row g-4 align-items-center">+      <div class="col-lg-8">+        <span class="b24qwc-sec__num">{{ printf "%02d" $b.num }}</span>+        <h2 class="b24qwc-h2">{{ $b.title }}</h2>+        {{ range $b.items }}<p class="b24qwc-final__text">{{ . }}</p>{{ end }}+        <div class="b24qwc-cta">+          {{ range $b.buttons }}+          {{ $href := .link }}{{ if not (hasPrefix .link "http") }}{{ $href = .link | relLangURL }}{{ end }}+          <a class="btn {{ if eq .style "outline" }}btn-outline-primary contact_form{{ else }}btn-primary{{ end }}"+             href="{{ $href }}"{{ if hasPrefix .link "http" }} target="_blank" rel="noopener"{{ end }}>{{ .label }}</a>+          {{ end }}+        </div>+        {{ with $b.note }}<div class="b24qwc-note b24qwc-note--final"><p>{{ . | markdownify }}</p></div>{{ end }}+      </div>+      <div class="col-lg-4">+        <figure class="b24qwc-figure">+          {{ partial "b24/qwmaxc/img.html" (dict "Src" $b.image "Alt" $b.image_alt "Size" "480x") }}+        </figure>+      </div>+    </div>+  </div>+</section>++{{ else }}++<section class="b24qwc-sec{{ if $alt }} b24qwc-sec--alt{{ end }}" id="b24qwc-{{ $b.role }}">+  <div class="container">++    {{ partial "b24/qwmaxc/head.html" (dict "num" $b.num "title" $b.title+         "lead" $b.lead "image" $b.image "alt" $b.image_alt) }}++    {{ if eq $b.role "proof" }}+    <div class="b24qwc-grid b24qwc-grid--3">+      {{ range $b.items }}+      <article class="b24qwc-card b24qwc-card--proof">+        <p class="b24qwc-card__text">{{ .fact }}</p>+        <p class="b24qwc-card__source"><span>источник:</span> {{ .source }}</p>+      </article>+      {{ end }}+    </div>++    {{ else if eq $b.role "objections" }}+    <div class="b24qwc-accs">+      {{ range $b.items }}+      <details class="b24qwc-acc">+        <summary>{{ .q }}</summary>+        <div class="b24qwc-acc__body"><p>{{ .a }}</p></div>+      </details>+      {{ end }}+    </div>++    {{ else if eq $b.role "offer" }}+    <div class="row g-4 g-lg-5">+      <div class="col-lg-6">+        <div class="b24qwc-grid b24qwc-grid--2 b24qwc-grid--gap-s">+          {{ range $b.items }}+          <article class="b24qwc-card b24qwc-card--small">+            <h3 class="b24qwc-card__title">{{ .title }}</h3>+            <p class="b24qwc-card__text">{{ .text }}</p>+          </article>+          {{ end }}+        </div>+      </div>+      <div class="col-lg-6">+        {{ with $b.form }}+        <form class="b24qwc-form" id="b24qwc-offer-form" action="{{ .action | relLangURL }}" method="get">+          <h3 class="b24qwc-form__title">{{ .title }}</h3>+          <div class="b24qwc-form__field">+            <label class="b24qwc-form__label" for="b24qwc-name">{{ .name_label }}</label>+            <input class="b24qwc-form__input" id="b24qwc-name" type="text" name="name"+                   placeholder="{{ .name_placeholder }}" autocomplete="name" required>+          </div>+          <div class="b24qwc-form__field">+            <label class="b24qwc-form__label" for="b24qwc-contact">{{ .contact_label }}</label>+            <input class="b24qwc-form__input" id="b24qwc-contact" type="text" name="contact"+                   placeholder="{{ .contact_placeholder }}" autocomplete="email" required>+          </div>+          <button class="btn btn-primary b24qwc-form__submit" type="submit">{{ .cta }}</button>+          <p class="b24qwc-form__note">{{ .note }}</p>+        </form>+        {{/* Отправка — в штатную CRM-форму Битрикс24 (#btn_bx_form, partial form.html темы):+           GET на /contact_form/ терял введённые значения — inline-форма Б24 не читает URL-параметры.+           Перехватываем submit, открываем штатную форму и переносим имя/контакт; без JS — fallback на action. */}}+        <script>+        (function(){+          var f = document.getElementById('b24qwc-offer-form');+          if (!f) return;+          f.addEventListener('submit', function(e){+            var nm = f.querySelector('input[name=name]'), ct = f.querySelector('input[name=contact]');+            if (!nm.value.trim() || !ct.value.trim()) return;+            var trigger = document.getElementById('btn_bx_form');+            if (!trigger) return;+            e.preventDefault();+            trigger.click();+            var tries = 0;+            var t = setInterval(function(){+              tries++;+              var nf = document.querySelector('.b24-form-field-name input');+              var pf = document.querySelector('.b24-form-field-phone input');+              if (nf && !nf.value) { nf.value = nm.value.trim(); nf.dispatchEvent(new Event('input',{bubbles:true})); }+              if (pf && !pf.value) {+                var v = ct.value.trim();+                if (/^[+0-9()\-\s]{6,}$/.test(v)) { pf.value = v; pf.dispatchEvent(new Event('input',{bubbles:true})); }+              }+              if ((nf && pf) || tries > 25) clearInterval(t);+            }, 150);+          });+        })();+        </script>+        {{ end }}+        {{ with $b.friction }}+        <p class="b24qwc-friction">{{ .text }}+          <a class="b24qwc-friction__link" href="{{ .link_url }}" target="_blank" rel="noopener">{{ .link_label }}</a>+        </p>+        {{ end }}+      </div>+    </div>+    {{ end }}++    {{ with $b.note }}<div class="b24qwc-note"><p>{{ . | markdownify }}</p></div>{{ end }}++  </div>+</section>++{{ end }}
layouts/partials/b24/qwmaxc/head.html +17 −0
diff --git a/layouts/partials/b24/qwmaxc/head.html b/layouts/partials/b24/qwmaxc/head.htmlnew file mode 100644index 0000000..fc598aa--- /dev/null+++ b/layouts/partials/b24/qwmaxc/head.html@@ -0,0 +1,17 @@+{{/* b24/qwmaxc/head.html — шапка секции: номер, H2, лид, необязательная иллюстрация.+   dict: num, title, lead, image, alt */}}+{{ $d := . }}+<div class="b24qwc-head row g-4 align-items-center">+  <div class="{{ if $d.image }}col-lg-8{{ else }}col-lg-10{{ end }}">+    <span class="b24qwc-sec__num">{{ printf "%02d" $d.num }}</span>+    <h2 class="b24qwc-h2">{{ $d.title }}</h2>+    {{ with $d.lead }}<p class="b24qwc-sec__lead">{{ . }}</p>{{ end }}+  </div>+  {{ with $d.image }}+  <div class="col-lg-4">+    <figure class="b24qwc-figure">+      {{ partial "b24/qwmaxc/img.html" (dict "Src" . "Alt" $d.alt "Size" "560x") }}+    </figure>+  </div>+  {{ end }}+</div>
layouts/partials/b24/qwmaxc/hero.html +39 −0
diff --git a/layouts/partials/b24/qwmaxc/hero.html b/layouts/partials/b24/qwmaxc/hero.htmlnew file mode 100644index 0000000..0ad9b4e--- /dev/null+++ b/layouts/partials/b24/qwmaxc/hero.html@@ -0,0 +1,39 @@+{{/* b24/qwmaxc/hero.html — первый экран: продукт, а не услуга.+   Данные: .Params.hero. Кнопки — штатные .btn-primary / .btn-outline-primary.+   Цена и срок — мелкой строкой до сгиба (требование брифа). */}}+{{ $d := . }}+<section class="b24qwc-sec b24qwc-hero" id="b24qwc-hero">+  <div class="container">+    <div class="row g-4 g-lg-5 align-items-center">+      <div class="col-lg-6">+        {{ with $d.kicker }}<p class="b24qwc-kicker">{{ . }}</p>{{ end }}+        <h1 class="b24qwc-h1">{{ $d.title }}</h1>+        {{ with $d.lead }}<p class="b24qwc-hero__lead">{{ . }}</p>{{ end }}+        <div class="b24qwc-cta">+          {{ range $d.buttons }}+          {{ $href := .link }}{{ if not (hasPrefix .link "http") }}{{ $href = .link | relLangURL }}{{ end }}+          <a class="btn {{ if eq .style "outline" }}btn-outline-primary contact_form{{ else }}btn-primary{{ end }}"+             href="{{ $href }}"{{ if hasPrefix .link "http" }} target="_blank" rel="noopener"{{ end }}>{{ .label }}</a>+          {{ end }}+        </div>+        {{ with $d.price_note }}<p class="b24qwc-price-note">{{ . | markdownify }}</p>{{ end }}+      </div>+      <div class="col-lg-6">+        <figure class="b24qwc-figure b24qwc-figure--hero">+          {{ partial "b24/qwmaxc/img.html" (dict "Src" $d.image "Alt" $d.image_alt "Size" "760x" "Loading" "eager") }}+        </figure>+      </div>+    </div>++    {{ with $d.facts }}+    <ul class="b24qwc-facts list-unstyled">+      {{ range . }}+      <li class="b24qwc-fact">+        <span class="b24qwc-fact__title">{{ .title }}</span>+        <span class="b24qwc-fact__text">{{ .text }}</span>+      </li>+      {{ end }}+    </ul>+    {{ end }}+  </div>+</section>
layouts/partials/b24/qwmaxc/img.html +22 −0
diff --git a/layouts/partials/b24/qwmaxc/img.html b/layouts/partials/b24/qwmaxc/img.htmlnew file mode 100644index 0000000..8ee0c6f--- /dev/null+++ b/layouts/partials/b24/qwmaxc/img.html@@ -0,0 +1,22 @@+{{/* b24/qwmaxc/img.html — иллюстрация в двух версиях: светлая и тёмная.+   Тёмная тема: <slot>-dark.png; скрытый вариант display:none + loading=lazy.+   dict: Src, Alt, Size, Class, Loading, Wide (широкий бокс 16:9) */}}+{{ $d := . }}+{{ $src := $d.Src }}+{{ $size := $d.Size | default "620x" }}+{{ $loading := $d.Loading | default "lazy" }}+{{ $dark := replaceRE `\.(png|jpe?g|webp)$` "-dark.$1" $src }}++{{ with resources.Get $src }}+  {{ $base := "b24qwc-img" }}+  {{ with $d.Class }}{{ $base = printf "%s %s" $base . }}{{ end }}++  {{ partial "image" (dict "Src" $src "Alt" $d.Alt "Size" $size+       "Class" (printf "%s b24qwc-img--light" $base) "Loading" $loading) }}++  {{ if resources.Get $dark }}+    {{/* alt дублируем: в тёмной теме светлый вариант скрыт display:none */}}+    {{ partial "image" (dict "Src" $dark "Alt" $d.Alt "Size" $size+         "Class" (printf "%s b24qwc-img--dark" $base) "Loading" $loading) }}+  {{ end }}+{{ end }}
layouts/partials/b24/qwmaxc/page.html +40 −0
diff --git a/layouts/partials/b24/qwmaxc/page.html b/layouts/partials/b24/qwmaxc/page.htmlnew file mode 100644index 0000000..c6e93a9--- /dev/null+++ b/layouts/partials/b24/qwmaxc/page.html@@ -0,0 +1,40 @@+{{/* ============================================================================+   b24/qwmaxc/page.html — страница «Внедрение Битрикс24: AI-отдел продаж»+   (вариант qwmaxc, вход через продукт AI Советник).+   Вызывается из layouts/service/single.html только когда .Params.b24_variant == "qwmaxc".++   Порядок секций задаётся данными .Params.blocks[] (поле role):+     pains, mechanics, ui, week_plan        → block-a.html+     price, tco, licenses                   → block-b.html+     proof, offer, objections, final        → block-c.html++   Класс-скоуп — .b24-qwmaxc. Все стили — assets/scss/_b24qwmaxc.scss.+   ============================================================================ */}}+{{ $d := . }}+<div class="b24-qwmaxc">++  {{ with .Params.hero }}+  {{ partial "b24/qwmaxc/hero.html" . }}+  {{ end }}++  {{ range .Params.blocks }}+  {{ $role := .role }}+  {{ if in (slice "pains" "mechanics" "ui" "week_plan") $role }}+    {{ partial "b24/qwmaxc/block-a.html" . }}+  {{ else if in (slice "price" "tco" "licenses") $role }}+    {{ partial "b24/qwmaxc/block-b.html" . }}+  {{ else }}+    {{ partial "b24/qwmaxc/block-c.html" . }}+  {{ end }}+  {{ end }}++  {{ with .Params.sticky_cta }}+  <div class="b24qwc-sticky">+    <a class="btn btn-primary" href="{{ .link }}" rel="noopener"{{ if hasPrefix .link "http" }} target="_blank"{{ end }}>{{ .label }}</a>+  </div>+  {{ end }}++</div>++{{/* логотипы клиентов — вне скоупа варианта: содержимое сайта не должно теряться */}}+{{ partial "partners.html" }}
layouts/service/single.html +9 −0
diff --git a/layouts/service/single.html b/layouts/service/single.htmlindex 79f1a90..eaebf90 100644--- a/layouts/service/single.html+++ b/layouts/service/single.html@@ -1,5 +1,12 @@ {{define "main"}} +{{/* Вариант qwmaxc: страница «Внедрение Битрикс24» целиком собирается своими+     partials (layouts/partials/b24/qwmaxc/…), gated по .Params.b24_variant == "qwmaxc".+     Для всех прочих service-страниц разметка ниже остаётся оригинальной, без изменений. */}}+{{ if eq .Params.b24_variant "qwmaxc" }}+{{ partial "b24/qwmaxc/page.html" . }}+{{ else }}+ {{/* Вариант V1 «Тихий апгрейд»: точечные ветки gated по .Params.aiad_v1 (только ai_adoption).      Для остальных service-страниц разметка = оригинал темы. Стили V1 — в конце, тоже под $v1. */}} {{ $v1 := .Params.aiad_v1 }}@@ -1008,4 +1015,6 @@ <!-- ===== Вариант B: клавиатурная навигация табов (roving tabindex, стрелки/Home/End) ===== --> <script src="{{ $tabs.RelPermalink }}" integrity="{{ $tabs.Data.Integrity }}" defer></script> {{ end }}++{{ end }}{{/* /if qwmaxc */}} {{end}}