src/ApplicationBundle/Modules/HoneybeeWeb/Resources/views/pages/pricing.html.twig line 1

Open in your IDE?
  1. {% include '@Application/inc/central_header.html.twig' %}
  2. {# WEB-1 — /pricing rebuilt to the Conversion Spec §16 on THE ONE CENTRAL PRICE STORE.
  3.    Every figure renders from `prices` (PricingBook::publicBook() — the founder anchors).
  4.    THE ONE-STORE LAW: this template contains ZERO literal euro-amounts; change a price in
  5.    PricingBook and every page follows. THE WALL: the partner price is not in the store and
  6.    never renders here (inno:web-pricing-selftest scans every public template).
  7.    ★ OWNER-DECISION SLOT below (grandfathering): the old page publicly promised seats
  8.    "locked in at the launch price permanently" — the neutral line shipped here holds that
  9.    direction; the owner's precise grandfathering rule replaces it when decided. #}
  10. {% set p = prices %}
  11. <style>
  12. :root {
  13.     --n-cream:#F7F5F0; --n-cream-2:#F0EDE5; --n-white:#FFFFFF; --n-dark:#1A1D2E;
  14.     --n-dark-2:#252840; --n-amber:#C07D2A; --n-amber-lt:#D4954A; --n-amber-dim:rgba(192,125,42,.10);
  15.     --n-sage:#3D6B52; --n-sage-dim:rgba(61,107,82,.09); --n-muted:#6B6E7F; --n-muted-2:#9395A5;
  16.     --n-border:rgba(26,29,46,.07); --n-border-md:rgba(26,29,46,.12);
  17.     --n-shadow-sm:0 2px 12px rgba(26,29,46,.07); --n-shadow-md:0 8px 32px rgba(26,29,46,.09);
  18.     --n-radius:14px; --n-radius-sm:8px; --n-font:'DM Sans','Poppins',system-ui,sans-serif;
  19.     --n-display:'Montserrat','DM Sans',system-ui,sans-serif; /* ONE display face site-wide */
  20. }
  21. .pr-hero h1, .pr-sec h2, .pr-price, .pr-card h3, .pr-tier b { font-family:var(--n-display); }
  22. *,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
  23. body { background:var(--n-cream); font-family:var(--n-font); color:var(--n-dark); text-align:left; }
  24. a { text-decoration:none; }
  25. .pr-wrap { max-width:1140px; margin:0 auto; padding:0 20px 80px; }
  26. .pr-hero { text-align:center; padding:64px 0 30px; }
  27. .pr-hero h1 { font-size:clamp(26px,4vw,40px); font-weight:800; letter-spacing:-.02em; }
  28. .pr-hero .sub { color:var(--n-muted); font-size:16px; margin:12px auto 0; max-width:620px; line-height:1.55; }
  29. .pr-hero .motto { display:inline-block; margin-top:16px; background:var(--n-amber-dim); color:var(--n-amber); font-weight:700; font-size:13px; padding:7px 16px; border-radius:100px; }
  30. .pr-jump { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin:26px 0 8px; }
  31. .pr-jump a { background:var(--n-white); border:1.5px solid var(--n-border-md); border-radius:100px; padding:9px 20px; font-size:13.5px; font-weight:700; color:var(--n-dark); }
  32. .pr-jump a:hover { border-color:var(--n-amber); color:var(--n-amber); }
  33. .pr-sec { margin-top:56px; }
  34. .pr-sec h2 { font-size:24px; font-weight:800; letter-spacing:-.01em; }
  35. .pr-sec .lead { color:var(--n-muted); font-size:14.5px; margin:6px 0 20px; max-width:640px; line-height:1.55; }
  36. .pr-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; }
  37. .pr-card { background:var(--n-white); border:1px solid var(--n-border-md); border-radius:var(--n-radius); padding:22px; box-shadow:var(--n-shadow-sm); display:flex; flex-direction:column; }
  38. .pr-card.hl { border-color:var(--n-amber); box-shadow:var(--n-shadow-md); }
  39. .pr-card .tier { font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--n-muted); }
  40. .pr-card .price { font-size:32px; font-weight:800; margin:8px 0 2px; }
  41. .pr-card .price small { font-size:13px; font-weight:600; color:var(--n-muted); }
  42. .pr-card .from { font-size:12px; color:var(--n-muted-2); font-weight:600; }
  43. .pr-card ul { list-style:none; margin:14px 0 0; flex:1; }
  44. .pr-card li { font-size:13px; color:var(--n-muted); padding:4px 0 4px 20px; position:relative; line-height:1.45; }
  45. .pr-card li::before { content:'✓'; position:absolute; left:0; color:var(--n-sage); font-weight:800; }
  46. .pr-note { background:var(--n-sage-dim); border-radius:var(--n-radius-sm); padding:12px 16px; font-size:13px; color:var(--n-dark); margin-top:16px; line-height:1.5; }
  47. .pr-note b { color:var(--n-sage); }
  48. .pr-cta { display:inline-block; margin-top:16px; background:var(--n-dark); color:#fff; border-radius:var(--n-radius-sm); padding:11px 22px; font-size:13.5px; font-weight:700; text-align:center; }
  49. .pr-cta.amber { background:var(--n-amber); }
  50. .pr-cta:hover { filter:brightness(1.1); color:#fff; }
  51. .pr-tbl { width:100%; border-collapse:collapse; background:var(--n-white); border:1px solid var(--n-border-md); border-radius:var(--n-radius); overflow:hidden; box-shadow:var(--n-shadow-sm); }
  52. .pr-tbl th, .pr-tbl td { padding:12px 16px; font-size:13.5px; text-align:left; border-bottom:1px solid var(--n-border); }
  53. .pr-tbl th { background:var(--n-cream-2); font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--n-muted); }
  54. .pr-tbl td.num { font-weight:800; white-space:nowrap; }
  55. .pr-fine { color:var(--n-muted-2); font-size:12.5px; margin-top:12px; line-height:1.55; }
  56. @media (max-width:700px) { .pr-hero { padding:40px 0 16px; } }
  57. </style>
  58. <div class="pr-wrap">
  59.     <div class="pr-hero">
  60.         <h1>Enterprise capability without enterprise pricing complexity.</h1>
  61.         <div class="sub">Every entry price is public. Engineering, hardware and rollout are scoped
  62.             transparently — custom work is quoted after assessment, never hidden in a subscription.</div>
  63.         <div class="motto">Affordable to enter · Fair to use · Powerful to scale</div>
  64.         <div class="pr-jump">
  65.             <a href="#business">Business Suite</a>
  66.             <a href="#ai">AI Workforce</a>
  67.             <a href="#honeycore">HoneyCore</a>
  68.             <a href="#honeywatt">HoneyWatt</a>
  69.         </div>
  70.         {# OWNER (2026-08-10): "pricing options not clickable" — a legacy header script
  71.            preventDefaults bare # anchors, so the jumps do their own scrolling (capture
  72.            phase beats the legacy handler; scroll-margin keeps headings under the nav). #}
  73.         <style>.pr-sec { scroll-margin-top: 90px; } .pr-jump a { cursor: pointer; }</style>
  74.         <script>
  75.         (function () {
  76.             document.querySelectorAll('.pr-jump a').forEach(function (a) {
  77.                 a.addEventListener('click', function (ev) {
  78.                     ev.preventDefault(); ev.stopPropagation();
  79.                     var el = document.querySelector(a.getAttribute('href'));
  80.                     if (el) { el.scrollIntoView({ behavior: 'smooth', block: 'start' }); }
  81.                 }, true);
  82.             });
  83.         })();
  84.         </script>
  85.     </div>
  86.     {# ── Business ─────────────────────────────────────────────────────────── #}
  87.     <div class="pr-sec" id="business">
  88.         <h2>HoneyBee Business Suite</h2>
  89.         <div class="lead">Sales, procurement, projects, finance, HR and operational workflows in one system.</div>
  90.         <div class="pr-grid">
  91.             <div class="pr-card">
  92.                 <div class="tier">General User · Work</div>
  93.                 <div class="price">€{{ p.business.general }}<small>/user/month</small></div>
  94.                 <ul>
  95.                     <li>Operational workflows, tasks, documents</li>
  96.                     <li>Mobile access with Beezeness</li>
  97.                 </ul>
  98.             </div>
  99.             <div class="pr-card">
  100.                 <div class="tier">Admin · Manage</div>
  101.                 <div class="price">€{{ p.business.admin }}<small>/user/month</small></div>
  102.                 <ul>
  103.                     <li>Approvals, finance, HR, project management</li>
  104.                     <li>Reporting and administration</li>
  105.                 </ul>
  106.             </div>
  107.             <div class="pr-card hl">
  108.                 <div class="tier">HiveMind AI Admin · Manage with AI</div>
  109.                 <div class="price">€{{ p.business.hivemind_admin }}<small>/user/month</small></div>
  110.                 <ul>
  111.                     <li>Everything in Admin — this price <b>replaces</b> the Admin seat, it is never added on top</li>
  112.                     <li>AI assistance for reporting, decisions and drafts</li>
  113.                     <li>Optional per Admin — enable only who needs it</li>
  114.                 </ul>
  115.             </div>
  116.         </div>
  117.         <div class="pr-note"><b>Rollout included:</b> {{ p.erp.rollout_days_free }} working days
  118.             (up to {{ p.erp.rollout_hours_max }} consulting hours) of standard implementation
  119.             assistance are free. Optional Customer Success &amp; Consulting:
  120.             €{{ p.erp.customer_success_quarter|number_format(0, '.', ',') }} per quarter.
  121.             Standard platform support and updates are always part of the subscription.</div>
  122.         <a class="pr-cta" href="/Contact">Book Business Suite Demo</a>
  123.     </div>
  124.     {# ── AI Workforce ─────────────────────────────────────────────────────── #}
  125.     <div class="pr-sec" id="ai">
  126.         <h2>AI Workforce — HoneyBee Agents</h2>
  127.         <div class="lead">Specialized digital workers for your organization — priced per organization, not per employee.</div>
  128.         <div class="pr-grid">
  129.             <div class="pr-card">
  130.                 <div class="tier">Starter</div>
  131.                 <div class="price">€{{ p.agents.starter }}<small>/org/month</small></div>
  132.                 <ul><li>Any 4 agents</li></ul>
  133.             </div>
  134.             <div class="pr-card">
  135.                 <div class="tier">Growth</div>
  136.                 <div class="price">€{{ p.agents.growth }}<small>/org/month</small></div>
  137.                 <ul><li>Any 8 agents</li></ul>
  138.             </div>
  139.             <div class="pr-card hl">
  140.                 <div class="tier">Complete</div>
  141.                 <div class="price">€{{ p.agents.complete }}<small>/org/month</small></div>
  142.                 <ul><li>All 16 agents</li><li>Best value for automated teams</li></ul>
  143.             </div>
  144.             <div class="pr-card">
  145.                 <div class="tier">Enterprise</div>
  146.                 <div class="price">Custom</div>
  147.                 <ul><li>Private and custom-built agents</li></ul>
  148.             </div>
  149.         </div>
  150.         <div class="pr-fine">Fair use applies through HoneyCredits — a generous standard allowance
  151.             is included; heavy automation scales transparently instead of being silently throttled.</div>
  152.         <a class="pr-cta" href="/Contact">Explore AI Workforce</a>
  153.     </div>
  154.     {# ── HoneyCore ────────────────────────────────────────────────────────── #}
  155.     <div class="pr-sec" id="honeycore">
  156.         <h2>HoneyCore 4.0 — Industrial Edge &amp; Control</h2>
  157.         <div class="lead">One device, multiple applications: hybrid control, fuel saving, EMS, BMS, industrial IoT.</div>
  158.         <div class="pr-grid">
  159.             <div class="pr-card">
  160.                 <div class="tier">HoneyCore 4.0 Hardware</div>
  161.                 <div class="price">By proposal<small>/unit</small></div>
  162.                 <div class="from">Direct C&amp;I list price</div>
  163.                 <ul>
  164.                     <li>Industrial edge &amp; control platform</li>
  165.                     <li>Standard commissioning
  166.                         €{{ p.honeycore.commissioning_standard }} (remote, against an agreed architecture)</li>
  167.                 </ul>
  168.             </div>
  169.             <div class="pr-card hl">
  170.                 <div class="tier">Hybrid Control</div>
  171.                 <div class="price">€{{ p.honeycore.hybrid_site_month }}<small>/site/month</small></div>
  172.                 <ul>
  173.                     <li>PV + Grid · PV + DG · PV + BESS · full hybrid combinations</li>
  174.                     <li><b>Capacity-neutral</b> — the price never depends on your plant's MW size</li>
  175.                 </ul>
  176.             </div>
  177.         </div>
  178.         <div style="margin-top:22px; display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:16px;">
  179.             <div>
  180.                 <table class="pr-tbl">
  181.                     <tr><th colspan="3">HoneyCore EMS — per site/month</th></tr>
  182.                     <tr><td>Insight</td><td>up to {{ p.ems.endpoints.insight }} energy endpoints</td><td class="num">€{{ p.ems.insight }}</td></tr>
  183.                     <tr><td>Optimize</td><td>up to {{ p.ems.endpoints.optimize }}</td><td class="num">€{{ p.ems.optimize }}</td></tr>
  184.                     <tr><td>Autonomous</td><td>up to {{ p.ems.endpoints.autonomous }}</td><td class="num">€{{ p.ems.autonomous }}</td></tr>
  185.                     <tr><td>Enterprise</td><td>beyond / multi-site</td><td class="num">from €{{ p.ems.enterprise_from }}</td></tr>
  186.                 </table>
  187.             </div>
  188.             <div>
  189.                 <table class="pr-tbl">
  190.                     <tr><th colspan="3">HoneyCore BMS — per month</th></tr>
  191.                     <tr><td>Essential</td><td>≤{{ p.bms.points.essential }} billable points</td><td class="num">€{{ p.bms.essential }}</td></tr>
  192.                     <tr><td>Advanced</td><td>≤{{ p.bms.points.advanced|number_format(0, '.', ',') }}</td><td class="num">€{{ p.bms.advanced }}</td></tr>
  193.                     <tr><td>Professional</td><td>≤{{ p.bms.points.professional|number_format(0, '.', ',') }}</td><td class="num">€{{ p.bms.professional }}</td></tr>
  194.                     <tr><td>Enterprise</td><td>≤{{ p.bms.points.enterprise|number_format(0, '.', ',') }}</td><td class="num">from €{{ p.bms.enterprise_from }}</td></tr>
  195.                 </table>
  196.             </div>
  197.         </div>
  198.         <div class="pr-note"><b>Transparent engineering:</b> EMS/BMS rollout is a customized
  199.             <b>Enterprise Deployment &amp; Engineering</b> quotation — feasibility, communication
  200.             topology, integration and commissioning are scoped before you commit. Recurring
  201.             billing starts after successful commissioning / Site Acceptance, never at hardware
  202.             shipment. 12-month minimum subscription after commissioning. Essential safe local
  203.             control never depends on cloud connectivity.</div>
  204.         <div class="pr-fine">Authorized EPC and integration-partner pricing available —
  205.             <a href="/partners" style="color:var(--n-amber); font-weight:700;">become a partner</a>.</div>
  206.         <a class="pr-cta" href="/Contact">Request HoneyCore Solution</a>
  207.     </div>
  208.     {# ── HoneyWatt ────────────────────────────────────────────────────────── #}
  209.     <div class="pr-sec" id="honeywatt">
  210.         <h2>HoneyWatt — Solar Engineering</h2>
  211.         <div class="lead">Learn free. Design free. Pay when the project gets serious — no per-seat subscription.</div>
  212.         <div class="pr-grid">
  213.             <div class="pr-card hl">
  214.                 <div class="tier">Start Free</div>
  215.                 <div class="price">Free</div>
  216.                 <ul>
  217.                     <li>Account, Academy training and preliminary designs — free</li>
  218.                     <li>No per-seat fees for your team</li>
  219.                     <li>{{ p.honeywatt.trial_days }}-day full-feature trial</li>
  220.                 </ul>
  221.             </div>
  222.             <div class="pr-card">
  223.                 <div class="tier">Detailed Design — per project</div>
  224.                 <div class="price">from €{{ p.honeywatt.detailed_100kwp }}<small>/project</small></div>
  225.                 <ul>
  226.                     <li>≤100 kWp — €{{ p.honeywatt.detailed_100kwp }}</li>
  227.                     <li>≤1 MWp — €{{ p.honeywatt.detailed_1mwp }}</li>
  228.                     <li>≤5 MWp — €{{ p.honeywatt.detailed_5mwp }}</li>
  229.                     <li>≤20 MWp — €{{ p.honeywatt.detailed_20mwp }} · larger — custom</li>
  230.                     <li>{{ p.honeywatt.revisions_included }} design revisions included per project</li>
  231.                 </ul>
  232.             </div>
  233.             <div class="pr-card">
  234.                 <div class="tier">Project Packs</div>
  235.                 <div class="price">−{{ p.honeywatt.pack10_pct }}<small>% to</small> −{{ p.honeywatt.pack100_pct }}<small>%</small></div>
  236.                 <ul>
  237.                     <li>10 projects — {{ p.honeywatt.pack10_pct }}% off</li>
  238.                     <li>50 projects — {{ p.honeywatt.pack50_pct }}% off</li>
  239.                     <li>100+ — up to {{ p.honeywatt.pack100_pct }}% / Enterprise</li>
  240.                 </ul>
  241.             </div>
  242.         </div>
  243.         <div class="pr-fine">A HoneyWatt Detailed Design is software-generated engineering output.
  244.             Professional verification, statutory certification and local stamping are a separate
  245.             Expert Engineering Review, quoted on request.</div>
  246.         <a class="pr-cta amber" href="/tools/rooftop-estimate">Start HoneyWatt</a>
  247.     </div>
  248.     {# ── Discounts + implementation transparency ─────────────────────────── #}
  249.     <div class="pr-sec">
  250.         <h2>Discounts, simply</h2>
  251.         <div class="lead">Annual prepayment saves {{ p.discounts.annual_pct }}%. Using two product
  252.             families saves {{ p.discounts.ecosystem_2_families_pct }}%, three or more
  253.             {{ p.discounts.ecosystem_3_families_pct }}%. Combined recurring-software discounts
  254.             never exceed {{ p.discounts.max_combined_pct }}% — and discounts never silently apply
  255.             to hardware, engineering or project credits.</div>
  256.         {# ★ OWNER-DECISION SLOT — grandfathering. The previous pricing page promised launch
  257.            prices "locked in permanently"; the owner's precise rule replaces this neutral line. #}
  258.         <div class="pr-note"><b>Existing customers:</b> your current agreed plan terms continue to
  259.             apply.</div>
  260.     </div>
  261.     <div class="pr-hero" style="padding:48px 0 20px;">
  262.         <h1 style="font-size:24px;">Where should HoneyBee start in your organization?</h1>
  263.         <div class="pr-jump" style="margin-top:18px;">
  264.             <a href="/Contact" style="background:var(--n-dark); color:#fff; border-color:var(--n-dark);">Book a Demo</a>
  265.             <a href="/tools/rooftop-estimate">Trying HoneyWatt? Start free →</a>
  266.         </div>
  267.     </div>
  268. </div>
  269. {% include '@HoneybeeWeb/footer/central_footer.html.twig' %}