diff --git a/demos/ristorante/index.html b/demos/ristorante/index.html index fd2591d..32be1ec 100644 --- a/demos/ristorante/index.html +++ b/demos/ristorante/index.html @@ -1,113 +1,214 @@ - - - Restaurant Website Templates — HostPioneers - - + + +Restaurant Website Templates — HostPioneers + +

6 Restaurant Templates — Ready Now

Your restaurant.
Online. Professional.
Ready to impress.

Beautiful, mobile-ready websites built for independent restaurants. Custom design, not templates. Includes hosting, domain setup, and AI menu extras.

From€499one-time setup
ItalianItalian

Italian · Pizza · Pasta

Trattoria Da Marco

Wood-fired pizza, handmade pasta, wine list. Dark luxury aesthetic with Fraunces typography.

SteakhouseSteakhouse

Steakhouse · Grill · Wine

The Argentine Grill

Premium dry-aged cuts, Malbec wine list, open-fire aesthetic. Bold, moody, sophisticated.

IndianIndian

Indian · Tandoor · Curry

Maharaja Spice

Rich warm tones, tandoor section, thali specialties, butter chicken focus. Warm and inviting.

SpanishSpanish

Spanish · Tapas · Mediterranean

La Bodega del Mar

Light Mediterranean aesthetic, tapas grid, sherry and wine list, paella specials, beach vibes.

JapaneseJapanese

Japanese · Omakase · Izakaya

Kaito Sushi

Editorial minimal design with Japanese typography. Horizontal scrolling menu, omakase feature section.

PizzaPizza

Pizza · Casual · Italian

Pizzeria da Marco

Italian flag accent, wood-fired menu, pasta section. Casual but premium, great for delivery.

Everything included

One price. No surprises. Your site live in days.

Custom Design

Built for your restaurant type — not a generic template

Mobile Ready

Perfect on every device — phone, tablet, desktop

AI Menu Chat

Customers ask the menu in plain language, AI answers

Email Support

Direct line to us — fast replies, no bots

-

Build your plan

Choose your website, pick your support level, lock in your term.

-
1
Website
2
Support
3
Term
4
Summary
-

Step 1 of 4 — Website Package

Choose your website

All plans include 1 year hosting. Setup is one-time.

Starter

Your Restaurant Website

€499
One-time · then €25/mo hosting
  • Custom restaurant template
  • Menu + photos + content
  • Google Maps + contact form
  • Mobile optimised
  • Social media links
  • 1 year hosting included

Enterprise Full AI

Website + Full AI Suite

€999
One-time · then €35/mo hosting
  • Everything in Professional
  • AI voice phone assistant
  • AI review responder
  • AI customer nurture emails
  • Dedicated Slack channel
  • Priority support line
  • 1 year hosting included
-

Step 2 of 4 — Monthly Support

Choose your support plan

Prepay hours each month. Unused hours roll over. Cancel anytime.

Starter
2
hours / month
€69/mo
≈ €35/hr
  • Menu updates
  • Seasonal changes
  • Photo swaps
  • Email support
Pro
8
hours / month
€219/mo
≈ €27/hr
  • Everything in Standard
  • Full page redesigns
  • New features + integrations
  • AI training for your restaurant
  • Dedicated Slack channel
Support: —
Est. monthly total
-

Step 3 of 4 — Commitment Term

How long do you want to commit?

Longer commitment = bigger discount on your support plan.

1 Year
Full price. Cancel anytime.
2 Years
Save 5%
Billed as 23 months
+

Build your plan

Choose your website, pick your support, lock in your commitment.

+
1
Website
2
Support
3
Payment
4
Summary
+
+

Step 1 of 4 — Website Package

+

Choose your website

+

One-time setup fee. Hosting billed monthly from year two.

+
+
+

Launch

+

Your Restaurant, Online

+
€499
+
One-time · €20/mo from yr 2
+
    +
  • Custom restaurant template
  • +
  • Menu + photos + content setup
  • +
  • Google Maps + contact form
  • +
  • Mobile optimised
  • +
  • Social links + basic SEO
  • +
  • 1 year hosting included
  • +
+
+ +
+

Dominate Full AI

+

Full AI Voice + Automation

+
€1,199
+
One-time · €45/mo from yr 2
+
    +
  • Everything in Grow
  • +
  • AI voice phone agent — handles calls, takes orders
  • +
  • AI email marketing — automated campaigns
  • +
  • AI competitor insights — monthly report
  • +
  • Priority support + Slack channel
  • +
  • 1 year hosting included
  • +
+
+
+
+
+
+

Step 2 of 4 — Monthly Support

+

Choose your support plan

+

Prepay hours each month. Unused hours roll over. Cancel anytime — your website keeps running.

+
+
+
Essentials
+
2
+
hours / month
+
€59/mo
+
≈ €30/hr
+
  • Menu updates
  • Seasonal changes
  • Photo swaps
  • Email support
+
+ +
+
Priority
+
8
+
hours / month
+
€179/mo
+
≈ €22/hr
+
  • Everything in Standard
  • Full page redesigns
  • New features + integrations
  • Dedicated Slack channel
+
+
+
+
+
Support: —
+
Est. monthly total
+
+
+
-
3 Years
Save 10%
Billed as 32 months
-
-
-
-
-
-
Total due today
-
-

No lock-in. Cancel support anytime — your website stays live.

-
- - -
- +
+

Step 3 of 4 — Payment & Commitment

+

How do you want to pay?

+

All support plans require a minimum 12-month commitment. Pay monthly or save with annual.

- -
-

Step 4 of 4 — Your Plan

-

You're all set!

-

Here's your custom package. Ready to get started?

-
-
Website plan
-
Website setup
-
Support plan
-
Commitment
-
Support discount
-
Support subtotal
-
Total due today
-
-
- - -
-
+
+ + +
+ +
Choose your commitment length
+
+
+
12 Months
+
Monthly payments. Cancel anytime after yr 1.
+
+
+
24 Months
+
Best Value
+
~€[X]/mo. Lock in low rate for 2 years.
+
+
+ +
+
+
Support: —
+
+
Total due today
+
+
+
+ +
+

Step 4 of 4 — Your Package

+

You are all set!

+

Here is your custom package. Ready to get started?

+
+
Website plan
+
Website setup
+
Support plan
+
Commitment
+
Payment
+
Total due today
+
+
+
-
-
-

Start your website

Tell us about your restaurant — we will be in touch within 24 hours.

-
-
-
-
-
-
-
-
-
- -

No spam. No commitment. Just a real conversation.

-
-

Message sent!

We will be in touch within 24 hours. Check your email.

-
+
+

Start your website

Tell us about your restaurant — we will be in touch within 24 hours.

+
+ + + + + +
+
+
+
+
+
+
+
+ +

No spam. No commitment. Just a real conversation.

+
+

Message sent!

We will be in touch within 24 hours. Check your email.

+
@@ -116,103 +217,29 @@ var selectedPlan = null; var selectedSupport = null; var selectedDuration = null; +var selectedFreq = 'monthly'; -var planPrices = {starter: 499, professional: 699, enterprise: 999}; -var planNames = {starter: 'Starter', professional: 'Professional + AI', enterprise: 'Enterprise Full AI'}; -var supportPrices = {starter: 69, standard: 119, pro: 219}; -var supportLabels = {starter: 'Starter (2 hrs/mo)', standard: 'Standard (4 hrs/mo)', pro: 'Pro (8 hrs/mo)'}; -var durationDiscounts = {1: 0, 2: 0.05, 3: 0.10}; -var durationLabels = {1: '1 Year', 2: '2 Years', 3: '3 Years'}; -var durationBilled = {1: 12, 2: 23, 3: 32}; +var planPrices = {launch: 499, grow: 799, dominate: 1199}; +var planNames = {launch: 'Launch', grow: 'Grow + AI', dominate: 'Dominate Full AI'}; +var supportPrices = {essentials: 59, standard: 99, priority: 179}; +var supportLabels = {essentials: 'Essentials (2 hrs/mo)', standard: 'Standard (4 hrs/mo)', priority: 'Priority (8 hrs/mo)'}; +var durationDiscounts = {1: 0, 2: 0.16}; +var durationMonths = {1: 12, 2: 24}; +var durationLabels = {1: '12 Months', 2: '24 Months'}; -function selectPlan(p) { - selectedPlan = p; - document.querySelectorAll('.plan-card').forEach(function(c){c.classList.remove('selected')}); - document.getElementById('card-' + p).classList.add('selected'); - document.getElementById('btnStep1').disabled = false; - updateS2Summary(); -} -function selectSupport(s) { - selectedSupport = s; - document.querySelectorAll('.support-card').forEach(function(c){c.classList.remove('selected')}); - document.getElementById('sup-' + s).classList.add('selected'); - document.getElementById('btnStep2').disabled = false; - updateS2Summary(); -} -function selectDuration(d) { - selectedDuration = d; - document.querySelectorAll('.duration-card').forEach(function(c){c.classList.remove('selected')}); - document.getElementById('dur-' + d).classList.add('selected'); - document.getElementById('btnStep3').disabled = false; - updateS3Summary(); -} +function selectPlan(p){selectedPlan=p;document.querySelectorAll('.plan-card').forEach(function(c){c.classList.remove('selected')});document.getElementById('card-'+p).classList.add('selected');document.getElementById('btnStep1').disabled=false;updateAllSummaries()} +function selectSupport(s){selectedSupport=s;document.querySelectorAll('.support-card').forEach(function(c){c.classList.remove('selected')});document.getElementById('sup-'+s).classList.add('selected');document.getElementById('btnStep2').disabled=false;updateAllSummaries()} +function selectDuration(d){selectedDuration=d;document.querySelectorAll('.duration-card').forEach(function(c){c.classList.remove('selected')});document.getElementById('dur-'+d).classList.add('selected');document.getElementById('btnStep3').disabled=false;updateAllSummaries()} +function setPayFreq(f){selectedFreq=f;document.getElementById('toggleMonthly').classList.toggle('active',f==='monthly');document.getElementById('toggleAnnual').classList.toggle('active',f==='annual');updateAllSummaries()} -function updateS2Summary() { - if (!selectedPlan || !selectedSupport) return; - document.getElementById('s2-site-name').textContent = planNames[selectedPlan]; - document.getElementById('s2-site-price').textContent = '€' + planPrices[selectedPlan]; - document.getElementById('s2-support-label').textContent = 'Support: ' + supportLabels[selectedSupport]; - document.getElementById('s2-support-price').textContent = '€' + supportPrices[selectedSupport] + '/mo'; - document.getElementById('s2-monthly-total').textContent = '€' + (planPrices[selectedPlan] + supportPrices[selectedSupport]); -} +function getMonthlyPayment(){if(!selectedPlan||!selectedSupport||!selectedDuration)return 0;var base=planPrices[selectedPlan]+supportPrices[selectedSupport];if(selectedFreq==='monthly'){return base;if(selectedDuration===1)return base;var disc=durationDiscounts[selectedDuration];return Math.round(base*(1-disc));}else{var totalMo=durationMonths[selectedDuration];var disc=durationDiscounts[selectedDuration];return Math.round((planPrices[selectedPlan]+supportPrices[selectedSupport]*totalMo*(1-disc))/totalMo);}} +function getTotalToday(){if(!selectedPlan||!selectedSupport||!selectedDuration)return 0;if(selectedFreq==='monthly'){return planPrices[selectedPlan]+supportPrices[selectedSupport];}else{var disc=durationDiscounts[selectedDuration];return planPrices[selectedPlan]+Math.round(supportPrices[selectedSupport]*durationMonths[selectedDuration]*(1-disc));}} -function updateS3Summary() { - if (!selectedPlan || !selectedSupport || !selectedDuration) return; - var disc = durationDiscounts[selectedDuration]; - var totalSupport = supportPrices[selectedSupport] * durationBilled[selectedDuration]; - var discountAmount = totalSupport * disc; - var sitePrice = planPrices[selectedPlan]; - var totalToday = sitePrice + (totalSupport - discountAmount); +function updateAllSummaries(){if(!selectedPlan||!selectedSupport||!selectedDuration)return;var sitePrice=planPrices[selectedPlan];var supportPrice=supportPrices[selectedSupport];var disc=durationDiscounts[selectedDuration];var totalToday=getTotalToday();var monthlyPay=getMonthlyPayment();var saveAmt=selectedFreq==='annual'?Math.round(supportPrice*durationMonths[selectedDuration]*disc):0;var commitment=selectedDuration===1?'12 months (cancel anytime)':'24 months (best value)';var freqLabel=selectedFreq==='annual'?'Annual (~'+Math.round(monthlyPay)+'/mo, save €'+saveAmt+')':'Monthly';document.getElementById('s2-site-name').textContent=planNames[selectedPlan];document.getElementById('s2-site-price').textContent='€'+sitePrice;document.getElementById('s2-support-label').textContent='Support: '+supportLabels[selectedSupport];document.getElementById('s2-support-price').textContent='€'+supportPrice+'/mo';document.getElementById('s2-monthly-total').textContent='€'+(sitePrice+supportPrice);document.getElementById('s3-site').textContent=planNames[selectedPlan]+' website';document.getElementById('s3-site-price').textContent='€'+sitePrice;document.getElementById('s3-support-label').textContent=supportLabels[selectedSupport];document.getElementById('s3-support-price').textContent='€'+supportPrice+'/mo';document.getElementById('s3-freq-label').textContent=freqLabel;document.getElementById('s3-freq-price').textContent='€'+monthlyPay+'/mo';document.getElementById('s3-total-label').textContent=selectedFreq==='annual'?'Total ('+durationLabels[selectedDuration]+')':selectedDuration===1?'Due today':'Total due today';document.getElementById('s3-total').textContent='€'+totalToday;if(selectedDuration===2){document.getElementById('dur-2').querySelector('.dur-desc').textContent='~€'+monthlyPay+'/mo. Save ~€'+saveAmt+' over 2 years.';}document.getElementById('s4-plan').textContent=planNames[selectedPlan];document.getElementById('s4-site').textContent='€'+sitePrice;document.getElementById('s4-support').textContent=supportLabels[selectedSupport];document.getElementById('s4-commitment').textContent=commitment;document.getElementById('s4-pay').textContent=freqLabel;document.getElementById('s4-grand').textContent='€'+totalToday;document.getElementById('wizard_plan').value=planNames[selectedPlan];document.getElementById('wizard_support').value=supportLabels[selectedSupport];document.getElementById('wizard_duration').value=durationLabels[selectedDuration];document.getElementById('wizard_freq').value=freqLabel;document.getElementById('wizard_total').value='€'+totalToday;} - document.getElementById('s3-site').textContent = planNames[selectedPlan] + ' website'; - document.getElementById('s3-site-price').textContent = '€' + sitePrice; - document.getElementById('s3-support').textContent = supportLabels[selectedSupport] + ' (' + durationLabels[selectedDuration] + ')'; - document.getElementById('s3-support-monthly').textContent = '€' + supportPrices[selectedSupport] + '/mo'; - document.getElementById('s3-term-label').textContent = durationLabels[selectedDuration] + ' commitment'; - document.getElementById('s3-term-val').textContent = disc > 0 ? '-' + Math.round(discountAmount) + '€ (' + Math.round(disc*100) + '% off)' : 'No discount'; - document.getElementById('s3-total').textContent = '€' + Math.round(totalToday); - document.getElementById('commitment-text').textContent = disc > 0 ? durationLabels[selectedDuration] + ' commitment. Cancel anytime — your website stays live.' : 'No lock-in. Cancel support anytime — your website stays live.'; +function goStep(n){document.querySelectorAll('.wizard-panel').forEach(function(p){p.classList.remove('active')});document.getElementById('panel'+n).classList.add('active');for(var i=1;i<=4;i++){var ind=document.getElementById('step'+i+'Indicator');ind.classList.remove('active','done');if(i 0 ? '-' + Math.round(discountAmount) + '€' : '—'; - document.getElementById('s4-support-total').textContent = '€' + Math.round(totalSupport - discountAmount); - document.getElementById('s4-grand').textContent = '€' + Math.round(totalToday); -} - -function goStep(n) { - document.querySelectorAll('.wizard-panel').forEach(function(p){p.classList.remove('active')}); - document.getElementById('panel' + n).classList.add('active'); - for (var i = 1; i <= 4; i++) { - var ind = document.getElementById('step' + i + 'Indicator'); - ind.classList.remove('active','done'); - if (i < n) ind.classList.add('done'); - if (i === n) ind.classList.add('active'); - } - if (n === 4) updateS3Summary(); - document.getElementById('pricing').scrollIntoView({behavior:'smooth',block:'start'}); -} - -function handleSubmit(e) { - e.preventDefault(); - var form = document.getElementById('contactForm'); - var success = document.getElementById('formSuccess'); - var submitBtn = form.querySelector('.form-submit'); - var data = new FormData(form); - submitBtn.textContent = 'Sending…'; - submitBtn.disabled = true; - fetch('/autojobs/api/contact/telegram', { - method: 'POST', - body: new URLSearchParams({name: data.get('name'), email: data.get('email'), phone: data.get('phone'), type: data.get('type')||'other', restaurant: data.get('restaurant'), message: data.get('message')}) - }).catch(function(){}).finally(function(){ - form.style.display = 'none'; - success.classList.add('show'); - success.scrollIntoView({behavior:'smooth',block:'center'}); - }); -} +function handleSubmit(e){e.preventDefault();var form=document.getElementById('contactForm');var success=document.getElementById('formSuccess');var submitBtn=form.querySelector('.form-submit');var data=new FormData(form);submitBtn.textContent='Sending...';submitBtn.disabled=true;var params=new URLSearchParams({name:data.get('name'),email:data.get('email'),phone:data.get('phone'),type:data.get('type')||'other',restaurant:data.get('restaurant'),message:data.get('message'),wizard_plan:data.get('wizard_plan'),wizard_support:data.get('wizard_support'),wizard_duration:data.get('wizard_duration'),wizard_freq:data.get('wizard_freq'),wizard_total:data.get('wizard_total')});fetch('/autojobs/api/contact/telegram',{method:'POST',body:params}).catch(function(){}).finally(function(){form.style.display='none';success.classList.add('show');success.scrollIntoView({behavior:'smooth',block:'center'});});}