// Public-site shared data. Fixtures for fine-dining restaurants,
// fictional but plausible (no real named customers outside "Bord", which is the
// anchor per the brief). Invented names are NOT real restaurants.

window.PUB = window.PUB || {};

window.PUB.customers = [
  { name: 'BORD',        city: 'Stockholm',   anchor: true },
  { name: 'EMBER ROOM',  city: 'Copenhagen' },
  { name: 'MAISON ALTA', city: 'Paris' },
  { name: 'TERRA NOVA',  city: 'Oslo' },
  { name: 'KVARTER 7',   city: 'Gothenburg' },
  { name: 'NORA & CO',   city: 'Helsinki' },
];

window.PUB.metrics = [
  { val: 184,   suffix: '',    label: 'restaurants live across 11 countries' },
  { val: 12400, suffix: '',    label: 'covers reconciled nightly' },
  { val: 1.8,   suffix: 's',   label: 'median sync latency, front-of-house to back' },
];

window.PUB.quote = {
  text: 'We replaced four systems with Mise en Place. The number we watch now is GP on the tasting menu, not which spreadsheet is out of date.',
  author: 'Elin Håkansson',
  role: 'Head Sommelier & Partner, Bord · Stockholm',
  initials: 'EH'
};

window.PUB.features = [
  { icon: 'calendar', title: 'Service that reads itself',
    body: 'Tonight\u2019s covers, VIP arrivals, pacing drift and 86\u2019d dishes in one glance. Built for the two minutes before service.' },
  { icon: 'matrix', title: 'Menu engineering, not math',
    body: 'Every dish placed on a star / puzzle / workhorse / dog quadrant with a live GP line. Changes price, ingredient, supplier — recosts instantly.' },
  { icon: 'wine', title: 'A wine program, managed',
    body: 'BTG and bottle lists, cellar stock, pairing notes, low-stock dimming. Publish to a guest QR wine list in one click.' },
  { icon: 'users', title: 'Guest memory that travels',
    body: 'Allergies, anniversaries, last visit, spend curve, preferred tables. The host sees it before they open the door.' },
  { icon: 'receipt', title: 'AP on autopilot',
    body: 'Invoices matched to POs line by line, with match-confidence shown. Approve, flag, or snooze — never key-in a supplier twice.' },
  { icon: 'shield', title: 'Swedish-built, audit-clean',
    body: 'SEK / EUR / USD, tenant-scoped data, SOC 2 in progress, GDPR-native. Works with Fortnox, Ancon, WaiterAid, Nylas out of the box.' },
];

window.PUB.pricing = {
  tiers: [
    {
      name: 'Starter',
      priceMonthly: 99, priceAnnual: 79,
      tagline: 'For a single room finding its rhythm.',
      bullets: [
        'Up to 80 covers / service',
        'Reservations, floor plan, host stand',
        'Wine list + public QR menu',
        'Email support',
      ],
      cta: 'Start 14-day trial'
    },
    {
      name: 'Professional',
      priceMonthly: 299, priceAnnual: 239,
      tagline: 'For restaurants running service like a program.',
      popular: true,
      bullets: [
        'Unlimited covers & team',
        'Menu engineering + GP thresholds',
        'Invoice matching (Fortnox, Ancon)',
        'Guest memory + CRM',
        'AI agents: service briefing, pricing drafts',
        'Priority support, 4h SLA',
      ],
      cta: 'Start 14-day trial'
    },
    {
      name: 'Enterprise',
      priceMonthly: 799, priceAnnual: 639,
      tagline: 'For groups with more than one room.',
      bullets: [
        'Multi-tenant, group reporting',
        'SSO + SCIM, audit log export',
        'Custom integrations & webhooks',
        'Dedicated success engineer',
        'On-site onboarding in EU',
        '99.95% uptime SLA',
      ],
      cta: 'Talk to sales'
    }
  ],
  compare: [
    { group: 'Service',
      rows: [
        { feat: 'Reservations & waitlist',            s: true, p: true, e: true },
        { feat: 'Floor plan & host stand (iPad)',     s: true, p: true, e: true },
        { feat: 'Pacing drift detection',             s: false, p: true, e: true },
        { feat: 'Kitchen ticket mirror',              s: false, p: true, e: true },
      ]},
    { group: 'Menu & inventory',
      rows: [
        { feat: 'Menu engineering (star/puzzle/…)',   s: 'limit', p: true, e: true },
        { feat: 'GP thresholds + recipe costing',     s: false, p: true, e: true },
        { feat: 'Inventory + purchasing',             s: 'limit', p: true, e: true },
        { feat: 'Wine program (BTG, cellar, pairings)', s: true, p: true, e: true },
      ]},
    { group: 'Accounting',
      rows: [
        { feat: 'Invoice inbox & line matching',      s: false, p: true, e: true },
        { feat: 'Fortnox / Ancon bridge',             s: false, p: true, e: true },
        { feat: 'Multi-tenant consolidation',         s: false, p: false, e: true },
      ]},
    { group: 'Platform',
      rows: [
        { feat: 'SSO / SCIM',                         s: false, p: false, e: true },
        { feat: 'Audit log export',                   s: false, p: 'limit', e: true },
        { feat: 'Custom integrations + webhooks',     s: false, p: 'limit', e: true },
        { feat: 'SLA & dedicated success',            s: false, p: '4h',   e: '99.95%' },
      ]},
  ],
  faqs: [
    { q: 'Do you support SEK, EUR and USD?',
      a: 'Yes. Base currency is set per tenant at onboarding. Pricing above is USD; you\u2019ll be invoiced in your tenant currency. Group tenants can consolidate across currencies.' },
    { q: 'How long is onboarding?',
      a: 'Most single-room restaurants are live within a week. A typical path: day 1 set up tenant and import menu, day 2 connect POS and accounting, day 3 train front-of-house, go live on day 5 or 6 of soft service.' },
    { q: 'What happens to my data if I leave?',
      a: 'Every tenant owns its data. One-click CSV + JSON export on every resource. We keep a 30-day hold after cancellation, then delete. Written into the DPA.' },
    { q: 'Which integrations ship on day one?',
      a: 'Fortnox (accounting), Ancon (POS), WaiterAid (reservations feed), Nylas (calendar/email). Enterprise can request a custom integration through our success team.' },
    { q: 'Is there a setup fee?',
      a: 'Starter and Professional are self-serve, no setup fee. Enterprise includes on-site onboarding; the fee depends on the number of rooms and the integrations required.' },
  ]
};

window.PUB.legal = {
  privacyUpdated: '2026-03-12',
  termsUpdated: '2026-03-12',
};

window.PUB.wineList = {
  tenant: { name: 'Bord', city: 'Stockholm, SE', accent: '#c9a65a' },
  showPrices: false,
  groups: [
    { title: 'Sparkling',
      wines: [
        { name: 'Agrapart · Terroirs Blanc de Blancs', region: 'Champagne, FR', vintage: 'NV',
          notes: 'Chalky, lemon-pith, sea breeze. A tight, vertical wine.',
          pair: 'Oyster · trout roe · buttermilk', glass: true, btg: 180, bottle: 1100 },
        { name: 'Vallformosa · Xarel·lo Reserva',     region: 'Penedès, ES', vintage: '2021',
          notes: 'Quince, almond skin, a touch of lees.',
          pair: 'Crudo · fennel · green almonds', glass: true, btg: 120, bottle: 720, stock: 'low' },
      ]
    },
    { title: 'White',
      wines: [
        { name: 'Domaine Roulot · Meursault "Les Tillets"', region: 'Burgundy, FR', vintage: '2021',
          notes: 'Beeswax, salted hazelnut, lemon curd. Long, linear.',
          pair: 'Brown butter cod · leek ash', glass: true, btg: 260, bottle: 1940 },
        { name: 'Zind-Humbrecht · Riesling Rangen de Thann', region: 'Alsace, FR', vintage: '2019',
          notes: 'Volcanic, petrol, blood orange. Dry.',
          pair: 'Dill-cured arctic char', bottle: 1340 },
        { name: 'Koehler-Ruprecht · Kallstadter Saumagen Kabinett', region: 'Pfalz, DE', vintage: '2020',
          notes: 'Tangerine, flinty, chamomile.', pair: 'Langoustine · verjus', glass: true, btg: 165, bottle: 980 },
        { name: 'Kumeu River · Maté\u2019s Vineyard', region: 'Auckland, NZ', vintage: '2022',
          notes: 'Peach, ginger, saline finish.', pair: 'Roast turbot · brown butter', bottle: 1280, stock: 'out' },
      ]
    },
    { title: 'Orange & skin-contact',
      wines: [
        { name: 'Radikon · Jakot', region: 'Friuli, IT', vintage: '2018',
          notes: 'Dried apricot, black tea, resinous. Broad, spicy, unhurried.',
          pair: 'Aged comté · pear · rye', glass: true, btg: 175, bottle: 1080 },
        { name: 'Gravner · Ribolla Gialla',     region: 'Friuli, IT', vintage: '2015',
          notes: 'Amber, orange peel, toasted nuts.', pair: 'Grilled porcini · cured yolk', bottle: 1780 },
      ]
    },
    { title: 'Red',
      wines: [
        { name: 'Jean Grivot · Clos Vougeot Grand Cru', region: 'Burgundy, FR', vintage: '2019',
          notes: 'Dark cherry, iron, rose hip. Quiet and authoritative.',
          pair: 'Aged duck · beetroot · cacao', bottle: 3840 },
        { name: 'Thibaud Boudignon · Anjou Rouge', region: 'Loire, FR', vintage: '2022',
          notes: 'Crunchy raspberry, violet, graphite.', pair: 'Lamb sweetbread', glass: true, btg: 155, bottle: 920 },
        { name: 'Giuseppe Rinaldi · Brunate', region: 'Barolo, IT', vintage: '2018',
          notes: 'Tar, rose, tobacco. Tannic, long.', pair: 'Aged beef · smoked bone marrow', bottle: 2680 },
        { name: 'Domaine Tempier · Bandol La Migoua', region: 'Provence, FR', vintage: '2020',
          notes: 'Garrigue, black olive, warm earth.', pair: 'Lamb shoulder · charred onions', glass: true, btg: 165, bottle: 1120, stock: 'low' },
      ]
    },
    { title: 'Dessert & fortified',
      wines: [
        { name: 'Royal Tokaji · 5 Puttonyos Aszú', region: 'Tokaj, HU', vintage: '2017',
          notes: 'Apricot, saffron, orange peel. Honeyed, fresh.', pair: 'Brown butter tart', glass: true, btg: 130, bottle: 1180 },
        { name: 'Quinta do Noval · Colheita', region: 'Douro, PT', vintage: '2003',
          notes: 'Fig, walnut, tobacco.', pair: 'Aged manchego · quince', bottle: 1680 },
      ]
    },
  ]
};

window.PUB.faqs = window.PUB.pricing.faqs;
