dsf41c — DeepSeek V4.1-FlashСравнение с master 3d131f2 · ветка design/conv-dsf41 · c53cab9 fix(page): dsf41c — замечания ревью
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(-)
+21 −0diff --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);+})();
+902 −0diff --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; }
+1 −0diff --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';
+255 −2diff --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: "Забрать буклет и расчёт"+ ---
+26 −0diff --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>
+34 −0diff --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>
+18 −0diff --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 -}}
+36 −0diff --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>
+30 −0diff --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>
+17 −0diff --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>
+31 −0diff --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>
+58 −0diff --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>
+33 −0diff --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>
+40 −0diff --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>
+32 −0diff --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>
+9 −0diff --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}}