{% include '@Application/inc/central_header.html.twig' %}
<style>
/* ── Design Tokens ─────────────────────────────────────────────────────────── */
:root {
--n-cream: #F7F5F0;
--n-cream-2: #F0EDE5;
--n-white: #FFFFFF;
--n-dark: #1A1D2E;
--n-dark-2: #252840;
--n-amber: #C07D2A;
--n-amber-lt: #D4954A;
--n-amber-dim: rgba(192,125,42,.10);
--n-sage: #3D6B52;
--n-muted: #6B6E7F;
--n-muted-2: #9395A5;
--n-border: rgba(26,29,46,.07);
--n-border-md: rgba(26,29,46,.12);
--n-shadow-sm: 0 2px 12px rgba(26,29,46,.07);
--n-shadow-md: 0 8px 32px rgba(26,29,46,.09);
--n-shadow-lg: 0 20px 64px rgba(26,29,46,.10);
--n-radius: 12px;
--n-radius-sm: 8px;
--n-font: 'DM Sans', 'Poppins', system-ui, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { background: var(--n-cream); font-family: var(--n-font); color: var(--n-dark); text-align: left; }
a { text-decoration: none; }
/* ── Navbar ─────────────────────────────────────────────────────────────────── */
.navbar {
background: rgba(247,245,240,.96) !important;
backdrop-filter: blur(16px) saturate(180%);
border-bottom: 1px solid var(--n-border) !important;
box-shadow: none !important;
}
.navbar .nav-link { color: var(--n-dark) !important; font-size: 13.5px; font-weight: 500; opacity: .8; }
.navbar .nav-link:hover { opacity: 1; color: var(--n-dark) !important; }
.navbar .login-btn { background: var(--n-dark) !important; color: #fff !important; border: none !important; border-radius: 8px !important; padding: 8px 20px !important; font-size: 13px !important; font-weight: 600 !important; }
/* ── Utilities ──────────────────────────────────────────────────────────────── */
.n-wrap { max-width: 1160px; margin: 0 auto; padding: 0 28px; }
.n-label {
display: inline-flex; align-items: center; gap: 8px;
font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
color: var(--n-amber); margin-bottom: 16px;
}
.n-label::before { content:''; width: 18px; height: 1.5px; background: currentColor; border-radius: 2px; }
.n-h1 { font-family:'Montserrat',sans-serif; font-size: clamp(32px,4vw,54px); font-weight: 900; line-height: 1.06; letter-spacing: -.025em; color: var(--n-dark); }
.n-h1 em { font-style: normal; color: var(--n-amber); }
.n-h2 { font-family:'Montserrat',sans-serif; font-size: clamp(24px,2.8vw,38px); font-weight: 800; line-height: 1.12; letter-spacing: -.02em; }
.n-h2 em { font-style: normal; color: var(--n-amber); }
.n-body { font-size: 16px; line-height: 1.75; color: var(--n-muted); }
.n-btn {
display: inline-flex; align-items: center; gap: 8px;
padding: 12px 24px; border-radius: var(--n-radius-sm);
font-size: 14px; font-weight: 600; border: 1.5px solid transparent;
cursor: pointer; text-decoration: none; transition: all .18s; font-family: var(--n-font);
}
.n-btn-primary { background: var(--n-dark); color: #fff; border-color: var(--n-dark); }
.n-btn-primary:hover { background: var(--n-dark-2); color: #fff; transform: translateY(-1px); }
.n-btn-outline { background: transparent; border-color: var(--n-border-md); color: var(--n-dark); }
.n-btn-outline:hover { border-color: var(--n-dark); transform: translateY(-1px); }
.n-btn-amber { background: var(--n-amber); color: #fff; border-color: var(--n-amber); }
.n-btn-amber:hover { background: var(--n-amber-lt); color: #fff; transform: translateY(-1px); }
/* ── Hero ────────────────────────────────────────────────────────────────────── */
.n-svc-hero {
background: var(--n-cream);
padding: 116px 0 68px;
position: relative; overflow: hidden;
border-bottom: 1px solid var(--n-border);
}
.n-svc-hero::before {
content:''; position:absolute; top:0; right:0; width:55%; height:100%;
background: radial-gradient(ellipse 75% 70% at 80% 50%, rgba(192,125,42,.06) 0%, transparent 65%);
pointer-events: none;
}
.n-svc-nav {
display: flex; gap: 8px; flex-wrap: wrap; margin-top: 38px;
}
.n-svc-nav a {
display: inline-flex; align-items: center; gap: 6px;
padding: 6px 14px; border-radius: 100px;
font-size: 11.5px; font-weight: 600; font-family: monospace; letter-spacing: .04em;
background: var(--n-white); border: 1px solid var(--n-border-md); color: var(--n-muted);
text-decoration: none; transition: all .15s;
}
.n-svc-nav a:hover { border-color: var(--n-amber); color: var(--n-amber); }
.n-svc-nav a span { font-size: 10px; color: var(--n-amber); }
/* ── Stats bar ───────────────────────────────────────────────────────────────── */
.n-stats-bar {
background: var(--n-dark); padding: 22px 0;
}
.n-stats-inner {
display: grid; grid-template-columns: repeat(4, 1fr);
gap: 0; max-width: 1160px; margin: 0 auto; padding: 0 28px;
}
.n-stat-item { text-align: center; padding: 0 12px; border-right: 1px solid rgba(255,255,255,.08); }
.n-stat-item:last-child { border-right: none; }
.n-stat-num { font-family:'Montserrat',sans-serif; font-size: clamp(22px,2vw,30px); font-weight: 900; color: var(--n-amber); line-height: 1.1; }
.n-stat-lbl { font-size: 11.5px; color: rgba(255,255,255,.5); margin-top: 3px; letter-spacing: .04em; }
/* ── Service deep sections ───────────────────────────────────────────────────── */
.n-svc-section { padding: 88px 0; border-top: 1px solid var(--n-border); }
.n-svc-section.n-bg-white { background: var(--n-white); }
.n-svc-section.n-bg-cream2 { background: var(--n-cream-2); }
.n-svc-row {
display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center;
}
.n-svc-row.n-reverse { direction: rtl; }
.n-svc-row.n-reverse > * { direction: ltr; }
.n-svc-num {
font-family: monospace; font-size: 11px; font-weight: 700;
color: var(--n-amber); letter-spacing: .12em; text-transform: uppercase;
margin-bottom: 14px; display: block;
}
.n-svc-section h2 { color: var(--n-dark); margin-bottom: 18px; }
.n-svc-section p { font-size: 15px; color: var(--n-muted); line-height: 1.7; margin-bottom: 16px; }
.n-feat-list {
list-style: none; margin-top: 22px;
display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px;
}
.n-feat-list li {
font-size: 13.5px; color: var(--n-dark);
display: flex; align-items: flex-start; gap: 8px;
}
.n-feat-list li::before {
content: '→'; color: var(--n-amber); font-family: monospace;
font-size: 12px; flex-shrink: 0; margin-top: 2px;
}
.n-price-badge {
display: inline-flex; align-items: center; gap: 8px;
background: rgba(192,125,42,.12); border: 1px solid rgba(192,125,42,.25);
border-radius: 8px; padding: 8px 16px; margin-top: 24px;
font-size: 13px; color: var(--n-amber); font-weight: 700;
}
.n-price-badge strong { font-family:'Montserrat',sans-serif; font-size: 18px; }
/* ── Mock frame ──────────────────────────────────────────────────────────────── */
.n-mock {
background: var(--n-white); border: 1px solid var(--n-border-md);
border-radius: var(--n-radius); padding: 18px; box-shadow: var(--n-shadow-lg);
}
.n-mock-label {
font-family: monospace; font-size: 10px; color: var(--n-muted-2);
letter-spacing: .08em; text-transform: uppercase;
padding-bottom: 10px; border-bottom: 1px solid var(--n-border);
margin-bottom: 14px; display: flex; justify-content: space-between; align-items: center;
}
.n-mock-dots { display: flex; gap: 4px; }
.n-mock-dots span { width: 7px; height: 7px; border-radius: 50%; background: var(--n-border-md); }
/* ── Timeline mock (ERP Rollout) ─────────────────────────────────────────────── */
.n-timeline { display: flex; flex-direction: column; gap: 0; }
.n-phase {
display: flex; align-items: flex-start; gap: 12px;
padding: 10px 0; position: relative;
}
.n-phase:not(:last-child)::after {
content:''; position:absolute; left: 11px; top: 28px; bottom: -10px;
width: 1.5px; background: var(--n-border-md);
}
.n-phase-dot {
width: 23px; height: 23px; border-radius: 50%; flex-shrink: 0;
border: 2px solid var(--n-border-md); background: var(--n-cream);
display: flex; align-items: center; justify-content: center; margin-top: 1px;
}
.n-phase.done .n-phase-dot { background: var(--n-sage); border-color: var(--n-sage); }
.n-phase.active .n-phase-dot { background: var(--n-amber); border-color: var(--n-amber); animation: pulse-ring 2s infinite; }
.n-phase-dot svg { width: 11px; height: 11px; }
@keyframes pulse-ring {
0% { box-shadow: 0 0 0 0 rgba(192,125,42,.35); }
70% { box-shadow: 0 0 0 8px rgba(192,125,42,0); }
100% { box-shadow: 0 0 0 0 rgba(192,125,42,0); }
}
.n-phase-body { flex: 1; }
.n-phase-title {
font-size: 12.5px; font-weight: 700; color: var(--n-dark);
display: flex; justify-content: space-between; align-items: center;
}
.n-phase-week {
font-family: monospace; font-size: 10px; color: var(--n-muted-2);
background: var(--n-cream); border: 0.5px solid var(--n-border-md);
padding: 2px 7px; border-radius: 3px;
}
.n-phase-desc { font-size: 11px; color: var(--n-muted); margin-top: 3px; line-height: 1.4; }
.n-phase-bar { height: 4px; background: var(--n-cream-2); border-radius: 2px; margin-top: 6px; overflow: hidden; }
.n-phase-bar-fill { height: 100%; border-radius: 2px; background: var(--n-amber); }
.n-phase.done .n-phase-bar-fill { background: var(--n-sage); }
.n-phase.active .n-phase-bar-fill { background: var(--n-amber); }
.n-phase.todo .n-phase-bar-fill { width: 0%; }
.n-rollout-summary {
margin-top: 14px; padding: 10px 14px;
background: var(--n-cream); border: 0.5px solid var(--n-border-md); border-radius: 6px;
display: flex; gap: 20px; align-items: center;
}
.n-rollup-item { text-align: center; }
.n-rollup-item .lbl { font-family: monospace; font-size: 9px; color: var(--n-muted-2); text-transform: uppercase; letter-spacing: .08em; }
.n-rollup-item .val { font-family:'Montserrat',sans-serif; font-size: 16px; font-weight: 900; color: var(--n-dark); margin-top: 2px; }
.n-rollup-item .val.green { color: var(--n-sage); }
.n-rollup-divider { width: 1px; height: 32px; background: var(--n-border-md); }
/* ── EMS Dashboard mock ──────────────────────────────────────────────────────── */
.n-ems-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 10px; }
.n-ems-metric {
padding: 10px 10px; background: var(--n-cream); border: 0.5px solid var(--n-border); border-radius: 6px;
}
.n-ems-metric-lbl { font-family: monospace; font-size: 9px; color: var(--n-muted-2); text-transform: uppercase; letter-spacing: .08em; }
.n-ems-metric-val { font-family:'Montserrat',sans-serif; font-size: 18px; font-weight: 800; margin-top: 4px; color: var(--n-dark); }
.n-ems-metric-val span { font-size: 10px; font-weight: 400; color: var(--n-muted-2); font-family: var(--n-font); }
.n-ems-devices { background: var(--n-cream); border: 0.5px solid var(--n-border); border-radius: 6px; padding: 10px; margin-bottom: 8px; }
.n-ems-dev-head { font-family: monospace; font-size: 9px; color: var(--n-muted-2); text-transform: uppercase; letter-spacing: .08em; padding-bottom: 7px; border-bottom: 0.5px solid var(--n-border); margin-bottom: 7px; }
.n-ems-dev-row { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 11.5px; }
.n-ems-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.n-ems-dot.on { background: #4CAF50; }
.n-ems-dot.off { background: #E57373; }
.n-ems-dev-name { flex: 1; color: var(--n-dark); font-weight: 500; }
.n-ems-dev-kw { font-family: monospace; font-size: 10px; color: var(--n-muted); }
.n-ems-bar-row { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.n-ems-bar-lbl { width: 62px; font-size: 10px; font-family: monospace; color: var(--n-muted); white-space: nowrap; }
.n-ems-bar-track { flex: 1; height: 6px; background: var(--n-cream-2); border-radius: 3px; overflow: hidden; }
.n-ems-bar-fill { height: 100%; border-radius: 3px; background: linear-gradient(90deg, var(--n-sage), #6db48a); }
.n-ems-bar-val { font-family: monospace; font-size: 10px; color: var(--n-muted-2); width: 34px; text-align: right; }
/* ── IoT Network mock ────────────────────────────────────────────────────────── */
.n-iot-hub { text-align: center; margin-bottom: 10px; }
.n-iot-hub-node {
display: inline-flex; flex-direction: column; align-items: center; gap: 4px;
background: var(--n-dark); padding: 12px 20px; border-radius: 8px;
}
.n-iot-hub-node .hub-icon { font-size: 18px; }
.n-iot-hub-node .hub-label { font-family: monospace; font-size: 9px; color: var(--n-amber); text-transform: uppercase; letter-spacing: .08em; }
.n-iot-hub-node .hub-status { font-family: monospace; font-size: 9px; color: rgba(255,255,255,.5); }
.n-iot-connector { display: flex; justify-content: center; gap: 0; margin: -2px 0; }
.n-iot-connector-line { width: 1.5px; height: 16px; background: var(--n-border-md); margin: 0 auto; }
.n-iot-nodes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.n-iot-node {
background: var(--n-cream); border: 0.5px solid var(--n-border-md); border-radius: 6px;
padding: 9px 8px; text-align: center;
}
.n-iot-node .icon { font-size: 16px; }
.n-iot-node .type { font-family: monospace; font-size: 9px; color: var(--n-muted-2); text-transform: uppercase; letter-spacing: .06em; margin-top: 3px; }
.n-iot-node .name { font-size: 11px; color: var(--n-dark); font-weight: 600; margin-top: 2px; }
.n-iot-node-status {
display: flex; align-items: center; justify-content: center; gap: 4px;
margin-top: 5px; font-family: monospace; font-size: 9px;
}
.n-iot-node-status span { width: 5px; height: 5px; border-radius: 50%; }
.n-iot-node-status span.online { background: #4CAF50; }
.n-iot-node-status span.warn { background: var(--n-amber); }
.n-iot-proto {
margin-top: 10px; display: flex; gap: 6px; flex-wrap: wrap;
}
.n-iot-proto-chip {
padding: 3px 9px; border-radius: 3px; font-family: monospace; font-size: 9.5px; font-weight: 700; letter-spacing: .04em;
}
.n-proto-mqtt { background: rgba(61,107,82,.1); color: var(--n-sage); }
.n-proto-modbus { background: var(--n-amber-dim); color: var(--n-amber); }
.n-proto-opc { background: rgba(61,79,114,.1); color: #3D4F72; }
.n-proto-rest { background: rgba(26,29,46,.07); color: var(--n-muted); }
/* ── GPU Server mock (dark) ───────────────────────────────────────────────────── */
.n-gpu-mock {
background: #0D0F1A; border: 1px solid rgba(255,255,255,.08);
border-radius: var(--n-radius); padding: 18px; box-shadow: 0 20px 60px rgba(0,0,0,.4);
color: #e0e0e0;
}
.n-gpu-header {
display: flex; justify-content: space-between; align-items: center;
padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.07); margin-bottom: 14px;
}
.n-gpu-title { font-family: monospace; font-size: 10px; color: rgba(255,255,255,.4); letter-spacing: .08em; text-transform: uppercase; }
.n-gpu-live {
display: flex; align-items: center; gap: 5px;
font-family: monospace; font-size: 9.5px; color: #4CAF50;
}
.n-gpu-live::before { content:''; width: 6px; height: 6px; border-radius: 50%; background: #4CAF50; animation: blink 1.4s infinite; }
@keyframes blink { 0%,100%{opacity:1;} 50%{opacity:.3;} }
.n-gpu-model-row {
padding: 10px 12px; background: rgba(255,255,255,.04); border: 0.5px solid rgba(255,255,255,.07);
border-radius: 6px; margin-bottom: 8px;
display: flex; align-items: center; gap: 10px;
}
.n-gpu-model-icon { font-size: 16px; }
.n-gpu-model-name { font-size: 12px; font-weight: 700; color: #e0e0e0; }
.n-gpu-model-sub { font-family: monospace; font-size: 9px; color: rgba(255,255,255,.35); margin-top: 2px; }
.n-gpu-chip { font-family: monospace; font-size: 9px; padding: 2px 8px; border-radius: 3px; font-weight: 700; margin-left: auto; }
.n-gpu-chip.rtx { background: rgba(118,185,0,.15); border: 1px solid rgba(118,185,0,.3); color: #76b900; }
.n-gpu-chip.thor { background: rgba(0,115,207,.15); border: 1px solid rgba(0,115,207,.3); color: #60a8e8; }
.n-gpu-metrics { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; margin-bottom: 8px; }
.n-gpu-metric { background: rgba(255,255,255,.04); border: 0.5px solid rgba(255,255,255,.07); border-radius: 6px; padding: 9px 10px; }
.n-gpu-metric-lbl { font-family: monospace; font-size: 9px; color: rgba(255,255,255,.35); text-transform: uppercase; letter-spacing: .08em; }
.n-gpu-metric-val { font-family:'Montserrat',sans-serif; font-size: 16px; font-weight: 900; margin-top: 4px; color: #e0e0e0; }
.n-gpu-metric-val.ok { color: #76b900; }
.n-gpu-metric-val.hot { color: #FF9800; }
.n-gpu-mem-bar { background: rgba(255,255,255,.05); border-radius: 4px; height: 6px; margin-top: 4px; overflow: hidden; }
.n-gpu-mem-fill { height: 100%; background: linear-gradient(90deg, #76b900, #a0d84c); border-radius: 4px; width: 68%; }
.n-gpu-prompt {
background: rgba(255,255,255,.04); border: 0.5px solid rgba(255,255,255,.07);
border-radius: 6px; padding: 10px 12px;
}
.n-gpu-prompt-label { font-family: monospace; font-size: 9px; color: rgba(255,255,255,.3); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 5px; }
.n-gpu-prompt-text { font-family: monospace; font-size: 11px; color: rgba(255,255,255,.65); line-height: 1.5; }
.n-gpu-cursor { display: inline-block; width: 7px; height: 13px; background: var(--n-amber); border-radius: 1px; animation: blink 1.1s infinite; vertical-align: bottom; margin-left: 2px; }
/* ── Native LLM service section (dark) ──────────────────────────────────────── */
.n-svc-dark {
padding: 88px 0; background: var(--n-dark);
border-top: 1px solid rgba(255,255,255,.06);
}
.n-svc-dark .n-label { color: var(--n-amber); }
.n-svc-dark h2 { color: #fff; }
.n-svc-dark p { color: rgba(255,255,255,.6); }
.n-svc-dark .n-feat-list li { color: rgba(255,255,255,.85); }
.n-svc-dark .n-feat-list li::before { color: var(--n-amber); }
/* ── Delivery process ────────────────────────────────────────────────────────── */
.n-process { padding: 80px 0; background: var(--n-white); border-top: 1px solid var(--n-border); }
.n-process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; margin-top: 48px; }
.n-process-step { position: relative; }
.n-process-step:not(:last-child)::after {
content: ''; position: absolute; top: 26px; left: calc(50% + 28px);
width: calc(100% - 56px); height: 1.5px;
background: linear-gradient(90deg, var(--n-amber), transparent);
}
.n-step-num {
width: 52px; height: 52px; border-radius: 50%;
background: var(--n-amber-dim); border: 1.5px solid rgba(192,125,42,.2);
display: flex; align-items: center; justify-content: center;
font-family:'Montserrat',sans-serif; font-size: 16px; font-weight: 900; color: var(--n-amber);
margin: 0 auto 18px;
}
.n-process-step h4 { font-family:'Montserrat',sans-serif; font-size: 15px; font-weight: 700; color: var(--n-dark); text-align: center; margin-bottom: 8px; }
.n-process-step p { font-size: 13px; color: var(--n-muted); text-align: center; line-height: 1.6; }
/* ── CTA section ─────────────────────────────────────────────────────────────── */
.n-cta-section { background: var(--n-dark); padding: 80px 0; text-align: center; }
.n-cta-section h2 { color: #fff; margin-bottom: 16px; }
.n-cta-section p { color: rgba(255,255,255,.6); font-size: 15px; max-width: 520px; margin: 0 auto 36px; line-height: 1.7; }
/* ── Scroll reveal ───────────────────────────────────────────────────────────── */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .55s ease, transform .55s ease; }
.reveal.visible { opacity: 1; transform: none; }
/* ── Responsive ──────────────────────────────────────────────────────────────── */
@media (max-width: 820px) {
.n-svc-row, .n-svc-row.n-reverse { grid-template-columns: 1fr; direction: ltr; gap: 36px; }
.n-stats-inner { grid-template-columns: repeat(2, 1fr); gap: 8px; }
.n-process-grid { grid-template-columns: 1fr 1fr; }
.n-process-step::after { display: none; }
.n-feat-list { grid-template-columns: 1fr; }
}
</style>
<!-- ── HERO ─────────────────────────────────────────────────────────────────── -->
<section class="n-svc-hero">
<div class="n-wrap">
<span class="n-label trn" data-trn-key="_SVC_LABEL_">Professional Services</span>
<h1 class="n-h1"><span class="trn" data-trn-key="_SVC_H1_">Implementation, deployment, and integration services.</span></h1>
<p class="n-body trn" style="max-width:540px; margin-top:18px;" data-trn-key="_SVC_DESC_">
HoneyBee professional services cover ERP configuration, data migration, IoT integration, Edge+ deployment, private cloud setup, and custom development.
</p>
<nav class="n-svc-nav">
<a href="#erp-rollout"><span>01</span> ERP Rollout</a>
<a href="#honeycore-edge"><span>02</span> HoneyCore Edge & EMS</a>
<a href="#hardware-iot"><span>03</span> Hardware & IoT</a>
<a href="#native-llm"><span>04</span> Native LLM Server</a>
</nav>
</div>
</section>
<!-- ── STATS ─────────────────────────────────────────────────────────────────── -->
<div class="n-stats-bar">
<div class="n-stats-inner">
<div class="n-stat-item">
<div class="n-stat-num">50+</div>
<div class="n-stat-lbl trn" data-trn-key="_SVC_STAT1_LBL_">Deployments Completed</div>
</div>
<div class="n-stat-item">
<div class="n-stat-num">12</div>
<div class="n-stat-lbl trn" data-trn-key="_SVC_STAT2_LBL_">Countries Served</div>
</div>
<div class="n-stat-item">
<div class="n-stat-num">98%</div>
<div class="n-stat-lbl trn" data-trn-key="_SVC_STAT3_LBL_">On-Time Delivery</div>
</div>
<div class="n-stat-item">
<div class="n-stat-num">8 Weeks</div>
<div class="n-stat-lbl trn" data-trn-key="_SVC_STAT4_LBL_">Average ERP Go-Live</div>
</div>
</div>
</div>
<!-- ── SECTION 1: ERP ROLLOUT ────────────────────────────────────────────────── -->
<section id="erp-rollout" class="n-svc-section">
<div class="n-wrap">
<div class="n-svc-row reveal">
<!-- Copy -->
<div>
<span class="n-svc-num trn" data-trn-key="_SVC_ERP_NUM_">01 — ERP Rollout</span>
<h2 class="n-h2"><span class="trn" data-trn-key="_SVC_ERP_H2_">Implementation Services</span></h2>
<p class="n-body" style="margin-top:16px;">
Full ERP rollout including configuration, workflow setup, user onboarding, and go-live support.
</p>
<ul class="n-feat-list">
<li>Needs analysis & gap assessment</li>
<li>Data migration & cleansing</li>
<li>Module configuration & customisation</li>
<li>Role-based team training sessions</li>
<li>30-day hypercare & bug buffer</li>
<li>Success KPI tracking dashboard</li>
</ul>
<a href="{{ url('honeybee_contact') }}" class="n-btn n-btn-primary trn" style="margin-top:28px;" data-trn-key="_SVC_ERP_BTN_">Book Demo</a>
</div>
<!-- Mock: ERP rollout timeline -->
<div>
<div class="n-mock">
<div class="n-mock-label">
<span>HoneybeeERP — Rollout Plan</span>
<div class="n-mock-dots"><span></span><span style="background:var(--n-amber);opacity:.5;"></span><span></span></div>
</div>
<div class="n-timeline">
<div class="n-phase done">
<div class="n-phase-dot">
<svg viewBox="0 0 12 12" fill="none"><polyline points="2,6 5,9 10,3" stroke="#fff" stroke-width="2" stroke-linecap="round"/></svg>
</div>
<div class="n-phase-body">
<div class="n-phase-title">Discovery & Gap Analysis <span class="n-phase-week">Week 1–2</span></div>
<div class="n-phase-desc">Stakeholder interviews, process mapping, data audit</div>
<div class="n-phase-bar"><div class="n-phase-bar-fill" style="width:100%;"></div></div>
</div>
</div>
<div class="n-phase done">
<div class="n-phase-dot">
<svg viewBox="0 0 12 12" fill="none"><polyline points="2,6 5,9 10,3" stroke="#fff" stroke-width="2" stroke-linecap="round"/></svg>
</div>
<div class="n-phase-body">
<div class="n-phase-title">Data Migration & Setup <span class="n-phase-week">Week 3–4</span></div>
<div class="n-phase-desc">Legacy data cleansed, imported & verified in staging</div>
<div class="n-phase-bar"><div class="n-phase-bar-fill" style="width:100%;"></div></div>
</div>
</div>
<div class="n-phase active">
<div class="n-phase-dot"></div>
<div class="n-phase-body">
<div class="n-phase-title">Role-Based Training <span class="n-phase-week">Week 5–6</span></div>
<div class="n-phase-desc">Sales, Finance, HR, Operations — concurrent sessions</div>
<div class="n-phase-bar"><div class="n-phase-bar-fill" style="width:62%;"></div></div>
</div>
</div>
<div class="n-phase todo">
<div class="n-phase-dot"></div>
<div class="n-phase-body">
<div class="n-phase-title">Go-Live & Hypercare <span class="n-phase-week">Week 7–8</span></div>
<div class="n-phase-desc">Production cutover + 30-day dedicated support buffer</div>
<div class="n-phase-bar"><div class="n-phase-bar-fill" style="width:0%;"></div></div>
</div>
</div>
</div>
<div class="n-rollout-summary">
<div class="n-rollup-item">
<div class="lbl">Status</div>
<div class="val" style="font-size:13px;font-family:monospace;color:var(--n-amber);">In Progress</div>
</div>
<div class="n-rollup-divider"></div>
<div class="n-rollup-item">
<div class="lbl">Completion</div>
<div class="val">62%</div>
</div>
<div class="n-rollup-divider"></div>
<div class="n-rollup-item">
<div class="lbl">Modules Live</div>
<div class="val green">4 / 6</div>
</div>
<div class="n-rollup-divider"></div>
<div class="n-rollup-item">
<div class="lbl">Go-Live</div>
<div class="val" style="font-size:13px;font-family:monospace;">8 days</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ── SECTION 2: HONEYCORE EDGE & EMS ──────────────────────────────────────── -->
<section id="honeycore-edge" class="n-svc-section n-bg-white">
<div class="n-wrap">
<div class="n-svc-row n-reverse reveal">
<!-- Copy -->
<div>
<span class="n-svc-num trn" data-trn-key="_SVC_EMS_NUM_">02 — HoneyCore Edge & EMS</span>
<h2 class="n-h2"><span class="trn" data-trn-key="_SVC_EMS_H2_">HoneyBee Edge+ Deployment</span></h2>
<p class="n-body" style="margin-top:16px;">
Deploy and configure HoneyBee Edge+ devices at site level for local data capture, monitoring, and ERP integration.
</p>
<ul class="n-feat-list">
<li>Energy monitoring dashboards</li>
<li>Automated threshold alerting</li>
<li>Load scheduling & optimisation</li>
<li>Remote device management portal</li>
<li>Compliance & audit reporting</li>
<li>Carbon footprint & ESG tracking</li>
</ul>
<a href="{{ url('honeybee_contact') }}" class="n-btn n-btn-primary trn" style="margin-top:28px;" data-trn-key="_SVC_EMS_BTN_">Book Demo</a>
</div>
<!-- Mock: EMS Dashboard -->
<div>
<div class="n-mock">
<div class="n-mock-label">
<span>HoneyCore EMS — Live Dashboard</span>
<div class="n-mock-dots"><span></span><span></span><span></span></div>
</div>
<div class="n-ems-metrics">
<div class="n-ems-metric">
<div class="n-ems-metric-lbl">Power Draw</div>
<div class="n-ems-metric-val">48.3 <span>kW</span></div>
</div>
<div class="n-ems-metric">
<div class="n-ems-metric-lbl">Today Saved</div>
<div class="n-ems-metric-val" style="color:var(--n-sage);">12.1 <span>kWh</span></div>
</div>
<div class="n-ems-metric">
<div class="n-ems-metric-lbl">Temperature</div>
<div class="n-ems-metric-val">22.4 <span>°C</span></div>
</div>
</div>
<div style="margin-bottom:8px;">
<div style="font-family:monospace;font-size:9px;color:var(--n-muted-2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px;">Load by Zone</div>
<div class="n-ems-bar-row"><span class="n-ems-bar-lbl">Production</span><div class="n-ems-bar-track"><div class="n-ems-bar-fill" style="width:78%;"></div></div><span class="n-ems-bar-val">78%</span></div>
<div class="n-ems-bar-row"><span class="n-ems-bar-lbl">HVAC</span><div class="n-ems-bar-track"><div class="n-ems-bar-fill" style="width:54%;"></div></div><span class="n-ems-bar-val">54%</span></div>
<div class="n-ems-bar-row"><span class="n-ems-bar-lbl">Lighting</span><div class="n-ems-bar-track"><div class="n-ems-bar-fill" style="width:32%;"></div></div><span class="n-ems-bar-val">32%</span></div>
<div class="n-ems-bar-row"><span class="n-ems-bar-lbl">Cold Chain</span><div class="n-ems-bar-track"><div class="n-ems-bar-fill" style="width:90%;background:linear-gradient(90deg,var(--n-amber),#d4954a);"></div></div><span class="n-ems-bar-val" style="color:var(--n-amber);">90%</span></div>
</div>
<div class="n-ems-devices">
<div class="n-ems-dev-head">Connected Devices (12 / 14)</div>
<div class="n-ems-dev-row"><span class="n-ems-dot on"></span><span class="n-ems-dev-name">Smart Meter — Line A</span><span class="n-ems-dev-kw">18.4 kW</span></div>
<div class="n-ems-dev-row"><span class="n-ems-dot on"></span><span class="n-ems-dev-name">Edge Gateway — Warehouse</span><span class="n-ems-dev-kw">3.2 kW</span></div>
<div class="n-ems-dev-row"><span class="n-ems-dot off"></span><span class="n-ems-dev-name">Compressor Sensor — Bay 3</span><span class="n-ems-dev-kw" style="color:#E57373;">Offline</span></div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ── SECTION 3: HARDWARE & IoT INTEGRATION ────────────────────────────────── -->
<section id="hardware-iot" class="n-svc-section n-bg-cream2">
<div class="n-wrap">
<div class="n-svc-row reveal">
<!-- Copy -->
<div>
<span class="n-svc-num trn" data-trn-key="_SVC_IOT_NUM_">03 — Hardware & IoT Integration</span>
<h2 class="n-h2"><span class="trn" data-trn-key="_SVC_IOT_H2_">Industrial IoT Integration</span></h2>
<p class="n-body" style="margin-top:16px;">
Integrate meters, sensors, PLCs, Raspberry Pi, energy systems, and third-party devices with HoneyBee.
</p>
<ul class="n-feat-list">
<li>PLC & SCADA connectivity</li>
<li>Sensor deployment & calibration</li>
<li>MQTT / Modbus / OPC-UA setup</li>
<li>Edge gateway configuration</li>
<li>ERP data bridging & mapping</li>
<li>Remote diagnostic & OTA access</li>
</ul>
<a href="{{ url('honeybee_contact') }}" class="n-btn n-btn-primary trn" style="margin-top:28px;" data-trn-key="_SVC_IOT_BTN_">Book Demo</a>
</div>
<!-- Mock: IoT network diagram -->
<div>
<div class="n-mock">
<div class="n-mock-label">
<span>IoT Device Mesh — Production Floor</span>
<div class="n-mock-dots"><span></span><span></span><span></span></div>
</div>
<div class="n-iot-hub">
<div class="n-iot-hub-node">
<div class="hub-icon">🖥</div>
<div class="hub-label">Edge Gateway</div>
<div class="hub-status">HoneyCore Node v2.1</div>
</div>
</div>
<div style="display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:4px 0 2px;padding:0 8px;">
<div style="text-align:center;"><div style="width:1.5px;height:14px;background:var(--n-border-md);margin:0 auto;"></div></div>
<div style="text-align:center;"><div style="width:1.5px;height:14px;background:var(--n-border-md);margin:0 auto;"></div></div>
<div style="text-align:center;"><div style="width:1.5px;height:14px;background:var(--n-border-md);margin:0 auto;"></div></div>
<div style="text-align:center;"><div style="width:1.5px;height:14px;background:var(--n-border-md);margin:0 auto;"></div></div>
</div>
<div class="n-iot-nodes">
<div class="n-iot-node">
<div class="icon">⚙️</div>
<div class="type">PLC</div>
<div class="name">Siemens S7</div>
<div class="n-iot-node-status"><span class="online"></span> Online</div>
</div>
<div class="n-iot-node">
<div class="icon">🌡</div>
<div class="type">Sensor</div>
<div class="name">Temp Array</div>
<div class="n-iot-node-status"><span class="online"></span> Online</div>
</div>
<div class="n-iot-node">
<div class="icon">📷</div>
<div class="type">Vision</div>
<div class="name">QC Camera</div>
<div class="n-iot-node-status"><span class="warn"></span> Warn</div>
</div>
<div class="n-iot-node">
<div class="icon">🔌</div>
<div class="type">Smart PDU</div>
<div class="name">Rack Power</div>
<div class="n-iot-node-status"><span class="online"></span> Online</div>
</div>
</div>
<div class="n-iot-proto">
<span class="n-iot-proto-chip n-proto-mqtt">MQTT</span>
<span class="n-iot-proto-chip n-proto-modbus">Modbus RTU</span>
<span class="n-iot-proto-chip n-proto-opc">OPC-UA</span>
<span class="n-iot-proto-chip n-proto-rest">REST → ERP</span>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ── SECTION 4: NATIVE LLM SERVER DEPLOYMENT ──────────────────────────────── -->
<section id="native-llm" class="n-svc-dark">
<div class="n-wrap">
<div class="n-svc-row n-reverse reveal" style="align-items:center;">
<!-- Copy -->
<div>
<span class="n-label trn" data-trn-key="_SVC_LLM_LABEL_">04 — Native LLM Deployment</span>
<h2 class="n-h2" style="color:#fff;"><span class="trn" data-trn-key="_SVC_LLM_H2_">ML / AI Deployment</span></h2>
<p style="font-size:15px;color:rgba(255,255,255,.6);line-height:1.7;margin-top:16px;margin-bottom:0;">
Deploy local ML models on dedicated hardware for offline or air-gapped industrial environments.
</p>
<ul class="n-feat-list" style="margin-top:22px;">
<li>GPU server procurement & configuration</li>
<li>LLM model installation & fine-tuning</li>
<li>ERP data connector & RAG setup</li>
<li>Prompt engineering for your workflows</li>
<li>Performance benchmarking & tuning</li>
<li>Staff enablement & API access</li>
</ul>
<div class="n-price-badge" style="background:rgba(192,125,42,.15);border-color:rgba(192,125,42,.3);">
<svg width="14" height="14" fill="none" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" stroke="#C07D2A" stroke-width="2"/><path d="M12 6v6l4 2" stroke="#C07D2A" stroke-width="2" stroke-linecap="round"/></svg>
One-time deployment — from <strong>€10,000</strong> · Unlimited AI users
</div>
<div style="margin-top:24px;display:flex;gap:12px;flex-wrap:wrap;">
<a href="{{ url('honeybee_contact') }}" class="n-btn n-btn-amber trn" data-trn-key="_SVC_LLM_BTN_">Book Demo</a>
<a href="{{ url('honeybee_contact') }}" class="n-btn" style="border-color:rgba(255,255,255,.2);color:rgba(255,255,255,.75);">Learn About Native AI →</a>
</div>
</div>
<!-- Mock: GPU inference server (dark) -->
<div>
<div class="n-gpu-mock">
<div class="n-gpu-header">
<span class="n-gpu-title">HoneybeeAI — Inference Server</span>
<span class="n-gpu-live">LIVE</span>
</div>
<div class="n-gpu-model-row">
<span class="n-gpu-model-icon">🧠</span>
<div>
<div class="n-gpu-model-name">Mistral-7B-Instruct-v0.3</div>
<div class="n-gpu-model-sub">Loaded · Context: 8192 tokens</div>
</div>
<span class="n-gpu-chip rtx">RTX 3090</span>
</div>
<div class="n-gpu-metrics">
<div class="n-gpu-metric">
<div class="n-gpu-metric-lbl">VRAM Used</div>
<div class="n-gpu-metric-val ok">16.3 GB</div>
<div class="n-gpu-mem-bar"><div class="n-gpu-mem-fill"></div></div>
</div>
<div class="n-gpu-metric">
<div class="n-gpu-metric-lbl">Throughput</div>
<div class="n-gpu-metric-val">42 t/s</div>
</div>
<div class="n-gpu-metric">
<div class="n-gpu-metric-lbl">GPU Temp</div>
<div class="n-gpu-metric-val hot">71 °C</div>
</div>
</div>
<div class="n-gpu-prompt">
<div class="n-gpu-prompt-label">Active Request</div>
<div class="n-gpu-prompt-text">
"Generate the Q1 2026 sales performance report for the Singapore region, include trend analysis, top 5 SKUs by margin, and recommended actions based on current pipeline data..."<span class="n-gpu-cursor"></span>
</div>
</div>
<div style="display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;">
<span style="font-family:monospace;font-size:9px;padding:2px 8px;border-radius:3px;background:rgba(118,185,0,.12);border:1px solid rgba(118,185,0,.25);color:#76b900;">NVIDIA CUDA 12.4</span>
<span style="font-family:monospace;font-size:9px;padding:2px 8px;border-radius:3px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.5);">llama.cpp backend</span>
<span style="font-family:monospace;font-size:9px;padding:2px 8px;border-radius:3px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.5);">Private · Air-Gapped</span>
</div>
</div>
<!-- Jetson Thor option -->
<div style="margin-top:12px;background:rgba(0,115,207,.08);border:1px solid rgba(0,115,207,.2);border-radius:10px;padding:12px 16px;display:flex;align-items:center;gap:12px;">
<span style="font-size:20px;">⚡</span>
<div>
<div style="font-size:12.5px;font-weight:700;color:#60a8e8;">Also Available: NVIDIA Jetson Thor</div>
<div style="font-family:monospace;font-size:10px;color:rgba(255,255,255,.4);margin-top:3px;">Ultra-compact edge AI · 60 TOPS · Ideal for on-device inference & robotics</div>
</div>
<span style="margin-left:auto;font-family:monospace;font-size:10px;padding:3px 9px;border-radius:3px;background:rgba(0,115,207,.15);border:1px solid rgba(0,115,207,.3);color:#60a8e8;">THOR</span>
</div>
</div>
</div>
</div>
</section>
<!-- ── DELIVERY PROCESS ──────────────────────────────────────────────────────── -->
<section class="n-process">
<div class="n-wrap">
<div class="n-center reveal">
<span class="n-label trn" style="justify-content:center;" data-trn-key="_SVC_PROCESS_LABEL_">How We Work</span>
<h2 class="n-h2"><span class="trn" data-trn-key="_SVC_PROCESS_H2_">Our Engagement</span> <em class="trn" data-trn-key="_SVC_PROCESS_H2_EM_">Process</em></h2>
<p class="n-body trn" style="max-width:500px;margin:12px auto 0;" data-trn-key="_SVC_PROCESS_DESC_">A structured four-phase approach that keeps every deployment on time, in budget, and fully adopted by your team.</p>
</div>
<div class="n-process-grid reveal">
<div class="n-process-step">
<div class="n-step-num">1</div>
<h4 class="trn" data-trn-key="_SVC_STEP1_">Scoping & Discovery</h4>
<p>We map your current processes, identify gaps, define success metrics, and produce a signed project scope — before any contract is signed.</p>
</div>
<div class="n-process-step">
<div class="n-step-num">2</div>
<h4 class="trn" data-trn-key="_SVC_STEP2_">Build & Configure</h4>
<p>Our engineers configure your environment, migrate data, set up hardware, and integrate all third-party connections in a staging environment.</p>
</div>
<div class="n-process-step">
<div class="n-step-num">3</div>
<h4 class="trn" data-trn-key="_SVC_STEP3_">Train & Validate</h4>
<p>Role-based training sessions with real company data. UAT sign-off from every department before we touch production.</p>
</div>
<div class="n-process-step">
<div class="n-step-num">4</div>
<h4 class="trn" data-trn-key="_SVC_STEP4_">Go-Live & Support</h4>
<p>Managed cutover to production with a dedicated hypercare team on-call for 30 days. Then ongoing SLA support as needed.</p>
</div>
</div>
</div>
</section>
<!-- ── COMMERCIAL NOTE ───────────────────────────────────────────────────────── -->
<section style="padding:40px 0 0;background:var(--n-white);">
<div class="n-wrap">
<div style="background:rgba(192,125,42,.08);border:1px solid rgba(192,125,42,.2);border-radius:10px;padding:20px 24px;margin:32px 0">
<p style="margin:0;font-size:14px;color:var(--n-muted);line-height:1.7;">Hardware, servers, gateways, sensors, Edge+ devices, local ML infrastructure, and private deployment services are quoted separately based on project scope. These are not purchased through instant checkout. Payment is made by bank transfer against formal invoice.</p>
</div>
</div>
</section>
<!-- ── FINAL CTA ─────────────────────────────────────────────────────────────── -->
<section class="n-cta-section reveal">
<div class="n-wrap">
<span class="n-label trn" style="justify-content:center;" data-trn-key="_SVC_CTA_LABEL_">Ready to Start?</span>
<h2 class="n-h2"><span class="trn" data-trn-key="_SVC_CTA_H2_">Let's Plan Your</span> <em class="trn" data-trn-key="_SVC_CTA_H2_EM_">Deployment</em></h2>
<p class="trn" data-trn-key="_SVC_CTA_DESC_">Tell us about your project and we'll come back with a detailed scoping proposal — no obligation, no sales pressure.</p>
<div style="display:flex;gap:12px;justify-content:center;flex-wrap:wrap;">
<a href="{{ url('honeybee_contact') }}" class="n-btn n-btn-amber trn" data-trn-key="_SVC_CTA_BTN_">Book Demo</a>
<a href="{{ url('honeybee_pricing') }}" class="n-btn" style="border-color:rgba(255,255,255,.2);color:rgba(255,255,255,.75);">View Pricing →</a>
</div>
</div>
</section>
{% include '@HoneybeeWeb/footer/central_footer.html.twig' %}
<script>
(function(){
const observer = new IntersectionObserver(function(entries){
entries.forEach(function(e){
if(e.isIntersecting){ e.target.classList.add('visible'); observer.unobserve(e.target); }
});
},{ threshold: 0.12 });
document.querySelectorAll('.reveal').forEach(function(el){ observer.observe(el); });
})();
</script>