diff: dsf41c — DeepSeek V4.1-Flash

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

файлов (без картинок): 16 открыть страницу ← к витрине
assets/js/b24-dsf41c.js                     |  21 +
 assets/scss/_b24dsf41c.scss                 | 902 ++++++++++++++++++++++++++++
 assets/scss/custom.scss                     |   1 +
 content/russian/service/deployment/index.md | 257 +++++++-
 layouts/partials/b24/dsf41c/faq.html        |  26 +
 layouts/partials/b24/dsf41c/hero.html       |  34 ++
 layouts/partials/b24/dsf41c/img.html        |  18 +
 layouts/partials/b24/dsf41c/lead.html       |  36 ++
 layouts/partials/b24/dsf41c/mechanics.html  |  30 +
 layouts/partials/b24/dsf41c/page.html       |  17 +
 layouts/partials/b24/dsf41c/pains.html      |  31 +
 layouts/partials/b24/dsf41c/pricing.html    |  58 ++
 layouts/partials/b24/dsf41c/proof.html      |  33 +
 layouts/partials/b24/dsf41c/screens.html    |  40 ++
 layouts/partials/b24/dsf41c/week.html       |  32 +
 layouts/service/single.html                 |   9 +
 16 files changed, 1543 insertions(+), 2 deletions(-)
assets/js/b24-dsf41c.js +21 −0
diff --git a/assets/js/b24-dsf41c.js b/assets/js/b24-dsf41c.jsnew file mode 100644index 0000000..db67c2a--- /dev/null+++ b/assets/js/b24-dsf41c.js@@ -0,0 +1,21 @@+/* /service/deployment/ (вариант dsf41c): залипающая мобильная CTA.+   На первом экране уже есть primary CTA героя — два одинаковых призыва в одном+   экране конкурируют. Пока кнопка героя в кадре, залипающую полосу прячем;+   как только она ушла за верх вьюпорта — показываем.+   Без JS (или без IntersectionObserver) полоса остаётся видимой всегда:+   класс-переключатель добавляется только этим скриптом. */+(function () {+  var sticky = document.querySelector('.b24-dsf41c-sticky');+  var heroCta = document.querySelector('.b24-dsf41c-hero a.btn-primary');+  if (!sticky || !heroCta || !('IntersectionObserver' in window)) return;++  sticky.classList.add('b24-dsf41c-sticky--armed');++  var io = new IntersectionObserver(function (entries) {+    entries.forEach(function (entry) {+      sticky.classList.toggle('b24-dsf41c-sticky--hidden', entry.isIntersecting);+    });+  }, { threshold: 0.01 });++  io.observe(heroCta);+})();
assets/scss/_b24dsf41c.scss +902 −0
diff --git a/assets/scss/_b24dsf41c.scss b/assets/scss/_b24dsf41c.scssnew file mode 100644index 0000000..8de03fb--- /dev/null+++ b/assets/scss/_b24dsf41c.scss@@ -0,0 +1,902 @@+/* ==========================================================================+   /service/deployment/ — вариант dsf41c («Готовый AI-отдел продаж»).++   Визуальный язык — тот же, что у соседней /service/ai_adoption/:+   контейнер и сетка Bootstrap темы, Poppins, те же радиусы/границы,+   штатные .btn-primary / .btn-outline-primary, ритм секций 3rem.+   Всё внутри скоупа .b24-dsf41c; глобальные теги не переопределяются.++   Контраст (посчитан): #222/белый 15.9; #656f6b/белый 5.20; #656f6b/#edf6f5 4.73;+   #0a7d4f/белый 5.17; белый/#0a7d4f 5.17; #066e6e/белый 5.52; #066e6e/#e8f4f2 4.9.+   Тёмная тема: #f2f2f2/#1e262c 12.6; #b9c7ca/#1e262c 8.3; #7fd8cf/#1e262c 9.6; #2ed3a7/#1b2229 8.9.+   ========================================================================== */++body:has(.b24-dsf41c) p,+body:has(.b24-dsf41c) li,+body:has(.b24-dsf41c) td { color: #656f6b; }+body:has(.b24-dsf41c) h1,+body:has(.b24-dsf41c) h2,+body:has(.b24-dsf41c) h3,+body:has(.b24-dsf41c) h4,+body:has(.b24-dsf41c) h5:not(.h5) { color: #222; }+body:has(.b24-dsf41c) strong { color: #222; }+body:has(.b24-dsf41c) .section-subtitle { color: #066e6e; }+body:has(.b24-dsf41c) .brand-caption { color: #656f6b; }++/* ---- общие элементы ---- */+.b24-dsf41c .b24-dsf41c-h1 {+  font-size: 3rem;+  line-height: 1.12;+  font-weight: 700;+  color: #222;+  margin-bottom: 1rem;+  max-width: 27ch;+}+.b24-dsf41c .b24-dsf41c-h2 {+  font-size: 2rem;+  line-height: 1.2;+  font-weight: 700;+  color: #222;+  margin-bottom: 1rem;+  max-width: 34ch;+}+.b24-dsf41c .b24-dsf41c-h3 {+  font-size: 1.125rem;+  line-height: 1.3;+  font-weight: 700;+  color: #222;+  margin-bottom: 0.4rem;+}+.b24-dsf41c .b24-dsf41c-eyebrow {+  font-size: 0.875rem;+  font-weight: 500;+  letter-spacing: 0.01em;+  color: #066e6e;+  margin-bottom: 0.6rem;+}+.b24-dsf41c .b24-dsf41c-lead p,+.b24-dsf41c .b24-dsf41c-lead {+  font-size: 1.06rem;+  line-height: 1.6;+  color: #656f6b;+  max-width: 66ch;+}+.b24-dsf41c .b24-dsf41c-lead p { margin-bottom: 0.9rem; }+.b24-dsf41c .b24-dsf41c-lead--tight { margin-bottom: 1.5rem; }+.b24-dsf41c .b24-dsf41c-body { color: #656f6b; }+.b24-dsf41c .b24-dsf41c-body p {+  font-size: 1rem;+  line-height: 1.6;+  color: #656f6b;+  max-width: 66ch;+}+.b24-dsf41c .b24-dsf41c-text {+  font-size: 0.95rem;+  line-height: 1.55;+  color: #656f6b;+  margin-bottom: 0;+  max-width: 60ch;+}+.b24-dsf41c .b24-dsf41c-note {+  font-size: 0.85rem;+  line-height: 1.5;+  color: #656f6b;+  margin-top: 1rem;+  margin-bottom: 0;+}+.b24-dsf41c figure.b24-dsf41c-figure { margin: 0; }+.b24-dsf41c .b24-dsf41c-img {+  display: block;+  width: 100%;+  height: auto;+  border: 1px solid #dbe9e6;+  border-radius: 14px;+  background: #fff;+}+.b24-dsf41c .b24-dsf41c-img--dark { display: none; }+body.dark .b24-dsf41c .b24-dsf41c-img--light { display: none; }+body.dark .b24-dsf41c .b24-dsf41c-img--dark { display: block; }+.b24-dsf41c .b24-dsf41c-figcap {+  font-size: 0.82rem;+  line-height: 1.45;+  color: #656f6b;+  margin-top: 0.6rem;+  text-align: center;+}++/* ---- кнопки: штатные классы темы, в скоупе страницы только контраст ---- */+.b24-dsf41c .btn.b24-dsf41c-cta {+  font-size: 1rem;+  padding: 0.9rem 1.6rem;+  /* штатная форма кнопок сайта — pill 50px, как .btn-primary у /service/ai_adoption/ */+  border-radius: 50px;+}+body:has(.b24-dsf41c) .btn-primary,+body:has(.b24-dsf41c) .btn-primary:focus {+  background: #0a7d4f;+  color: #fff !important;+  border-color: #0a7d4f;+  animation: none;+}+body:has(.b24-dsf41c) .btn-primary:hover {+  background: #08663f;+  color: #fff !important;+  border-color: #08663f;+}+body.dark:has(.b24-dsf41c) .btn-primary,+body.dark:has(.b24-dsf41c) .btn-primary:focus {+  background: #0a7d4f;+  border-color: #0a7d4f;+  color: #fff !important;+}+body.dark:has(.b24-dsf41c) .btn-primary:hover {+  background: #0c8f5b;+  border-color: #0c8f5b;+  color: #fff !important;+}++/* ---- 1. Hero ---- */+.b24-dsf41c.b24-dsf41c-hero { padding-top: 2.5rem; padding-bottom: 1.75rem; }+.b24-dsf41c .b24-dsf41c-hero__cta {+  display: flex;+  flex-wrap: wrap;+  align-items: center;+  gap: 0.4rem 1.2rem;+  margin-top: 1.4rem;+}+.b24-dsf41c .b24-dsf41c-hero__cta-note {+  font-size: 0.85rem;+  line-height: 1.45;+  color: #656f6b;+  margin: 0;+  max-width: 32ch;+}+.b24-dsf41c .b24-dsf41c-hero__price {+  font-size: 0.9rem;+  line-height: 1.5;+  color: #222;+  margin: 1rem 0 0;+  max-width: 62ch;+}+.b24-dsf41c .b24-dsf41c-stats {+  list-style: none;+  display: flex;+  flex-wrap: wrap;+  gap: 1.4rem;+  margin: 1.4rem 0 0;+  padding: 1rem 0 0;+  border-top: 1px solid #e3eeec;+}+.b24-dsf41c .b24-dsf41c-stats__item {+  display: flex;+  flex-direction: column;+  min-width: 7rem;+}+.b24-dsf41c .b24-dsf41c-stats__item strong {+  font-size: 1.4rem;+  line-height: 1.15;+  font-weight: 700;+  color: #0a7d4f;+}+.b24-dsf41c .b24-dsf41c-stats__item span {+  font-size: 0.8rem;+  line-height: 1.35;+  color: #656f6b;+}+.b24-dsf41c .b24-dsf41c-hero__media .b24-dsf41c-img { border-radius: 16px; }++/* ---- 2. Боли ---- */+.b24-dsf41c.b24-dsf41c-pains { padding-top: 2.75rem; padding-bottom: 3rem; }+.b24-dsf41c .b24-dsf41c-pains__list {+  list-style: none;+  padding: 0;+  margin: 0;+  display: grid;+  grid-template-columns: repeat(2, minmax(0, 1fr));+  gap: 1.1rem 1.6rem;+}+.b24-dsf41c .b24-dsf41c-pains__item { display: flex; gap: 0.75rem; align-items: flex-start; }+.b24-dsf41c .b24-dsf41c-pains__num {+  flex: 0 0 auto;+  width: 1.9rem;+  height: 1.9rem;+  border-radius: 50%;+  border: 1px solid #b9d8d1;+  color: #066e6e;+  font-size: 0.85rem;+  font-weight: 700;+  display: flex;+  align-items: center;+  justify-content: center;+  background: #fff;+  margin-top: 0.1rem;+}++/* ---- 3. Механики ---- */+.b24-dsf41c.b24-dsf41c-mech { padding-top: 3rem; padding-bottom: 3.25rem; }+.b24-dsf41c .b24-dsf41c-mech__head { margin-bottom: 2rem; }+.b24-dsf41c .b24-dsf41c-card {+  height: 100%;+  background: #fff;+  border: 1px solid #dbe9e6;+  border-radius: 16px;+  padding: 1.5rem 1.4rem;+}+.b24-dsf41c .b24-dsf41c-card__title {+  font-size: 1.05rem;+  line-height: 1.35;+  font-weight: 700;+  color: #222;+  margin-bottom: 0.5rem;+}+.b24-dsf41c .b24-dsf41c-card__text {+  font-size: 0.95rem;+  line-height: 1.55;+  color: #656f6b;+  margin-bottom: 0;+}++/* ---- 4. Как это выглядит: схемы разделов ---- */+.b24-dsf41c.b24-dsf41c-screens { padding-top: 3rem; padding-bottom: 3.25rem; }+.b24-dsf41c .b24-dsf41c-panels { margin-top: 2rem; }+.b24-dsf41c .b24-dsf41c-panel {+  height: 100%;+  display: flex;+  flex-direction: column;+  background: #fff;+  border: 1px solid #dbe9e6;+  border-radius: 14px;+  padding: 0 0 1.1rem;+  overflow: hidden;+}+.b24-dsf41c .b24-dsf41c-panel__bar {+  display: flex;+  align-items: center;+  gap: 0.6rem;+  padding: 0.6rem 0.9rem;+  background: #f2f8f7;+  border-bottom: 1px solid #e3eeec;+}+.b24-dsf41c .b24-dsf41c-panel__dots { display: inline-flex; gap: 4px; }+.b24-dsf41c .b24-dsf41c-panel__dots i {+  width: 7px;+  height: 7px;+  border-radius: 50%;+  background: #b9d8d1;+  display: block;+}+.b24-dsf41c .b24-dsf41c-panel__route {+  font-size: 0.82rem;+  color: #066e6e;+  background: transparent;+  padding: 0;+  border: 0;+}+.b24-dsf41c .b24-dsf41c-panel__title {+  font-size: 1rem;+  font-weight: 700;+  color: #222;+  margin: 1rem 1.1rem 0.6rem;+}+.b24-dsf41c .b24-dsf41c-panel__rows {+  list-style: none;+  padding: 0 1.1rem;+  margin: 0 0 0.9rem;+  display: grid;+  gap: 0.45rem;+}+.b24-dsf41c .b24-dsf41c-panel__rows li {+  position: relative;+  padding-left: 1rem;+  font-size: 0.88rem;+  line-height: 1.45;+  color: #656f6b;+}+.b24-dsf41c .b24-dsf41c-panel__rows li::before {+  content: "";+  position: absolute;+  left: 0;+  top: 0.55em;+  width: 0.35rem;+  height: 0.35rem;+  border-radius: 50%;+  background: #0a7d4f;+}+.b24-dsf41c .b24-dsf41c-panel__badge {+  margin: auto 1.1rem 0;+  display: inline-block;+  font-size: 0.82rem;+  font-weight: 600;+  line-height: 1.3;+  color: #066e6e;+  background: #e8f4f2;+  border: 1px solid #cfe6e2;+  border-radius: 999px;+  padding: 0.35em 0.8em;+  margin-bottom: 0;+}++/* ---- 5. Неделя ---- */+.b24-dsf41c.b24-dsf41c-week { padding-top: 3rem; padding-bottom: 3.25rem; }+.b24-dsf41c .b24-dsf41c-week__list {+  list-style: none;+  padding: 0;+  margin: 0;+  display: grid;+  gap: 1.2rem;+}+.b24-dsf41c .b24-dsf41c-week__item {+  display: grid;+  grid-template-columns: 5.5rem 1fr;+  gap: 0 1rem;+  padding-bottom: 1.2rem;+  border-bottom: 1px solid #e9eeef;+}+.b24-dsf41c .b24-dsf41c-week__item:last-child { border-bottom: 0; padding-bottom: 0; }+.b24-dsf41c .b24-dsf41c-week__day {+  font-size: 0.8rem;+  font-weight: 700;+  color: #0a7d4f;+  letter-spacing: 0.02em;+  margin: 0.15rem 0 0;+}+.b24-dsf41c .b24-dsf41c-week__body .b24-dsf41c-text { margin-bottom: 0.5rem; }+.b24-dsf41c .b24-dsf41c-week__artifact {+  display: block;+  font-size: 0.88rem;+  line-height: 1.5;+  color: #222;+  background: #f2f8f7;+  border: 1px dashed #b9d8d1;+  border-radius: 10px;+  padding: 0.6rem 0.85rem;+  margin: 0;+}+.b24-dsf41c .b24-dsf41c-week__artifact span {+  display: block;+  font-size: 0.72rem;+  font-weight: 700;+  letter-spacing: 0.04em;+  text-transform: uppercase;+  color: #066e6e;+  margin-bottom: 0.2rem;+}+.b24-dsf41c .b24-dsf41c-figure--sticky { position: sticky; top: 96px; }++/* ---- 6. Цена ---- */+.b24-dsf41c.b24-dsf41c-pricing { padding-top: 3rem; padding-bottom: 3.25rem; }+.b24-dsf41c .b24-dsf41c-tablewrap { margin-top: 1.75rem; }+.b24-dsf41c .b24-dsf41c-price {+  width: 100%;+  border-collapse: collapse;+  font-size: 0.95rem;+  background: #fff;+  border: 1px solid #dbe9e6;+  border-radius: 14px;+  overflow: hidden;+}+.b24-dsf41c .b24-dsf41c-price tbody { background: transparent; }+.b24-dsf41c .b24-dsf41c-price thead th {+  background: #edf6f5;+  color: #222;+  font-weight: 700;+  font-size: 0.85rem;+  text-align: left;+  vertical-align: middle;+  padding: 0.8rem 1rem;+  border-bottom: 1px solid #dbe9e6;+}+.b24-dsf41c .b24-dsf41c-price tbody th,+.b24-dsf41c .b24-dsf41c-price tbody td {+  text-align: left;+  vertical-align: top;+  padding: 0.9rem 1rem;+  border-bottom: 1px solid #e9eeef;+  font-weight: 400;+  color: #656f6b;+  word-break: normal;+  overflow-wrap: normal;+  hyphens: manual;+}+.b24-dsf41c .b24-dsf41c-price tbody th {+  font-weight: 700;+  color: #222;+  font-size: 1rem;+}+.b24-dsf41c .b24-dsf41c-price tbody tr:last-child th,+.b24-dsf41c .b24-dsf41c-price tbody tr:last-child td { border-bottom: 0; }+.b24-dsf41c .b24-dsf41c-price__sum {+  font-weight: 700;+  color: #222;+  font-size: 1.05rem;+  white-space: nowrap;+}+.b24-dsf41c .b24-dsf41c-price__tag {+  display: inline-block;+  margin-top: 0.35rem;+  font-size: 0.7rem;+  font-weight: 600;+  line-height: 1.2;+  color: #fff;+  background: #0a7d4f;+  border-radius: 999px;+  padding: 0.25em 0.7em;+}+.b24-dsf41c .b24-dsf41c-price__row--rec th,+.b24-dsf41c .b24-dsf41c-price__row--rec td { background: #f4fbf8; }+.b24-dsf41c .b24-dsf41c-price__row--rec th { box-shadow: inset 3px 0 0 #0a7d4f; }+.b24-dsf41c .b24-dsf41c-pricing__tail {+  margin-top: 1rem;+  font-size: 0.9rem;+  line-height: 1.55;+  color: #656f6b;+  max-width: 62ch;+}+.b24-dsf41c .b24-dsf41c-vendors { margin-top: 1.75rem; }+.b24-dsf41c .b24-dsf41c-vendor {+  height: 100%;+  background: rgba(255, 255, 255, 0.72);+  border: 1px solid #dbe9e6;+  border-radius: 14px;+  padding: 1.15rem 1.25rem;+}+.b24-dsf41c .b24-dsf41c-vendor__title {+  font-size: 1rem;+  font-weight: 700;+  color: #222;+  margin-bottom: 0.35rem;+}+.b24-dsf41c .b24-dsf41c-vendor__text {+  font-size: 0.92rem;+  line-height: 1.5;+  color: #222;+  margin-bottom: 0.4rem;+}+.b24-dsf41c .b24-dsf41c-vendor__note {+  font-size: 0.85rem;+  line-height: 1.45;+  color: #656f6b;+  margin: 0;+}++/* ---- 7. Доказательства ---- */+.b24-dsf41c.b24-dsf41c-proof { padding-top: 3rem; padding-bottom: 3.25rem; }+.b24-dsf41c .b24-dsf41c-numbers {+  list-style: none;+  padding: 0;+  margin: 0;+  display: grid;+  grid-template-columns: repeat(3, minmax(0, 1fr));+  gap: 1.1rem 1.4rem;+}+.b24-dsf41c .b24-dsf41c-numbers__item { display: flex; flex-direction: column; gap: 0.15rem; }+.b24-dsf41c .b24-dsf41c-numbers__num {+  font-size: 1.55rem;+  line-height: 1.15;+  font-weight: 700;+  color: #0a7d4f;+  white-space: nowrap;+}+.b24-dsf41c .b24-dsf41c-numbers__label {+  font-size: 0.85rem;+  line-height: 1.4;+  color: #656f6b;+}+.b24-dsf41c .b24-dsf41c-reviews {+  margin-top: 1.5rem;+  padding-top: 1.1rem;+  border-top: 1px solid #e9eeef;+}+.b24-dsf41c .b24-dsf41c-reviews__title {+  font-size: 0.8rem;+  font-weight: 700;+  letter-spacing: 0.03em;+  text-transform: uppercase;+  color: #066e6e;+  margin-bottom: 0.4rem;+}+.b24-dsf41c .b24-dsf41c-reviews__list {+  font-size: 0.9rem;+  line-height: 1.6;+  color: #222;+  margin: 0;+}++/* ---- 8. Приманка и форма ---- */+.b24-dsf41c.b24-dsf41c-offer { padding-top: 3rem; padding-bottom: 3.25rem; }+.b24-dsf41c .b24-dsf41c-checklist {+  list-style: none;+  padding: 0;+  margin: 1.25rem 0 0;+  display: grid;+  gap: 0.55rem;+}+.b24-dsf41c .b24-dsf41c-checklist li {+  position: relative;+  padding-left: 1.6rem;+  font-size: 0.97rem;+  line-height: 1.5;+  color: #222;+}+.b24-dsf41c .b24-dsf41c-checklist li::before {+  content: "";+  position: absolute;+  left: 0;+  top: 0.3em;+  width: 0.95rem;+  height: 0.55rem;+  border-left: 2px solid #0a7d4f;+  border-bottom: 2px solid #0a7d4f;+  transform: rotate(-45deg);+}+.b24-dsf41c .b24-dsf41c-figure--sm { max-width: 26rem; margin-top: 1.5rem; }+.b24-dsf41c .b24-dsf41c-formcard {+  background: #fff;+  border: 2px solid #0a7d4f;+  border-radius: 18px;+  padding: 1.6rem 1.6rem 1.4rem;+  box-shadow: 0 12px 32px rgba(16, 185, 129, 0.12);+}+.b24-dsf41c .b24-dsf41c-formcard__title {+  font-size: 1.15rem;+  font-weight: 700;+  color: #222;+  margin-bottom: 1rem;+}+.b24-dsf41c .b24-dsf41c-formcard__embed { min-height: 4rem; }+.b24-dsf41c .b24-dsf41c-formcard__note {+  font-size: 0.88rem;+  line-height: 1.5;+  color: #656f6b;+  margin: 0.9rem 0 0;+}+.b24-dsf41c .b24-dsf41c-formcard__alt {+  font-size: 0.84rem;+  line-height: 1.45;+  color: #066e6e;+  margin: 0.6rem 0 0;+}++/* ---- 9. Возражения + финальный CTA ---- */+.b24-dsf41c.b24-dsf41c-faq { padding-top: 3rem; padding-bottom: 3.25rem; }+.b24-dsf41c .b24-dsf41c-faq__grid { margin-top: 1.75rem; }+.b24-dsf41c .b24-dsf41c-faq__item {+  height: 100%;+  background: #fff;+  border: 1px solid #dbe9e6;+  border-radius: 14px;+  padding: 1.25rem 1.35rem;+}+.b24-dsf41c .b24-dsf41c-faq__q {+  font-size: 1rem;+  line-height: 1.35;+  font-weight: 700;+  color: #222;+  margin-bottom: 0.5rem;+}+.b24-dsf41c .b24-dsf41c-faq__a {+  font-size: 0.94rem;+  line-height: 1.6;+  color: #656f6b;+  margin: 0;+}+.b24-dsf41c .b24-dsf41c-final { margin-top: 2.25rem; }+.b24-dsf41c .b24-dsf41c-final__box {+  background: #fff;+  border: 1px solid #dbe9e6;+  border-radius: 18px;+  padding: 2rem 1.75rem;+  text-align: center;+}+.b24-dsf41c .b24-dsf41c-final__title {+  font-size: 1.6rem;+  line-height: 1.25;+  font-weight: 700;+  color: #222;+  margin-bottom: 0.7rem;+}+.b24-dsf41c .b24-dsf41c-final__text {+  font-size: 1rem;+  line-height: 1.6;+  color: #656f6b;+  max-width: 62ch;+  margin: 0 auto 1.3rem;+}++/* ---- залипающая CTA внизу на мобильном ---- */+.b24-dsf41c-sticky { display: none; }+@media (max-width: 767.98px) {+  body:has(.b24-dsf41c) { padding-bottom: 4.6rem; }+  .b24-dsf41c-sticky {+    display: block;+    position: fixed;+    left: 0;+    right: 0;+    bottom: 0;+    z-index: 1030;+    padding: 0.55rem 0.8rem calc(0.55rem + env(safe-area-inset-bottom));+    background: rgba(255, 255, 255, 0.96);+    border-top: 1px solid #dbe9e6;+    box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.08);+  }+  .b24-dsf41c-sticky__btn {+    display: block;+    width: 100%;+    text-align: center;+    font-size: 1rem;+    padding: 0.75rem 1rem;+    min-height: 44px;+  }+  /* JS-режим: пока CTA героя в кадре, полоса уезжает вниз; без JS — видна всегда */+  .b24-dsf41c-sticky--armed { transition: transform 0.2s ease, opacity 0.2s ease; }+  .b24-dsf41c-sticky--hidden {+    transform: translateY(120%);+    opacity: 0;+    pointer-events: none;+  }+  @media (prefers-reduced-motion: reduce) {+    .b24-dsf41c-sticky--armed { transition: none; }+  }+}++/* ---- планшет ---- */+@media (max-width: 991.98px) {+  .b24-dsf41c .b24-dsf41c-h1 { font-size: 2.15rem; max-width: 30ch; }+  .b24-dsf41c .b24-dsf41c-h2 { font-size: 1.7rem; max-width: none; }+  .b24-dsf41c .b24-dsf41c-hero__text { margin-bottom: 1.5rem; }+  .b24-dsf41c .b24-dsf41c-figure--sticky { position: static; }+  .b24-dsf41c .b24-dsf41c-numbers { grid-template-columns: repeat(2, minmax(0, 1fr)); }+  .b24-dsf41c .b24-dsf41c-hero__media { max-width: 34rem; }+}++/* ---- мобильный 390 ---- */+@media (max-width: 575.98px) {+  .b24-dsf41c.b24-dsf41c-hero { padding-top: 1.5rem; padding-bottom: 1.25rem; }+  .b24-dsf41c .b24-dsf41c-h1 { font-size: 1.8rem; }+  .b24-dsf41c .b24-dsf41c-h2 { font-size: 1.45rem; }+  .b24-dsf41c .b24-dsf41c-lead,+  .b24-dsf41c .b24-dsf41c-lead p,+  .b24-dsf41c .b24-dsf41c-body p { font-size: 1rem; }+  .b24-dsf41c .b24-dsf41c-hero__cta { gap: 0.6rem; }+  .b24-dsf41c .btn.b24-dsf41c-cta {+    display: block;+    width: 100%;+    text-align: center;+    min-height: 48px;+  }+  .b24-dsf41c .b24-dsf41c-hero__cta-note { max-width: none; }+  .b24-dsf41c .b24-dsf41c-stats { gap: 0.9rem 1.2rem; }+  .b24-dsf41c .b24-dsf41c-stats__item { min-width: 6rem; }+  .b24-dsf41c .b24-dsf41c-pains__list { grid-template-columns: 1fr; gap: 1rem; }+  .b24-dsf41c .b24-dsf41c-week__item { grid-template-columns: 1fr; gap: 0.35rem; }+  .b24-dsf41c .b24-dsf41c-numbers { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }+  .b24-dsf41c .b24-dsf41c-numbers__num { font-size: 1.35rem; }+  .b24-dsf41c .b24-dsf41c-formcard { padding: 1.25rem 1.1rem 1.1rem; }+  .b24-dsf41c .b24-dsf41c-final__box { padding: 1.5rem 1.15rem; }+  .b24-dsf41c .b24-dsf41c-final__title { font-size: 1.3rem; }+  /* цена: таблица → карточки */+  .b24-dsf41c .b24-dsf41c-price,+  .b24-dsf41c .b24-dsf41c-price tbody,+  .b24-dsf41c .b24-dsf41c-price tr,+  .b24-dsf41c .b24-dsf41c-price th,+  .b24-dsf41c .b24-dsf41c-price td { display: block; width: auto; }+  .b24-dsf41c .b24-dsf41c-price { border: 0; background: transparent; }+  .b24-dsf41c .b24-dsf41c-price thead { display: none; }+  .b24-dsf41c .b24-dsf41c-price tr {+    background: #fff;+    border: 1px solid #dbe9e6;+    border-radius: 14px;+    padding: 0.9rem 1rem;+    margin-bottom: 0.9rem;+  }+  .b24-dsf41c .b24-dsf41c-price tbody th,+  .b24-dsf41c .b24-dsf41c-price tbody td {+    border: 0;+    padding: 0.15rem 0;+  }+  .b24-dsf41c .b24-dsf41c-price tbody th { padding-bottom: 0.45rem; }+  .b24-dsf41c .b24-dsf41c-price tbody td::before {+    content: attr(data-label) ": ";+    color: #066e6e;+    font-weight: 600;+  }+  .b24-dsf41c .b24-dsf41c-price__row--rec { box-shadow: inset 3px 0 0 #0a7d4f; }+  .b24-dsf41c .b24-dsf41c-price__row--rec th { box-shadow: none; }+}++/* ==========================================================================+   Тёмная тема+   ========================================================================== */+body.dark:has(.b24-dsf41c) p,+body.dark:has(.b24-dsf41c) li,+body.dark:has(.b24-dsf41c) td { color: #b9c7ca; }+body.dark:has(.b24-dsf41c) h1,+body.dark:has(.b24-dsf41c) h2,+body.dark:has(.b24-dsf41c) h3,+body.dark:has(.b24-dsf41c) h4,+body.dark:has(.b24-dsf41c) h5:not(.h5) { color: #f2f2f2; }+body.dark:has(.b24-dsf41c) strong { color: #f2f2f2; }+body.dark:has(.b24-dsf41c) .brand-caption { color: #b9c7ca; }++body.dark .b24-dsf41c .b24-dsf41c-h1,+body.dark .b24-dsf41c .b24-dsf41c-h2,+body.dark .b24-dsf41c .b24-dsf41c-h3 { color: #f2f2f2; }+body.dark .b24-dsf41c .b24-dsf41c-eyebrow,+body.dark .b24-dsf41c .b24-dsf41c-formcard__alt,+body.dark .b24-dsf41c .b24-dsf41c-reviews__title { color: #7fd8cf; }+body.dark .b24-dsf41c .b24-dsf41c-lead,+body.dark .b24-dsf41c .b24-dsf41c-lead p,+body.dark .b24-dsf41c .b24-dsf41c-body,+body.dark .b24-dsf41c .b24-dsf41c-body p,+body.dark .b24-dsf41c .b24-dsf41c-text,+body.dark .b24-dsf41c .b24-dsf41c-note,+body.dark .b24-dsf41c .b24-dsf41c-figcap,+body.dark .b24-dsf41c .b24-dsf41c-hero__cta-note,+body.dark .b24-dsf41c .b24-dsf41c-stats__item span,+body.dark .b24-dsf41c .b24-dsf41c-card__text,+body.dark .b24-dsf41c .b24-dsf41c-panel__rows li,+body.dark .b24-dsf41c .b24-dsf41c-numbers__label,+body.dark .b24-dsf41c .b24-dsf41c-pricing__tail,+body.dark .b24-dsf41c .b24-dsf41c-vendor__note,+body.dark .b24-dsf41c .b24-dsf41c-faq__a,+body.dark .b24-dsf41c .b24-dsf41c-final__text,+body.dark .b24-dsf41c .b24-dsf41c-formcard__note { color: #b9c7ca; }+body.dark .b24-dsf41c .b24-dsf41c-hero__price,+body.dark .b24-dsf41c .b24-dsf41c-week__artifact,+body.dark .b24-dsf41c .b24-dsf41c-reviews__list,+body.dark .b24-dsf41c .b24-dsf41c-checklist li,+body.dark .b24-dsf41c .b24-dsf41c-vendor__text,+body.dark .b24-dsf41c .b24-dsf41c-formcard__title { color: #e6ecef; }++body.dark .b24-dsf41c .b24-dsf41c-img { border-color: #3a4750; background: #1b2229; }+body.dark .b24-dsf41c .b24-dsf41c-card,+body.dark .b24-dsf41c .b24-dsf41c-panel,+body.dark .b24-dsf41c .b24-dsf41c-faq__item,+body.dark .b24-dsf41c .b24-dsf41c-final__box,+body.dark .b24-dsf41c .b24-dsf41c-formcard {+  background: #1b2229;+  border-color: #3a4750;+}+body.dark .b24-dsf41c .b24-dsf41c-vendor {+  background: rgba(27, 34, 41, 0.72);+  border-color: #3a4750;+}+body.dark .b24-dsf41c .b24-dsf41c-card__title,+body.dark .b24-dsf41c .b24-dsf41c-panel__title,+body.dark .b24-dsf41c .b24-dsf41c-faq__q,+body.dark .b24-dsf41c .b24-dsf41c-final__title,+body.dark .b24-dsf41c .b24-dsf41c-vendor__title { color: #f2f2f2; }+body.dark .b24-dsf41c .b24-dsf41c-panel__bar { background: #22303a; border-bottom-color: #3a4750; }+body.dark .b24-dsf41c .b24-dsf41c-panel__dots i { background: #4b5c58; }+body.dark .b24-dsf41c .b24-dsf41c-panel__route { color: #7fd8cf; }+body.dark .b24-dsf41c .b24-dsf41c-panel__badge {+  color: #9fd8d3;+  background: #22303a;+  border-color: #4b5c58;+}+body.dark .b24-dsf41c .b24-dsf41c-stats { border-top-color: #333f48; }+body.dark .b24-dsf41c .b24-dsf41c-stats__item strong,+body.dark .b24-dsf41c .b24-dsf41c-numbers__num,+body.dark .b24-dsf41c .b24-dsf41c-week__day { color: #2ed3a7; }+body.dark .b24-dsf41c .b24-dsf41c-pains__num {+  background: #1b2229;+  border-color: #4b5c58;+  color: #7fd8cf;+}+body.dark .b24-dsf41c .b24-dsf41c-week__item { border-bottom-color: #2f3a44; }+body.dark .b24-dsf41c .b24-dsf41c-week__artifact {+  background: #22303a;+  border-color: #4b5c58;+}+body.dark .b24-dsf41c .b24-dsf41c-week__artifact span { color: #7fd8cf; }+body.dark .b24-dsf41c .b24-dsf41c-reviews { border-top-color: #2f3a44; }++/* таблица цен */+body.dark .b24-dsf41c .b24-dsf41c-price {+  background: #1b2229;+  border-color: #3a4750;+}+body.dark .b24-dsf41c .b24-dsf41c-price thead th {+  background: #0f2b22;+  color: #f2f2f2;+  border-bottom-color: #1d4a3a;+}+body.dark .b24-dsf41c .b24-dsf41c-price tbody th,+body.dark .b24-dsf41c .b24-dsf41c-price tbody td {+  border-bottom-color: #2a353d;+  color: #cbcbcb;+}+body.dark .b24-dsf41c .b24-dsf41c-price tbody th,+body.dark .b24-dsf41c .b24-dsf41c-price__sum { color: #f2f2f2; }+body.dark .b24-dsf41c .b24-dsf41c-price__row--rec th,+body.dark .b24-dsf41c .b24-dsf41c-price__row--rec td { background: #16281f; }+body.dark .b24-dsf41c .b24-dsf41c-price__tag { background: #2ed3a7; color: #0f2b22; }++/* залипающая CTA */+body.dark .b24-dsf41c-sticky {+  background: rgba(27, 34, 41, 0.96);+  border-top-color: #3a4750;+  box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.4);+}++/* мобильная таблица цен — фон карточек в тёмной теме */+@media (max-width: 575.98px) {+  body.dark .b24-dsf41c .b24-dsf41c-price { background: transparent; }+  body.dark .b24-dsf41c .b24-dsf41c-price tr {+    background: #1b2229;+    border-color: #3a4750;+  }+  body.dark .b24-dsf41c .b24-dsf41c-price tbody td::before { color: #7fd8cf; }+  body.dark .b24-dsf41c .b24-dsf41c-price__row--rec { box-shadow: inset 3px 0 0 #2ed3a7; }+  body.dark .b24-dsf41c .b24-dsf41c-price__row--rec th,+  body.dark .b24-dsf41c .b24-dsf41c-price__row--rec td { background: transparent; }+}++/* ==========================================================================+   Форма Битрикс24 (реальная форма 164: два поля данных — имя и телефон —+   плюс чекбокс согласия 152-ФЗ из конфигурации формы)+   Виджет всегда рисует светлую карточку, поэтому внутри неё возвращаем+   его собственные тёмные на светлом цвета и поднимаем контраст служебных+   подписей/ссылок согласия до AA (4.5:1 на белом).+   ========================================================================== */+.b24-dsf41c .b24-dsf41c-formcard__embed {+  background: #fff;+  border-radius: 12px;+  padding: 0.2rem 0.35rem;+}+.b24-dsf41c .b24-form-header-title { color: #222 !important; }+.b24-dsf41c .b24-form-header-description { color: #656f6b !important; }+/* тёмная тема: у виджета есть свои CSS-переменные — перекрашиваем его целиком,+   а не оставляем белую плиту внутри тёмной карточки */+body.dark .b24-dsf41c .b24-dsf41c-formcard__embed { background: #1b2229; }+body.dark .b24-dsf41c .b24-form-wrapper {+  --b24-background-color: #1b2229;+  --b24-popup-background-color: #1b2229;+  --b24-text-color: #f2f2f2;+  --b24-field-background-color: #22303a;+  --b24-field-focus-background-color: #26333d;+  --b24-field-border-color: #4b5c58;+  --b24-primary-color: #0a7d4f;+  --b24-primary-text-color: #ffffff;+  --b24-primary-hover-color: #0c8f5b;+  background-color: #1b2229 !important;+  color: #f2f2f2 !important;+}+body.dark .b24-dsf41c .b24-form-header-title { color: #f2f2f2 !important; }+body.dark .b24-dsf41c .b24-form-header-description { color: #b9c7ca !important; }+body.dark .b24-dsf41c .b24-form-checkbox-text,+body.dark .b24-dsf41c .b24-form-field-agreement,+body.dark .b24-dsf41c .b24-form-field-agreement * { color: #b9c7ca !important; }+.b24-dsf41c .b24-form-btn,+.b24-dsf41c .b24-form-btn:hover,+.b24-dsf41c .b24-form-btn:focus {+  background: #0a7d4f !important;+  border-color: #0a7d4f !important;+  color: #fff !important;+}+.b24-dsf41c .b24-form-field-agreement-link,+.b24-dsf41c .b24-form-sign-text,+.b24-dsf41c .b24-form-sign-bx { color: #565d66 !important; }+.b24-dsf41c .b24-form-field-agreement,+.b24-dsf41c .b24-form-field-agreement * { color: #4a5158 !important; }++/* таблица цен: тема красит tbody в светлый оттенок — в скоупе это не нужно */+body.dark:has(.b24-dsf41c) .b24-dsf41c .b24-dsf41c-price tbody,+body.dark:has(.b24-dsf41c) .b24-dsf41c .b24-dsf41c-price thead { background: transparent; }++/* ---- типографическая доводка (в конце файла: важно для каскада) ---- */+.b24-dsf41c .b24-dsf41c-h3 { margin-bottom: 0.75rem; }+.b24-dsf41c .b24-dsf41c-vendor__text { max-width: 58ch; }+.b24-dsf41c .b24-dsf41c-stats__item span,+.b24-dsf41c .b24-dsf41c-reviews__title,+.b24-dsf41c .b24-dsf41c-week__day { font-size: 0.82rem; }+.b24-dsf41c .b24-dsf41c-price__tag { font-size: 0.82rem; }+.b24-dsf41c .b24-dsf41c-week__artifact span { font-size: 0.82rem; }+.b24-dsf41c .b24-dsf41c-card__title,+.b24-dsf41c .b24-dsf41c-panel__title,+.b24-dsf41c .b24-dsf41c-faq__q,+.b24-dsf41c .b24-dsf41c-vendor__title { margin-bottom: 0.75rem; }+body.dark .b24-dsf41c .b24-form-sign-text,+body.dark .b24-dsf41c .b24-form-sign-bx { color: #b9c7ca !important; }+body.dark .b24-dsf41c .b24-form-sign-24 { color: #7fd8cf !important; }+body.dark .b24-dsf41c .b24-form-sign-abuse-link { color: #b9c7ca !important; }
assets/scss/custom.scss +1 −0
diff --git a/assets/scss/custom.scss b/assets/scss/custom.scssindex ffaf1dd..d02c351 100644--- a/assets/scss/custom.scss+++ b/assets/scss/custom.scss@@ -1576,3 +1576,4 @@ h1.blog-post-title { }  @import 'aiad';+@import 'b24dsf41c';
content/russian/service/deployment/index.md +255 −2
diff --git a/content/russian/service/deployment/index.md b/content/russian/service/deployment/index.mdindex 15a5606..728f2ba 100644--- a/content/russian/service/deployment/index.md+++ b/content/russian/service/deployment/index.md@@ -1,8 +1,8 @@ --- date: "2021-07-14" draft: false-title: "Внедрение Битрикс24 под ключ от 19 900р"-description: "Настраиваем CRM и бизнес-процессы"+title: "Готовый AI-отдел продаж в Битрикс24 — за неделю"+description: "Включаем AI Советник в Битрикс24: распределение лидов, клиент 360°, контроль недозвонов, разбор звонков и переписки, дашборды РОПа. Неделя работ от 45 000 ₽; лицензии Битрикс24, подписка AI Советника и Wappi — по ценам вендоров, без наценки." icon: "fas fa-users"  # fontawesome icon pack : https://fontawesome.com/icons/ layout : "single" @@ -268,4 +268,257 @@ cta:     link : "contact_form/"  ++######################### B24 VARIANT dsf41c: AI-отдел продаж #####################+b24_variant: "dsf41c"++b24:+  model: "DeepSeek V4.1-Flash (official)"++  hero:+    eyebrow: "AI Советник + Битрикс24 + Wappi — один контур"+    title: "Готовый AI-отдел продаж в Битрикс24 — за неделю"+    lead: |-+      AI Советник уже работает внутри портала: распределяет лиды, ведёт клиента 360°, ловит недозвоны,+      разбирает переписку и звонки, ставит задачи менеджеру. Мы включаем его за две минуты из Маркетплейса+      и доводим до него портал: воронки, поля, каналы, дашборды. Это не «настройка CRM» — это запуск+      работающего отдела продаж.+    cta_label: "Забрать буклет и расчёт"+    cta_note: "PDF «AI-отдел продаж за 1 день» + 5 писем мини-курса + расчёт под вашу команду. Спрашиваем имя и телефон — без компании и должности."+    price_note: "Работы — от 45 000 ₽, пакет «AI-отдел продаж» за неделю — 95 000 ₽. Лицензии Битрикс24, подписка AI Советника и Wappi — по ценам вендоров, без наценки."+    img:+      light: "images/service/b24/hero.png"+      dark: "images/service/b24/hero-dark.png"+      alt: "Один контур продаж: мессенджер, лид, AI-разбор в карточке Битрикс24 и задача менеджеру"+      caption: "Канал → лид → AI-разбор → задача менеджеру → дашборд руководителя"+    stats:+      - num: "430"+        label: "установок AI Советника"+      - num: "5,0"+        label: "рейтинг, 19 отзывов"+      - num: "31"+        label: "приложение в Маркетплейсе"+      - num: "567"+        label: "проектов автоматизации"++  pains:+    title: "Портал куплен — продаж не прибавилось"+    lead: "Так выглядит внедрение, которое остановилось на «лицензия оплачена, воронка нарисована»."+    items:+      - title: "Лиды падают в общий котёл"+        text: "Сильный менеджер берёт больше, слабый не берёт ничего. Кто обработал лид — видно только по памяти."+      - title: "Клиент виден кусками"+        text: "Переписка в WhatsApp, звонок в телефонии, договорённости — в голове менеджера. В карточке пусто."+      - title: "«Нет связи» — самая дорогая стадия"+        text: "Повторных попыток нет, лид умирает в стадии «Нет связи», а деньги за него уже заплачены."+      - title: "Зависшие сделки никто не возвращает"+        text: "Воронка растёт, конверсия падает: сделка без контакта 30+ дней числится «в работе»."+      - title: "РОП узнаёт о проблеме в конце месяца"+        text: "Отчёт показывает, что было. Что делать сегодня — из отчёта не следует."+      - title: "Непонятно, почему сделка не закрылась"+        text: "Комментарии не заполнены, звонки не разобраны, возражения клиента нигде не зафиксированы."+    img:+      light: "images/service/b24/pains.png"+      dark: "images/service/b24/pains-dark.png"+      alt: "Разрозненные каналы и пустая воронка: лиды теряются между мессенджером, звонком и CRM"+      caption: "Шесть мест, где лид уходит из портала"++  mechanics:+    title: "Что вы получаете: шесть механик внутри карточки"+    lead: |-+      Не «ИИ-консультант в отдельном окне», а действия в вашем Битрикс24. Ниже — то, что уже включено+      в приложение AI Советник, без внешних скриптов и доработок.+    img:+      light: "images/service/b24/ai.png"+      dark: "images/service/b24/ai-dark.png"+      alt: "AI Советник внутри карточки Битрикс24: разбор переписки, поля анализа и задача менеджеру"+      caption: "AI Советник — приложение в Маркетплейсе Битрикс24, версия 2 от 13.04.2026"+    items:+      - title: "Распределение лидов и AI-маршрутизация"+        text: "Мастер-переключатели воронки: распределение, дедупликация, попытки связи, дайджест. AI выбирает направление сделки, профили квалификации работают по полю и значению."+      - title: "Контроль недозвонов"+        text: "Повторные попытки связи по графику — по умолчанию 1, 5, 24 и 72 часа от последнего контакта; профиль переопределяет. Лид в «Нет связи» больше не умирает молча."+      - title: "Клиент 360° в карточке"+        text: "11 полей UF_CRM_AIROP24_* на лиде и сделке: вероятность договора, качество коммуникации, нарушения сценария, «требует внимания руководителя», среднее время ответа клиента и сотрудника."+      - title: "Разбор переписки и звонков"+        text: "Профиль анализа привязан к направлению бизнеса и стадиям: учитываются чаты, расшифровки звонков, задачи, комментарии и дела. Без профиля — стандартный анализ: кто клиент, что мешает, о чём договорились."+      - title: "Дашборды РОПа и менеджера"+        text: "Сигналы «требуют внимания», приоритетные задачи менеджера, чаты без ответа, просроченные коммуникации, конверсия в качественные и суммы продаж — день, неделя, месяц. Дайджест приходит по расписанию."+      - title: "Чат-бот и возврат зависших"+        text: "Бот отвечает по профилю для сделок и лидов, руководитель видит статусы чатов. Зависшие сделки попадают в список с причиной: «просрочка до 30», «просрочка 30–90»."++  screens:+    title: "Как это выглядит"+    lead: |-+      Три раздела приложения — по фактическим маршрутам интерфейса. Схемы показывают структуру; данные+      вашего портала мы не публикуем.+    panels:+      - route: "/dashboard/supervisor"+        title: "Дашборд руководителя"+        rows:+          - "Входящие лиды и конверсия в качественные"+          - "Сумма продаж по направлениям"+          - "Разрез по менеджерам и профилям продаж"+          - "Интервалы: день / неделя / месяц / год"+        badge: "Сигналы: «требует внимания руководителя» и «ответственного»"+      - route: "/crm-control-profiles"+        title: "CRM-контроль воронки"+        rows:+          - "Распределение лидов и дедупликация"+          - "AI-выбор направления сделки"+          - "Попытки связи: 1 → 5 → 24 → 72 часа"+          - "Дайджест и профили квалификации"+        badge: "мастер-переключатели: 4"+      - route: "UF_CRM_AIROP24_*"+        title: "Поля AI в карточке"+        rows:+          - "Вероятность заключения договора"+          - "Качество коммуникации"+          - "Рекомендация AI и нарушения сценария"+          - "«Требует внимания руководителя» — отдельным флагом"+        badge: "11 полей в лиде и сделке"+    img:+      light: "images/service/b24/control.png"+      dark: "images/service/b24/control-dark.png"+      alt: "Панель контроля воронки: распределение лидов, попытки связи и сигналы для руководителя"+      caption: "Панель контроля: распределение, попытки связи, сигналы РОПу"++  week:+    title: "Неделя по дням — с артефактом каждого дня"+    lead: "Срок обещаем не «в среднем»: в конце каждого дня есть результат, который можно открыть в портале."+    steps:+      - day: "День 1"+        title: "Портал и лиды"+        text: "Доступы, права, источники, дедупликация."+        artifact: "Лиды падают в одну воронку, дубли склеены, ответственный назначен."+      - day: "День 2–3"+        title: "Воронки и роботы"+        text: "Стадии, обязательные поля, задачи и напоминания, контроль недозвонов."+        artifact: "Сделка не висит без следующего шага — робот ставит задачу."+      - day: "День 4"+        title: "AI Советник"+        text: "Установка из Маркетплейса (2 минуты), профиль анализа, распределение, попытки связи, дашборд РОПа."+        artifact: "11 полей в карточке заполняются, сигналы идут в дашборд."+      - day: "День 5"+        title: "Каналы"+        text: "Wappi на WhatsApp, телефония, чат на сайте — каждый канал отдельным профилем."+        artifact: "Переписка и звонки видны в карточке, бот отвечает по профилю."+      - day: "День 6–7"+        title: "Обкатка"+        text: "Прогон на ваших сделках, две сессии с менеджерами, правка профилей."+        artifact: "Регламент работы + отчёт «что настроено и что проверить»."+    img:+      light: "images/service/b24/funnel.png"+      dark: "images/service/b24/funnel-dark.png"+      alt: "Воронка продаж с роботами и задачами на каждом этапе"+      caption: "Каждый день недели заканчивается работающим участком воронки"++  pricing:+    title: "Цена: работы, лицензии и подписки — тремя строками"+    lead: |-+      Мы не наценяем лицензии вендора. Ниже — что вы платите нам за работы, а что — Битрикс24,+      AI Советнику и Wappi напрямую.+    packages:+      - name: "Старт: контур на одном канале"+        includes: "Портал, одна воронка, поля и права, базовая настройка AI Советника, один канал"+        term: "3–4 дня"+        price: "45 000 ₽"+        recommended: false+      - name: "AI-отдел продаж"+        includes: "Три воронки, роботы и контроль недозвонов, дашборды РОПа, чат-бот, три канала, две сессии обучения"+        term: "7 дней"+        price: "95 000 ₽"+        recommended: true+      - name: "Контур под ключ"+        includes: "Коробка или миграция, все каналы, обкатка, регламенты, два месяца сопровождения"+        term: "от 10 дней"+        price: "189 000 ₽"+        recommended: false+    vendors:+      - title: "Битрикс24, облако"+        text: "Базовый 2 490 ₽/мес, Стандартный 6 990 ₽/мес; при оплате за год −20%."+        note: "Подписка, платится вендору"+      - title: "Битрикс24, коробка"+        text: "CRM 59 000 ₽, «Корпоративный портал 50» — 159 000 ₽. Срочная лицензия на 12 месяцев; продление 30% (льготное) или 100% (стандартное)."+        note: "Без продления отключаются Маркетплейс и REST"+      - title: "AI Советник"+        text: "Пульсар — в подписке Битрикс24; Метеор 990, Луч 4 990, Туманность 9 990, Вселенная 24 990 ₽/мес."+        note: "Тарифы отличаются лимитом анализов и приоритетом модели"+      - title: "Wappi, WhatsApp Полный"+        text: "1 690 ₽/мес за профиль, 1 350 ₽/мес при оплате за 12 месяцев. Пробный период — 5 дней."+        note: "Единственный тариф с готовой интеграцией с Битрикс24"+    tail: |-+      Не входит в пакеты: доработки «под себя» — сметой, по ставке 3 850 ₽/час. Тариф «Базовый» у Wappi+      дешевле, но интеграции с Битрикс24 в нём нет — на нём связка не заработает.+    img:+      light: "images/service/b24/finance.png"+      dark: "images/service/b24/finance-dark.png"+      alt: "Смета контура продаж: работы, лицензии и подписки отдельными строками"+      caption: "Работы, лицензии, подписки — три отдельные строки, без наценки"++  proof:+    title: "Что можно проверить, не веря на слово"+    lead: "Только счётчики, которые открываются на странице приложения в Маркетплейсе или считаются по нашей CRM."+    numbers:+      - num: "430"+        label: "установок AI Советника в Маркетплейсе"+      - num: "5,0 / 19"+        label: "рейтинг и число отзывов, все — 5 звёзд"+      - num: "31"+        label: "приложение лаборатории в Маркетплейсе"+      - num: "567"+        label: "реализованных проектов автоматизации"+      - num: "38 000 ₽"+        label: "медианный чек проекта (крупнейший — 8,6 млн ₽)"+      - num: "50 из 137"+        label: "клиентов вернулись со вторым проектом"+    reviews_title: "Отзывы в Маркетплейсе"+    reviews: "Дарья С. — 28.09.2026 · Динара — 02.09.2026 · Дауд — 01.09.2026 · Ivanka — 22.07.2026 · Айдар — 08.07.2026 · Илья — 05.06.2026 · Константин П. — 10.04.2026 · Татьяна З. — 01.04.2026"+    footnote: |-+      Данные Маркетплейса — на 25.10.2026. Агрегаты по проектам — из CRM лаборатории: 567 проектов в воронке+      автоматизации, медиана 38 000 ₽ по 536 договорам с суммой.+    img:+      light: "images/service/b24/team.png"+      dark: "images/service/b24/team-dark.png"+      alt: "Команда и руководитель смотрят на дашборд продаж"+      caption: "Считаем не выручку, а проекты: 567 дошли до договора"++  lead:+    title: "Забрать буклет «AI-отдел продаж за 1 день»"+    text: |-+      В буклете: установка AI Советника за 2 минуты, настройка распределения лидов, 360°-карточка,+      контроль недозвонов, дашборды, база знаний и чат-бот, возврат зависших, подключение Wappi,+      чек-лист «что сделать за день» и тарифы. Плюс 5 писем мини-курса и расчёт под вашу команду.+    bullets:+      - "PDF-план на один день — без «созвонимся и расскажем»"+      - "5 писем мини-курса «Система продаж в Битрикс24 за 5 шагов»"+      - "Расчёт стоимости AI-отдела под вашу команду"+    note: "Пришлём PDF и расчёт в течение рабочего дня. Спрашиваем только имя и телефон."+    secondary: "Хотите сначала посмотреть приложение? Демо AI Советника — 14 дней в вашем портале."+    img:+      light: "images/service/b24/course.png"+      dark: "images/service/b24/course-dark.png"+      alt: "План развёртывания AI-отдела продаж на один день"+      caption: "Буклет: 12 страниц, чек-лист и тарифы"++  faq:+    title: "Возражения, которые слышим чаще всего"+    items:+      - q: "«Дорого»"+        a: "Работы — от 45 000 ₽; пакет «AI-отдел продаж» на неделю — 95 000 ₽. Медиана наших проектов — 38 000 ₽. Подписка AI Советника начинается с 990 ₽/мес, тариф «Пульсар» уже входит в подписку Битрикс24. Сравните это со стоимостью лидов, которые сейчас умирают в «Нет связи»."+      - q: "«Сами настроим»"+        a: "Можно — буклет даёт план на один день. Разница в том, что профили анализа, маршрутизация и попытки связи требуют обкатки на ваших сделках. У нас 31 приложение и 567 проектов автоматизации; за неделю мы проходим путь, который команда проходит месяцами."+      - q: "«У нас своя CRM»"+        a: "AI Советник работает в Битрикс24. Если у вас amoCRM или самописная система, мы честно скажем, что даст переезд, а что нет; миграцию делаем отдельным этапом со сметой."+      - q: "«Сотрудники не будут пользоваться»"+        a: "Нового окна нет: всё в карточке, задачах и чатах Битрикс24. Менеджер видит свои приоритетные задачи, руководитель — чаты без ответа и сделки «требуют внимания». Обучение — две сессии на первой неделе."+      - q: "«Это точно ИИ, а не скрипт?»"+        a: "В карточке 11 полей с результатом анализа: вероятность договора, качество коммуникации, нарушения сценария, рекомендация AI. Анализ идёт по переписке и расшифровкам звонков, профиль настраивается по направлению и стадиям. В отладочном режиме видно рассуждение бота: писать, не писать или звать менеджера."+      - q: "«А если не заработает?»"+        a: "Неделя разбита на артефакты: каждый день вы видите работающий участок воронки, а не «ведём работу». Если после первого дня станет ясно, что связка не подходит, — останавливаемся и вы платите только за сделанное."+    cta:+      title: "Начнём с бесплатного аудита портала"+      text: "60 минут: смотрим воронку, поля, распределение лидов и что уже установлено. По итогам — план на неделю и смета. Без аудита тоже можно: буклет и расчёт."+      button: "Забрать буклет и расчёт"+ ---
layouts/partials/b24/dsf41c/faq.html +26 −0
diff --git a/layouts/partials/b24/dsf41c/faq.html b/layouts/partials/b24/dsf41c/faq.htmlnew file mode 100644index 0000000..e362d5d--- /dev/null+++ b/layouts/partials/b24/dsf41c/faq.html@@ -0,0 +1,26 @@+{{- /* b24/dsf41c/faq.html — возражения (6) + финальный CTA с риск-реверсом. */ -}}+{{- $f := . -}}+<section class="section b24-dsf41c b24-dsf41c-faq bg-light">+  <div class="container">+    <h2 class="b24-dsf41c-h2">{{ $f.title }}</h2>+    <div class="row g-4 b24-dsf41c-faq__grid">+      {{- range $f.items }}+      <div class="col-lg-6">+        <article class="b24-dsf41c-faq__item">+          <h3 class="b24-dsf41c-faq__q">{{ .q }}</h3>+          <p class="b24-dsf41c-faq__a">{{ .a }}</p>+        </article>+      </div>+      {{- end }}+    </div>+    {{- with $f.cta }}+    <div class="b24-dsf41c-final">+      <div class="b24-dsf41c-final__box">+        <h2 class="b24-dsf41c-final__title">{{ .title }}</h2>+        <p class="b24-dsf41c-final__text">{{ .text }}</p>+        <a href="#b24-lead" class="btn btn-primary b24-dsf41c-cta">{{ .button }}</a>+      </div>+    </div>+    {{- end }}+  </div>+</section>
layouts/partials/b24/dsf41c/hero.html +34 −0
diff --git a/layouts/partials/b24/dsf41c/hero.html b/layouts/partials/b24/dsf41c/hero.htmlnew file mode 100644index 0000000..05d7eab--- /dev/null+++ b/layouts/partials/b24/dsf41c/hero.html@@ -0,0 +1,34 @@+{{- /* b24/dsf41c/hero.html — первый экран: H1, оффер, один primary CTA, цена мелкой строкой,+   полоса проверяемых цифр, иллюстрация hero + dark. */ -}}+{{- $h := . -}}+<section class="section b24-dsf41c b24-dsf41c-hero">+  <div class="container">+    <div class="row align-items-center g-4 g-lg-5">+      <div class="col-lg-7 b24-dsf41c-hero__text">+        <p class="b24-dsf41c-eyebrow">{{ $h.eyebrow }}</p>+        <h1 class="b24-dsf41c-h1">{{ $h.title }}</h1>+        <div class="b24-dsf41c-lead">{{ $h.lead | markdownify }}</div>+        <div class="b24-dsf41c-hero__cta">+          <a href="#b24-lead" class="btn btn-primary b24-dsf41c-cta">{{ $h.cta_label }}</a>+          <p class="b24-dsf41c-hero__cta-note">{{ $h.cta_note }}</p>+        </div>+        <p class="b24-dsf41c-hero__price">{{ $h.price_note }}</p>+        {{- with $h.stats }}+        <ul class="b24-dsf41c-stats">+          {{- range . }}+          <li class="b24-dsf41c-stats__item"><strong>{{ .num }}</strong><span>{{ .label }}</span></li>+          {{- end }}+        </ul>+        {{- end }}+      </div>+      <div class="col-lg-5 b24-dsf41c-hero__media">+        {{- with $h.img }}+        <figure class="b24-dsf41c-figure">+          {{ partial "b24/dsf41c/img.html" (dict "light" .light "dark" .dark "alt" .alt "width" 1100 "loading" "eager") }}+          {{- with .caption }}<figcaption class="b24-dsf41c-figcap">{{ . }}</figcaption>{{ end }}+        </figure>+        {{- end }}+      </div>+    </div>+  </div>+</section>
layouts/partials/b24/dsf41c/img.html +18 −0
diff --git a/layouts/partials/b24/dsf41c/img.html b/layouts/partials/b24/dsf41c/img.htmlnew file mode 100644index 0000000..27bb8c9--- /dev/null+++ b/layouts/partials/b24/dsf41c/img.html@@ -0,0 +1,18 @@+{{- /* b24/dsf41c/img.html — иллюстрация в двух темах.+   Ключи: light, dark — пути в assets/ (dark-дубль обязателен для тёмной темы);+          alt, width (ресайз в px), loading, class.+   alt у обоих <img> одинаковый: скрытый display:none не попадает в дерево доступности,+   а тёмный дубль не должен остаться без подписи. */ -}}+{{- $d := . -}}+{{- $alt := $d.alt | default "" -}}+{{- $w := $d.width | default 1000 -}}+{{- $cls := $d.class | default "" -}}+{{- $loading := $d.loading | default "lazy" -}}+{{- with resources.Get $d.light -}}+  {{- $l := .Resize (printf "%dx webp q82" $w) -}}+  <img class="b24-dsf41c-img b24-dsf41c-img--light {{ $cls }}" src="{{ $l.RelPermalink }}" alt="{{ $alt }}" width="{{ $l.Width }}" height="{{ $l.Height }}" loading="{{ $loading }}" decoding="async">+{{- end -}}+{{- with resources.Get $d.dark -}}+  {{- $r := .Resize (printf "%dx webp q82" $w) -}}+  <img class="b24-dsf41c-img b24-dsf41c-img--dark {{ $cls }}" src="{{ $r.RelPermalink }}" alt="{{ $alt }}" width="{{ $r.Width }}" height="{{ $r.Height }}" loading="{{ $loading }}" decoding="async">+{{- end -}}
layouts/partials/b24/dsf41c/lead.html +36 −0
diff --git a/layouts/partials/b24/dsf41c/lead.html b/layouts/partials/b24/dsf41c/lead.htmlnew file mode 100644index 0000000..d18fd3d--- /dev/null+++ b/layouts/partials/b24/dsf41c/lead.html@@ -0,0 +1,36 @@+{{- /* b24/dsf41c/lead.html — приманка: буклет + расчёт. Форма — живая форма Битрикс24 (164).+   Полей данных два — Имя и Телефон; третий видимый контрол — чекбокс согласия на обработку+   персональных данных (152-ФЗ), он приходит из конфигурации формы в портале и из разметки+   не убирается. Поэтому в копирайте не пишем «два поля», а называем состав прямым текстом. */ -}}+{{- $l := . -}}+<section class="section b24-dsf41c b24-dsf41c-offer" id="b24-lead">+  <div class="container">+    <div class="row g-4 g-lg-5 align-items-start">+      <div class="col-lg-6">+        <h2 class="b24-dsf41c-h2">{{ $l.title }}</h2>+        <div class="b24-dsf41c-body">{{ $l.text | markdownify }}</div>+        <ul class="b24-dsf41c-checklist">+          {{- range $l.bullets }}+          <li>{{ . }}</li>+          {{- end }}+        </ul>+        {{- with $l.img }}+        <figure class="b24-dsf41c-figure b24-dsf41c-figure--sm">+          {{ partial "b24/dsf41c/img.html" (dict "light" .light "dark" .dark "alt" .alt "width" 800) }}+          {{- with .caption }}<figcaption class="b24-dsf41c-figcap">{{ . }}</figcaption>{{ end }}+        </figure>+        {{- end }}+      </div>+      <div class="col-lg-6">+        <div class="b24-dsf41c-formcard">+          <p class="b24-dsf41c-formcard__title">Имя и телефон — и PDF с расчётом у вас</p>+          <div class="b24-dsf41c-formcard__embed">+            <script data-b24-form="inline/164/uefkod" data-skip-moving="true">(function(w,d,u){var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/180000|0);var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);})(window,document,'https://cdn-ru.bitrix24.ru/b13522222/crm/form/loader_164.js');</script>+          </div>+          <p class="b24-dsf41c-formcard__note">{{ $l.note }}</p>+          <p class="b24-dsf41c-formcard__alt">{{ $l.secondary }}</p>+        </div>+      </div>+    </div>+  </div>+</section>
layouts/partials/b24/dsf41c/mechanics.html +30 −0
diff --git a/layouts/partials/b24/dsf41c/mechanics.html b/layouts/partials/b24/dsf41c/mechanics.htmlnew file mode 100644index 0000000..e243dc1--- /dev/null+++ b/layouts/partials/b24/dsf41c/mechanics.html@@ -0,0 +1,30 @@+{{- /* b24/dsf41c/mechanics.html — что реально делает AI Советник: 6 механик из карты возможностей. */ -}}+{{- $m := . -}}+<section class="section b24-dsf41c b24-dsf41c-mech">+  <div class="container">+    <div class="row g-4 g-lg-5 align-items-center b24-dsf41c-mech__head">+      <div class="col-lg-7">+        <h2 class="b24-dsf41c-h2">{{ $m.title }}</h2>+        <div class="b24-dsf41c-lead">{{ $m.lead | markdownify }}</div>+      </div>+      <div class="col-lg-5">+        {{- with $m.img }}+        <figure class="b24-dsf41c-figure">+          {{ partial "b24/dsf41c/img.html" (dict "light" .light "dark" .dark "alt" .alt "width" 1000) }}+          {{- with .caption }}<figcaption class="b24-dsf41c-figcap">{{ . }}</figcaption>{{ end }}+        </figure>+        {{- end }}+      </div>+    </div>+    <div class="row g-4 b24-dsf41c-cards">+      {{- range $m.items }}+      <div class="col-lg-4 col-md-6">+        <article class="b24-dsf41c-card">+          <h3 class="b24-dsf41c-card__title">{{ .title }}</h3>+          <p class="b24-dsf41c-card__text">{{ .text }}</p>+        </article>+      </div>+      {{- end }}+    </div>+  </div>+</section>
layouts/partials/b24/dsf41c/page.html +17 −0
diff --git a/layouts/partials/b24/dsf41c/page.html b/layouts/partials/b24/dsf41c/page.htmlnew file mode 100644index 0000000..932b260--- /dev/null+++ b/layouts/partials/b24/dsf41c/page.html@@ -0,0 +1,17 @@+{{- /* b24/dsf41c/page.html — вся страница варианта dsf41c: секции + залипающая мобильная CTA. */ -}}+{{- $b := .Params.b24 -}}+{{ partial "b24/dsf41c/hero.html" $b.hero }}+{{ partial "b24/dsf41c/pains.html" $b.pains }}+{{ partial "b24/dsf41c/mechanics.html" $b.mechanics }}+{{ partial "b24/dsf41c/screens.html" $b.screens }}+{{ partial "b24/dsf41c/week.html" $b.week }}+{{ partial "b24/dsf41c/pricing.html" $b.pricing }}+{{ partial "b24/dsf41c/proof.html" $b.proof }}+{{ partial "b24/dsf41c/lead.html" $b.lead }}+{{ partial "b24/dsf41c/faq.html" $b.faq }}+<div class="b24-dsf41c-sticky" aria-hidden="false">+  <a href="#b24-lead" class="btn btn-primary b24-dsf41c-sticky__btn">{{ $b.hero.cta_label }}</a>+</div>+{{- /* полоса прячется, пока видна CTA героя: иначе на первом мобильном экране два одинаковых призыва */ -}}+{{ $js := resources.Get "js/b24-dsf41c.js" | minify | fingerprint }}+<script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}" defer></script>
layouts/partials/b24/dsf41c/pains.html +31 −0
diff --git a/layouts/partials/b24/dsf41c/pains.html b/layouts/partials/b24/dsf41c/pains.htmlnew file mode 100644index 0000000..a0126f4--- /dev/null+++ b/layouts/partials/b24/dsf41c/pains.html@@ -0,0 +1,31 @@+{{- /* b24/dsf41c/pains.html — «портал куплен и не работает»: 6 узнаваемых признаков + pains-иллюстрация. */ -}}+{{- $p := . -}}+<section class="section b24-dsf41c b24-dsf41c-pains bg-light">+  <div class="container">+    <div class="row g-4 g-lg-5 align-items-start">+      <div class="col-lg-7">+        <h2 class="b24-dsf41c-h2">{{ $p.title }}</h2>+        <p class="b24-dsf41c-lead b24-dsf41c-lead--tight">{{ $p.lead }}</p>+        <ol class="b24-dsf41c-pains__list">+          {{- range $i, $it := $p.items }}+          <li class="b24-dsf41c-pains__item">+            <span class="b24-dsf41c-pains__num">{{ add $i 1 }}</span>+            <div>+              <h3 class="b24-dsf41c-h3">{{ $it.title }}</h3>+              <p class="b24-dsf41c-text">{{ $it.text }}</p>+            </div>+          </li>+          {{- end }}+        </ol>+      </div>+      <div class="col-lg-5">+        {{- with $p.img }}+        <figure class="b24-dsf41c-figure">+          {{ partial "b24/dsf41c/img.html" (dict "light" .light "dark" .dark "alt" .alt "width" 1000) }}+          {{- with .caption }}<figcaption class="b24-dsf41c-figcap">{{ . }}</figcaption>{{ end }}+        </figure>+        {{- end }}+      </div>+    </div>+  </div>+</section>
layouts/partials/b24/dsf41c/pricing.html +58 −0
diff --git a/layouts/partials/b24/dsf41c/pricing.html b/layouts/partials/b24/dsf41c/pricing.htmlnew file mode 100644index 0000000..3332527--- /dev/null+++ b/layouts/partials/b24/dsf41c/pricing.html@@ -0,0 +1,58 @@+{{- /* b24/dsf41c/pricing.html — работы таблицей, лицензии/подписки отдельными строками.+   Ширины колонок задаются на <th>: минификатор Hugo выбрасывает <colgroup>/<col>. */ -}}+{{- $p := . -}}+<section class="section b24-dsf41c b24-dsf41c-pricing bg-light" id="b24-price">+  <div class="container">+    <div class="row g-4 g-lg-5">+      <div class="col-lg-8">+        <h2 class="b24-dsf41c-h2">{{ $p.title }}</h2>+        <div class="b24-dsf41c-lead">{{ $p.lead | markdownify }}</div>+        <div class="b24-dsf41c-tablewrap">+          <table class="b24-dsf41c-price">+            <thead>+              <tr>+                <th scope="col" style="width:29%">Пакет работ</th>+                <th scope="col" style="width:41%">Что входит</th>+                <th scope="col" style="width:13%">Срок</th>+                <th scope="col" style="width:17%">Цена работ</th>+              </tr>+            </thead>+            <tbody>+              {{- range $p.packages }}+              <tr{{ if .recommended }} class="b24-dsf41c-price__row--rec"{{ end }}>+                <th scope="row" data-label="Пакет работ">+                  {{ .name }}+                  {{- if .recommended }}<span class="b24-dsf41c-price__tag">рекомендуем</span>{{ end }}+                </th>+                <td data-label="Что входит">{{ .includes }}</td>+                <td data-label="Срок">{{ .term }}</td>+                <td data-label="Цена работ"><span class="b24-dsf41c-price__sum">{{ .price }}</span></td>+              </tr>+              {{- end }}+            </tbody>+          </table>+        </div>+        <p class="b24-dsf41c-text b24-dsf41c-pricing__tail">{{ $p.tail }}</p>+      </div>+      <div class="col-lg-4">+        {{- with $p.img }}+        <figure class="b24-dsf41c-figure">+          {{ partial "b24/dsf41c/img.html" (dict "light" .light "dark" .dark "alt" .alt "width" 900) }}+          {{- with .caption }}<figcaption class="b24-dsf41c-figcap">{{ . }}</figcaption>{{ end }}+        </figure>+        {{- end }}+      </div>+    </div>+    <div class="row g-4 b24-dsf41c-vendors">+      {{- range $p.vendors }}+      <div class="col-lg-6">+        <article class="b24-dsf41c-vendor">+          <h3 class="b24-dsf41c-vendor__title">{{ .title }}</h3>+          <p class="b24-dsf41c-vendor__text">{{ .text }}</p>+          <p class="b24-dsf41c-vendor__note">{{ .note }}</p>+        </article>+      </div>+      {{- end }}+    </div>+  </div>+</section>
layouts/partials/b24/dsf41c/proof.html +33 −0
diff --git a/layouts/partials/b24/dsf41c/proof.html b/layouts/partials/b24/dsf41c/proof.htmlnew file mode 100644index 0000000..8a97b1e--- /dev/null+++ b/layouts/partials/b24/dsf41c/proof.html@@ -0,0 +1,33 @@+{{- /* b24/dsf41c/proof.html — только проверяемые счётчики + публичные отзывы по именам и датам. */ -}}+{{- $p := . -}}+<section class="section b24-dsf41c b24-dsf41c-proof">+  <div class="container">+    <div class="row g-4 g-lg-5 align-items-center">+      <div class="col-lg-7">+        <h2 class="b24-dsf41c-h2">{{ $p.title }}</h2>+        <p class="b24-dsf41c-lead b24-dsf41c-lead--tight">{{ $p.lead }}</p>+        <ul class="b24-dsf41c-numbers">+          {{- range $p.numbers }}+          <li class="b24-dsf41c-numbers__item">+            <span class="b24-dsf41c-numbers__num">{{ .num }}</span>+            <span class="b24-dsf41c-numbers__label">{{ .label }}</span>+          </li>+          {{- end }}+        </ul>+        <div class="b24-dsf41c-reviews">+          <p class="b24-dsf41c-reviews__title">{{ $p.reviews_title }}</p>+          <p class="b24-dsf41c-reviews__list">{{ $p.reviews }}</p>+        </div>+        <p class="b24-dsf41c-note">{{ $p.footnote }}</p>+      </div>+      <div class="col-lg-5">+        {{- with $p.img }}+        <figure class="b24-dsf41c-figure">+          {{ partial "b24/dsf41c/img.html" (dict "light" .light "dark" .dark "alt" .alt "width" 1000) }}+          {{- with .caption }}<figcaption class="b24-dsf41c-figcap">{{ . }}</figcaption>{{ end }}+        </figure>+        {{- end }}+      </div>+    </div>+  </div>+</section>
layouts/partials/b24/dsf41c/screens.html +40 −0
diff --git a/layouts/partials/b24/dsf41c/screens.html b/layouts/partials/b24/dsf41c/screens.htmlnew file mode 100644index 0000000..d8fe9b3--- /dev/null+++ b/layouts/partials/b24/dsf41c/screens.html@@ -0,0 +1,40 @@+{{- /* b24/dsf41c/screens.html — как это выглядит: три раздела приложения по фактическим маршрутам.+   Это схемы структуры, а не скриншоты данных портала — так и подписано. */ -}}+{{- $s := . -}}+<section class="section b24-dsf41c b24-dsf41c-screens bg-light">+  <div class="container">+    <div class="row g-4 g-lg-5 align-items-center">+      <div class="col-lg-7">+        <h2 class="b24-dsf41c-h2">{{ $s.title }}</h2>+        <div class="b24-dsf41c-lead">{{ $s.lead | markdownify }}</div>+      </div>+      <div class="col-lg-5">+        {{- with $s.img }}+        <figure class="b24-dsf41c-figure">+          {{ partial "b24/dsf41c/img.html" (dict "light" .light "dark" .dark "alt" .alt "width" 900) }}+          {{- with .caption }}<figcaption class="b24-dsf41c-figcap">{{ . }}</figcaption>{{ end }}+        </figure>+        {{- end }}+      </div>+    </div>+    <div class="row g-4 b24-dsf41c-panels">+      {{- range $s.panels }}+      <div class="col-lg-4 col-md-6">+        <article class="b24-dsf41c-panel">+          <div class="b24-dsf41c-panel__bar">+            <span class="b24-dsf41c-panel__dots" aria-hidden="true"><i></i><i></i><i></i></span>+            <code class="b24-dsf41c-panel__route">{{ .route }}</code>+          </div>+          <h3 class="b24-dsf41c-panel__title">{{ .title }}</h3>+          <ul class="b24-dsf41c-panel__rows">+            {{- range .rows }}+            <li>{{ . }}</li>+            {{- end }}+          </ul>+          <p class="b24-dsf41c-panel__badge">{{ .badge }}</p>+        </article>+      </div>+      {{- end }}+    </div>+  </div>+</section>
layouts/partials/b24/dsf41c/week.html +32 −0
diff --git a/layouts/partials/b24/dsf41c/week.html b/layouts/partials/b24/dsf41c/week.htmlnew file mode 100644index 0000000..672aa66--- /dev/null+++ b/layouts/partials/b24/dsf41c/week.html@@ -0,0 +1,32 @@+{{- /* b24/dsf41c/week.html — неделя по дням, у каждого дня свой артефакт. */ -}}+{{- $w := . -}}+<section class="section b24-dsf41c b24-dsf41c-week">+  <div class="container">+    <div class="row g-4 g-lg-5">+      <div class="col-lg-7">+        <h2 class="b24-dsf41c-h2">{{ $w.title }}</h2>+        <p class="b24-dsf41c-lead b24-dsf41c-lead--tight">{{ $w.lead }}</p>+        <ol class="b24-dsf41c-week__list">+          {{- range $w.steps }}+          <li class="b24-dsf41c-week__item">+            <p class="b24-dsf41c-week__day">{{ .day }}</p>+            <div class="b24-dsf41c-week__body">+              <h3 class="b24-dsf41c-h3">{{ .title }}</h3>+              <p class="b24-dsf41c-text">{{ .text }}</p>+              <p class="b24-dsf41c-week__artifact"><span>Артефакт дня</span>{{ .artifact }}</p>+            </div>+          </li>+          {{- end }}+        </ol>+      </div>+      <div class="col-lg-5">+        {{- with $w.img }}+        <figure class="b24-dsf41c-figure b24-dsf41c-figure--sticky">+          {{ partial "b24/dsf41c/img.html" (dict "light" .light "dark" .dark "alt" .alt "width" 1000) }}+          {{- with .caption }}<figcaption class="b24-dsf41c-figcap">{{ . }}</figcaption>{{ end }}+        </figure>+        {{- end }}+      </div>+    </div>+  </div>+</section>
layouts/service/single.html +9 −0
diff --git a/layouts/service/single.html b/layouts/service/single.htmlindex 79f1a90..c1fe08c 100644--- a/layouts/service/single.html+++ b/layouts/service/single.html@@ -4,6 +4,14 @@      Для остальных service-страниц разметка = оригинал темы. Стили V1 — в конце, тоже под $v1. */}} {{ $v1 := .Params.aiad_v1 }} +{{/* Вариант dsf41c (страница /service/deployment/): вся страница собрана из партиалов+     layouts/partials/b24/dsf41c/. Для остальных service-страниц разметка = оригинал темы.+     partners.html вызывается внутри ветки — блок «клиенты» не теряется. */}}+{{ if eq (.Params.b24_variant | default "") "dsf41c" }}+{{ partial "b24/dsf41c/page.html" . }}+{{ partial "partners.html" . }}+{{ else }}+  <!-- banner --> {{ with .Params.banner }} <section class="banner bg-light">@@ -1008,4 +1016,5 @@ <!-- ===== Вариант B: клавиатурная навигация табов (roving tabindex, стрелки/Home/End) ===== --> <script src="{{ $tabs.RelPermalink }}" integrity="{{ $tabs.Data.Integrity }}" defer></script> {{ end }}+{{ end }} {{end}}