diff: opus55c — Opus 5.5

Сравнение с master 3d131f2 · ветка design/conv-opus55 · 8d74899 fix(page): opus55c — замечания ревью (font-size ≥13px, lic a11y, build.log)

файлов (без картинок): 17 открыть страницу ← к витрине
.gitignore                                   |   1 +
 assets/scss/_b24opus55c.scss                 | 286 +++++++++++++++++
 assets/scss/custom.scss                      |   2 +
 content/russian/service/deployment/index.md  | 460 +++++++++++----------------
 layouts/partials/b24/opus55c/final.html      |  22 ++
 layouts/partials/b24/opus55c/hero.html       |  24 ++
 layouts/partials/b24/opus55c/magnet.html     |  27 ++
 layouts/partials/b24/opus55c/modules.html    |  25 ++
 layouts/partials/b24/opus55c/objections.html |  15 +
 layouts/partials/b24/opus55c/page.html       |  14 +
 layouts/partials/b24/opus55c/pains.html      |  18 ++
 layouts/partials/b24/opus55c/pic.html        |   9 +
 layouts/partials/b24/opus55c/pricing.html    |  36 +++
 layouts/partials/b24/opus55c/proof.html      |  14 +
 layouts/partials/b24/opus55c/screens.html    |  46 +++
 layouts/partials/b24/opus55c/week.html       |  25 ++
 layouts/service/single.html                  |   4 +
 17 files changed, 761 insertions(+), 267 deletions(-)
.gitignore +1 −0
diff --git a/.gitignore b/.gitignoreindex cd39788..163b54d 100644--- a/.gitignore+++ b/.gitignore@@ -12,3 +12,4 @@ tmp/ .playwright-mcp .mavis/ .hugo_build.lock+.build.log
assets/scss/_b24opus55c.scss +286 −0
diff --git a/assets/scss/_b24opus55c.scss b/assets/scss/_b24opus55c.scssnew file mode 100644index 0000000..2a0b06d--- /dev/null+++ b/assets/scss/_b24opus55c.scss@@ -0,0 +1,286 @@+/* ==========================================================================+   /service/deployment/ — вариант opus55c «AI-отдел продаж через AI Советник».+   Все селекторы под .b24-opus55c; тёмная тема — body.dark .b24-opus55c.+   Палитра — из ai_adoption (_aiad.scss): #066e6e, #0a7d4f, #edf6f5, #dbe9e6.+   ========================================================================== */+.b24-opus55c {+  --b24o-ink: #222;+  --b24o-text: #4a5552;+  --b24o-muted: #56615e;+  --b24o-accent: #066e6e;+  --b24o-green: #0a7d4f;+  --b24o-surface: #fff;+  --b24o-soft: #edf6f5;+  --b24o-line: #dbe9e6;+  --b24o-shadow: 0 1px 6px rgba(6, 110, 110, .08);+  color: var(--b24o-text);++  .section { padding-top: 4.5rem; padding-bottom: 4.5rem; }+  .bg-light { background: var(--b24o-soft) !important; }++  /* ---- типографика ---- */+  .b24o-eyebrow {+    font-size: .875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;+    color: var(--b24o-accent); margin-bottom: .75rem;+  }+  .b24o-h1 { font-size: 3rem; line-height: 1.12; font-weight: 700; color: var(--b24o-ink); margin-bottom: 1.1rem; }+  .b24o-h2 { font-size: 2rem; line-height: 1.2; font-weight: 700; color: var(--b24o-ink); margin-bottom: .9rem; }+  .b24o-h3 { font-size: 1.15rem; line-height: 1.3; font-weight: 700; color: var(--b24o-ink); margin-bottom: .75rem; }+  .b24o-lead { font-size: 1.125rem; line-height: 1.6; color: var(--b24o-text); max-width: 60ch; margin-bottom: 1.5rem; }+  .b24o-sublead { font-size: 1.05rem; line-height: 1.6; color: var(--b24o-text); max-width: 64ch; margin-bottom: 1.5rem; }+  .b24o-head { text-align: center; margin-bottom: 2.25rem; }+  .b24o-head .b24o-sublead { margin-left: auto; margin-right: auto; }+  .b24o-center { text-align: center; margin: 2rem 0 0; }+  p, li { font-size: 1rem; line-height: 1.6; }++  /* ---- кнопки: штатные .btn, тёмный зелёный ради AA (как на ai_adoption) ---- */+  .btn { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }+  .btn-primary { background: var(--b24o-green); box-shadow: 0 4px 15px rgba(10, 125, 79, .25); }+  .btn-primary:hover, .btn-primary:focus { background: #08663f; }+  .btn-outline-primary { color: var(--b24o-accent); border-color: var(--b24o-accent); }+  .btn-outline-primary:hover { background: var(--b24o-accent); color: #fff; }+  .b24o-textlink {+    color: var(--b24o-accent); font-weight: 600; text-decoration: underline; text-underline-offset: 3px;+    display: inline-flex; align-items: center; min-height: 44px; gap: .3rem;+  }++  /* ---- иллюстрации: светлая/тёмная пара ---- */+  .b24o-pic { display: block; }+  .b24o-pic img { display: block; width: 100%; height: auto; border-radius: 16px; }+  .b24o-pic__dark { display: none !important; }+  .b24o-pic--card img { border: 1px solid var(--b24o-line); box-shadow: var(--b24o-shadow); background: #fff; }+  .b24o-pic--sq img { border-radius: 12px; }++  /* ---- hero ---- */+  .b24o-hero { padding-top: 3rem; padding-bottom: 3rem; }+  .b24o-hero__cta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; margin-bottom: 1.1rem; }+  .b24o-btn-main { padding-left: 1.75rem; padding-right: 1.75rem; font-weight: 700; }+  .b24o-price-line {+    display: flex; gap: .55rem; align-items: baseline; font-size: .95rem; color: var(--b24o-text);+    max-width: 58ch; margin-bottom: 1.25rem; padding: .6rem .9rem; border-radius: 10px;+    background: var(--b24o-surface); border: 1px solid var(--b24o-line);+  }+  .b24o-price-line p { margin: 0; font-size: inherit; }+  .b24o-price-line i { color: var(--b24o-accent); }+  .b24o-price-line strong { color: var(--b24o-ink); }+  .b24o-proofline { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; }+  .b24o-proofline li { font-size: .9rem; color: var(--b24o-muted); }+  .b24o-proofline strong { color: var(--b24o-ink); font-size: 1.05rem; }+  .b24o-hero__media { margin-top: 2rem; }++  /* ---- боли ---- */+  .b24o-pains__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1.5rem; }+  .b24o-pains__list li { display: flex; gap: .7rem; align-items: flex-start; color: var(--b24o-text); }+  .b24o-pains__list i {+    flex: 0 0 1.6rem; height: 1.6rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;+    font-size: .8rem; background: #fde8ea; color: #b42335; margin-top: .1rem;+  }++  /* ---- карточки модулей ---- */+  .b24o-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }+  .b24o-card {+    background: var(--b24o-surface); border: 1px solid var(--b24o-line); border-radius: 12px;+    padding: 1.4rem 1.4rem 1.2rem; box-shadow: var(--b24o-shadow);+  }+  .b24o-card p { margin: 0; color: var(--b24o-text); }+  .b24o-card__icon {+    width: 2.75rem; height: 2.75rem; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center;+    background: var(--b24o-soft); color: var(--b24o-accent); font-size: 1.15rem; margin-bottom: .9rem;+  }++  /* ---- экраны ---- */+  .b24o-screens__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.5rem; align-items: start; }+  .b24o-screens__side { display: grid; gap: 1.5rem; }+  .b24o-mock {+    margin: 0; background: var(--b24o-surface); border: 1px solid var(--b24o-line); border-radius: 12px;+    box-shadow: var(--b24o-shadow); overflow: hidden;+  }+  .b24o-mock figcaption {+    font-size: .9rem; font-weight: 600; color: var(--b24o-accent); padding: .7rem 1.1rem;+    border-top: 1px solid var(--b24o-line); background: var(--b24o-soft);+  }+  .b24o-mock__bar {+    display: flex; align-items: center; gap: .35rem; padding: .55rem .9rem; background: #f4f7f7;+    border-bottom: 1px solid var(--b24o-line);+  }+  .b24o-mock__bar span { width: .6rem; height: .6rem; border-radius: 50%; background: #c9d6d3; }+  .b24o-mock__bar em { font-style: normal; font-size: .85rem; color: var(--b24o-muted); margin-left: .5rem; }+  .b24o-mock__body { padding: 1rem 1.1rem .4rem; }+  .b24o-mock__sect { font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--b24o-accent); margin-bottom: .5rem; }+  .b24o-mock__note { font-size: .85rem; color: var(--b24o-muted); margin: .6rem 0 .5rem; }+  .b24o-fields { margin: 0; }+  .b24o-fields__row { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px dashed var(--b24o-line); }+  .b24o-fields dt { font-weight: 400; font-size: .95rem; color: var(--b24o-text); }+  .b24o-fields dd { margin: 0; font-weight: 600; font-size: .95rem; color: var(--b24o-ink); text-align: right; }+  .b24o-fields dd.is-ok { color: var(--b24o-green); }+  .b24o-fields dd.is-warn { color: #a3470b; }+  .b24o-tasks { list-style: none; margin: 0; padding: .4rem 1.1rem; }+  .b24o-tasks li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px dashed var(--b24o-line); }+  .b24o-tasks li:last-child { border-bottom: 0; }+  .b24o-tasks span { font-weight: 600; color: var(--b24o-ink); font-size: .95rem; }+  .b24o-tasks small { font-size: .85rem; color: var(--b24o-muted); text-align: right; }+  .b24o-sup { display: grid; grid-template-columns: 150px 1fr; gap: 1rem; align-items: center; padding: 1rem 1.1rem; }++  /* ---- галочки ---- */+  .b24o-checks { list-style: none; padding: 0; margin: 0; }+  .b24o-checks li { position: relative; padding-left: 1.6rem; margin-bottom: .5rem; color: var(--b24o-text); }+  .b24o-checks li::before {+    content: "\f00c"; font-family: "Font Awesome 6 Free", "Font Awesome 5 Free"; font-weight: 900;+    position: absolute; left: 0; top: .05rem; color: var(--b24o-green); font-size: .85rem;+  }+}+/* opus55c — часть 2: неделя, цены, доказательства, форма, FAQ, финал, адаптив, dark */+.b24-opus55c {+  /* ---- неделя ---- */+  .b24o-days { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; counter-reset: none; }+  .b24o-day {+    position: relative; background: var(--b24o-surface); border: 1px solid var(--b24o-line); border-radius: 12px;+    padding: 1.2rem 1.1rem 1.1rem; box-shadow: var(--b24o-shadow);+  }+  .b24o-day__num {+    width: 2.25rem; height: 2.25rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;+    background: var(--b24o-accent); color: #fff; font-weight: 700; margin-bottom: .6rem;+  }+  .b24o-day__d { font-size: .85rem; font-weight: 700; color: var(--b24o-accent); margin-bottom: .25rem; text-transform: uppercase; letter-spacing: .05em; }+  .b24o-day__a { font-size: .95rem; margin: 0; color: var(--b24o-text); }+  .b24o-day__lbl { font-weight: 700; color: var(--b24o-ink); }++  /* ---- цены ---- */+  .b24o-plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; align-items: stretch; }+  .b24o-plan {+    background: var(--b24o-surface); border: 1px solid var(--b24o-line); border-radius: 12px;+    padding: 1.5rem 1.4rem; box-shadow: var(--b24o-shadow); display: flex; flex-direction: column;+  }+  .b24o-plan.is-featured { border: 2px solid var(--b24o-green); box-shadow: 0 6px 22px rgba(10, 125, 79, .14); }+  .b24o-plan__sub { font-size: .85rem; font-weight: 700; color: var(--b24o-accent); text-transform: uppercase; letter-spacing: .05em; margin-bottom: .3rem; }+  .b24o-plan.is-featured .b24o-plan__sub { color: var(--b24o-green); }+  .b24o-plan__name { font-size: 1.3rem; font-weight: 700; color: var(--b24o-ink); margin-bottom: .6rem; }+  .b24o-plan__price { font-size: 2rem; font-weight: 700; color: var(--b24o-ink); line-height: 1.1; margin-bottom: .3rem; }+  .b24o-plan__term { font-size: .95rem; color: var(--b24o-muted); margin-bottom: 1rem; }+  .b24o-plan .b24o-checks { margin-top: auto; padding-top: .9rem; border-top: 1px solid var(--b24o-line); }+  .b24o-lic__title { text-align: center; margin-top: 2.5rem; margin-bottom: 1rem; }+  .b24o-lic { border: 1px solid var(--b24o-line); border-radius: 12px; overflow: hidden; background: var(--b24o-surface); }+  .b24o-lic__row { display: grid; grid-template-columns: 1.1fr 1.3fr 2fr; gap: 1rem; padding: .85rem 1.2rem; border-top: 1px solid var(--b24o-line); }+  .b24o-lic__row--head { border-top: 0; background: var(--b24o-soft); }+  .b24o-lic__row--head span { font-size: .85rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--b24o-accent); }+  .b24o-lic__what { font-weight: 700; color: var(--b24o-ink); }+  .b24o-lic__price { font-weight: 600; color: var(--b24o-ink); }+  .b24o-lic__note { font-size: .95rem; color: var(--b24o-text); }++  /* ---- цифры ---- */+  .b24o-stats { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; }+  .b24o-stats li {+    background: var(--b24o-surface); border: 1px solid var(--b24o-line); border-radius: 12px; padding: 1.3rem 1rem;+    text-align: center; display: flex; flex-direction: column; gap: .35rem;+  }+  .b24o-stats strong { font-size: 2rem; line-height: 1.1; color: var(--b24o-accent); }+  .b24o-stats span { font-size: .95rem; color: var(--b24o-text); }++  /* ---- приманка ---- */+  .b24o-magnet__box {+    display: grid; grid-template-columns: 1.2fr 1fr; gap: 2.5rem; align-items: center;+    background: var(--b24o-soft); border: 1px solid var(--b24o-line); border-radius: 16px; padding: 2.5rem;+  }+  .b24o-magnet__form { display: grid; grid-template-columns: 1fr; gap: 1rem; }+  .b24o-pic--magnet { max-width: 220px; margin: 0 auto; }+  .b24o-form {+    background: var(--b24o-surface); border: 1px solid var(--b24o-line); border-radius: 12px; padding: 1.4rem;+    display: flex; flex-direction: column; gap: .4rem; box-shadow: var(--b24o-shadow);+  }+  .b24o-form__title { font-weight: 700; color: var(--b24o-ink); font-size: 1.1rem; margin-bottom: .3rem; }+  .b24o-form label { font-size: .9rem; font-weight: 600; color: var(--b24o-ink); }+  .b24o-form .form-control { min-height: 48px; border: 1px solid #9fb3ae; border-radius: 8px; margin-bottom: .5rem; }+  .b24o-form .btn { margin-top: .3rem; width: 100%; }+  .b24o-form__privacy { font-size: .85rem; color: var(--b24o-muted); margin: .4rem 0 0; }++  /* ---- FAQ ---- */+  .b24o-faq__list { max-width: 860px; margin: 0 auto; display: grid; gap: .75rem; }+  .b24o-faq__item { background: var(--b24o-surface); border: 1px solid var(--b24o-line); border-radius: 12px; }+  .b24o-faq__item summary {+    list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem;+    padding: 1rem 1.3rem; min-height: 56px; font-weight: 700; font-size: 1.05rem; color: var(--b24o-ink);+  }+  .b24o-faq__item summary::-webkit-details-marker { display: none; }+  .b24o-faq__item summary i { color: var(--b24o-accent); transition: transform .2s; }+  .b24o-faq__item[open] summary i { transform: rotate(180deg); }+  .b24o-faq__item p { padding: 0 1.3rem 1.1rem; margin: 0; color: var(--b24o-text); max-width: 72ch; }++  /* ---- финал ---- */+  .b24o-final__box {+    display: grid; grid-template-columns: 1fr 260px; gap: 2rem; align-items: center;+    border: 2px solid var(--b24o-green); border-radius: 16px; padding: 2.25rem 2.5rem; background: var(--b24o-surface);+  }+  .b24o-final__box .b24o-hero__cta { margin-bottom: 0; }++  .b24o-sticky { display: none; }++  /* ---- адаптив ---- */+  @media (max-width: 1199px) {+    .b24o-days { grid-template-columns: repeat(3, 1fr); }+    .b24o-stats { grid-template-columns: repeat(3, 1fr); }+  }+  @media (max-width: 991px) {+    .section { padding-top: 3rem; padding-bottom: 3rem; }+    .b24o-h1 { font-size: 2.2rem; }+    .b24o-h2 { font-size: 1.6rem; }+    .b24o-grid3, .b24o-plans { grid-template-columns: 1fr 1fr; }+    .b24o-screens__grid, .b24o-magnet__box { grid-template-columns: 1fr; }+    .b24o-final__box { grid-template-columns: 1fr; }+    .b24o-final__media { display: none; }+  }+  @media (max-width: 767px) {+    .row.g-5 { --bs-gutter-x: 1.5rem; --bs-gutter-y: 1.5rem; }+    .b24o-h1 { font-size: 1.85rem; }+    .b24o-pains__list, .b24o-grid3, .b24o-plans, .b24o-days { grid-template-columns: 1fr; }+    .b24o-stats { grid-template-columns: 1fr 1fr; }+    .b24o-stats li:last-child { grid-column: 1 / -1; }+    .b24o-sup { grid-template-columns: 1fr; }+    .b24o-sup .b24o-pic { max-width: 200px; }+    .b24o-lic__row { grid-template-columns: 1fr; gap: .2rem; }+    .b24o-lic__row--head { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; }+    .b24o-magnet__box, .b24o-final__box { padding: 1.4rem; }+    .b24o-hero__cta .btn { width: 100%; }+    .b24o-sticky {+      display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; padding: .6rem 1rem;+      background: rgba(255, 255, 255, .96); border-top: 1px solid var(--b24o-line); box-shadow: 0 -4px 16px rgba(0, 0, 0, .08);+    }+    .b24o-sticky .btn { width: 100%; }+    padding-bottom: 4.5rem;+  }+}++/* ---- тёмная тема ---- */+body.dark .b24-opus55c {+  --b24o-ink: #f2f2f2;+  --b24o-text: #cbcbcb;+  --b24o-muted: #a9b7b2;+  --b24o-accent: #7fd8cf;+  --b24o-green: #2ed3a7;+  --b24o-surface: #1b2229;+  --b24o-soft: #182027;+  --b24o-line: #3a4750;+  --b24o-shadow: none;+  .bg-light { background: #182027 !important; }+  .b24o-pic__light { display: none !important; }+  .b24o-pic__dark { display: block !important; }+  .b24o-pic--card img { background: #1b2229; }+  .btn-primary { background: #0a7d4f; color: #fff !important; }+  .btn-primary:hover { background: #0c9460; }+  .btn-outline-primary { color: #7fd8cf; border-color: #7fd8cf; background: transparent; }+  .btn-outline-primary:hover { background: #7fd8cf; color: #0f2b22 !important; }+  .b24o-pains__list i { background: #3b1d22; color: #ff9aa5; }+  .b24o-mock__bar { background: #222c34; }+  .b24o-mock__bar span { background: #4b5c58; }+  .b24o-fields dd.is-warn { color: #ffb37a; }+  .b24o-day__num { background: #2ed3a7; color: #0f2b22; }+  .b24o-plan.is-featured { box-shadow: none; }+  .b24o-form .form-control { background: #141a20; color: #f2f2f2; border-color: #5b6b66; }+  .b24o-sticky { background: rgba(30, 38, 44, .97); }+  h1, h2, h3, strong { color: var(--b24o-ink); }+}++/* Блок клиентов темы (partners.html) на этой странице: подписи читаемы в обеих темах (как на ai_adoption) */+body:has(.b24-opus55c) .brand-caption { color: #5f6b68; }+body:has(.b24-opus55c) .b24-opus55c + .section p { color: #5f6b68; }+body.dark:has(.b24-opus55c) .brand-caption,+body.dark:has(.b24-opus55c) .b24-opus55c + .section p { color: #b9c7ca; }
assets/scss/custom.scss +2 −0
diff --git a/assets/scss/custom.scss b/assets/scss/custom.scssindex ffaf1dd..a4516a4 100644--- a/assets/scss/custom.scss+++ b/assets/scss/custom.scss@@ -1576,3 +1576,5 @@ h1.blog-post-title { }  @import 'aiad';++@import 'b24opus55c';
content/russian/service/deployment/index.md +193 −267
diff --git a/content/russian/service/deployment/index.md b/content/russian/service/deployment/index.mdindex 15a5606..d69a179 100644--- a/content/russian/service/deployment/index.md+++ b/content/russian/service/deployment/index.md@@ -1,271 +1,197 @@ --- date: "2021-07-14" draft: false-title: "Внедрение Битрикс24 под ключ от 19 900р"-description: "Настраиваем CRM и бизнес-процессы"-icon: "fas fa-users"  # fontawesome icon pack : https://fontawesome.com/icons/-layout : "single"--######################### banner #####################-bannertwo:-  title: "Внедрение Битрикс24 <br />под ключ <br />от 19 900р"-  subtitle: Лаборатория Павла Жукова-  image: "images/service/301840.png"-  content : "Настраиваем CRM и бизнес-процессы"-  button:-    enable : true-    label : "Заказать консультацию"-    link : "contact/"-  background_class: "bg-light"--######################### about this product #####################-about_this_product:-  enable: true-  title: "Рутину должны делать роботы. "-  content: "Снимем эти задачи с ваших сотрудников"--  features:-  - title: "Дашборды руководства"-    icon: "fa-solid fa-chart-line"-    content: "Контролируйте всю происходящую в компании деятельность на удобных дашбордах. Максимально используем дашборды Битрикс24, а при необходимости пишем свои приложения."--  - title: "Контроль деятельности"-    icon: "fa-solid fa-clock"-    content: "Обеспечиваем строгое выполнение бизнес-процессов. От продаж до производства, не даем сотрудникам выйти за рамки процесса, «забыть о сроках» или «потерять результаты» выполнения задач."--  - title: "Процессы на задачах"-    icon: "fa-solid fa-list-check"-    content: "Никто не забудет про клиента. Задачи встают по расписанию, каждый чих на контроле у робота. Вышестоящее руководство уведомляется о нарушениях в процедурах."-  - title: "Собираем результаты"-    icon: "fa-solid fa-layer-group"-    content: "Каждый документ, звонок или любая информация проходящая в рамках процесса сохраняется. Специальное хранилище документов с категориями и возможностью использовать бизнес-процессы."-  - title: "Финансовый контроль"-    icon: "fa-solid fa-coins"-    content: "Мы разработали собственное приложение для контроля финансов в Битрикс24. Сохраняем платежи, расходы, предоставляем удобные отчеты."-  - title: "Личный кабинет"-    icon: "fa-solid fa-users-gear"-    content: "Мы разработали собственное приложение для создания зоны самообслуживания ваших клиентов. Централизованное общение с менеджерами, загрузка результатов и т.д."---######################### product_info #####################-product_info:-  enable : true-  title: "Почему мы?"-  content: "Мы знаем Битрикс24 изнутри и готовы предложить то, что не могут конкуренты"-  background_class: "bg-light"-  features:-  - image: "images/service/081703.png"-    button:-      enable : false-      label : "Заказать сейчас"-      link : "get-demo/"-    content : "##### Опыт внедрения в различных компаниях-  -  От фотостудии до юридического бюро. Мы знаем универсальные принципы, но всегда дорабатываем их с учетом задач Заказчика.-  -  ##### Готовый стек собственных приложений-  -  Продажи, производство, учет финансов, личный кабинет для ваших клиентов. Дашборды для руководителя. Мы уже сделали 95% работы."--  - image: "images/service/fplus.png"-    button:-      enable : false-      label : "Заказать сейчас"-      link : "get-demo/"-    content : "##### Разработка приложений под требования заказчика-  -  В случаях когда возможностей Битрикс24 или готовых приложений не хватает для решения ваших задач, мы готовы разработать приложения индивидуально под ваш Бизнес."--  ---##################################################--pricing:-  enable: true-  title: "Варианты внедрения"-  subtitle: "Внедряем Битрикс24 для компаний любого размера"-  fixed_plans_enable: true--  custom_plan:-    enable: true-    title: "Нет подходящего плана??"-    button:-      label: "Напишите нами"-      link: "contact/"--  fixed_plans:-    - title : "Старт"-      currency: "₽"-      price: "₽19 900"-      price_per : "шт"-      subtitle : "Базовая настройка: внедрение системы"-      button:-        enable : true-        label : "Связаться"-        link : "contact/"---    - title: "Взлёт"-      subtitle: "Настройка для средних компаний: внедрение системы"-      price: "₽89 900"-      price_per: "шт"-      button:-        label: "Связаться"-        link: "contact/"--    - title: "Полёт"-      subtitle: "Для крупного, действующего бизнеса: внедрение от"-      price: "₽149 000"-      price_per: "шт"-      button:-        label: "Связаться"-        link: "contact/"--  -  # fixed plans features-  fixed_plan_rows:-  # table row-  - title: "Внедрение учета финансов"-    features:-    - name: "Старт"-      availability: true-      other:--    - name: "Взлёт"-      availability: true--    - name: "Полёт"-      availability: true--  # table row-  - title: "Настройка лидов"-    features:-    - name: "Старт"-      availability: true--    - name: "Взлёт"-      availability: true--    - name: "Полёт"-      availability: true--  # table row-  - title: "Воронки продаж"-    features:-    - name: "Старт"-      availability: true-      other: 1--    - name: "Взлёт"-      availability: true-      other: 2--    - name: "Полёт"-      availability: true-      other: не ограничено--  # table row-  - title: "Обучение"-    features:-    - name: "Старт"-      availability: true-      other: Базовое--    - name: "Взлёт"-      availability: true-      other: Сотрудников--    - name: "Полёт"-      availability: true-      other: Сотрудников--  # table row-  - title: "Автоматизация производства"-    features:-    - name: "Старт"-      availability: false-      other: --    - name: "Взлёт"-      availability: true-      other: Базовая--    - name: "Полёт"-      availability: true-      other: Любой уровень--  # table row-  - title: "Управленческий учет финансов"-    features:-    - name: "Старт"-      availability: false-      other: --    - name: "Взлёт"-      availability: false-      other: --    - name: "Полёт"-      availability: true-      other: --  # table row-  - title: "Личный кабинет для клиентов"-    features:-    - name: "Старт"-      availability: false-      other: --    - name: "Взлёт"-      availability: false-      other: --    - name: "Полёт"-      availability: true-      other: --  # table row-  - title: "Индивидуальная автоматизация"-    features:-    - name: "Старт"-      availability: false-      other: --    - name: "Взлёт"-      availability: false-      other: --    - name: "Полёт"-      availability: true-      other: --  # table row-  - title: "Индивидуальная разработка решений"-    features:-    - name: "Старт"-      availability: false-      other: --    - name: "Взлёт"-      availability: false-      other: --    - name: "Полёт"-      availability: true-      other: ---######################### CTA #####################-cta:-  enable : true-  title : "Запросите условия прямо сейчас"-  content : "Свяжитесь с нами для поучения условий"-  background_class: "bg-light"-  button:-    enable : true-    label : "Связаться"-    link : "contact_form/"--+title: "AI-отдел продаж в Битрикс24 за неделю — внедрение с AI Советником"+description: "Готовый отдел продаж с ИИ внутри Битрикс24: распределение лидов, клиент 360°, контроль недозвонов, разбор переписки и звонков, дашборд РОПа. Работы от 42 000 ₽, запуск за неделю."+icon: "fas fa-users"+layout: "single"+b24_variant: "opus55c"++b24:+  hero:+    eyebrow: "AI Советник · Битрикс24 · Wappi"+    title: "Готовый AI-отдел продаж в&nbsp;Битрикс24 — за&nbsp;неделю"+    lead: "AI Советник распределяет лиды, ловит недозвоны, разбирает переписку и звонки и ставит задачи менеджеру. Мы включаем его в вашем портале и доводим портал до него: воронки, поля, мессенджеры, дашборд руководителя."+    cta: "Забрать буклет и расчёт"+    cta2: "Сначала цены"+    price: "Работы от **42 000 ₽**, запуск за 7 дней. Лицензии Битрикс24, AI Советника и Wappi — по ценам вендоров, без наценки."+    proof:+      - { num: "430", label: "установок AI Советника" }+      - { num: "5,0", label: "рейтинг, 19 отзывов" }+      - { num: "567", label: "проектов автоматизации" }+    image: "hero"+    alt: "Схема AI-отдела продаж: лиды из каналов попадают в Битрикс24, AI Советник распределяет их менеджерам"++  pains:+    title: "Портал куплен. Продаж больше не стало"+    lead: "Если узнаёте три пункта из шести — дело не в менеджерах, а в том, что CRM ничего не делает сама."+    image: "pains"+    alt: "Лиды теряются между мессенджерами, почтой и CRM"+    items:+      - "Лиды висят без ответственного по полдня — разбирает тот, «кто первый увидел»."+      - "Клиент пишет в WhatsApp, а в карточке сделки пусто: переписка живёт в телефоне менеджера."+      - "«Не дозвонился» — и сделка тихо умирает: повторный звонок никто не ставит."+      - "Один клиент — три дубля контакта и две сделки у разных менеджеров."+      - "Руководитель узнаёт о провале в конце месяца из отчёта, а не в тот же день."+      - "Воронка нарисована, но стадии двигают руками — или не двигают вовсе."++  modules:+    title: "Что делает AI Советник в вашем портале"+    lead: "Шесть модулей работают внутри Битрикс24 — без внешних скриптов и отдельного кабинета для менеджеров."+    image: "ai"+    alt: "AI Советник анализирует сделку и подсказывает менеджеру следующий шаг"+    items:+      - icon: "fa-solid fa-shuffle"+        title: "Распределение лидов"+        text: "AI выбирает направление по содержанию обращения и назначает ответственного: поровну, по нагрузке или по профилю. Дубли контактов склеиваются."+      - icon: "fa-solid fa-id-card"+        title: "Клиент 360°"+        text: "В карточке — блок «Клиент»: связанные сделки, все каналы связи и дата следующей коммуникации. Менеджер видит историю, а не только последнее сообщение."+      - icon: "fa-solid fa-phone-slash"+        title: "Контроль недозвонов"+        text: "После «нет связи» повторные попытки ставятся по графику: через 1, 5, 24 и 72 часа. График меняется под ваш профиль продаж."+      - icon: "fa-solid fa-magnifying-glass-chart"+        title: "Разбор переписки и звонков"+        text: "Чаты, расшифровки звонков, задачи и комментарии → вероятность договора, оценка коммуникации, нарушения сценария и рекомендация, что делать дальше."+      - icon: "fa-solid fa-gauge-high"+        title: "Дашборды и дайджест"+        text: "Менеджеру — список приоритетных задач. Руководителю — сделки «требуют внимания», конверсия по менеджерам и дайджест за день, неделю, месяц."+      - icon: "fa-solid fa-robot"+        title: "Чат-бот по базе знаний"+        text: "Отвечает клиенту в мессенджере, напоминает, зовёт менеджера, когда нужен человек. В режиме отладки вы пишете как клиент и видите, как бот рассуждает."++  screens:+    title: "Как это выглядит у менеджера и руководителя"+    lead: "Не отдельная программа: результат анализа ложится в поля карточки сделки, задачи — в список менеджера, сигналы — на дашборд руководителя."+    card:+      caption: "Карточка сделки: 11 полей UF_CRM_AIROP24_*"+      deal: "Сделка «Поставка оборудования» · стадия «Переговоры»"+      fields:+        - { k: "Вероятность договора", v: "высокая", tone: "ok" }+        - { k: "Качество коммуникации", v: "оценка AI", tone: "" }+        - { k: "Нарушения сценария", v: "не названа цена", tone: "warn" }+        - { k: "Требует внимания руководителя", v: "нет", tone: "" }+        - { k: "Среднее время ответа сотрудника", v: "по переписке", tone: "" }+        - { k: "Рекомендация AI", v: "отправить КП и назначить звонок", tone: "ok" }+      note: "Значения — пример заполнения; набор полей — реальный, из приложения."+    manager:+      caption: "Приоритетные задачи менеджера"+      rows:+        - { t: "Лиды в ожидании контакта", c: "лид → звонок" }+        - { t: "Сделки «требуют внимания»", c: "причина + вероятность" }+        - { t: "Чаты без ответа", c: "WhatsApp, Telegram, MAX" }+        - { t: "Просроченные коммуникации", c: "дней без контакта" }+    supervisor:+      image: "control"+      alt: "Дашборд руководителя: входящие лиды, конверсия, сделки, требующие внимания"+      caption: "Дашборд руководителя и дайджест"+      points:+        - "Входящие лиды и конверсия в качественные — по направлениям и менеджерам"+        - "Списки «Просрочка до 30» и «30–90 дней» с вероятностью и датой контакта"+        - "Дайджест по расписанию: ежедневный, еженедельный, ежемесячный"++  week:+    title: "Как проходит неделя"+    lead: "Каждый день заканчивается тем, что можно открыть и проверить в портале."+    image: "funnel"+    alt: "Воронка продаж в Битрикс24 со стадиями и роботами"+    days:+      - { d: "День 1", t: "Портал и лиды", a: "Формы, почта и телефония пишут в CRM; у каждого лида есть ответственный." }+      - { d: "Дни 2–3", t: "Воронки и роботы", a: "Стадии, обязательные поля, роботы задач — воронка двигается сама." }+      - { d: "День 4", t: "AI Советник", a: "Профили анализа, распределение, график недозвонов, дашборды РОПа." }+      - { d: "День 5", t: "Каналы и обучение", a: "Wappi: WhatsApp и Telegram в карточке сделки; запись обучения команды." }+      - { d: "Дни 6–7", t: "Обкатка", a: "Живые сделки идут через контур; правим сценарии по первым разборам." }++  pricing:+    title: "Цена — до разговора"+    lead: "Работы — наши. Лицензии — ниже отдельной таблицей, по ценам вендоров, без наценки: платите им напрямую."+    packages:+      - name: "Старт"+        sub: "контур на одном канале"+        price: "42 000 ₽"+        term: "5 рабочих дней"+        items:+          - "1 воронка продаж, поля и роботы"+          - "AI Советник: распределение лидов и недозвоны"+          - "1 канал Wappi в карточке сделки"+          - "Обучение команды, запись"+      - name: "AI-отдел продаж"+        sub: "рекомендуем"+        featured: true+        price: "98 000 ₽"+        term: "7 дней"+        items:+          - "До 3 воронок, дедупликация контактов"+          - "Все 6 модулей AI Советника, профили анализа"+          - "До 3 каналов: WhatsApp, Telegram, MAX"+          - "Дашборд РОПа и дайджест, 2 недели сопровождения"+      - name: "Полный контур"+        sub: "все каналы и коробка"+        price: "198 000 ₽"+        term: "от 2 недель"+        items:+          - "Всё из «AI-отдела продаж»"+          - "Коробочный Битрикс24 или перенос из другой CRM"+          - "Чат-бот по базе знаний, рассылки по кластерам"+          - "Интеграции под задачу, 1 месяц сопровождения"+    licenses_title: "Лицензии — отдельно, по ценам вендоров"+    licenses:+      - { what: "Битрикс24, облако", price: "2 490 / 6 990 / 13 990 ₽ в мес.", note: "Базовый / Стандартный / Профессиональный; −20 % при оплате за год" }+      - { what: "AI Советник", price: "0 / 990 / 4 990 / 9 990 / 24 990 ₽ в мес.", note: "Пульсар — в подписке Битрикс24; дальше Метеор, Луч, Туманность, Вселенная" }+      - { what: "Wappi «WhatsApp Полный»", price: "1 690 ₽ в мес. за профиль", note: "Единственный тариф Wappi с интеграцией Битрикс24; 5 дней пробно" }+    cta: "Посчитать под мою команду"++  proof:+    title: "Проверяемые цифры, а не обещания"+    lead: "Каждую можно открыть: карточка AI Советника в Маркетплейсе Битрикс24 и наш портал проектов."+    stats:+      - { num: "31", label: "приложение лаборатории в Маркетплейсе Битрикс24" }+      - { num: "430", label: "установок AI Советника" }+      - { num: "5,0", label: "рейтинг AI Советника, 19 отзывов" }+      - { num: "567", label: "реализованных проектов автоматизации с 2020 года" }+      - { num: "38 тыс. ₽", label: "медианный чек проекта" }+    reviews_link: "https://www.bitrix24.ru/apps/app/archeon.ai_rop/"+    reviews_label: "Отзывы в Маркетплейсе"+    image: "team"+    alt: "Команда лаборатории за работой над порталом клиента"++  magnet:+    title: "Буклет «AI-отдел продаж за 1 день»"+    lead: "12 страниц: что включить в AI Советнике в первый день и в каком порядке. Плюс 5 писем мини-курса и расчёт стоимости под вашу команду."+    image: "course"+    alt: "PDF-буклет и письма мини-курса"+    points:+      - "План дня: 10 шагов по часам, с результатом каждого шага"+      - "Распределение лидов, 360°, недозвоны, дашборды — пошагово"+      - "Чек-лист запуска на 18 пунктов"+      - "Тарифы AI Советника и Wappi — что выбрать"+    form_title: "Куда прислать буклет"+    name_label: "Имя"+    contact_label: "Телефон или e-mail"+    submit: "Забрать буклет и расчёт"+    privacy: "Пришлём буклет и письма; отписаться можно в любом письме."++  objections:+    title: "Что обычно спрашивают"+    items:+      - q: "Дорого"+        a: "Работы от 42 000 ₽ — медианный чек наших проектов 38 тыс. ₽. AI Советник начинается с Пульсара в подписке Битрикс24 и 990 ₽/мес; лицензии вы платите вендорам напрямую, без нашей наценки."+      - q: "Мы сами настроим"+        a: "Можно: буклет — ровно об этом, AI Советник ставится из Маркетплейса за 2 минуты. Мы нужны, когда воронка, поля и каналы требуют доводки, а у команды нет недели на эксперименты."+      - q: "У нас своя CRM"+        a: "AI Советник работает только внутри Битрикс24. Если вы на другой CRM — переносим данные в пакете «Полный контур»; если переезд не нужен, честно скажем об этом на аудите."+      - q: "Менеджеры не будут пользоваться"+        a: "Им не нужно ничего нового открывать: задачи, поля и подсказки появляются в привычной карточке сделки. Руководитель видит, кто не реагирует на сигналы, — в тот же день."+      - q: "Это точно ИИ, а не скрипт?"+        a: "Анализ читает переписку, расшифровки звонков, задачи и комментарии и пишет вывод своими словами: вероятность, нарушения сценария, рекомендацию. Скрипты — это график недозвонов и роботы стадий; ИИ — разбор и выбор направления."+      - q: "А если не получится за неделю?"+        a: "Неделя — для пакетов «Старт» и «AI-отдел продаж» на облачном портале. Каждый день сдаём результат, который видно в портале, — отставание заметно в тот же день, а не в конце. Коробка и перенос из другой CRM идут дольше, и это сразу написано в цене «Полного контура»."++  final:+    title: "Включим AI-отдел продаж в вашем портале"+    text: "Начните с буклета — или сразу с бесплатного аудита портала на 60 минут: покажем, что AI Советник сделает с вашими сделками, и назовём цену работ."+    cta: "Забрать буклет и расчёт"+    cta2: "Бесплатный аудит 60 минут"+    image: "support"+    alt: "Поддержка после запуска" ---
layouts/partials/b24/opus55c/final.html +22 −0
diff --git a/layouts/partials/b24/opus55c/final.html b/layouts/partials/b24/opus55c/final.htmlnew file mode 100644index 0000000..b59e1ae--- /dev/null+++ b/layouts/partials/b24/opus55c/final.html@@ -0,0 +1,22 @@+{{ with .b24.final }}+<section class="section b24o-sec b24o-final" id="b24o-final">+  <div class="container">+    <div class="b24o-final__box">+      <div class="b24o-final__text">+        <h2 class="b24o-h2">{{ .title }}</h2>+        <p class="b24o-sublead">{{ .text }}</p>+        <div class="b24o-hero__cta">+          <a href="#b24o-magnet" class="btn btn-primary b24o-btn-main">{{ .cta }}</a>+          <a href="{{ "contact/" | relLangURL }}" class="btn btn-outline-primary contact_form">{{ .cta2 }}</a>+        </div>+      </div>+      <div class="b24o-final__media">+        {{ partial "b24/opus55c/pic.html" (dict "slot" .image "alt" .alt "w" 420 "class" "b24o-pic--sq") }}+      </div>+    </div>+  </div>+</section>+<div class="b24o-sticky" aria-hidden="false">+  <a href="#b24o-magnet" class="btn btn-primary b24o-btn-main">{{ .cta }}</a>+</div>+{{ end }}
layouts/partials/b24/opus55c/hero.html +24 −0
diff --git a/layouts/partials/b24/opus55c/hero.html b/layouts/partials/b24/opus55c/hero.htmlnew file mode 100644index 0000000..687be45--- /dev/null+++ b/layouts/partials/b24/opus55c/hero.html@@ -0,0 +1,24 @@+{{ with .b24.hero }}+<section class="section b24o-hero bg-light" id="b24o-top">+  <div class="container">+    <div class="row align-items-center">+      <div class="col-lg-6 b24o-hero__text">+        <p class="b24o-eyebrow">{{ .eyebrow }}</p>+        <h1 class="b24o-h1">{{ .title | safeHTML }}</h1>+        <p class="b24o-lead">{{ .lead }}</p>+        <div class="b24o-hero__cta">+          <a href="#b24o-magnet" class="btn btn-primary b24o-btn-main">{{ .cta }}</a>+          <a href="#b24o-pricing" class="b24o-textlink">{{ .cta2 }} <span aria-hidden="true">→</span></a>+        </div>+        <p class="b24o-price-line"><i class="fa-solid fa-tag" aria-hidden="true"></i> {{ .price | markdownify }}</p>+        <ul class="b24o-proofline" aria-label="Цифры AI Советника и лаборатории">+          {{ range .proof }}<li><strong>{{ .num }}</strong> <span>{{ .label }}</span></li>{{ end }}+        </ul>+      </div>+      <div class="col-lg-6 b24o-hero__media">+        {{ partial "b24/opus55c/pic.html" (dict "slot" .image "alt" .alt "w" 1100 "class" "b24o-pic--hero" "eager" true) }}+      </div>+    </div>+  </div>+</section>+{{ end }}
layouts/partials/b24/opus55c/magnet.html +27 −0
diff --git a/layouts/partials/b24/opus55c/magnet.html b/layouts/partials/b24/opus55c/magnet.htmlnew file mode 100644index 0000000..fd30a3d--- /dev/null+++ b/layouts/partials/b24/opus55c/magnet.html@@ -0,0 +1,27 @@+{{ with .b24.magnet }}+<section class="section b24o-sec b24o-magnet" id="b24o-magnet">+  <div class="container">+    <div class="b24o-magnet__box">+      <div class="b24o-magnet__info">+        <p class="b24o-eyebrow">Бесплатно · PDF, 12 страниц</p>+        <h2 class="b24o-h2">{{ .title }}</h2>+        <p class="b24o-sublead">{{ .lead }}</p>+        <ul class="b24o-checks">{{ range .points }}<li>{{ . }}</li>{{ end }}</ul>+      </div>+      <div class="b24o-magnet__form">+        {{ partial "b24/opus55c/pic.html" (dict "slot" .image "alt" .alt "w" 360 "class" "b24o-pic--magnet") }}+        <form class="b24o-form" action="{{ "contact_form/" | relLangURL }}" method="get">+          <p class="b24o-form__title">{{ .form_title }}</p>+          <label for="b24o-name">{{ .name_label }}</label>+          <input id="b24o-name" class="form-control" type="text" name="name" autocomplete="given-name" required>+          <label for="b24o-contact">{{ .contact_label }}</label>+          <input id="b24o-contact" class="form-control" type="text" name="contact" autocomplete="email" required>+          <input type="hidden" name="source" value="deployment-booklet">+          <button type="submit" class="btn btn-primary b24o-btn-main">{{ .submit }}</button>+          <p class="b24o-form__privacy">{{ .privacy }}</p>+        </form>+      </div>+    </div>+  </div>+</section>+{{ end }}
layouts/partials/b24/opus55c/modules.html +25 −0
diff --git a/layouts/partials/b24/opus55c/modules.html b/layouts/partials/b24/opus55c/modules.htmlnew file mode 100644index 0000000..4fa56c1--- /dev/null+++ b/layouts/partials/b24/opus55c/modules.html@@ -0,0 +1,25 @@+{{ with .b24.modules }}+<section class="section b24o-sec b24o-modules bg-light" id="b24o-modules">+  <div class="container">+    <div class="row align-items-center g-5 mb-4">+      <div class="col-lg-6">+        <p class="b24o-eyebrow">Что вы получаете</p>+        <h2 class="b24o-h2">{{ .title }}</h2>+        <p class="b24o-sublead">{{ .lead }}</p>+      </div>+      <div class="col-lg-6">+        {{ partial "b24/opus55c/pic.html" (dict "slot" .image "alt" .alt "w" 900 "class" "b24o-pic--card") }}+      </div>+    </div>+    <div class="b24o-grid3">+      {{ range .items }}+      <article class="b24o-card">+        <span class="b24o-card__icon"><i class="{{ .icon }}" aria-hidden="true"></i></span>+        <h3 class="b24o-h3">{{ .title }}</h3>+        <p>{{ .text }}</p>+      </article>+      {{ end }}+    </div>+  </div>+</section>+{{ end }}
layouts/partials/b24/opus55c/objections.html +15 −0
diff --git a/layouts/partials/b24/opus55c/objections.html b/layouts/partials/b24/opus55c/objections.htmlnew file mode 100644index 0000000..cf75dda--- /dev/null+++ b/layouts/partials/b24/opus55c/objections.html@@ -0,0 +1,15 @@+{{ with .b24.objections }}+<section class="section b24o-sec b24o-faq bg-light" id="b24o-faq">+  <div class="container">+    <div class="b24o-head"><h2 class="b24o-h2">{{ .title }}</h2></div>+    <div class="b24o-faq__list">+      {{ range $i, $o := .items }}+      <details class="b24o-faq__item"{{ if eq $i 0 }} open{{ end }}>+        <summary><span>{{ $o.q }}</span><i class="fa-solid fa-chevron-down" aria-hidden="true"></i></summary>+        <p>{{ $o.a }}</p>+      </details>+      {{ end }}+    </div>+  </div>+</section>+{{ end }}
layouts/partials/b24/opus55c/page.html +14 −0
diff --git a/layouts/partials/b24/opus55c/page.html b/layouts/partials/b24/opus55c/page.htmlnew file mode 100644index 0000000..e62657c--- /dev/null+++ b/layouts/partials/b24/opus55c/page.html@@ -0,0 +1,14 @@+{{ $p := .Params }}+<div class="b24-opus55c">+{{ partial "b24/opus55c/hero.html" $p }}+{{ partial "b24/opus55c/pains.html" $p }}+{{ partial "b24/opus55c/modules.html" $p }}+{{ partial "b24/opus55c/screens.html" $p }}+{{ partial "b24/opus55c/week.html" $p }}+{{ partial "b24/opus55c/pricing.html" $p }}+{{ partial "b24/opus55c/proof.html" $p }}+{{ partial "b24/opus55c/magnet.html" $p }}+{{ partial "b24/opus55c/objections.html" $p }}+{{ partial "b24/opus55c/final.html" $p }}+</div>+{{ partial "partners.html" }}
layouts/partials/b24/opus55c/pains.html +18 −0
diff --git a/layouts/partials/b24/opus55c/pains.html b/layouts/partials/b24/opus55c/pains.htmlnew file mode 100644index 0000000..c4a02c7--- /dev/null+++ b/layouts/partials/b24/opus55c/pains.html@@ -0,0 +1,18 @@+{{ with .b24.pains }}+<section class="section b24o-sec b24o-pains" id="b24o-pains">+  <div class="container">+    <div class="row align-items-center g-5">+      <div class="col-lg-5 order-lg-2">+        {{ partial "b24/opus55c/pic.html" (dict "slot" .image "alt" .alt "w" 900 "class" "b24o-pic--card") }}+      </div>+      <div class="col-lg-7 order-lg-1">+        <h2 class="b24o-h2">{{ .title }}</h2>+        <p class="b24o-sublead">{{ .lead }}</p>+        <ul class="b24o-pains__list">+          {{ range .items }}<li><i class="fa-solid fa-xmark" aria-hidden="true"></i><span>{{ . }}</span></li>{{ end }}+        </ul>+      </div>+    </div>+  </div>+</section>+{{ end }}
layouts/partials/b24/opus55c/pic.html +9 −0
diff --git a/layouts/partials/b24/opus55c/pic.html b/layouts/partials/b24/opus55c/pic.htmlnew file mode 100644index 0000000..d89eda1--- /dev/null+++ b/layouts/partials/b24/opus55c/pic.html@@ -0,0 +1,9 @@+{{/* Пара светлая/тёмная иллюстрация. dict: slot, alt, w (px ширина ресайза), class, eager (bool) */}}+{{ $w := .w | default 900 }}+{{ $lo := resources.Get (printf "images/service/b24/%s.png" .slot) }}+{{ $dk := resources.Get (printf "images/service/b24/%s-dark.png" .slot) }}+{{ $prio := cond (.eager | default false) "high" "low" }}+<span class="b24o-pic {{ .class }}">+{{ with $lo }}{{ $r := .Resize (printf "%dx webp q78" $w) }}<img class="b24o-pic__light" src="{{ $r.RelPermalink }}" width="{{ $r.Width }}" height="{{ $r.Height }}" alt="{{ $.alt }}" loading="eager" fetchpriority="{{ $prio }}" decoding="async">{{ end }}+{{ with $dk }}{{ $r := .Resize (printf "%dx webp q78" $w) }}<img class="b24o-pic__dark" src="{{ $r.RelPermalink }}" width="{{ $r.Width }}" height="{{ $r.Height }}" alt="{{ $.alt }}" loading="eager" fetchpriority="low" decoding="async">{{ end }}+</span>
layouts/partials/b24/opus55c/pricing.html +36 −0
diff --git a/layouts/partials/b24/opus55c/pricing.html b/layouts/partials/b24/opus55c/pricing.htmlnew file mode 100644index 0000000..64a678e--- /dev/null+++ b/layouts/partials/b24/opus55c/pricing.html@@ -0,0 +1,36 @@+{{ with .b24.pricing }}+<section class="section b24o-sec b24o-pricing" id="b24o-pricing">+  <div class="container">+    <div class="b24o-head">+      <p class="b24o-eyebrow">Цена</p>+      <h2 class="b24o-h2">{{ .title }}</h2>+      <p class="b24o-sublead">{{ .lead }}</p>+    </div>+    <div class="b24o-plans">+      {{ range .packages }}+      <article class="b24o-plan{{ if .featured }} is-featured{{ end }}">+        <p class="b24o-plan__sub">{{ if .featured }}<i class="fa-solid fa-star" aria-hidden="true"></i> {{ end }}{{ .sub }}</p>+        <h3 class="b24o-plan__name">{{ .name }}</h3>+        <p class="b24o-plan__price">{{ .price }}</p>+        <p class="b24o-plan__term"><i class="fa-regular fa-clock" aria-hidden="true"></i> {{ .term }}</p>+        <ul class="b24o-checks">{{ range .items }}<li>{{ . }}</li>{{ end }}</ul>+      </article>+      {{ end }}+    </div>+    <h3 class="b24o-h3 b24o-lic__title">{{ .licenses_title }}</h3>+    <div class="b24o-lic" role="table" aria-label="{{ .licenses_title }}">+      <div class="b24o-lic__row b24o-lic__row--head" role="row">+        <span role="columnheader">Что</span><span role="columnheader">Цена вендора</span><span role="columnheader">Пояснение</span>+      </div>+      {{ range .licenses }}+      <div class="b24o-lic__row" role="row">+        <span role="cell" class="b24o-lic__what">{{ .what }}</span>+        <span role="cell" class="b24o-lic__price">{{ .price }}</span>+        <span role="cell" class="b24o-lic__note">{{ .note }}</span>+      </div>+      {{ end }}+    </div>+    <p class="b24o-center"><a href="#b24o-magnet" class="btn btn-outline-primary">{{ .cta }}</a></p>+  </div>+</section>+{{ end }}
layouts/partials/b24/opus55c/proof.html +14 −0
diff --git a/layouts/partials/b24/opus55c/proof.html b/layouts/partials/b24/opus55c/proof.htmlnew file mode 100644index 0000000..bff15ee--- /dev/null+++ b/layouts/partials/b24/opus55c/proof.html@@ -0,0 +1,14 @@+{{ with .b24.proof }}+<section class="section b24o-sec b24o-proof bg-light" id="b24o-proof">+  <div class="container">+    <div class="b24o-head">+      <h2 class="b24o-h2">{{ .title }}</h2>+      <p class="b24o-sublead">{{ .lead }}</p>+    </div>+    <ul class="b24o-stats">+      {{ range .stats }}<li><strong>{{ .num }}</strong><span>{{ .label }}</span></li>{{ end }}+    </ul>+    <p class="b24o-center"><a class="b24o-textlink" href="{{ .reviews_link }}" target="_blank" rel="noopener">{{ .reviews_label }} <span aria-hidden="true">↗</span></a></p>+  </div>+</section>+{{ end }}
layouts/partials/b24/opus55c/screens.html +46 −0
diff --git a/layouts/partials/b24/opus55c/screens.html b/layouts/partials/b24/opus55c/screens.htmlnew file mode 100644index 0000000..fb1b631--- /dev/null+++ b/layouts/partials/b24/opus55c/screens.html@@ -0,0 +1,46 @@+{{ with .b24.screens }}+<section class="section b24o-sec b24o-screens" id="b24o-screens">+  <div class="container">+    <div class="b24o-head">+      <p class="b24o-eyebrow">Как это выглядит</p>+      <h2 class="b24o-h2">{{ .title }}</h2>+      <p class="b24o-sublead">{{ .lead }}</p>+    </div>+    <div class="b24o-screens__grid">+      {{ with .card }}+      <figure class="b24o-mock b24o-mock--card">+        <div class="b24o-mock__bar"><span></span><span></span><span></span><em>{{ .deal }}</em></div>+        <div class="b24o-mock__body">+          <p class="b24o-mock__sect">AI РОП24</p>+          <dl class="b24o-fields">+            {{ range .fields }}<div class="b24o-fields__row"><dt>{{ .k }}</dt><dd{{ with .tone }} class="is-{{ . }}"{{ end }}>{{ .v }}</dd></div>{{ end }}+          </dl>+          <p class="b24o-mock__note">{{ .note }}</p>+        </div>+        <figcaption>{{ .caption }}</figcaption>+      </figure>+      {{ end }}+      <div class="b24o-screens__side">+        {{ with .manager }}+        <figure class="b24o-mock">+          <div class="b24o-mock__bar"><span></span><span></span><span></span><em>/dashboard/manager</em></div>+          <ul class="b24o-tasks">+            {{ range .rows }}<li><span>{{ .t }}</span><small>{{ .c }}</small></li>{{ end }}+          </ul>+          <figcaption>{{ .caption }}</figcaption>+        </figure>+        {{ end }}+        {{ with .supervisor }}+        <figure class="b24o-mock b24o-mock--sup">+          <div class="b24o-sup">+            {{ partial "b24/opus55c/pic.html" (dict "slot" .image "alt" .alt "w" 420 "class" "b24o-pic--sq") }}+            <ul class="b24o-checks">{{ range .points }}<li>{{ . }}</li>{{ end }}</ul>+          </div>+          <figcaption>{{ .caption }}</figcaption>+        </figure>+        {{ end }}+      </div>+    </div>+  </div>+</section>+{{ end }}
layouts/partials/b24/opus55c/week.html +25 −0
diff --git a/layouts/partials/b24/opus55c/week.html b/layouts/partials/b24/opus55c/week.htmlnew file mode 100644index 0000000..9a337d6--- /dev/null+++ b/layouts/partials/b24/opus55c/week.html@@ -0,0 +1,25 @@+{{ with .b24.week }}+<section class="section b24o-sec b24o-week bg-light" id="b24o-week">+  <div class="container">+    <div class="row align-items-center g-5 mb-4">+      <div class="col-lg-6">+        <h2 class="b24o-h2">{{ .title }}</h2>+        <p class="b24o-sublead">{{ .lead }}</p>+      </div>+      <div class="col-lg-6">+        {{ partial "b24/opus55c/pic.html" (dict "slot" .image "alt" .alt "w" 900 "class" "b24o-pic--card") }}+      </div>+    </div>+    <ol class="b24o-days">+      {{ range $i, $d := .days }}+      <li class="b24o-day">+        <span class="b24o-day__num">{{ add $i 1 }}</span>+        <p class="b24o-day__d">{{ $d.d }}</p>+        <h3 class="b24o-h3">{{ $d.t }}</h3>+        <p class="b24o-day__a"><span class="b24o-day__lbl">Артефакт:</span> {{ $d.a }}</p>+      </li>+      {{ end }}+    </ol>+  </div>+</section>+{{ end }}
layouts/service/single.html +4 −0
diff --git a/layouts/service/single.html b/layouts/service/single.htmlindex 79f1a90..9482fd6 100644--- a/layouts/service/single.html+++ b/layouts/service/single.html@@ -1,4 +1,7 @@ {{define "main"}}+{{ if eq .Params.b24_variant "opus55c" }}+{{ partial "b24/opus55c/page.html" . }}+{{ else }}  {{/* Вариант V1 «Тихий апгрейд»: точечные ветки gated по .Params.aiad_v1 (только ai_adoption).      Для остальных service-страниц разметка = оригинал темы. Стили V1 — в конце, тоже под $v1. */}}@@ -1008,4 +1011,5 @@ <!-- ===== Вариант B: клавиатурная навигация табов (roving tabindex, стрелки/Home/End) ===== --> <script src="{{ $tabs.RelPermalink }}" integrity="{{ $tabs.Data.Integrity }}" defer></script> {{ end }}+{{ end }} {{end}}