{
  "reasoning": "Vecchio Forno is a warm, traditional artisan bakery from Abruzzo with a red/amber/brown palette and a heritage story. The 02-warm-artisanal-heritage style matches perfectly: cream backgrounds, serif-feel headlines in uppercase with generous letter-spacing, storytelling sections, and minimal CTAs. Since only the banner image is available, the hero and other sections rely on text-on-color fallbacks enriched with CSS wheat-pattern decoration. The brand's red (#C0392B) maps to primary, amber (#E8A020) as accent, and warm brown (#8B6F47) as secondary.",
  "selected_reference_style": "02-warm-artisanal-heritage",
  "astro_file": "---\nconst { data, copy, i, lang } = Astro.props;\nconst imgUrl = (p) => `${import.meta.env.BASE_URL.replace(/\\/$/, '')}/images/${p}`;\nconst palette = {\n  primary:    data.visual_identity?.color_palette?.primary    || '#C0392B',\n  secondary:  data.visual_identity?.color_palette?.secondary  || '#8B6F47',\n  accent:     data.visual_identity?.color_palette?.accent     || '#E8A020',\n  background: data.visual_identity?.color_palette?.background || '#FFFFFF',\n  text:       data.visual_identity?.color_palette?.text       || '#2C2C2C',\n};\nconst cardAccents = [palette.primary, palette.secondary, palette.accent];\n---\n\n<!DOCTYPE html>\n<html lang={lang}>\n<head>\n  <meta charset=\"UTF-8\" />\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n  <title>{data.business_name}</title>\n  <meta name=\"description\" content={data.description} />\n  <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\" />\n  <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin />\n  <link href=\"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Inter:wght@300;400;500;600&display=swap\" rel=\"stylesheet\" />\n</head>\n<body>\n\n<!-- HEADER -->\n<header class=\"site-header\">\n  <div class=\"header-inner\">\n    <div class=\"brand\">\n      {data.images.logo ? (\n        <img src={imgUrl(data.images.logo.path)} alt={data.images.logo.alt || data.business_name} class=\"logo-img\" />\n      ) : (\n        <div class=\"logo-text\">\n          <span class=\"logo-name\">{data.business_name}</span>\n          <span class=\"logo-sub\">{i.logo_sub}</span>\n        </div>\n      )}\n    </div>\n    <nav class=\"main-nav\" aria-label={i.nav_aria_label}>\n      <a href=\"#storia\">{i.nav_story}</a>\n      <a href=\"#prodotti\">{i.nav_products}</a>\n      <a href=\"#contatti\">{i.nav_contacts}</a>\n    </nav>\n    <a href=\"#contatti\" class=\"header-cta\">{i.cta_contact}</a>\n  </div>\n</header>\n\n<!-- HERO -->\n<section class=\"hero-section\" id=\"hero\">\n  {data.images.hero ? (\n    <div class=\"hero-with-image\">\n      <img src={imgUrl(data.images.hero.path)} alt={data.images.hero.alt} class=\"hero-img\" />\n      <div class=\"hero-overlay\">\n        <p class=\"hero-eyebrow\">{copy.hero_eyebrow}</p>\n        <h1 class=\"hero-title\">{data.business_name}</h1>\n        <p class=\"hero-tagline\">{copy.hero_tagline}</p>\n        <a href=\"#prodotti\" class=\"hero-cta-btn\">{i.cta_discover}</a>\n      </div>\n    </div>\n  ) : (\n    <div class=\"hero-text-only\">\n      <div class=\"wheat-pattern\" aria-hidden=\"true\"></div>\n      <div class=\"hero-text-content\">\n        <p class=\"hero-eyebrow\">{copy.hero_eyebrow}</p>\n        <h1 class=\"hero-title\">{data.business_name}</h1>\n        <p class=\"hero-tagline\">{copy.hero_tagline}</p>\n        <a href=\"#prodotti\" class=\"hero-cta-btn\">{i.cta_discover}</a>\n      </div>\n    </div>\n  )}\n</section>\n\n<!-- CRAFT STRIP -->\n<section class=\"craft-strip\">\n  <div class=\"craft-inner\">\n    <div class=\"craft-item\">\n      <span class=\"craft-num\">01</span>\n      <span class=\"craft-label\">{i.craft_handmade}</span>\n    </div>\n    <div class=\"craft-divider\" aria-hidden=\"true\"></div>\n    <div class=\"craft-item\">\n      <span class=\"craft-num\">02</span>\n      <span class=\"craft-label\">{i.craft_ingredients}</span>\n    </div>\n    <div class=\"craft-divider\" aria-hidden=\"true\"></div>\n    <div class=\"craft-item\">\n      <span class=\"craft-num\">03</span>\n      <span class=\"craft-label\">{i.craft_tradition}</span>\n    </div>\n  </div>\n</section>\n\n<!-- STORIA -->\n<section class=\"storia-section\" id=\"storia\">\n  <div class=\"storia-inner\">\n    <div class=\"storia-text\">\n      <p class=\"section-eyebrow\">{i.section_eyebrow_story}</p>\n      <h2 class=\"section-title\">{i.section_title_story}</h2>\n      <div class=\"story-divider\" aria-hidden=\"true\"></div>\n      <p class=\"story-intro\">{copy.story_intro}</p>\n      <p class=\"story-body\">{copy.story_paragraph}</p>\n      <p class=\"story-address\">{data.contacts.address}</p>\n    </div>\n    <div class=\"storia-deco\" aria-hidden=\"true\">\n      <div class=\"deco-circle\">\n        <span class=\"deco-category\">{data.category}</span>\n        <span class=\"deco-tagline\">{data.tagline}</span>\n      </div>\n    </div>\n  </div>\n</section>\n\n<!-- BANNER -->\n{data.images.banner && (\n  <section class=\"banner-section\">\n    <img\n      src={imgUrl(data.images.banner.path)}\n      alt={data.images.banner.alt}\n      class=\"banner-img\"\n    />\n    <div class=\"banner-caption\">\n      <p>{copy.banner_caption}</p>\n    </div>\n  </section>\n)}\n\n<!-- PRODOTTI -->\n<section class=\"products-section\" id=\"prodotti\">\n  <div class=\"products-inner\">\n    <p class=\"section-eyebrow\">{i.section_eyebrow_products}</p>\n    <h2 class=\"section-title\">{i.section_title_products}</h2>\n    <div class=\"story-divider\" aria-hidden=\"true\"></div>\n    <p class=\"section-intro\">{copy.products_intro}</p>\n    <div class=\"products-grid\">\n      {data.products_or_services.map((p, idx) => (\n        <article class=\"product-card\" style={`--card-accent: ${cardAccents[idx % cardAccents.length]}`}>\n          <div class=\"card-accent-bar\"></div>\n          <div class=\"card-body\">\n            <h3 class=\"card-title\">{p.name}</h3>\n            <p class=\"card-desc\">{p.description}</p>\n          </div>\n        </article>\n      ))}\n    </div>\n  </div>\n</section>\n\n<!-- VALORI -->\n<section class=\"valori-section\">\n  <div class=\"valori-inner\">\n    <p class=\"section-eyebrow light\">{i.section_eyebrow_values}</p>\n    <h2 class=\"section-title light\">{i.section_title_values}</h2>\n    <div class=\"story-divider light\" aria-hidden=\"true\"></div>\n    <div class=\"valori-grid\">\n      <div class=\"valore-item\">\n        <p class=\"valore-text\">{copy.value_handcraft}</p>\n      </div>\n      <div class=\"valore-item\">\n        <p class=\"valore-text\">{copy.value_ingredients}</p>\n      </div>\n      <div class=\"valore-item\">\n        <p class=\"valore-text\">{copy.value_innovation}</p>\n      </div>\n    </div>\n  </div>\n</section>\n\n<!-- CONTATTI -->\n<section class=\"contatti-section\" id=\"contatti\">\n  <div class=\"contatti-inner\">\n    <div class=\"contatti-text\">\n      <p class=\"section-eyebrow\">{i.section_eyebrow_contacts}</p>\n      <h2 class=\"section-title\">{i.section_title_contacts}</h2>\n      <div class=\"story-divider\" aria-hidden=\"true\"></div>\n      <p class=\"contatti-intro\">{copy.contacts_intro}</p>\n    </div>\n    <div class=\"contatti-details\">\n      <div class=\"contact-row\">\n        <span class=\"contact-label\">{i.label_address}</span>\n        <span class=\"contact-value\">{data.contacts.address}</span>\n      </div>\n      {data.contacts.phone && (\n        <div class=\"contact-row\">\n          <span class=\"contact-label\">{i.label_phone}</span>\n          <a href={`tel:${data.contacts.phone}`} class=\"contact-value contact-link\">{data.contacts.phone}</a>\n        </div>\n      )}\n      {data.contacts.fax && (\n        <div class=\"contact-row\">\n          <span class=\"contact-label\">{i.label_fax}</span>\n          <span class=\"contact-value\">{data.contacts.fax}</span>\n        </div>\n      )}\n      {data.contacts.email && (\n        <div class=\"contact-row\">\n          <span class=\"contact-label\">{i.label_email}</span>\n          <a href={`mailto:${data.contacts.email}`} class=\"contact-value contact-link\">{data.contacts.email}</a>\n        </div>\n      )}\n      {data.contacts.pec && (\n        <div class=\"contact-row\">\n          <span class=\"contact-label\">{i.label_pec}</span>\n          <span class=\"contact-value\">{data.contacts.pec}</span>\n        </div>\n      )}\n      {data.contacts.vat && (\n        <div class=\"contact-row\">\n          <span class=\"contact-label\">{i.label_vat}</span>\n          <span class=\"contact-value\">{data.contacts.vat}</span>\n        </div>\n      )}\n    </div>\n  </div>\n</section>\n\n<!-- FOOTER -->\n<footer class=\"site-footer\">\n  <div class=\"footer-inner\">\n    <div class=\"footer-brand\">\n      {data.images.logo ? (\n        <img src={imgUrl(data.images.logo.path)} alt={data.images.logo.alt || data.business_name} class=\"footer-logo\" />\n      ) : (\n        <div class=\"footer-logo-text\">\n          <span class=\"footer-logo-name\">{data.business_name}</span>\n        </div>\n      )}\n      <p class=\"footer-tag\">{copy.footer_tag}</p>\n    </div>\n    <div class=\"footer-nav\">\n      <a href=\"#storia\">{i.nav_story}</a>\n      <a href=\"#prodotti\">{i.nav_products}</a>\n      <a href=\"#contatti\">{i.nav_contacts}</a>\n    </div>\n    <div class=\"footer-legal\">\n      <p>{data.contacts.address}</p>\n      {data.contacts.email && <p><a href={`mailto:${data.contacts.email}`}>{data.contacts.email}</a></p>}\n      {data.contacts.vat && <p>{i.label_vat}: {data.contacts.vat}</p>}\n      {data.contacts.rea && <p>REA: {data.contacts.rea}</p>}\n    </div>\n  </div>\n  <div class=\"footer-bottom\">\n    <p>{i.footer_credits}</p>\n  </div>\n</footer>\n\n</body>\n</html>\n\n<style define:vars={{\n  colorPrimary:    palette.primary,\n  colorSecondary:  palette.secondary,\n  colorAccent:     palette.accent,\n  colorBackground: palette.background,\n  colorText:       palette.text,\n}}>\n\n  :root {\n    --color-primary:    var(--colorPrimary);\n    --color-secondary:  var(--colorSecondary);\n    --color-accent:     var(--colorAccent);\n    --color-background: var(--colorBackground);\n    --color-text:       var(--colorText);\n    --color-cream:      #F2E8D9;\n    --color-cream-dark: #E8D9C0;\n    --color-cream-light:#FAF5EE;\n    --font-heading:     'Playfair Display', serif;\n    --font-body:        'Inter', sans-serif;\n    --max-w:            1160px;\n    --section-pad:      5rem 2rem;\n  }\n\n  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n  html { scroll-behavior: smooth; }\n\n  body {\n    font-family: var(--font-body);\n    background: var(--color-cream-light);\n    color: var(--color-text);\n    line-height: 1.6;\n    font-size: 15px;\n  }\n\n  /* ── HEADER ───────────────────────────────────────────── */\n  .site-header {\n    position: sticky;\n    top: 0;\n    z-index: 100;\n    background: var(--color-background);\n    border-bottom: 2px solid var(--color-cream-dark);\n    padding: 0 2rem;\n  }\n  .header-inner {\n    max-width: var(--max-w);\n    margin: 0 auto;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    height: 68px;\n    gap: 1.5rem;\n  }\n  .brand { flex-shrink: 0; }\n  .logo-img { height: 48px; width: auto; display: block; }\n  .logo-text { display: flex; flex-direction: column; }\n  .logo-name {\n    font-family: var(--font-heading);\n    font-size: 1.25rem;\n    font-weight: 700;\n    color: var(--color-primary);\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    line-height: 1;\n  }\n  .logo-sub {\n    font-size: 0.6rem;\n    color: var(--color-secondary);\n    letter-spacing: 0.15em;\n    text-transform: uppercase;\n    margin-top: 2px;\n  }\n  .main-nav {\n    display: flex;\n    gap: 2rem;\n    flex: 1;\n    justify-content: center;\n  }\n  .main-nav a {\n    font-size: 0.78rem;\n    font-weight: 500;\n    letter-spacing: 0.18em;\n    text-transform: uppercase;\n    color: var(--color-text);\n    text-decoration: none;\n    transition: color 0.2s;\n  }\n  .main-nav a:hover { color: var(--color-primary); }\n  .header-cta {\n    flex-shrink: 0;\n    font-size: 0.75rem;\n    font-weight: 600;\n    letter-spacing: 0.15em;\n    text-transform: uppercase;\n    color: var(--color-background);\n    background: var(--color-primary);\n    padding: 0.55rem 1.2rem;\n    text-decoration: none;\n    transition: background 0.2s;\n  }\n  .header-cta:hover { background: #a52f23; }\n\n  /* ── HERO ─────────────────────────────────────────────── */\n  .hero-section {\n    min-height: 72vh;\n    display: flex;\n    align-items: stretch;\n  }\n  .hero-with-image {\n    position: relative;\n    width: 100%;\n  }\n  .hero-img {\n    width: 100%;\n    height: 72vh;\n    object-fit: cover;\n    display: block;\n  }\n  .hero-overlay {\n    position: absolute;\n    inset: 0;\n    background: rgba(44,28,18,0.48);\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: 2rem;\n    color: #fff;\n  }\n  .hero-text-only {\n    position: relative;\n    width: 100%;\n    background: var(--color-cream);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    overflow: hidden;\n  }\n  /* CSS wheat pattern via radial gradients */\n  .wheat-pattern {\n    position: absolute;\n    inset: 0;\n    background-image:\n      radial-gradient(ellipse 2px 12px at 50% 50%, rgba(139,111,71,0.18) 60%, transparent 100%),\n      radial-gradient(ellipse 8px 3px at 50% 50%, rgba(139,111,71,0.12) 60%, transparent 100%);\n    background-size: 28px 28px;\n    background-position: 0 0, 14px 14px;\n    pointer-events: none;\n  }\n  .hero-text-content {\n    position: relative;\n    z-index: 1;\n    text-align: center;\n    padding: 8rem 2rem 7rem;\n    max-width: 700px;\n  }\n  .hero-eyebrow {\n    font-size: 0.72rem;\n    letter-spacing: 0.28em;\n    text-transform: uppercase;\n    color: var(--color-secondary);\n    font-weight: 500;\n    margin-bottom: 1rem;\n  }\n  .hero-overlay .hero-eyebrow { color: rgba(255,255,255,0.8); }\n  .hero-title {\n    font-family: var(--font-heading);\n    font-size: clamp(2.6rem, 6vw, 4.8rem);\n    font-weight: 700;\n    letter-spacing: 0.04em;\n    color: var(--color-primary);\n    line-height: 1.1;\n    margin-bottom: 1.2rem;\n    text-transform: uppercase;\n  }\n  .hero-overlay .hero-title { color: #fff; }\n  .hero-tagline {\n    font-size: clamp(0.95rem, 1.8vw, 1.15rem);\n    color: var(--color-text);\n    max-width: 520px;\n    margin: 0 auto 2rem;\n    line-height: 1.65;\n  }\n  .hero-overlay .hero-tagline { color: rgba(255,255,255,0.88); }\n  .hero-cta-btn {\n    display: inline-block;\n    font-size: 0.78rem;\n    font-weight: 600;\n    letter-spacing: 0.18em;\n    text-transform: uppercase;\n    color: var(--color-background);\n    background: var(--color-primary);\n    padding: 0.85rem 2.2rem;\n    text-decoration: none;\n    transition: background 0.2s;\n  }\n  .hero-cta-btn:hover { background: #a52f23; }\n\n  /* ── CRAFT STRIP ──────────────────────────────────────── */\n  .craft-strip {\n    background: var(--color-secondary);\n    padding: 2.5rem 2rem;\n  }\n  .craft-inner {\n    max-width: var(--max-w);\n    margin: 0 auto;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 0;\n  }\n  .craft-item {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 0.4rem;\n    flex: 1;\n    text-align: center;\n  }\n  .craft-num {\n    font-family: var(--font-heading);\n    font-size: 2.2rem;\n    font-weight: 700;\n    color: rgba(255,255,255,0.9);\n    line-height: 1;\n  }\n  .craft-label {\n    font-size: 0.7rem;\n    letter-spacing: 0.22em;\n    text-transform: uppercase;\n    color: rgba(255,255,255,0.75);\n    font-weight: 500;\n  }\n  .craft-divider {\n    width: 1px;\n    height: 48px;\n    background: rgba(255,255,255,0.2);\n    flex-shrink: 0;\n  }\n\n  /* ── STORIA ───────────────────────────────────────────── */\n  .storia-section {\n    background: var(--color-cream);\n    padding: var(--section-pad);\n  }\n  .storia-inner {\n    max-width: var(--max-w);\n    margin: 0 auto;\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 4rem;\n    align-items: center;\n  }\n  .section-eyebrow {\n    font-size: 0.68rem;\n    letter-spacing: 0.28em;\n    text-transform: uppercase;\n    color: var(--color-secondary);\n    font-weight: 600;\n    margin-bottom: 0.8rem;\n  }\n  .section-eyebrow.light { color: rgba(255,255,255,0.7); }\n  .section-title {\n    font-family: var(--font-heading);\n    font-size: clamp(1.8rem, 3.5vw, 2.8rem);\n    font-weight: 600;\n    color: var(--color-text);\n    letter-spacing: 0.03em;\n    text-transform: uppercase;\n    line-height: 1.2;\n    margin-bottom: 0.5rem;\n  }\n  .section-title.light { color: #fff; }\n  .story-divider {\n    width: 48px;\n    height: 3px;\n    background: var(--color-primary);\n    margin: 1.2rem 0 1.6rem;\n    border-radius: 2px;\n  }\n  .story-divider.light { background: rgba(255,255,255,0.5); }\n  .story-intro {\n    font-size: 1.05rem;\n    font-weight: 500;\n    color: var(--color-text);\n    margin-bottom: 1rem;\n    line-height: 1.65;\n  }\n  .story-body {\n    font-size: 0.94rem;\n    color: var(--color-text);\n    opacity: 0.85;\n    line-height: 1.75;\n    margin-bottom: 1.2rem;\n  }\n  .story-address {\n    font-size: 0.78rem;\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n    color: var(--color-secondary);\n    font-weight: 500;\n  }\n  .storia-deco {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n  .deco-circle {\n    width: 280px;\n    height: 280px;\n    border-radius: 50%;\n    background: var(--color-cream-dark);\n    border: 3px solid var(--color-secondary);\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: 2rem;\n    gap: 0.8rem;\n  }\n  .deco-category {\n    font-size: 0.68rem;\n    letter-spacing: 0.3em;\n    text-transform: uppercase;\n    color: var(--color-primary);\n    font-weight: 700;\n  }\n  .deco-tagline {\n    font-family: var(--font-heading);\n    font-size: 0.92rem;\n    color: var(--color-text);\n    font-style: italic;\n    line-height: 1.5;\n  }\n\n  /* ── BANNER ───────────────────────────────────────────── */\n  .banner-section {\n    position: relative;\n    overflow: hidden;\n  }\n  .banner-img {\n    width: 100%;\n    max-height: 380px;\n    object-fit: cover;\n    display: block;\n  }\n  .banner-caption {\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    background: linear-gradient(transparent, rgba(44,28,18,0.7));\n    padding: 2rem 2rem 1.2rem;\n    text-align: center;\n  }\n  .banner-caption p {\n    font-size: 0.82rem;\n    letter-spacing: 0.18em;\n    text-transform: uppercase;\n    color: rgba(255,255,255,0.88);\n    font-weight: 500;\n  }\n\n  /* ── PRODOTTI ─────────────────────────────────────────── */\n  .products-section {\n    background: var(--color-cream-light);\n    padding: var(--section-pad);\n  }\n  .products-inner {\n    max-width: var(--max-w);\n    margin: 0 auto;\n  }\n  .section-intro {\n    font-size: 1rem;\n    color: var(--color-text);\n    opacity: 0.82;\n    max-width: 620px;\n    margin-bottom: 3rem;\n    line-height: 1.72;\n  }\n  .products-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n    gap: 1.5rem;\n  }\n  .product-card {\n    background: var(--color-background);\n    border-radius: 2px;\n    overflow: hidden;\n    transition: transform 0.2s, box-shadow 0.2s;\n  }\n  .product-card:nth-child(even) {\n    background: var(--color-cream);\n  }\n  .product-card:hover {\n    transform: translateY(-3px);\n    box-shadow: 0 8px 28px rgba(44,28,18,0.1);\n  }\n  .card-accent-bar {\n    height: 4px;\n    background: var(--card-accent);\n  }\n  .card-body {\n    padding: 1.5rem 1.4rem 1.6rem;\n  }\n  .card-title {\n    font-family: var(--font-heading);\n    font-size: 1.05rem;\n    font-weight: 700;\n    color: var(--color-text);\n    text-transform: uppercase;\n    letter-spacing: 0.06em;\n    margin-bottom: 0.6rem;\n    line-height: 1.3;\n  }\n  .card-desc {\n    font-size: 0.88rem;\n    color: var(--color-text);\n    opacity: 0.78;\n    line-height: 1.68;\n  }\n\n  /* ── VALORI ───────────────────────────────────────────── */\n  .valori-section {\n    background: var(--color-primary);\n    padding: var(--section-pad);\n    text-align: center;\n  }\n  .valori-inner {\n    max-width: var(--max-w);\n    margin: 0 auto;\n  }\n  .valori-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 3rem;\n    margin-top: 3rem;\n  }\n  .valore-item {\n    border-top: 2px solid rgba(255,255,255,0.25);\n    padding-top: 1.5rem;\n  }\n  .valore-text {\n    font-size: 0.94rem;\n    color: rgba(255,255,255,0.88);\n    line-height: 1.72;\n    font-style: italic;\n  }\n\n  /* ── CONTATTI ─────────────────────────────────────────── */\n  .contatti-section {\n    background: var(--color-cream-dark);\n    padding: var(--section-pad);\n  }\n  .contatti-inner {\n    max-width: var(--max-w);\n    margin: 0 auto;\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 4rem;\n    align-items: start;\n  }\n  .contatti-intro {\n    font-size: 0.95rem;\n    color: var(--color-text);\n    opacity: 0.82;\n    line-height: 1.72;\n    margin-top: 0.5rem;\n  }\n  .contatti-details {\n    display: flex;\n    flex-direction: column;\n    gap: 1.1rem;\n  }\n  .contact-row {\n    display: flex;\n    flex-direction: column;\n    gap: 0.2rem;\n    border-bottom: 1px solid rgba(139,111,71,0.2);\n    padding-bottom: 0.9rem;\n  }\n  .contact-row:last-child { border-bottom: none; }\n  .contact-label {\n    font-size: 0.65rem;\n    letter-spacing: 0.22em;\n    text-transform: uppercase;\n    color: var(--color-secondary);\n    font-weight: 600;\n  }\n  .contact-value {\n    font-size: 0.92rem;\n    color: var(--color-text);\n    font-weight: 400;\n  }\n  .contact-link {\n    color: var(--color-primary);\n    text-decoration: none;\n  }\n  .contact-link:hover { text-decoration: underline; }\n\n  /* ── FOOTER ───────────────────────────────────────────── */\n  .site-footer {\n    background: #2C2215;\n    color: rgba(255,255,255,0.75);\n  }\n  .footer-inner {\n    max-width: var(--max-w);\n    margin: 0 auto;\n    display: grid;\n    grid-template-columns: 1fr 1fr 1fr;\n    gap: 3rem;\n    padding: 3.5rem 2rem 2.5rem;\n    align-items: start;\n  }\n  .footer-logo { height: 40px; width: auto; display: block; margin-bottom: 0.8rem; filter: brightness(0) invert(1) opacity(0.85); }\n  .footer-logo-text {}\n  .footer-logo-name {\n    font-family: var(--font-heading);\n    font-size: 1.1rem;\n    font-weight: 700;\n    color: rgba(255,255,255,0.9);\n    text-transform: uppercase;\n    letter-spacing: 0.1em;\n    display: block;\n    margin-bottom: 0.6rem;\n  }\n  .footer-tag {\n    font-size: 0.82rem;\n    line-height: 1.6;\n    color: rgba(255,255,255,0.55);\n    font-style: italic;\n  }\n  .footer-nav {\n    display: flex;\n    flex-direction: column;\n    gap: 0.6rem;\n  }\n  .footer-nav a {\n    font-size: 0.75rem;\n    letter-spacing: 0.18em;\n    text-transform: uppercase;\n    color: rgba(255,255,255,0.65);\n    text-decoration: none;\n    transition: color 0.2s;\n  }\n  .footer-nav a:hover { color: rgba(255,255,255,0.95); }\n  .footer-legal {\n    font-size: 0.75rem;\n    line-height: 1.8;\n    color: rgba(255,255,255,0.5);\n  }\n  .footer-legal a {\n    color: rgba(255,255,255,0.6);\n    text-decoration: none;\n  }\n  .footer-legal a:hover { color: rgba(255,255,255,0.9); }\n  .footer-bottom {\n    border-top: 1px solid rgba(255,255,255,0.08);\n    text-align: center;\n    padding: 1rem 2rem;\n  }\n  .footer-bottom p {\n    font-size: 0.68rem;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    color: rgba(255,255,255,0.35);\n  }\n\n  /* ── RESPONSIVE ──────────────────────────────────────── */\n  @media (max-width: 900px) {\n    .storia-inner,\n    .contatti-inner {\n      grid-template-columns: 1fr;\n      gap: 2.5rem;\n    }\n    .storia-deco { display: none; }\n    .valori-grid { grid-template-columns: 1fr; gap: 2rem; }\n    .footer-inner { grid-template-columns: 1fr; gap: 2rem; }\n  }\n\n  @media (max-width: 640px) {\n    .main-nav { display: none; }\n    .header-inner { justify-content: space-between; }\n    .craft-inner { flex-direction: column; gap: 1.5rem; }\n    .craft-divider { width: 40px; height: 1px; }\n    .products-grid { grid-template-columns: 1fr; }\n  }\n</style>\n",
  "content_schema": [
    {
      "key": "hero_eyebrow",
      "type": "text",
      "max_chars": 60,
      "description": "Breve sopratitolo atmosferico per l'hero. Es. 'Artigianato autentico dall'Abruzzo'. No fatti specifici.",
      "array_source": null,
      "is_array_item": false,
      "array_key": null,
      "field_name": null
    },
    {
      "key": "hero_tagline",
      "type": "text",
      "max_chars": 160,
      "description": "Frase headline atmosferica per l'hero: evoca tradizione, artigianalità e territorio senza citare fatti specifici.",
      "array_source": null,
      "is_array_item": false,
      "array_key": null,
      "field_name": null
    },
    {
      "key": "story_intro",
      "type": "text",
      "max_chars": 180,
      "description": "Breve frase introduttiva alla sezione storia. Tono caldo e narrativo, senza citare dati specifici.",
      "array_source": null,
      "is_array_item": false,
      "array_key": null,
      "field_name": null
    },
    {
      "key": "story_paragraph",
      "type": "richtext",
      "max_chars": 500,
      "description": "Paragrafo narrativo sulla storia e filosofia del forno. Atmosferico, può evocare territorio abruzzese, cura artigianale, materie prime — senza inventare fatti non presenti nel dossier.",
      "array_source": null,
      "is_array_item": false,
      "array_key": null,
      "field_name": null
    },
    {
      "key": "banner_caption",
      "type": "text",
      "max_chars": 80,
      "description": "Breve didascalia atmosferica sovrapposta all'immagine banner. Es. 'Specialità artigianali da Tollo, Abruzzo'.",
      "array_source": null,
      "is_array_item": false,
      "array_key": null,
      "field_name": null
    },
    {
      "key": "products_intro",
      "type": "text",
      "max_chars": 220,
      "description": "Breve introduzione atmosferica alla sezione prodotti. Evoca genuinità e artigianalità senza elencare prodotti specifici.",
      "array_source": null,
      "is_array_item": false,
      "array_key": null,
      "field_name": null
    },
    {
      "key": "value_handcraft",
      "type": "text",
      "max_chars": 180,
      "description": "Citazione/valore sul fare a mano. Può parafrasare il tono delle voice_examples sulla lavorazione artigianale.",
      "array_source": null,
      "is_array_item": false,
      "array_key": null,
      "field_name": null
    },
    {
      "key": "value_ingredients",
      "type": "text",
      "max_chars": 180,
      "description": "Citazione/valore sulla qualità delle materie prime. Evocativo, senza elencare ingredienti specifici.",
      "array_source": null,
      "is_array_item": false,
      "array_key": null,
      "field_name": null
    },
    {
      "key": "value_innovation",
      "type": "text",
      "max_chars": 180,
      "description": "Citazione/valore sull'innovazione naturale nelle confetture e creme. Tono caldo e artigianale.",
      "array_source": null,
      "is_array_item": false,
      "array_key": null,
      "field_name": null
    },
    {
      "key": "contacts_intro",
      "type": "text",
      "max_chars": 200,
      "description": "Breve testo introduttivo alla sezione contatti. Tono accogliente, invito a mettersi in contatto.",
      "array_source": null,
      "is_array_item": false,
      "array_key": null,
      "field_name": null
    },
    {
      "key": "footer_tag",
      "type": "text",
      "max_chars": 100,
      "description": "Breve tagline nel footer. Atmosferica, evoca artigianalità e tradizione italiana.",
      "array_source": null,
      "is_array_item": false,
      "array_key": null,
      "field_name": null
    }
  ],
  "data_bindings": [
    "business_name",
    "tagline",
    "category",
    "description",
    "contacts.address",
    "contacts.phone",
    "contacts.fax",
    "contacts.email",
    "contacts.pec",
    "contacts.vat",
    "contacts.rea",
    "products_or_services[]",
    "images.logo",
    "images.hero",
    "images.banner",
    "visual_identity.color_palette.primary",
    "visual_identity.color_palette.secondary",
    "visual_identity.color_palette.accent",
    "visual_identity.color_palette.background",
    "visual_identity.color_palette.text",
    "available_locales"
  ],
  "ui_translations": {
    "nav_aria_label": "Navigazione principale",
    "nav_story": "Storia",
    "nav_products": "Prodotti",
    "nav_contacts": "Contatti",
    "logo_sub": "Prodotto tipico italiano · fatto a mano",
    "cta_discover": "Scopri le specialità",
    "cta_contact": "Contattaci",
    "section_eyebrow_story": "La nostra storia",
    "section_title_story": "Tradizione artigianale",
    "section_eyebrow_products": "Le nostre specialità",
    "section_title_products": "I prodotti",
    "section_eyebrow_values": "La nostra filosofia",
    "section_title_values": "Genuino per natura",
    "section_eyebrow_contacts": "Dove siamo",
    "section_title_contacts": "Contatti",
    "craft_handmade": "Interamente fatto a mano",
    "craft_ingredients": "Materie prime pregiate",
    "craft_tradition": "Tradizione abruzzese",
    "label_address": "Indirizzo",
    "label_phone": "Telefono",
    "label_fax": "Fax",
    "label_email": "Email",
    "label_pec": "PEC",
    "label_vat": "P. IVA",
    "footer_credits": "Realizzato con cura artigianale"
  }
}