{
  "name": "Carte",
  "slug": "carte",
  "blocks": ["Pages", "Lists: forms"],
  "persona": "hospitality",
  "keywords": [
    "QR menu",
    "table menu",
    "digital menu",
    "restaurant menu",
    "QR code",
    "specials",
    "menu on phone",
    "contactless menu",
    "allergens",
    "restaurant",
    "table QR code",
    "Italian restaurant"
  ],
  "description": "A night-blue trattoria menu for the table: a printable table card with a QR code opens a fast phone menu with sections, prices, allergen letters and tonight's specials, which you change by asking your AI.",
  "audience": [
    "restaurant with tables",
    "trattoria or osteria",
    "wine bar that serves food"
  ],
  "category": "Food & drink",
  "palette": {
    "--night": "#0D1730",
    "--night-2": "#15223F",
    "--cream": "#F5ECDA",
    "--amber": "#F4B045",
    "--basil": "#86C685"
  },
  "fonts": [
    "Cormorant Garamond",
    "Figtree"
  ],
  "files": [
    "index.html",
    "wine.html",
    "allergens.html",
    "about.html",
    "table-card.html",
    "404.html",
    "privacy.html",
    "styles.css",
    "script.js",
    "favicon.svg",
    "og.png",
    "apple-touch-icon.png",
    "art/hero.svg",
    "art/qr-frame.svg"
  ],
  "customise": {
    "strings": [
      "Osteria Lucciola in metadata, wordmark, footer and JSON-LD; replace every data-pl-fill fact",
      "Keep name, address and phone identical in the footer, about page and JSON-LD",
      "The menu is a List: sections (Today's specials, Antipasti, Pasta, Secondi, Contorni, Dolci, Soft drinks), menu (dishes with price, allergen letters, vegetarian and special flags) and wines. Change them as list items once the site is kept, or ask your AI in chat",
      "Allergen letters and the vegetarian flag on each dish must match the kitchen's recipes (parmesan, pecorino and panna cotta are not vegetarian unless the recipe says so); allergens.html states the 14 UK allergens and how to ask the team",
      "Hours, the chef and front-of-house names and the Wi-Fi line on table-card.html are placeholders until the owner checks them"
    ],
    "colours": "Edit the :root tokens at the top of styles.css (night blue, candle amber, basil green, cream)",
    "fonts": "Change the Google Fonts link in every page and --font-display / --font-body in styles.css; Cormorant Garamond sets the printed-card headings, Figtree the menu text",
    "sections": "Every page shares the header, footer and the mobile Menu / Wine / Allergens bar; the call to book sits in the Pages menu, the About page and the footer. The table card page is for the owner to print and is not linked from the menus. The menu tabs are built by script.js from the sections, and every section stays readable stacked without JavaScript. The QR code on table-card.html is a sample that points at this template's own address: make one with any QR generator that points at the owner's menu address, then replace art/qr-frame.svg with it at 1:1 before printing",
    "images": "art/hero.svg sits on the About page (the menu page has no image, so dishes come first): replace it with a 3:2 photo of the dining room at night (960×640 or larger, WebP under 200 KB). art/qr-frame.svg on table-card.html is the QR code printed on the card: replace it with the owner's own code at 1:1, kept square and at least 3 cm wide when printed"
  },
  "schemaVersion": 2,
  "job": "eat-drink",
  "categoryId": "restaurant",
  "alsoFits": [
    "trattoria",
    "pizzeria",
    "wine bar",
    "Italian restaurant"
  ],
  "direction": "Firefly trattoria",
  "mood": [
    "dark",
    "calm",
    "classic"
  ],
  "schemaOrg": "Restaurant",
  "pages": [
    {
      "path": "index.html",
      "label": "Menu",
      "purpose": "The menu first: today's specials, sticky section tabs, every dish with price, one-line description and allergen letters, a folded 14-letter key, order with your server"
    },
    {
      "path": "wine.html",
      "label": "Wine",
      "purpose": "Wines by the glass, carafe and bottle, with colour, region and a line on how the house pours"
    },
    {
      "path": "allergens.html",
      "label": "Allergens",
      "purpose": "The 14 UK allergens key with letters and how to ask the team before ordering"
    },
    {
      "path": "about.html",
      "label": "About",
      "purpose": "Short story of the osteria with the dining-room picture, the chef and front of house, opening hours, address and booking by phone"
    },
    {
      "path": "table-card.html",
      "label": "Table card",
      "purpose": "Owner page, not in the menus: printable A6 card with restaurant name, Scan for today's menu, a framed square for the printed QR code, Wi-Fi from the team"
    }
  ],
  "slots": [
    {
      "id": "enquiry",
      "kind": "form",
      "page": "about.html",
      "fallback": "tel"
    }
  ],
  "facts": [
    "name",
    "address",
    "phone",
    "email",
    "hours",
    "menu sections, dishes, prices and allergen letters",
    "wines, regions and prices",
    "chef and front-of-house names",
    "Wi-Fi arrangement"
  ],
  "interview": [
    "What is the restaurant called and where is it?",
    "What phone number should guests call to book?",
    "What are the opening hours for lunch and dinner?",
    "Which dishes, prices and allergen letters go on the menu?",
    "Which wines do you pour by the glass, carafe and bottle?",
    "Who are the chef and the front-of-house lead?"
  ],
  "updated": "2026-10-21",
  "visuals": {
    "notes": "One illustration (art/hero.svg) on the About page: a lit arched trattoria window at night, fireflies in amber and basil green, a printed menu card on a laid table. The body carries a firefly-dot pattern in CSS, not an image. No raster images: the owner adds a dining-room photo to the hero frame later.",
    "prompt": "Flat illustration on deep night blue: an arched warm-lit window, a candle glow in amber, small fireflies in amber and basil green, a cream printed menu card on a table in the foreground with two basil leaves."
  },
  "lists": [
    {
      "name": "sections",
      "label": "Menu sections",
      "pages": [
        "index.html"
      ],
      "fields": [
        {
          "name": "name",
          "type": "text",
          "label": "Section"
        },
        {
          "name": "anchor",
          "type": "text",
          "label": "Anchor (lowercase, hyphens)"
        },
        {
          "name": "note",
          "type": "text",
          "label": "Note under the heading"
        }
      ],
      "items": [
        {
          "slug": "specials",
          "name": "Today's specials",
          "anchor": "specials",
          "note": "Cooked with what came in from the market today. Your server will tell you if one runs out."
        },
        {
          "slug": "antipasti",
          "name": "Antipasti",
          "anchor": "antipasti",
          "note": "Small plates to share before the pasta."
        },
        {
          "slug": "pasta",
          "name": "Pasta",
          "anchor": "pasta",
          "note": "Made in the kitchen each morning. Ask for a half portion to share."
        },
        {
          "slug": "secondi",
          "name": "Secondi",
          "anchor": "secondi",
          "note": "Mains from the grill and the oven. The bistecca serves two."
        },
        {
          "slug": "contorni",
          "name": "Contorni",
          "anchor": "contorni",
          "note": "Sides for the table, to share."
        },
        {
          "slug": "dolci",
          "name": "Dolci",
          "anchor": "dolci",
          "note": "Sweets to finish, made each day."
        },
        {
          "slug": "soft-drinks",
          "name": "Soft drinks",
          "anchor": "soft-drinks",
          "note": "Soft drinks and coffee. Nothing on this part of the menu contains alcohol."
        }
      ]
    },
    {
      "name": "menu",
      "label": "Menu",
      "pages": [
        "index.html"
      ],
      "fields": [
        {
          "name": "name",
          "type": "text",
          "label": "Dish"
        },
        {
          "name": "description",
          "type": "text",
          "label": "Description (one line)"
        },
        {
          "name": "price",
          "type": "money",
          "label": "Price"
        },
        {
          "name": "allergens",
          "type": "text",
          "label": "Allergen letters, such as G, D, E"
        },
        {
          "name": "vegetarian",
          "type": "yes_no",
          "label": "Vegetarian"
        },
        {
          "name": "special",
          "type": "yes_no",
          "label": "Today's special"
        },
        {
          "name": "section",
          "type": "reference",
          "list": "sections",
          "label": "Section"
        }
      ],
      "items": [
        {
          "name": "Ravioli di zucca",
          "description": "Pumpkin ravioli, sage butter, toasted hazelnut, parmesan",
          "price": 16.5,
          "allergens": "G, D, E, N",
          "vegetarian": false,
          "special": true,
          "section": "specials"
        },
        {
          "name": "Branzino al forno",
          "description": "Whole sea bass baked with lemon, fennel and new potatoes",
          "price": 24,
          "allergens": "F",
          "vegetarian": false,
          "special": true,
          "section": "specials"
        },
        {
          "name": "Zuppa di cannellini",
          "description": "Cannellini beans, cavolo nero, rosemary oil, grilled bread",
          "price": 9.5,
          "allergens": "G",
          "vegetarian": true,
          "special": true,
          "section": "specials"
        },
        {
          "name": "Burrata",
          "description": "Puglian burrata, roast cherry tomatoes, basil oil, grilled bread",
          "price": 11.5,
          "allergens": "D, G",
          "vegetarian": true,
          "special": false,
          "section": "antipasti"
        },
        {
          "name": "Polpo alla griglia",
          "description": "Charred octopus, new potato, salsa verde",
          "price": 14,
          "allergens": "Mo, M",
          "vegetarian": false,
          "special": false,
          "section": "antipasti"
        },
        {
          "name": "Crostini al fegato",
          "description": "Chicken liver on toast with capers, sage and Marsala",
          "price": 9.5,
          "allergens": "G, D, Su",
          "vegetarian": false,
          "special": false,
          "section": "antipasti"
        },
        {
          "name": "Insalata di farro",
          "description": "Spelt, cucumber, mint, lemon and feta",
          "price": 9,
          "allergens": "G, D",
          "vegetarian": true,
          "special": false,
          "section": "antipasti"
        },
        {
          "name": "Spaghetti alla carbonara",
          "description": "Guanciale, pecorino romano, black pepper and egg yolk",
          "price": 15,
          "allergens": "G, E, D",
          "vegetarian": false,
          "special": false,
          "section": "pasta"
        },
        {
          "name": "Tagliatelle al ragù",
          "description": "Slow-cooked beef and pork ragù, parmesan",
          "price": 16.5,
          "allergens": "G, E, D, C",
          "vegetarian": false,
          "special": false,
          "section": "pasta"
        },
        {
          "name": "Trofie al pesto",
          "description": "Basil pesto, green beans, potato and parmesan",
          "price": 14.5,
          "allergens": "G, D, N",
          "vegetarian": false,
          "special": false,
          "section": "pasta"
        },
        {
          "name": "Cacio e pepe",
          "description": "Tonnarelli, pecorino and black pepper",
          "price": 13.5,
          "allergens": "G, E, D",
          "vegetarian": false,
          "special": false,
          "section": "pasta"
        },
        {
          "name": "Gnocchi al pomodoro",
          "description": "Potato gnocchi, San Marzano tomato, basil and mozzarella",
          "price": 14,
          "allergens": "G, E, D",
          "vegetarian": true,
          "special": false,
          "section": "pasta"
        },
        {
          "name": "Pollo alla diavola",
          "description": "Spatchcocked chicken, chilli, lemon and rosemary potatoes",
          "price": 19.5,
          "vegetarian": false,
          "special": false,
          "section": "secondi"
        },
        {
          "name": "Vitello alla milanese",
          "description": "Breaded veal escalope, rocket and lemon",
          "price": 22,
          "allergens": "G, E, D",
          "vegetarian": false,
          "special": false,
          "section": "secondi"
        },
        {
          "name": "Melanzane alla parmigiana",
          "description": "Aubergine, tomato, mozzarella, parmesan and basil",
          "price": 16,
          "allergens": "D",
          "vegetarian": false,
          "special": false,
          "section": "secondi"
        },
        {
          "name": "Bistecca alla fiorentina for two",
          "description": "Chianina sirloin, 900 g, grilled rare, rocket and lemon",
          "price": 64,
          "vegetarian": false,
          "special": false,
          "section": "secondi"
        },
        {
          "name": "Patate arrosto",
          "description": "Roast potatoes, rosemary and garlic",
          "price": 5.5,
          "vegetarian": true,
          "special": false,
          "section": "contorni"
        },
        {
          "name": "Cime di rapa",
          "description": "Broccoli rabe, chilli, garlic and olive oil",
          "price": 5.5,
          "vegetarian": true,
          "special": false,
          "section": "contorni"
        },
        {
          "name": "Insalata verde",
          "description": "Little gem, mustard vinaigrette and parmesan",
          "price": 5.5,
          "allergens": "M, D",
          "vegetarian": false,
          "special": false,
          "section": "contorni"
        },
        {
          "name": "Tiramisù",
          "description": "Espresso, mascarpone, savoiardi and cocoa",
          "price": 7.5,
          "allergens": "G, D, E",
          "vegetarian": true,
          "special": false,
          "section": "dolci"
        },
        {
          "name": "Panna cotta",
          "description": "Vanilla, wild strawberries and aged balsamic",
          "price": 7,
          "allergens": "D",
          "vegetarian": false,
          "special": false,
          "section": "dolci"
        },
        {
          "name": "Affogato",
          "description": "Vanilla gelato, hot espresso and amaretto",
          "price": 6.5,
          "allergens": "D, E, N",
          "vegetarian": true,
          "special": false,
          "section": "dolci"
        },
        {
          "name": "Torta di nocciola",
          "description": "Hazelnut sponge, dark chocolate and cream",
          "price": 7.5,
          "allergens": "G, D, E, N",
          "vegetarian": true,
          "special": false,
          "section": "dolci"
        },
        {
          "name": "Sparkling mineral water",
          "description": "750 ml bottle, still or sparkling",
          "price": 4,
          "vegetarian": true,
          "special": false,
          "section": "soft-drinks"
        },
        {
          "name": "Lemonade",
          "description": "Pressed lemons, sparkling water and sugar",
          "price": 4.5,
          "vegetarian": true,
          "special": false,
          "section": "soft-drinks"
        },
        {
          "name": "Blood orange soda",
          "description": "Blood orange juice, sparkling water and a pinch of salt",
          "price": 4,
          "vegetarian": true,
          "special": false,
          "section": "soft-drinks"
        },
        {
          "name": "Espresso",
          "description": "Espresso, made to order",
          "price": 2.5,
          "vegetarian": true,
          "special": false,
          "section": "soft-drinks"
        }
      ]
    },
    {
      "name": "wines",
      "label": "Wine list",
      "pages": [
        "index.html",
        "wine.html"
      ],
      "fields": [
        {
          "name": "name",
          "type": "text",
          "label": "Wine"
        },
        {
          "name": "region",
          "type": "text",
          "label": "Region"
        },
        {
          "name": "colour",
          "type": "text",
          "label": "Colour"
        },
        {
          "name": "glass",
          "type": "money",
          "label": "Glass price"
        },
        {
          "name": "carafe",
          "type": "money",
          "label": "Carafe price (house wines only)"
        },
        {
          "name": "bottle",
          "type": "money",
          "label": "Bottle price"
        },
        {
          "name": "allergens",
          "type": "text",
          "label": "Allergen letters (wine: Su for sulphites)"
        }
      ],
      "items": [
        {
          "name": "Casa bianca",
          "region": "Veneto, Italy",
          "colour": "white",
          "glass": 6.5,
          "carafe": 16,
          "bottle": 24,
          "allergens": "Su"
        },
        {
          "name": "Casa rossa",
          "region": "Emilia-Romagna, Italy",
          "colour": "red",
          "glass": 6.5,
          "carafe": 16,
          "bottle": 24,
          "allergens": "Su"
        },
        {
          "name": "Soave Classico",
          "region": "Veneto, Italy",
          "colour": "white",
          "glass": 7.5,
          "bottle": 30,
          "allergens": "Su"
        },
        {
          "name": "Vermentino",
          "region": "Sardinia, Italy",
          "colour": "white",
          "glass": 8,
          "bottle": 34,
          "allergens": "Su"
        },
        {
          "name": "Rosé di Puglia",
          "region": "Puglia, Italy",
          "colour": "rose",
          "glass": 7.5,
          "bottle": 30,
          "allergens": "Su"
        },
        {
          "name": "Chianti Classico",
          "region": "Tuscany, Italy",
          "colour": "red",
          "glass": 8.5,
          "bottle": 36,
          "allergens": "Su"
        },
        {
          "name": "Etna Rosso",
          "region": "Sicily, Italy",
          "colour": "red",
          "glass": 9,
          "bottle": 42,
          "allergens": "Su"
        },
        {
          "name": "Prosecco di Valdobbiadene",
          "region": "Veneto, Italy",
          "colour": "sparkling",
          "glass": 8.5,
          "bottle": 36,
          "allergens": "Su"
        }
      ]
    }
  ]
}
