{% 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, HoneyCore 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 HoneyCore Edge+ Deployment</span></h2>
<p class="n-body" style="margin-top:16px;">
Deploy and configure HoneyBee HoneyCore 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>€6,000</strong> (1× RTX 5090) or <strong>€10,000</strong> (2× RTX 5090) · 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">Llama-3.3-70B-Instruct · Q4</div>
<div class="n-gpu-model-sub">Loaded · Context: 32,768 tokens</div>
</div>
<span class="n-gpu-chip rtx">2× RTX 5090</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">44.6 / 64 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, HoneyCore Edge EMS 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>