<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Subscription Quote {{ quote.quoteToken|slice(0,8)|upper }} — HoneyBee ERP</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
/* ── Design tokens (Scandinavian — matches home.html.twig) ── */
:root {
--cream: #F7F5F0;
--cream-2: #F0EDE5;
--cream-3: #E8E3D9;
--white: #FFFFFF;
--dark: #1A1D2E;
--navy: #1E3A6E;
--amber: #C07D2A;
--amber-lt: #D4954A;
--amber-dim: rgba(192,125,42,.10);
--sage: #3D6B52;
--muted: #6B6E7F;
--muted-2: #9395A5;
--border: rgba(26,29,46,.07);
--border-md: rgba(26,29,46,.12);
--border-str: rgba(26,29,46,.18);
}
body {
font-family: 'Segoe UI', -apple-system, Arial, sans-serif;
font-size: 13px;
color: var(--dark);
background: #fff;
print-color-adjust: exact;
-webkit-print-color-adjust: exact;
line-height: 1.55;
}
.page { width: 210mm; min-height: 297mm; margin: 0 auto; padding: 14mm 16mm 10mm; background: #fff; }
/* ── Header ── */
.doc-header {
display: flex; justify-content: space-between; align-items: flex-start;
padding-bottom: 18px;
border-bottom: 1.5px solid var(--cream-3);
margin-bottom: 22px;
}
.brand { display: flex; align-items: center; gap: 13px; }
.brand-logo { width: 42px; height: 42px; object-fit: contain; border-radius: 8px; }
.brand-name { font-size: 1.2rem; font-weight: 800; color: var(--navy); letter-spacing: -.02em; line-height: 1.1; }
.brand-sub { font-size: 0.67rem; color: var(--muted-2); margin-top: 2px; text-transform: uppercase; letter-spacing: .08em; }
.brand-contact { font-size: 0.67rem; color: var(--muted-2); margin-top: 3px; }
.doc-meta { text-align: right; }
.doc-type { font-size: 0.78rem; font-weight: 800; color: var(--amber); text-transform: uppercase; letter-spacing: .12em; }
.doc-ref { font-size: 0.76rem; color: var(--muted); margin-top: 3px; }
.doc-ref strong { color: var(--dark); }
.doc-expires { font-size: 0.73rem; color: #a0522d; font-weight: 600; margin-top: 8px; }
/* ── Status row ── */
.status-row { display: flex; align-items: center; gap: 9px; margin-bottom: 22px; flex-wrap: wrap; }
.status-badge {
display: inline-flex; align-items: center; gap: 5px;
border-radius: 4px; padding: 3px 12px;
font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em;
border: 1px solid transparent;
}
.status-badge.sent { background: rgba(30,58,110,.07); color: var(--navy); border-color: rgba(30,58,110,.15); }
.status-badge.accepted { background: rgba(61,107,82,.08); color: var(--sage); border-color: rgba(61,107,82,.2); }
.status-badge.draft { background: rgba(26,29,46,.05); color: var(--muted); border-color: var(--border-md); }
.status-badge.modified { background: var(--amber-dim); color: var(--amber); border-color: rgba(192,125,42,.2); }
.status-badge.rejected { background: rgba(160,82,45,.07); color: #a0522d; border-color: rgba(160,82,45,.2); }
.status-badge.requested { background: rgba(30,58,110,.07); color: var(--navy); border-color: rgba(30,58,110,.15); }
.renew-badge {
display: inline-flex; align-items: center; gap: 5px;
background: var(--amber-dim); color: var(--amber);
border: 1px solid rgba(192,125,42,.2); border-radius: 4px;
padding: 3px 12px; font-size: 0.68rem; font-weight: 600;
}
/* ── Parties ── */
.doc-parties { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 22px; }
.party-label { font-size: 0.6rem; text-transform: uppercase; letter-spacing: .14em; color: var(--muted-2); font-weight: 700; margin-bottom: 6px; }
.party-name { font-weight: 700; font-size: 0.92rem; color: var(--dark); margin-bottom: 3px; }
.party-line { font-size: 0.8rem; color: var(--muted); margin-bottom: 1px; }
/* ── Section title ── */
.section-title {
font-size: 0.63rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em;
color: var(--muted-2); margin-bottom: 10px; margin-top: 22px;
display: flex; align-items: center; gap: 8px;
}
.section-title::after { content: ''; flex: 1; height: 1px; background: var(--cream-3); }
/* ── Plan card ── */
.plan-card {
background: var(--cream);
border: 1px solid var(--border-md);
border-radius: 8px; padding: 16px 20px;
display: grid; grid-template-columns: repeat(3,1fr); gap: 16px;
}
.plan-item__label { font-size: 0.59rem; text-transform: uppercase; letter-spacing: .12em; color: var(--muted-2); font-weight: 700; margin-bottom: 3px; }
.plan-item__val { font-size: 0.9rem; font-weight: 700; color: var(--dark); }
.plan-item__note { font-size: 0.7rem; color: var(--muted); margin-top: 2px; }
/* ── What's Included ── */
.features-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 4px 16px; }
.feature-item { display: flex; align-items: center; gap: 7px; font-size: 0.79rem; color: var(--muted); padding: 4px 0; }
.feat-check {
width: 14px; height: 14px; border-radius: 50%; flex-shrink: 0;
display: inline-flex; align-items: center; justify-content: center;
font-size: 0.55rem; font-weight: 900;
background: var(--amber-dim); color: var(--amber); border: 1px solid rgba(192,125,42,.25);
}
.feat-check.sage { background: rgba(61,107,82,.08); color: var(--sage); border-color: rgba(61,107,82,.25); }
/* ── Pricing table ── */
.doc-table { width: 100%; border-collapse: collapse; }
.doc-table thead tr { background: var(--cream-2); }
.doc-table th {
padding: 9px 14px; text-align: left;
font-size: 0.67rem; font-weight: 700; letter-spacing: .07em; color: var(--muted);
text-transform: uppercase; border-bottom: 1.5px solid var(--cream-3);
}
.doc-table th.c { text-align: center; }
.doc-table th.r { text-align: right; }
.doc-table td { padding: 10px 14px; border-bottom: 1px solid var(--cream-3); font-size: 0.83rem; vertical-align: middle; color: var(--dark); }
.doc-table td.c { text-align: center; color: var(--muted); }
.doc-table td.r { text-align: right; font-weight: 700; }
.doc-table tbody tr:last-child td { border-bottom: none; }
.row-name { font-weight: 600; color: var(--dark); }
.row-sub { font-size: 0.73rem; color: var(--muted-2); margin-top: 2px; }
.user-tag {
display: inline-block; padding: 1px 7px; border-radius: 3px; margin-left: 5px;
font-size: 0.63rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
}
.user-tag.std { background: rgba(30,58,110,.07); color: var(--navy); }
.user-tag.admin { background: var(--amber-dim); color: var(--amber); }
.user-tag.ml { background: rgba(61,107,82,.08); color: var(--sage); }
.yearly-note { font-size: 0.7rem; color: var(--muted-2); margin-top: 8px; font-style: italic; }
/* ── Totals ── */
.totals-wrap { display: flex; justify-content: flex-end; margin-top: 16px; }
.totals-box { width: 310px; border: 1px solid var(--border-md); border-radius: 8px; overflow: hidden; }
.totals-row { display: flex; justify-content: space-between; align-items: center; padding: 9px 18px; font-size: 0.85rem; border-bottom: 1px solid var(--cream-3); color: var(--dark); }
.totals-row.discount { color: var(--sage); }
.totals-row.promo { color: var(--amber); }
.totals-row.total-final {
border: none;
/*background: var(--navy);*/
background: var(--amber);
color: #fff;
font-weight: 800; font-size: 0.97rem; padding: 13px 18px;
}
.total-sub { font-size: 0.67rem; color: rgba(255,255,255,.55); margin-top: 2px; }
/* ── Payment grid ── */
.payment-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pay-item { background: var(--cream); border: 1px solid var(--border); border-radius: 7px; padding: 12px 15px; }
.pay-item__title { font-size: 0.64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted-2); margin-bottom: 5px; }
.pay-item__body { font-size: 0.8rem; color: var(--muted); line-height: 1.55; }
/* ── SLA ── */
.sla-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.sla-item { background: var(--cream); border: 1px solid var(--border); border-radius: 7px; padding: 11px 14px; }
.sla-item__title { font-size: 0.72rem; font-weight: 700; color: var(--dark); margin-bottom: 3px; }
.sla-item__body { font-size: 0.74rem; color: var(--muted); line-height: 1.45; }
/* ── Notes ── */
.notes-box {
padding: 11px 16px;
background: rgba(192,125,42,.06);
border-left: 3px solid var(--amber);
border-radius: 5px;
font-size: 0.8rem; color: #7a5820;
}
/* ── Key terms callout ── */
.terms-callout {
background: var(--cream);
border: 1px solid var(--border-md);
border-left: 3px solid var(--navy);
border-radius: 7px; padding: 14px 18px;
}
.terms-callout__title { font-size: 0.64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: var(--navy); margin-bottom: 6px; }
.terms-callout__body { font-size: 0.8rem; color: var(--muted); line-height: 1.65; }
.terms-callout__body a { color: var(--navy); text-decoration: none; border-bottom: 1px solid rgba(30,58,110,.25); }
/* ── Footer ── */
.doc-footer {
margin-top: 26px; padding-top: 14px;
border-top: 1px solid var(--cream-3);
display: flex; justify-content: space-between; align-items: flex-end;
font-size: 0.68rem; color: var(--muted-2);
}
.footer-links { display: flex; gap: 12px; margin-top: 3px; }
.footer-links a { color: var(--muted-2); text-decoration: none; font-size: 0.65rem; border-bottom: 1px solid var(--cream-3); }
/* ── Print ── */
@media print {
body { background: #fff; }
.no-print { display: none !important; }
.page { padding: 8mm 12mm; }
}
@media screen {
body { background: var(--cream-2); padding: 20px 0 40px; }
.print-btn { display: block; max-width: 210mm; margin: 0 auto 16px; text-align: right; }
.print-btn button {
background: var(--navy); color: #fff; border: none;
padding: 9px 22px; border-radius: 7px; font-size: 0.88rem; font-weight: 700; cursor: pointer;
}
.print-btn button:hover { background: var(--dark); }
}
</style>
</head>
<body>
<div class="print-btn no-print">
<button onclick="window.print()">Print / Save as PDF</button>
</div>
<div class="page">
{# ── HEADER ── #}
<div class="doc-header">
<div class="brand">
{# <a class="hb-brand" href="{{ url('dashboard') }}">#}
{# <img src="{{ absolute_url(path('dashboard')) }}honeybee_web_assets/icons/honeybeeicon.svg?v={{ constant('ApplicationBundle\\Constants\\GeneralConstant::ENTITY_APP_VERSION') }}" alt="HoneyBee">#}
{# <span class="hb-brand-name">Honey<b>Bee</b></span>#}
{# </a>#}
<img class="brand-logo" src="{{ url('dashboard') }}honeybee_web_assets/icons/honeybeeicon.svg" alt="HoneyBee ERP">
<div>
<div class="hb-brand-name" style="font-size: 15.5px;
font-weight: 800;
color: var(--hb-ink);
letter-spacing: -.01em;
line-height: 1;"><span>Honey<b style="color: var(--hb-amber);">Bee</b></span></div>
<div class="brand-sub">Ecosystem</div>
<div class="brand-contact">contact@ourhoneybee.eu · ourhoneybee.eu</div>
</div>
</div>
<div class="doc-meta">
<div class="doc-type">Subscription Quote</div>
<div class="doc-ref">Ref: <strong>{{ quote.quoteToken|slice(0,12)|upper }}</strong></div>
<div class="doc-ref">Issued: <strong>{{ quote.createdAt ? quote.createdAt|date('d M Y') : '—' }}</strong></div>
<div class="doc-expires">Valid Until: {{ quote.expiresAt ? quote.expiresAt|date('d M Y') : '30 days from issue' }}</div>
</div>
</div>
{# ── STATUS ── #}
<div class="status-row">
<span class="status-badge {{ quote.status }}">
{% if quote.status == 'accepted' %}✓ {% elseif quote.status == 'rejected' %}✕ {% endif %}{{ quote.status|upper }}
</span>
<span class="renew-badge">↻ Auto-renewing · {{ quote.billingCycle|title }} Subscription</span>
</div>
{# ── PARTIES ── #}
<div class="doc-parties">
<div>
<div class="party-label">From</div>
<div class="party-name">HoneyBee IoT (Pte.) Ltd.</div>
<div class="party-line">2 Venture Drive, #19-21
Vision Exchange,</div>
<div class="party-line"> Singapore 608526</div>
<div class="party-line">UEN: 202507612D</div>
<div class="party-line">contact@ourhoneybee.eu</div>
<div class="party-line">ourhoneybee.eu</div>
</div>
<div>
<div class="party-label" style="">Prepared For</div>
<div class="party-name">{{ quote.companyName ?: (quote.customerName ?: 'Valued Customer') }}</div>
{% if quote.customerName and quote.companyName %}<div class="party-line">Attn: {{ quote.customerName }}</div>{% endif %}
{% if quote.customerDesignation %}<div class="party-line"> {{ quote.customerDesignation }}</div>{% endif %}
{% if quote.customerEmail %}<div class="party-line">{{ quote.customerEmail }}</div>{% endif %}
{% if quote.customerPhone %}<div class="party-line">{{ quote.customerPhone }}</div>{% endif %}
{% if quote.companyAddress %}<div class="party-line">{{ quote.companyAddress }}</div>{% endif %}
{% if quote.country %}<div class="party-line">{{ quote.country }}</div>{% endif %}
{% if quote.companyVatNo %}<div class="party-line">VAT NO. {{ quote.companyVatNo }}</div>{% endif %}
</div>
</div>
{# ── SUBSCRIPTION DETAILS ── #}
<div class="section-title">Subscription Details</div>
<div class="plan-card">
<div>
<div class="plan-item__label">Plan</div>
<div class="plan-item__val">HoneyBee {{ quote.planType|title }}</div>
<div class="plan-item__note">Cloud SaaS · Per-seat licensing</div>
</div>
<div>
<div class="plan-item__label">Billing Cycle</div>
<div class="plan-item__val">{{ quote.billingCycle|title }}</div>
<div class="plan-item__note">
{%- if quote.billingCycle == 'yearly' -%}Billed annually · 20% saving{%- else -%}Billed each calendar month{%- endif -%}
</div>
</div>
<div>
{% set totalSeats = (quote.normalUserCount ?: 0) + (quote.adminUserCount ?: 0) + (quote.mlUserCount ?: 0) %}
{% set totalSeatsWithoutMl = (quote.normalUserCount ?: 0) + (quote.adminUserCount ?: 0) %}
<div class="plan-item__label">Total Seats / AI ML Enhanced Seats</div>
<div class="plan-item__val">{{ totalSeatsWithoutMl }} Seat{{ totalSeats != 1 ? 's' : '' }} / {{ (quote.mlUserCount ?: 0) }} Seat{{ (quote.mlUserCount ?: 0) != 1 ? 's' : '' }} </div>
{# <div class="plan-item__val">{{ totalSeats }} User{{ totalSeats != 1 ? 's' : '' }}</div>#}
<div class="plan-item__note">Scalable · Add users anytime</div>
</div>
</div>
{# ── WHAT'S INCLUDED ── #}
<div class="section-title">What's Included</div>
<div class="features-grid">
<div class="feature-item"><span class="feat-check">✓</span> CRM & Sales Management</div>
<div class="feature-item"><span class="feat-check">✓</span> Inventory & Warehouse</div>
<div class="feature-item"><span class="feat-check">✓</span> Finance & Accounting</div>
<div class="feature-item"><span class="feat-check">✓</span> HR & Payroll</div>
<div class="feature-item"><span class="feat-check">✓</span> Purchase Management</div>
<div class="feature-item"><span class="feat-check">✓</span> Reports & Analytics</div>
<div class="feature-item"><span class="feat-check">✓</span> Production Module</div>
<div class="feature-item"><span class="feat-check">✓</span> Document Management</div>
{% if quote.mlUserCount > 0 %}
<div class="feature-item"><span class="feat-check sage">✓</span> AI / ML Intelligence Suite</div>
{% else %}
<div class="feature-item"><span class="feat-check">✓</span> Multi-currency & Tax Support</div>
{% endif %}
</div>
{# ── PRICING TABLE ── #}
<div class="section-title">Pricing Breakdown</div>
{% set sub_total_unchanged=0 %}
{% if breakdown %}
<table class="doc-table">
<thead>
<tr>
<th>Description</th>
<th class="c">Seats</th>
<th class="c">Unit / Month</th>
<th class="r">Monthly Subtotal</th>
</tr>
</thead>
<tbody>
{% if breakdown.normal_users > 0 %}
{% set sub_total_unchanged=sub_total_unchanged+12*breakdown.subtotal_normal %}
<tr>
<td>
<div class="row-name">Standard User License <span class="user-tag std">Standard</span></div>
<div class="row-sub">Full ERP access · All standard modules included</div>
</td>
<td class="c">{{ breakdown.normal_users }}</td>
<td class="c">€{{ breakdown.price_normal_monthly|number_format(2) }}</td>
<td class="r">€{{ breakdown.subtotal_normal|number_format(2) }}</td>
</tr>
{% endif %}
{% if breakdown.admin_users > 0 %}
{% set sub_total_unchanged=sub_total_unchanged+12*breakdown.subtotal_admin %}
<tr>
<td>
<div class="row-name">Administrator License <span class="user-tag admin">Admin</span></div>
<div class="row-sub">Full access + user management + system configuration</div>
</td>
<td class="c">{{ breakdown.admin_users }}</td>
<td class="c">€{{ breakdown.price_admin_monthly|number_format(2) }}</td>
<td class="r">€{{ breakdown.subtotal_admin|number_format(2) }}</td>
</tr>
{% endif %}
{% if breakdown.ml_users > 0 %}
{% set sub_total_unchanged=sub_total_unchanged+12*breakdown.subtotal_ml %}
<tr>
<td>
<div class="row-name">AI-Enhancement per Seat <span class="user-tag ml">AI / ML</span></div>
<div class="row-sub">Full access + AI assistant + ML analytics & predictions</div>
</td>
<td class="c">{{ breakdown.ml_users }}</td>
<td class="c">€{{ breakdown.price_ml_monthly|number_format(2) }}</td>
<td class="r">€{{ breakdown.subtotal_ml|number_format(2) }}</td>
</tr>
{% endif %}
</tbody>
</table>
{% if quote.billingCycle == 'yearly' %}
<div class="yearly-note">* Monthly unit prices shown above. Annual total reflects 20% yearly discount — see billing summary below.</div>
{% endif %}
{% else %}
<table class="doc-table">
<thead>
<tr>
<th>Description</th>
<th>Plan Type</th>
<th class="r">Amount</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="row-name">HoneyBee ERP — {{ quote.planType|title }} Plan</div>
<div class="row-sub">Custom enterprise subscription · Pricing configured by your account team</div>
</td>
<td>{{ quote.billingCycle|title }}</td>
<td class="r">{{ quote.baseAmount ? '€' ~ quote.baseAmount|number_format(2) : 'To be confirmed' }}</td>
</tr>
</tbody>
</table>
{% endif %}
{# ── BILLING SUMMARY ── #}
<div class="totals-wrap">
<div class="totals-box">
<div class="totals-row">
<span>Subtotal</span>
<span>€{{ sub_total_unchanged ? sub_total_unchanged|number_format(2) : '0.00' }}</span>
{# <span>€{{ quote.baseAmount ? quote.baseAmount|number_format(2) : '0.00' }}</span>#}
</div>
{% if quote.discountAmount > 0 or quote.discountPercent>0 %}
<div class="totals-row discount">
<span>Discount{% if quote.discountPercent > 0 %} ({{ quote.discountPercent }}%){% endif %}</span>
<span>−€{{ quote.discountAmount|number_format(2) }}</span>
</div>
{% endif %}
{% if quote.promoCodeDiscount > 0 %}
<div class="totals-row promo">
<span>Promo Code</span>
<span>−€{{ quote.promoCodeDiscount|number_format(2) }}</span>
</div>
{% endif %}
{% if breakdown is defined and breakdown and quote.billingCycle == 'yearly' %}
<div class="totals-row discount">
<span>Annual Saving ({{ breakdown.yearly_discount_pct }}% off)</span>
<span>−€{{ breakdown.yearly_savings|number_format(2) }}</span>
</div>
{% endif %}
<div class="totals-row total-final">
<div>
<div>Total Due ({{ quote.billingCycle|title }})</div>
<div class="total-sub">{{ quote.currency ?: 'EUR' }} · Excl. applicable taxes</div>
</div>
<span>€{{ quote.finalAmount ? quote.finalAmount|number_format(2) : '0.00' }}</span>
</div>
</div>
</div>
{# ── PAYMENT & BILLING ── #}
<div class="section-title">Payment & Billing</div>
<div class="payment-grid">
<div class="pay-item">
<div class="pay-item__title">Payment Due</div>
<div class="pay-item__body">
{% if quote.paymentType == 'automatic' %}
Processed automatically on the billing date via card or SEPA mandate.
{% else %}
Bank transfer within <strong>14 days</strong> of invoice date. Use reference <strong>{{ quote.quoteToken|slice(0,12)|upper }}</strong>.
{% endif %}
</div>
</div>
<div class="pay-item">
<div class="pay-item__title">Accepted Methods</div>
<div class="pay-item__body">
{% if quote.paymentType == 'automatic' %}
Credit / Debit Card · Stripe · SEPA Direct Debit
{% else %}
Bank Transfer (IBAN) ·
Oversea-Chinese Banking Corporation Limited (OCBC)
Bank Address:
65 Chulia Street
OCBC Centre
Singapore 049513
Singapore
SWIFT / BIC:
OCBCSGSG
Online payment link on request
{% endif %}
</div>
</div>
<div class="pay-item">
<div class="pay-item__title">Auto-Renewal</div>
<div class="pay-item__body">
Renews automatically each {{ quote.billingCycle }} cycle. You will be notified before renewal. Cancel anytime before the next billing date.
</div>
</div>
<div class="pay-item">
<div class="pay-item__title">Late Payments</div>
<div class="pay-item__body">
A 7-day grace period applies to overdue invoices. Access may be suspended after the grace period pending settlement.
</div>
</div>
</div>
{# ── SUPPORT & SLA ── #}
<div class="section-title">Support & Service Level</div>
<div class="sla-row">
<div class="sla-item">
<div class="sla-item__title">Email Support</div>
<div class="sla-item__body">Response within 1 business day · contact@ourhoneybee.eu</div>
</div>
<div class="sla-item">
<div class="sla-item__title">Uptime SLA</div>
<div class="sla-item__body">99.5% monthly uptime · Maintenance notified in advance</div>
</div>
<div class="sla-item">
<div class="sla-item__title">Platform Updates</div>
<div class="sla-item__body">All updates included · No additional upgrade fees</div>
</div>
</div>
{# ── NOTES ── #}
{% if quote.adminNotes %}
<div class="section-title" style="margin-top:18px;">Notes from Your Account Manager</div>
<div class="notes-box">{{ quote.adminNotes }}</div>
{% endif %}
{# ── KEY TERMS ── #}
<div class="section-title" style="margin-top:18px;">Summary of Key Terms</div>
<div class="terms-callout">
<div class="terms-callout__title">Before You Accept</div>
<div class="terms-callout__body">
This subscription renews automatically each <strong>{{ quote.billingCycle }}</strong> billing cycle until canceled.
By accepting this quote, you agree to the HoneyBee ERP
<a href="https://ourhoneybee.eu/terms">Terms of Service</a>,
<a href="https://ourhoneybee.eu/privacy">Privacy Policy</a>, and
<a href="https://ourhoneybee.eu/subscription">Subscription Agreement</a>.
You may cancel at any time before the next renewal date — see our
<a href="https://ourhoneybee.eu/subscription#cancellation">Cancellation Policy</a>.
Full legal terms at <strong>ourhoneybee.eu/legal</strong>.
</div>
</div>
{# ── FOOTER ── #}
<div class="doc-footer">
<div>
<div><strong>HoneyBee ERP</strong> · contact@ourhoneybee.eu · ourhoneybee.eu</div>
<div class="footer-links">
<a href="https://ourhoneybee.eu/terms">Terms</a>
<a href="https://ourhoneybee.eu/privacy">Privacy</a>
<a href="https://ourhoneybee.eu/subscription">Subscription Agreement</a>
<a href="https://ourhoneybee.eu/legal">Legal</a>
</div>
</div>
<div style="text-align:right;">
<div>Quote <strong>{{ quote.quoteToken|slice(0,12)|upper }}</strong></div>
<div>Generated {{ "now"|date('d M Y') }}</div>
</div>
</div>
</div>
</body>
</html>