{"id":487,"date":"2022-04-24T04:27:29","date_gmt":"2022-04-24T01:27:29","guid":{"rendered":"https:\/\/www.saaristonpuoti.fi\/?page_id=487"},"modified":"2026-08-28T14:27:50","modified_gmt":"2026-08-28T11:27:50","slug":"pizzalista","status":"publish","type":"page","link":"https:\/\/www.saaristonpuoti.fi\/en\/pizza-list\/","title":{"rendered":"Pizza list"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"487\" class=\"elementor elementor-487\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5cd14e3 e-container--column e-container\" data-id=\"5cd14e3\" data-element_type=\"container\">\t\t\t\t<div class=\"elementor-element elementor-element-23e47c3 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"23e47c3\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\n<div id=\"puoti26-menu-2026\" class=\"puoti26-menu-2026\" data-puoti26-menu=\"\">\n  <style>\n    @import url(\"https:\/\/fonts.googleapis.com\/css2?family=League+Spartan:wght@700;800;900&family=Roboto:wght@400;500;700&display=swap\");\n\n    .puoti26-menu-2026,\n    .puoti26-menu-2026 * {\n      box-sizing: border-box;\n    }\n\n    .puoti26-menu-2026 {\n      --red: #f04d4c;\n      --red-hover: #d83e3d;\n      --cream: #f7ebdf;\n      --cream-warm: #fdf6ed;\n      --dark: #0c0c0c;\n      --ink: #24211f;\n      --muted: #746d67;\n      --border: #e5ded5;\n      --white: #ffffff;\n      --green: #2d7651;\n      --shadow: 0 8px 30px rgba(12, 12, 12, .08);\n      --shadow-lg: 0 18px 48px rgba(12, 12, 12, .18);\n      font-family: \"Roboto\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n      color: var(--ink);\n      background: var(--cream);\n      margin: 0;\n      padding: 0 0 72px;\n      line-height: 1.55;\n      -webkit-font-smoothing: antialiased;\n      max-width: 100%;\n      overflow-x: clip;\n    }\n\n    .puoti26-menu-2026 a {\n      color: var(--red);\n      text-decoration: none;\n    }\n\n    .puoti26-menu-2026 a:hover {\n      color: var(--red-hover);\n      text-decoration: underline;\n    }\n\n    .puoti26-menu-2026 h1,\n    .puoti26-menu-2026 h2,\n    .puoti26-menu-2026 h3,\n    .puoti26-menu-2026 .p26-head {\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      color: var(--dark);\n      font-weight: 800;\n      line-height: .98;\n      letter-spacing: 0;\n      margin: 0;\n    }\n\n    .puoti26-menu-2026 p {\n      margin: 0;\n      color: var(--muted);\n    }\n\n    .p26-hero {\n      position: relative;\n      min-height: min(42vh, 380px);\n      display: flex;\n      align-items: flex-end;\n      overflow: hidden;\n      color: var(--white);\n      background:\n        linear-gradient(180deg, rgba(12, 12, 12, .06) 0%, rgba(12, 12, 12, .18) 44%, rgba(12, 12, 12, .84) 100%),\n        url(\"https:\/\/www.saaristonpuoti.fi\/wp-content\/uploads\/2025\/04\/Saaristonpuoti_sRGB-7.jpg\") center 48% \/ cover no-repeat;\n    }\n\n    .p26-hero::after {\n      content: \"\";\n      position: absolute;\n      inset: auto 0 0;\n      height: 8px;\n      background: var(--red);\n    }\n\n    .p26-hero-inner {\n      position: relative;\n      z-index: 1;\n      width: min(100%, 1180px);\n      margin: 0 auto;\n      padding: 48px 22px 52px;\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 12px;\n      align-items: end;\n    }\n\n    .p26-eyebrow,\n    .p26-tag {\n      display: inline-flex;\n      align-items: center;\n      width: fit-content;\n      min-height: 30px;\n      padding: 8px 11px;\n      border-radius: 8px;\n      background: var(--red);\n      color: var(--white);\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      font-size: 12px;\n      line-height: 1;\n      font-weight: 800;\n      text-transform: uppercase;\n      letter-spacing: .14em;\n    }\n\n    .p26-tag {\n      min-height: 26px;\n      padding: 7px 9px;\n      font-size: 11px;\n      letter-spacing: .12em;\n    }\n\n    .p26-tag-soft {\n      background: var(--cream);\n      color: var(--dark);\n    }\n\n    .p26-tag-outline {\n      background: transparent;\n      color: var(--red);\n      border: 1px solid rgba(240, 77, 76, .28);\n    }\n\n    .p26-hero h1 {\n      max-width: 820px;\n      margin: 18px 0 14px;\n      color: var(--white);\n      font-size: clamp(46px, 8vw, 104px);\n      text-transform: uppercase;\n    }\n\n    .puoti26-menu-2026 .p26-hero-copy {\n      max-width: 680px;\n      color: rgba(255, 255, 255, .86);\n      font-size: 18px;\n    }\n\n    .p26-hero-actions {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 10px;\n      margin-top: 24px;\n    }\n\n    .p26-btn {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: 8px;\n      min-height: 44px;\n      padding: 13px 18px;\n      border: 0;\n      border-radius: 8px;\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      font-size: 14px;\n      font-weight: 800;\n      letter-spacing: .06em;\n      text-transform: uppercase;\n      text-decoration: none !important;\n      cursor: pointer;\n      transition: transform .16s ease, background .16s ease, color .16s ease, border-color .16s ease;\n    }\n\n    .p26-btn:hover {\n      transform: translateY(-1px);\n      text-decoration: none !important;\n    }\n\n    .p26-btn-primary {\n      background: var(--red);\n      color: var(--white) !important;\n    }\n\n    .p26-btn-primary:hover {\n      background: var(--red-hover);\n      color: var(--white) !important;\n    }\n\n    .p26-btn-soft {\n      background: var(--white);\n      color: var(--dark) !important;\n    }\n\n    .p26-btn-muted {\n      background: #f5eee7;\n      color: var(--dark) !important;\n    }\n\n    .p26-hero-card {\n      background: rgba(255, 255, 255, .94);\n      border: 1px solid rgba(255, 255, 255, .22);\n      border-radius: 14px;\n      box-shadow: var(--shadow-lg);\n      padding: 20px;\n    }\n\n    .p26-hero-card h2 {\n      margin: 10px 0 6px;\n      font-size: 30px;\n    }\n\n    .p26-hero-card p {\n      color: var(--muted);\n      font-size: 15px;\n    }\n\n    .p26-hero-stats {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 8px;\n      margin-top: 16px;\n    }\n\n    .p26-stat {\n      min-width: 0;\n      border-radius: 10px;\n      background: var(--cream);\n      padding: 12px 10px;\n    }\n\n    .p26-stat strong {\n      display: block;\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      color: var(--dark);\n      font-size: 25px;\n      line-height: .9;\n    }\n\n    .p26-stat span {\n      display: block;\n      margin-top: 4px;\n      color: var(--muted);\n      font-size: 12px;\n      font-weight: 700;\n      text-transform: uppercase;\n      letter-spacing: .06em;\n    }\n\n    .p26-shell {\n      width: min(100% - 36px, 1180px);\n      margin: 0 auto;\n    }\n\n    .p26-intro {\n      display: grid;\n      grid-template-columns: minmax(0, 1fr);\n      gap: 18px;\n      margin: 24px auto 18px;\n    }\n\n    .p26-panel,\n    .p26-card,\n    .p26-info {\n      background: var(--white);\n      border: 1px solid rgba(12, 12, 12, .06);\n      border-radius: 14px;\n      box-shadow: var(--shadow);\n    }\n\n    .p26-panel {\n      padding: 26px;\n    }\n\n    .p26-panel h2 {\n      margin: 10px 0;\n      font-size: clamp(30px, 4vw, 46px);\n    }\n\n    .p26-panel p + p {\n      margin-top: 10px;\n    }\n\n    .p26-legend {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 10px;\n      align-self: start;\n    }\n\n    .p26-legend-item {\n      min-height: 72px;\n      padding: 14px;\n      border-radius: 12px;\n      background: var(--white);\n      border: 1px solid rgba(12, 12, 12, .06);\n      box-shadow: var(--shadow);\n    }\n\n    .p26-legend-item strong {\n      display: block;\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      color: var(--dark);\n      font-size: 20px;\n      line-height: 1;\n      margin-bottom: 4px;\n    }\n\n    .p26-legend-item span {\n      display: block;\n      color: var(--muted);\n      font-size: 13px;\n      line-height: 1.35;\n    }\n\n    .p26-legend-details {\n      margin-top: 16px;\n      padding-top: 14px;\n      border-top: 1px solid rgba(12, 12, 12, .08);\n    }\n\n    .p26-legend-details > summary {\n      list-style: none;\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      cursor: pointer;\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      font-size: 13px;\n      font-weight: 800;\n      letter-spacing: .06em;\n      text-transform: uppercase;\n      color: var(--red);\n    }\n\n    .p26-legend-details > summary::-webkit-details-marker {\n      display: none;\n    }\n\n    .p26-legend-details > summary::before {\n      content: \"+\";\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      width: 20px;\n      height: 20px;\n      border-radius: 6px;\n      background: rgba(240, 77, 76, .12);\n      color: var(--red);\n      font-size: 16px;\n      line-height: 1;\n    }\n\n    .p26-legend-details[open] > summary::before {\n      content: \"\\2013\";\n    }\n\n    .p26-legend-details .p26-legend {\n      margin-top: 14px;\n    }\n\n    .p26-legend-details .p26-legend-item {\n      min-height: 0;\n      padding: 10px 12px;\n      background: rgba(12, 12, 12, .02);\n      box-shadow: none;\n    }\n\n    .p26-inline-link {\n      color: var(--red);\n      font-weight: 700;\n      text-underline-offset: 2px;\n    }\n\n    .p26-inline-link:hover {\n      text-decoration: none;\n    }\n\n    #p26-toppings,\n    #p26-gf-info {\n      scroll-margin-top: 90px;\n    }\n\n    .p26-controls {\n      position: sticky;\n      top: 0;\n      z-index: 10;\n      margin: 18px auto 18px;\n      padding: 14px;\n      background: rgba(247, 235, 223, .94);\n      border: 1px solid rgba(12, 12, 12, .08);\n      border-radius: 14px;\n      box-shadow: 0 10px 26px rgba(12, 12, 12, .08);\n      backdrop-filter: blur(14px);\n      -webkit-backdrop-filter: blur(14px);\n    }\n\n    .p26-controls-top {\n      display: flex;\n      justify-content: flex-end;\n      margin-bottom: 12px;\n    }\n\n    .p26-result-count {\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      color: var(--dark);\n      font-size: 15px;\n      font-weight: 800;\n      white-space: nowrap;\n      text-transform: uppercase;\n      letter-spacing: .06em;\n    }\n\n    .p26-filter-block + .p26-filter-block {\n      margin-top: 10px;\n      padding-top: 10px;\n      border-top: 1px solid rgba(12, 12, 12, .08);\n    }\n\n    .p26-filter-label {\n      display: block;\n      margin: 0 0 8px;\n      color: var(--dark);\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      font-size: 12px;\n      font-weight: 800;\n      letter-spacing: .12em;\n      text-transform: uppercase;\n    }\n\n    .p26-filter-row {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 8px;\n    }\n\n    #puoti26-menu-2026 .p26-filter {\n      -webkit-appearance: none;\n      appearance: none;\n      margin: 0;\n      min-height: 38px;\n      border: 1px solid rgba(12, 12, 12, .10);\n      border-radius: 8px;\n      background: var(--white);\n      color: var(--dark);\n      padding: 9px 12px;\n      min-width: 0;\n      max-width: 100%;\n      white-space: normal;\n      overflow-wrap: anywhere;\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      font-size: 13px;\n      font-weight: 800;\n      line-height: 1;\n      letter-spacing: .05em;\n      text-transform: uppercase;\n      text-decoration: none;\n      text-shadow: none;\n      box-shadow: none;\n      cursor: pointer;\n      transition: background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;\n    }\n\n    #puoti26-menu-2026 .p26-filter:hover {\n      transform: translateY(-1px);\n      border-color: rgba(240, 77, 76, .40);\n    }\n\n    #puoti26-menu-2026 .p26-filter[aria-pressed=\"true\"],\n    #puoti26-menu-2026 .p26-filter.is-active {\n      background: var(--red);\n      border-color: var(--red);\n      color: var(--white);\n    }\n\n    .p26-section {\n      margin-top: 18px;\n    }\n\n    .p26-section-head {\n      display: flex;\n      justify-content: space-between;\n      align-items: end;\n      gap: 18px;\n      margin: 0 0 12px;\n      padding: 0 2px;\n    }\n\n    .p26-section-head h2 {\n      margin-top: 8px;\n      font-size: clamp(34px, 5vw, 54px);\n    }\n\n    .p26-section-head p {\n      max-width: 620px;\n      font-size: 16px;\n    }\n\n    .p26-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 14px;\n    }\n\n    .puoti26-menu-2026 [hidden] {\n      display: none !important;\n    }\n\n    .p26-card {\n      position: relative;\n      display: grid;\n      grid-template-rows: auto 1fr auto;\n      min-height: 214px;\n      padding: 18px;\n      overflow: hidden;\n    }\n\n    .p26-card.is-new {\n      border-color: rgba(240, 77, 76, .34);\n      box-shadow: 0 12px 34px rgba(240, 77, 76, .13), 0 8px 30px rgba(12, 12, 12, .06);\n    }\n    .p26-card.is-featured {\n      border: 2px solid var(--red);\n      background: linear-gradient(180deg, var(--cream-warm), var(--white) 62%);\n      box-shadow: 0 16px 40px rgba(240, 77, 76, .22), 0 8px 30px rgba(12, 12, 12, .08);\n    }\n    .p26-card.is-featured .p26-tag-date {\n      background: var(--red);\n      color: var(--white);\n      border: none;\n    }\n\n    .p26-card.is-new::before {\n      content: \"\";\n      position: absolute;\n      inset: 0 auto 0 0;\n      width: 6px;\n      background: var(--red);\n    }\n\n    .p26-card-top {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: center;\n      gap: 7px;\n      min-height: 28px;\n      margin-bottom: 10px;\n    }\n\n    .p26-card h3 {\n      min-height: 48px;\n      margin: 0 0 8px;\n      font-size: clamp(22px, 3vw, 30px);\n      line-height: .95;\n    }\n\n    .p26-desc {\n      color: var(--muted);\n      font-size: 15px;\n    }\n\n    .p26-note {\n      margin-top: 10px;\n      color: #9b423f;\n      font-size: 14px;\n      font-weight: 700;\n    }\n\n    .p26-card-footer {\n      display: flex;\n      justify-content: space-between;\n      align-items: end;\n      gap: 12px;\n      margin-top: 18px;\n      padding-top: 12px;\n      border-top: 1px solid rgba(12, 12, 12, .08);\n    }\n\n    .p26-diets {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 6px;\n    }\n\n    .p26-diet-chip {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      min-width: 28px;\n      min-height: 26px;\n      padding: 6px 8px;\n      border-radius: 999px;\n      background: var(--cream);\n      color: var(--dark);\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      font-size: 12px;\n      font-weight: 800;\n      line-height: 1;\n    }\n\n    .p26-price {\n      color: var(--red);\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      font-size: 25px;\n      font-weight: 800;\n      line-height: .95;\n      white-space: nowrap;\n    }\n\n    .p26-topping-group + .p26-topping-group {\n      margin-top: 22px;\n    }\n\n    .p26-topping-group-title {\n      margin: 0 0 12px;\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      font-size: 16px;\n      letter-spacing: .08em;\n      text-transform: uppercase;\n      color: var(--muted);\n    }\n\n    .p26-topping-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 10px;\n    }\n\n    .p26-card.p26-topping {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 12px;\n      min-height: 0;\n      padding: 12px 16px;\n      overflow: visible;\n    }\n\n    .p26-topping-name {\n      font-weight: 600;\n      font-size: 15px;\n      color: var(--ink);\n      line-height: 1.25;\n    }\n\n    .p26-topping-tail {\n      display: inline-flex;\n      align-items: center;\n      gap: 10px;\n      flex-shrink: 0;\n    }\n\n    .p26-topping-chips {\n      display: inline-flex;\n      gap: 5px;\n    }\n\n    .p26-topping-price {\n      color: var(--red);\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      font-size: 18px;\n      font-weight: 800;\n      white-space: nowrap;\n    }\n\n    @media (max-width: 640px) {\n      .p26-topping-grid {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    .p26-info {\n      padding: 24px;\n      margin-top: 18px;\n    }\n\n    .p26-info h2 {\n      margin: 8px 0 10px;\n      font-size: clamp(30px, 4vw, 42px);\n    }\n\n    .p26-info-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 14px;\n      margin-top: 18px;\n    }\n\n    .p26-info-box {\n      padding: 16px;\n      border-radius: 12px;\n      background: var(--cream-warm);\n      border: 1px solid rgba(12, 12, 12, .06);\n    }\n\n    .p26-info-box strong {\n      display: block;\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      color: var(--dark);\n      font-size: 21px;\n      line-height: 1;\n      margin-bottom: 8px;\n    }\n\n    .p26-gf-bases {\n      display: grid;\n      gap: 10px;\n      margin-top: 12px;\n    }\n\n    .p26-gf-base {\n      border: 1px solid rgba(12, 12, 12, .08);\n      border-radius: 10px;\n      background: var(--white);\n      overflow: hidden;\n    }\n\n    .p26-gf-base summary {\n      cursor: pointer;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 12px;\n      padding: 11px 12px;\n      font-family: \"League Spartan\", system-ui, sans-serif;\n      font-size: 17px;\n      font-weight: 800;\n      color: var(--dark);\n      list-style: none;\n    }\n\n    .p26-gf-base summary::-webkit-details-marker { display: none; }\n\n    .p26-gf-base summary:hover { background: rgba(12, 12, 12, .03); }\n\n    .p26-gf-base-meta {\n      display: inline-flex;\n      align-items: center;\n      gap: 10px;\n      flex: none;\n    }\n\n    .p26-gf-base summary strong {\n      display: inline;\n      margin: 0;\n      color: var(--red);\n      font-size: 17px;\n      white-space: nowrap;\n    }\n\n    .p26-gf-base-chevron {\n      width: 8px;\n      height: 8px;\n      border-right: 2px solid var(--red);\n      border-bottom: 2px solid var(--red);\n      transform: rotate(45deg);\n      transition: transform .2s ease;\n      flex: none;\n      margin-top: -3px;\n    }\n\n    .p26-gf-base[open] .p26-gf-base-chevron {\n      transform: rotate(-135deg);\n      margin-top: 3px;\n    }\n\n    .p26-gf-base p {\n      margin: 0;\n      padding: 0 12px 12px 30px;\n      font-size: 14px;\n      line-height: 1.45;\n      color: var(--ink);\n    }\n\n    .p26-gf-base .p26-gf-note {\n      padding-top: 0;\n      color: var(--muted);\n    }\n\n    .p26-gf-prep {\n      margin-top: 14px;\n      padding-top: 12px;\n      border-top: 1px solid var(--border);\n      font-size: 14px;\n      line-height: 1.5;\n      color: var(--ink);\n    }\n\n    .p26-gf-prep strong {\n      color: var(--dark);\n    }\n\n    .p26-no-results {\n      display: none;\n      padding: 28px;\n      border-radius: 14px;\n      background: var(--white);\n      box-shadow: var(--shadow);\n    }\n\n    .p26-no-results.is-visible {\n      display: block;\n    }\n\n    @media (max-width: 900px) {\n      .p26-hero {\n        min-height: min(40vh, 340px);\n      }\n\n      .p26-hero-inner,\n      .p26-intro {\n        grid-template-columns: 1fr;\n      }\n\n      .p26-hero-card {\n        max-width: 420px;\n      }\n\n      .p26-grid {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    @media (max-width: 620px) {\n      .puoti26-menu-2026 {\n        padding-bottom: 44px;\n      }\n\n      .p26-hero {\n        min-height: 260px;\n        background-position: 46% center;\n      }\n\n      .p26-hero-inner {\n        padding: 30px 18px 34px;\n        gap: 10px;\n      }\n\n      .p26-hero h1 {\n        margin-top: 14px;\n        font-size: 46px;\n      }\n\n      .p26-hero-copy {\n        font-size: 16px;\n      }\n\n      .p26-hero-actions .p26-btn {\n        width: 100%;\n      }\n\n      .p26-hero-card {\n        padding: 16px;\n      }\n\n      .p26-hero-stats {\n        grid-template-columns: 1fr 1fr;\n      }\n\n      .p26-shell {\n        width: min(100% - 28px, 480px);\n      }\n\n      .p26-panel {\n        padding: 20px;\n      }\n\n      .p26-legend,\n      .p26-info-grid {\n        grid-template-columns: 1fr;\n      }\n\n      .p26-controls {\n        position: static;\n        padding: 12px;\n      }\n\n      .p26-controls-top {\n        grid-template-columns: 1fr;\n      }\n\n      .p26-result-count {\n        white-space: normal;\n      }\n\n      .p26-filter-row {\n        display: flex;\n        flex-wrap: nowrap;\n        gap: 8px;\n        max-width: 100%;\n        overflow-x: auto;\n        overflow-y: hidden;\n        padding-bottom: 6px;\n        scroll-snap-type: x proximity;\n        -webkit-overflow-scrolling: touch;\n        scrollbar-width: thin;\n        scrollbar-color: rgba(240, 77, 76, .45) transparent;\n        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 22px), transparent 100%);\n                mask-image: linear-gradient(to right, #000 calc(100% - 22px), transparent 100%);\n      }\n\n      .p26-filter-row::-webkit-scrollbar {\n        height: 4px;\n      }\n\n      .p26-filter-row::-webkit-scrollbar-thumb {\n        background: rgba(240, 77, 76, .45);\n        border-radius: 999px;\n      }\n\n      .p26-filter {\n        flex: 0 0 auto;\n        width: auto !important;\n        min-height: 34px;\n        padding: 8px 13px !important;\n        font-size: 12px;\n        white-space: nowrap !important;\n        scroll-snap-align: start;\n      }\n\n      .p26-section-head {\n        display: block;\n      }\n\n      .p26-section-head p {\n        margin-top: 8px;\n      }\n\n      .p26-card {\n        min-height: 0;\n        padding: 16px;\n      }\n\n      .p26-card h3 {\n        min-height: auto;\n        font-size: 24px;\n      }\n\n      .p26-card-footer {\n        align-items: flex-start;\n        flex-direction: column;\n      }\n    }\n  <\/style>\n\n  <header class=\"p26-hero\" aria-label=\"Saariston Puoti - Summer 2026 menu\">\n    <div class=\"p26-hero-inner\">\n      <span class=\"p26-eyebrow\">Summer 2026<\/span>\n      <h1>Menu<\/h1>\n    <\/div>\n  <\/header>\n\n  <div class=\"p26-shell\">\n    <section class=\"p26-intro\" aria-label=\"Presentation of the menu\">\n      <div class=\"p26-panel\">\n        <span class=\"p26-tag\">Summer 2026 menu<\/span>\n        <h2>Tastes like summer!<\/h2>\n        <p>Artisan pizzas baked in a wood-fired oven, fresh salads, desserts and seasonal favourites \u2014 all brought together on the final menu for the 2026 summer season \ud83c\udf55\ud83d\udd25<\/p>\n        <details class=\"p26-legend-details\">\n          <summary>Special dietary indications (G, L, VL, M, V, Vegetarian, \ud83c\udf36)<\/summary>\n          <div class=\"p26-legend\" aria-label=\"Special dietary allowances\">\n            <div class=\"p26-legend-item\"><strong>G<\/strong><span>Gluten-free or gluten-free option available<\/span><\/div>\n            <div class=\"p26-legend-item\"><strong>L<\/strong><span>Lactose-free<\/span><\/div>\n            <div class=\"p26-legend-item\"><strong>VL<\/strong><span>Low lactose<\/span><\/div>\n            <div class=\"p26-legend-item\"><strong>M<\/strong><span>Non-milk<\/span><\/div>\n            <div class=\"p26-legend-item\"><strong>V<\/strong><span>Vegan or vegan option available<\/span><\/div>\n            <div class=\"p26-legend-item\"><strong>Kasvis<\/strong><span>Vegetarian diet: no meat or fish (allows dairy products and eggs)<\/span><\/div>\n            <div class=\"p26-legend-item\"><strong>\ud83c\udf36<\/strong><span>Spicy<\/span><\/div>\n          <\/div>\n        <\/details>\n      <\/div>\n    <\/section><section class=\"p26-season-note\" aria-label=\"Summer Season Finale Menu\" style=\"margin:18px 0 24px;padding:18px 20px;border:2px solid currentColor;border-radius:16px;text-align:center;\"><strong style=\"display:block;margin-bottom:7px;font-size:18px;text-transform:uppercase;letter-spacing:.04em;\">Summer Season Finale Menu<\/strong><span>The most popular pizzas from the 2026 summer season will be available for the rest of the season. Some dishes are available whilst stocks last. The range is being optimised to reduce waste.<\/span><\/section>\n\n    <section id=\"p26-filters\" class=\"p26-controls\" aria-label=\"Menu filters\">\n      <div class=\"p26-controls-top\">\n        <div class=\"p26-result-count\" data-p26-count=\"\">All doses<\/div>\n      <\/div>\n\n      <div class=\"p26-filter-block\">\n        <span class=\"p26-filter-label\">Categories<\/span>\n        <div class=\"p26-filter-row\" role=\"group\" aria-label=\"Categories\">\n          <button class=\"p26-filter is-active\" type=\"button\" data-p26-category=\"all\" aria-pressed=\"true\">All from<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-category=\"new\" aria-pressed=\"false\">New arrivals<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-category=\"pizza\" aria-pressed=\"false\">Pizza<\/button>\n          \n          <button class=\"p26-filter\" type=\"button\" data-p26-category=\"salad\" aria-pressed=\"false\">Salads<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-category=\"starter\" aria-pressed=\"false\">Breadcrumbs<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-category=\"kids\" aria-pressed=\"false\">Children's menu<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-category=\"snack\" aria-pressed=\"false\">Snacks<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-category=\"dessert\" aria-pressed=\"false\">Desserts<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-category=\"topping\" aria-pressed=\"false\">More samples<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"p26-filter-block\">\n        <span class=\"p26-filter-label\">Special diets<\/span>\n        <div class=\"p26-filter-row\" role=\"group\" aria-label=\"Special diets\">\n          <button class=\"p26-filter is-active\" type=\"button\" data-p26-diet=\"all\" aria-pressed=\"true\">All diets<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-diet=\"G\" aria-pressed=\"false\">Gluten-free<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-diet=\"L\" aria-pressed=\"false\">Lactose-free<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-diet=\"VL\" aria-pressed=\"false\">Low lactose<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-diet=\"M\" aria-pressed=\"false\">Non-milk<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-diet=\"V\" aria-pressed=\"false\">Vegan<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-diet=\"KASVIS\" aria-pressed=\"false\">Kasvis<\/button>\n          <button class=\"p26-filter\" type=\"button\" data-p26-diet=\"SPICY\" aria-pressed=\"false\">Spicy<\/button>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section id=\"p26-new\" class=\"p26-section\" data-p26-section=\"\" data-p26-new-section=\"\">\n      <div class=\"p26-section-head\">\n        <div>\n          <span class=\"p26-tag\">New for 2026<\/span>\n          <h2>New arrivals<\/h2>\n        <\/div>\n        <p>New for summer 2026!<\/p>\n      <\/div>\n      <div class=\"p26-grid\">\n        \n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"VL G KASVIS\" data-search=\"marjoriitta margherita tomaatti mozzarella basilika oliivi\u00f6ljy kasvis\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">A classic<\/span><\/div>\n          <h3>#1 Marjoriitta<\/h3>\n          <p class=\"p26-desc\">Tomato sauce, mozzarella fior di latte, fresh basil and olive oil.<\/p>\n          <p class=\"p26-note\">Tune in Marjo <a class=\"p26-inline-link\" href=\"#p26-toppings\" data-p26-jump-cat=\"topping\">Add to cart<\/a>.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">VL<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">12,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"VL G\" data-search=\"pepperoni 2.0 mozzarella pecorino\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">A classic<\/span><\/div>\n          <h3>#2 Pizza Pepperoni 2.0<\/h3>\n          <p class=\"p26-desc\">Tomato sauce, fior di latte mozzarella and pepperoni sausage. After baking, pecorino romano grated.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">VL<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">15,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"VL G\" data-search=\"salami napolin salami kirsikkatomaatti oliivi parmesaani\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">A classic<\/span><\/div>\n          <h3>#3 Pizza Salami 2.0<\/h3>\n          <p class=\"p26-desc\">Tomato sauce, fior di latte mozzarella, Napoli salami, cherry tomato, olive and parmesan cheese sauce.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">VL<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">16,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"VL SPICY G\" data-search=\"kolme juustoa rapsakka pekoni bianco smetana parmesaani vuohenjuusto chili\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Bianco<\/span><\/div>\n          <h3>#4 Three cheeses &amp; crispy bacon<\/h3>\n          <p class=\"p26-desc\">Smetana, parmesan cheese, goat cheese, pizza cheese, bacon and fresh chilli.<\/p>\n          <p class=\"p26-note\">Additional recommendation: spianata salami +2,50 \u20ac.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">VL<\/span><span class=\"p26-diet-chip\">Chilli<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">17,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"L G\" data-search=\"kylm\u00e4savulohi smetana punasipuli kapris tilli saaristolaisleip\u00e4\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Bianco<\/span><\/div>\n          <h3>#6 Cold-smoked salmon pizza<\/h3>\n          <p class=\"p26-desc\">Smetana, red onion and pizza cheese. After the oven, cold smoked salmon, capers, dill and island bread crumbs.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">L<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">16,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"VL G\" data-search=\"prosciutto mozzarella ilmakuivattu kinkku parmesaani rucola\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">A classic<\/span><\/div>\n          <h3>#7 Pizza Prosciutto<\/h3>\n          <p class=\"p26-desc\">Tomato sauce and mozzarella fior di latte. After baking, prosciutto, parmesan shavings and arugula.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">VL<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">16,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        \n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"VL SPICY G\" data-search=\"diavola tulinen mausteinen spianata nduja chili mozzarella\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Fiery<\/span><\/div>\n          <h3>#16 Pizza Diavola<\/h3>\n          <p class=\"p26-desc\">Tomato sauce, spianata salami, nduja salami, mozzarella fior di latte and fresh chilli.<\/p>\n          <p class=\"p26-note\">Spicy. The salamis contain pepperon peppers.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">VL<\/span><span class=\"p26-diet-chip\">Chilli<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">16,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card is-limited\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"VL G KASVIS\" data-search=\"next level marjoriitta mozzarella bufala rucola parmesaani basilika kasvis\" data-p26-limited=\"true\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline p26-limited-label\" style=\"display:inline-flex;align-items:center;width:max-content;margin:0 8px 8px 0;padding:5px 9px;border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;\">Limited availability<\/span><span class=\"p26-tag p26-tag-outline\">Next level<\/span><\/div>\n          <h3>#17 Next Level Marjoriitta<\/h3>\n          <p class=\"p26-desc\">Tomato sauce, mozzarella, parmesan cheese, olive oil and basil. After baking, arugula and mozzarella di bufala campana.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">VL<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">17,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"L SPICY G\" data-search=\"jaska kaljat kana pekoni punasipuli jalapeno olutsuositus\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Shop<\/span><\/div>\n          <h3>#19 Jaska &amp; Beers<\/h3>\n          <p class=\"p26-desc\">Tomato sauce, pizza cheese, domestic chicken, bacon, red onion and jalapeno.<\/p>\n          <p class=\"p26-note\">Beer recommendations are being built by @jaskankaljat.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">L<\/span><span class=\"p26-diet-chip\">Chilli<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">15,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card is-limited\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"VL G\" data-search=\"next level prosciutto kirsikkatomaatti bufala balsamico rucola\" data-p26-limited=\"true\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline p26-limited-label\" style=\"display:inline-flex;align-items:center;width:max-content;margin:0 8px 8px 0;padding:5px 9px;border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;\">Limited availability<\/span><span class=\"p26-tag p26-tag-outline\">Next level<\/span><\/div>\n          <h3>#24 Next Level Prosciutto<\/h3>\n          <p class=\"p26-desc\">Tomato sauce, mozzarella and herb marinated cherry tomatoes. After baking, prosciutto, parmesan, arugula, bufala and balsamic syrup.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">VL<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">19,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"VL G\" data-search=\"alla cigole kana vuohenjuusto rucola paholaisenhillo\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Shop<\/span><\/div>\n          <h3>#31 Alla Cigole<\/h3>\n          <p class=\"p26-desc\">Domestic chicken, goat cheese and pizza cheese. After the oven, arugula and devil's jam.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">VL<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">15,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        \n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"pizza\" data-diets=\"V G\" data-search=\"kihaus vegaaninen kaura creme fraiche cr\u00e8me fra\u00eeche vegaaninen parmesaani m\u00f6 chavre punajuuri hummus karpalo siemenet basilika\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag\">Vegan<\/span><\/div>\n          <h3>#44 Pizza Kihaus<\/h3>\n          <p class=\"p26-desc\">Oat cr\u00e8me fra\u00eeche, vegan Parmesan, M\u00f6 Chavre and beetroot. After baking, beetroot hummus, dried cranberries, seeds and basil.<\/p>\n          \n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">V opt.<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">18,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n\n\n        \n      <\/div>\n    <\/section>\n\n    \n\n    <section class=\"p26-section\" data-p26-section=\"\">\n      <div class=\"p26-section-head\">\n        <div>\n          <span class=\"p26-tag\">Salads<\/span>\n          <h2>Salads<\/h2>\n        <\/div>\n        <p>Summer salads. Protein supplements and gluten-free options will be specified at the checkout.<\/p>\n      <\/div>\n      <div class=\"p26-grid\">\n\n        \n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"salad\" data-diets=\"G VL KASVIS\" data-search=\"caprese salaatti bufala kirsikkatomaatti rucola balsamico prosciutto kasvis\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Salad<\/span><\/div>\n          <h3>#2 Caprese salad<\/h3>\n          <p class=\"p26-desc\">Bufala di Campana mozzarella, herb-marinated cherry tomatoes, rocket and balsamic syrup.<\/p>\n          <p class=\"p26-note\">Recommendation: prosciutto +3,00 \u20ac.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">VL<\/span><\/div><strong class=\"p26-price\">13,90 \u20ac<\/strong><\/div>\n        <\/article>\n      <\/div>\n    <\/section>\n\n    <section class=\"p26-section\" data-p26-section=\"\">\n      <div class=\"p26-section-head\">\n        <div>\n          <span class=\"p26-tag\">Breadcrumbs<\/span>\n          <h2>Breadcrumbs<\/h2>\n        <\/div>\n        <p>Dipping options: aura cheese, curried mango, chilli, paprika, cucumber, vegan garlic mayonnaise, devil's jam and ketchup.<\/p>\n      <\/div>\n      <div class=\"p26-grid\">\n        \n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"starter\" data-diets=\"G VL KASVIS\" data-search=\"mozzarella di bufala campana kirsikkatomaatti balsamico prosciutto kasvis\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Primary food<\/span><\/div>\n          <h3>#2 Mozzarella di Bufala Campana<\/h3>\n          <p class=\"p26-desc\">Bufala di Campana mozzarella, herb-marinated cherry tomatoes, balsamic syrup.<\/p>\n          <p class=\"p26-note\">Recommendation: prosciutto +3,00 \u20ac.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">VL<\/span><\/div><strong class=\"p26-price\">7,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"starter snack\" data-diets=\"KASVIS\" data-search=\"mozzarella tikut dippi kasvis\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Snack<\/span><\/div>\n          <h3>Mozzarella sticks<\/h3>\n          <p class=\"p26-desc\">6 pieces and a dip.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><\/div><strong class=\"p26-price\">7,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"starter snack\" data-diets=\"SPICY KASVIS\" data-search=\"jalapeno poppers dippi mausteinen kasvis\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Snack<\/span><\/div>\n          <h3>Jalapeno poppers<\/h3>\n          <p class=\"p26-desc\">4 pieces and a dip.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">Chilli<\/span><\/div><strong class=\"p26-price\">7,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"starter snack\" data-diets=\"G M SPICY\" data-search=\"hot wings kana dippi\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Snack<\/span><\/div>\n          <h3>Hot Wings 6 pieces<\/h3>\n          <p class=\"p26-desc\">6 pieces and a dip. Also available in 12 pieces and 18 pieces on the snack list.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><span class=\"p26-diet-chip\">Chilli<\/span><\/div><strong class=\"p26-price\">8,90 \u20ac<\/strong><\/div>\n        <\/article>\n<article class=\"p26-card\" data-p26-card=\"\" data-category=\"starter snack\" data-diets=\"V G\" data-search=\"bataattiranskalaiset gluteeniton vegaaninen dippi\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Snack<\/span><\/div>\n          <h3>Sweet potato fries<\/h3>\n          <p class=\"p26-desc\">Sweet potato pancakes and dip.<\/p>\n          <p class=\"p26-note\">Also available gluten-free, please mention when ordering.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">5,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"starter\" data-diets=\"V G\" data-search=\"kouruperunat gluteeniton vegaaninen dippi\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Snack<\/span><\/div>\n          <h3>Gully funnels<\/h3>\n          <p class=\"p26-desc\">Dumpling and dip.<\/p>\n          <p class=\"p26-note\">Also available gluten-free, please mention when ordering.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">4,90 \u20ac<\/strong><\/div>\n        <\/article>\n      <\/div>\n    <\/section>\n\n    <section class=\"p26-section\" data-p26-section=\"\">\n      <div class=\"p26-section-head\">\n        <div>\n          <span class=\"p26-tag\">Children's menu<\/span>\n          <h2>Doses for children<\/h2>\n        <\/div>\n        <p>The pizzas on the children\u2019s menu are the same size as the adult pizzas; it\u2019s just that the toppings offer more familiar flavours. We also offer smaller portions for those with a lighter appetite.<\/p>\n      <\/div>\n      <div class=\"p26-grid\">\n        <article class=\"p26-card is-new\" data-p26-card=\"\" data-p26-category-copy=\"true\" data-category=\"kids\" data-new=\"true\" data-diets=\"G M\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag\">New in 2026<\/span><span class=\"p26-tag p26-tag-outline\">Children's menu<\/span><\/div>\n          <h3>Children's chicken basket<\/h3>\n          <p class=\"p26-desc\">Homemade breaded chicken, casseroles and dip.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/div><strong class=\"p26-price\">9,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"kids\" data-diets=\"VL KASVIS\" data-search=\"lasten marjoriitta tomaatti mozzarella basilika kasvis\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Children's pizza<\/span><\/div>\n          <h3>#1 Marjoriitta<\/h3>\n          <p class=\"p26-desc\">Tomato sauce, mozzarella, olive oil and basil.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">VL<\/span><\/div><strong class=\"p26-price\">12,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"kids\" data-diets=\"L\" data-search=\"lasten pepperoni tomaatti pizzajuusto\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Children's pizza<\/span><\/div>\n          <h3>#2 Pizza Pepperoni<\/h3>\n          <p class=\"p26-desc\">Tomato sauce, pepperoni sausage and pizza cheese.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">L<\/span><\/div><strong class=\"p26-price\">12,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"kids\" data-diets=\"L\" data-search=\"lasten tropicana kinkku ananas\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Children's pizza<\/span><\/div>\n          <h3>#25 Tropicana<\/h3>\n          <p class=\"p26-desc\">Tomato sauce, ham and pineapple.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">L<\/span><\/div><strong class=\"p26-price\">12,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        \n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"kids\" data-diets=\"M V G\" data-search=\"kouruperunat gluteeniton vegaaninen lasten annos\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Children's dose<\/span><\/div>\n          <h3>Handful of potatoes + dip<\/h3>\n          <p class=\"p26-desc\">Also available gluten-free, please mention when ordering.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">M<\/span><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">4,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"kids\" data-diets=\"G\" data-search=\"lasten makkarakori gluteeniton\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Children's dose<\/span><\/div>\n          <h3>Children's sausage basket<\/h3>\n          <p class=\"p26-desc\">Also available gluten-free, please mention when ordering.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G opt.<\/span><\/div><strong class=\"p26-price\">6,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card is-limited\" data-p26-card=\"\" data-category=\"kids\" data-diets=\"G M V\" data-search=\"kurkku porkkanatikut dippi vegaaninen gluteeniton maidoton\" data-p26-limited=\"true\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline p26-limited-label\" style=\"display:inline-flex;align-items:center;width:max-content;margin:0 8px 8px 0;padding:5px 9px;border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;\">Limited availability<\/span><span class=\"p26-tag p26-tag-outline\">Children's dose<\/span><\/div>\n          <h3>Cucumber and carrot sticks<\/h3>\n          <p class=\"p26-desc\">Vegetable sticks and dip.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><span class=\"p26-diet-chip\">V<\/span><\/div><strong class=\"p26-price\">4,90 \u20ac<\/strong><\/div>\n        <\/article>\n      <\/div>\n    <\/section>\n\n    <section class=\"p26-section\" data-p26-section=\"\">\n      <div class=\"p26-section-head\">\n        <div>\n          <span class=\"p26-tag\">Snacks &amp; finger food<\/span>\n          <h2>Snacks<\/h2>\n        <\/div>\n        <p>To accompany a drink, to share at the table or as a main course for a lighter appetite.<\/p>\n      <\/div>\n      <div class=\"p26-grid\">\n        <article class=\"p26-card is-limited\" data-p26-card=\"\" data-category=\"snack\" data-diets=\"\" data-search=\"koivulan farmillan makkarakori naudan t\u00e4ysliha makkara liperi hapankaali\" data-p26-limited=\"true\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline p26-limited-label\" style=\"display:inline-flex;align-items:center;width:max-content;margin:0 8px 8px 0;padding:5px 9px;border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;\">Limited availability<\/span><span class=\"p26-tag p26-tag-outline\">Local<\/span><\/div>\n          <h3>Koivula Farmilla sausage basket<\/h3>\n          <p class=\"p26-desc\">Beef sausage from a farm in Lippe, potatoes and sauerkraut.<\/p>\n          <p class=\"p26-note\">Double sausage +4,00 \u20ac.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><\/div><strong class=\"p26-price\">12,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"snack\" data-diets=\"\" data-search=\"snack combo bataatti kouruperunat kolme tuotetta dippi jaettava\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Distributed by<\/span><\/div>\n          <h3>Snack Combo<\/h3>\n          <p class=\"p26-desc\">Sweet potato or potato casserole, three snacks of your choice and two dips.<\/p>\n          <p class=\"p26-note\">Serve for two as an appetizer or as a main course for one.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><\/div><strong class=\"p26-price\">16,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"snack\" data-diets=\"V\" data-search=\"kouruperunat vegaaninen dippi\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Snack<\/span><\/div>\n          <h3>Gully funnels<\/h3>\n          <p class=\"p26-desc\">Dumpling and dip.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">V<\/span><\/div><strong class=\"p26-price\">4,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"snack\" data-diets=\"SPICY\" data-search=\"hot wings 12 dippi\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Snack<\/span><\/div>\n          <h3>Hot Wings 12 pieces<\/h3>\n          <p class=\"p26-desc\">12 pieces and a dip.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">Chilli<\/span><\/div><strong class=\"p26-price\">13,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"snack\" data-diets=\"SPICY\" data-search=\"hot wings 18 dippi\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Snack<\/span><\/div>\n          <h3>Hot Wings 18 pieces<\/h3>\n          <p class=\"p26-desc\">18 pieces and a dip.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">Chilli<\/span><\/div><strong class=\"p26-price\">17,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"snack\" data-diets=\"G L M V\" data-search=\"lis\u00e4dipit aurajuusto currymajoneesi chili paprika kurkku valkosipulimajoneesi vegaaninen aioli paholaisenhillo ketsuppi\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Dipit<\/span><\/div>\n          <h3>Further information<\/h3>\n          <p class=\"p26-desc\">Aura cheese, curry mayonnaise, chilli mayonnaise, paprika mayonnaise, cucumber mayonnaise, vegan garlic mayonnaise, devil's jam and ketchup.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">L<\/span><span class=\"p26-diet-chip\">M<\/span><span class=\"p26-diet-chip\">V<\/span><\/div><strong class=\"p26-price\">2,00 \u20ac \/ piece<\/strong><\/div>\n        <\/article>\n      <\/div>\n    <\/section>\n\n    <section class=\"p26-section\" data-p26-section=\"\">\n      <div class=\"p26-section-head\">\n        <div>\n          <span class=\"p26-tag\">Dessert menu<\/span>\n          <h2>Desserts<\/h2>\n        <\/div>\n        <p>Puodi's classics, ice creams and sweet endings to summer.<\/p>\n      <\/div>\n      <div class=\"p26-grid\">\n        <article class=\"p26-card is-new\" data-p26-card=\"\" data-p26-category-copy=\"true\" data-category=\"dessert\" data-new=\"true\" data-diets=\"G L V\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag\">New in 2026<\/span><span class=\"p26-tag p26-tag-outline\">Dessert<\/span><\/div>\n          <h3>#6 Pistachio ice cream<\/h3>\n          <p class=\"p26-desc\">Salty-sweet pistachio ice cream and roasted pistachio nuts. Also available vegan.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">L<\/span><span class=\"p26-diet-chip\">V opt.<\/span><\/div><strong class=\"p26-price\">5,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"dessert\" data-diets=\"G L KASVIS\" data-search=\"puodin tiramisu savoiardi espresso kerma mascarpone kaakao kasvis\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">A classic<\/span><\/div>\n          <h3>#1 Puodin Tiramisu<\/h3>\n          <p class=\"p26-desc\">Savoiardi biscuits, espresso, cream, mascarpone cheese and cocoa powder.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">L<\/span><\/div><strong class=\"p26-price\">8,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"dessert\" data-diets=\"G L KASVIS\" data-search=\"panna cotta vanilja kermavanukas marja coulis kasvis\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">A classic<\/span><\/div>\n          <h3>#2 Puodin Panna Cotta<\/h3>\n          <p class=\"p26-desc\">Vanilla custard pudding with seasonal berry coulis sauce.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">L<\/span><\/div><strong class=\"p26-price\">6,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"dessert\" data-diets=\"G L KASVIS\" data-search=\"yogurt congelato limone sitruuna jogurtti vaniljalik\u00f6\u00f6ri k18 alkoholi kasvis\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">K-18<\/span><\/div>\n          <h3>#3 Yoghurt Congelato al Limone<\/h3>\n          <p class=\"p26-desc\">Yoghurt ice cream: fresh lemon, creamy yoghurt and Italian vanilla liqueur.<\/p>\n          <p class=\"p26-note\">Alcohol content of the dose 0.50 %.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">L<\/span><\/div><strong class=\"p26-price\">5,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"dessert\" data-diets=\"G KASVIS\" data-search=\"affogato vaniljaj\u00e4\u00e4tel\u00f6 espresso kasvis\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">A classic<\/span><\/div>\n          <h3>#4 Affogato<\/h3>\n          <p class=\"p26-desc\">Vanilla ice cream and espresso.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><\/div><strong class=\"p26-price\">5,90 \u20ac<\/strong><\/div>\n        <\/article>\n\n        <article class=\"p26-card\" data-p26-card=\"\" data-category=\"dessert\" data-diets=\"G KASVIS\" data-search=\"per i bambini j\u00e4\u00e4tel\u00f6limu fanta cokis sprite vaniljaj\u00e4\u00e4tel\u00f6 kasvis\">\n          <div class=\"p26-card-top\"><span class=\"p26-tag p26-tag-outline\">Children<\/span><\/div>\n          <h3>#5 Per i Bambini: ice cream lemonade<\/h3>\n          <p class=\"p26-desc\">Vanilla ice cream and your choice of Fanta, Coca-Cola or Sprite.<\/p>\n          <div class=\"p26-card-footer\"><div class=\"p26-diets\"><span class=\"p26-diet-chip\">G<\/span><\/div><strong class=\"p26-price\">4,90 \u20ac<\/strong><\/div>\n        <\/article>\n      <\/div>\n    <\/section>\n\n    <section id=\"p26-toppings\" class=\"p26-section\" data-p26-section=\"\" hidden=\"\">\n      <div class=\"p26-section-head\">\n        <div>\n          <span class=\"p26-tag\">Pizza<\/span>\n          <h2>More samples<\/h2>\n        <\/div>\n        <p>Complete your pizza with the toppings of your choice - price per topping. The labels indicate the special dietary requirements for the topping.<\/p>\n      <\/div>\n\n      <div class=\"p26-topping-group\" data-p26-topping-group=\"\">\n        <h3 class=\"p26-topping-group-title\">Meats &amp; proteins<\/h3>\n        <div class=\"p26-topping-grid\">\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"G M\"><span class=\"p26-topping-name\">Chicken (domestic)<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"G M\"><span class=\"p26-topping-name\">Ham<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"G M\"><span class=\"p26-topping-name\">Cold-smoked salmon<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">3,00 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"G M\"><span class=\"p26-topping-name\">Napoli salami<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"G M\"><span class=\"p26-topping-name\">Nduja-salami<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"G M\"><span class=\"p26-topping-name\">Bacon<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"G M\"><span class=\"p26-topping-name\">Pepperoni sausage<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"G M\"><span class=\"p26-topping-name\">Prosciutto (air-dried ham)<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">3,00 \u20ac<\/strong><\/span><\/article>\n          \n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"G M\"><span class=\"p26-topping-name\">Spianata salami<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n        <\/div>\n      <\/div>\n\n      <div class=\"p26-topping-group\" data-p26-topping-group=\"\">\n        <h3 class=\"p26-topping-group-title\">Vegan proteins<\/h3>\n        <div class=\"p26-topping-grid\">\n          \n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V M\"><span class=\"p26-topping-name\">Tinnikala (wheat and soya protein)<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">3,00 \u20ac<\/strong><\/span><\/article>\n        <\/div>\n      <\/div>\n\n      <div class=\"p26-topping-group\" data-p26-topping-group=\"\">\n        <h3 class=\"p26-topping-group-title\">Vegetables<\/h3>\n        <div class=\"p26-topping-grid\">\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V G M\"><span class=\"p26-topping-name\">Pineapple<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V G M\"><span class=\"p26-topping-name\">Jalape\u00f1o<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V G M\"><span class=\"p26-topping-name\">Capris<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V G M\"><span class=\"p26-topping-name\">Olives<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V G M\"><span class=\"p26-topping-name\">Beetroot<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V G M\"><span class=\"p26-topping-name\">Red onion<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V G M\"><span class=\"p26-topping-name\">Rucola<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V G M\"><span class=\"p26-topping-name\">Fresh chilli<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V G M\"><span class=\"p26-topping-name\">Herb marinated cherry tomatoes<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G<\/span><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n        <\/div>\n      <\/div>\n\n      <div class=\"p26-topping-group\" data-p26-topping-group=\"\">\n        <h3 class=\"p26-topping-group-title\">Cheeses<\/h3>\n        <div class=\"p26-topping-grid\">\n          \n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"VL\"><span class=\"p26-topping-name\">Mozzarella (fior di latte)<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">VL<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping is-limited\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"VL\" data-p26-limited=\"true\"><span class=\"p26-tag p26-tag-outline p26-limited-label\" style=\"display:inline-flex;align-items:center;width:max-content;margin:0 8px 8px 0;padding:5px 9px;border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;\">Limited availability<\/span><span class=\"p26-topping-name\">Mozzarella di bufala campana<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">VL<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"L\"><span class=\"p26-topping-name\">Parmesan cheese sauce<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">L<\/span><\/span><strong class=\"p26-topping-price\">2,00 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"L\"><span class=\"p26-topping-name\">Parmigiano Reggiano cheese (not past.)<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">L<\/span><\/span><strong class=\"p26-topping-price\">2,00 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"L\"><span class=\"p26-topping-name\">Pecorino Romano<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">L<\/span><\/span><strong class=\"p26-topping-price\">2,00 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"VL\"><span class=\"p26-topping-name\">Goat's cheese<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">VL<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n        <\/div>\n      <\/div>\n\n      <div class=\"p26-topping-group\" data-p26-topping-group=\"\">\n        <h3 class=\"p26-topping-group-title\">Vegan cheeses<\/h3>\n        <div class=\"p26-topping-grid\">\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V M G\"><span class=\"p26-topping-name\">Vegan parmesan cheese<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">M<\/span><span class=\"p26-diet-chip\">G<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V M G\"><span class=\"p26-topping-name\">Vegan pizza cheese<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">M<\/span><span class=\"p26-diet-chip\">G<\/span><\/span><strong class=\"p26-topping-price\">2,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V M G\"><span class=\"p26-topping-name\">Vegan goat cheese \/ M\u00f6 Chavre<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">M<\/span><span class=\"p26-diet-chip\">G<\/span><\/span><strong class=\"p26-topping-price\">3,00 \u20ac<\/strong><\/span><\/article>\n        <\/div>\n      <\/div>\n\n      <div class=\"p26-topping-group\" data-p26-topping-group=\"\">\n        <h3 class=\"p26-topping-group-title\">Sauces &amp; others<\/h3>\n        <div class=\"p26-topping-grid\">\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V M G\"><span class=\"p26-topping-name\">Tomato sauce<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">M<\/span><span class=\"p26-diet-chip\">G<\/span><\/span><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V G\"><span class=\"p26-topping-name\">Balsamic syrup<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V M G\"><span class=\"p26-topping-name\">Kaura cr\u00e8me fra\u00eeche<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">M<\/span><span class=\"p26-diet-chip\">G<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V G\"><span class=\"p26-topping-name\">Devil's jam<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">G<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"V M G\"><span class=\"p26-topping-name\">Beetroot hummus<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">V<\/span><span class=\"p26-diet-chip\">M<\/span><span class=\"p26-diet-chip\">G<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          \n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"M\"><span class=\"p26-topping-name\">Island bread crouton<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">M<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n          <article class=\"p26-card p26-topping\" data-p26-card=\"\" data-category=\"topping\" data-diets=\"L G\"><span class=\"p26-topping-name\">Smetana<\/span><span class=\"p26-topping-tail\"><span class=\"p26-topping-chips\"><span class=\"p26-diet-chip\">L<\/span><span class=\"p26-diet-chip\">G<\/span><\/span><strong class=\"p26-topping-price\">1,50 \u20ac<\/strong><\/span><\/article>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section id=\"p26-gf-info\" class=\"p26-info\" aria-label=\"Gluten-free and lactose-free\">\n      <span class=\"p26-tag\">Important additional information for the kitchen<\/span>\n      <h2>Gluten-free and lactose-free<\/h2>\n      <div class=\"p26-info-grid\">\n        <div class=\"p26-info-box\">\n          <strong>Gluten-free pizza bases<\/strong>\n          <p>Our own gluten-free pizza base: +\u20ac5. Naturally gluten-free pizza base: +\u20ac3.<\/p>\n          <div class=\"p26-gf-bases\">\n            <details class=\"p26-gf-base\">\n              <summary><span>Puodi\u2019s own gluten-free pizza base<\/span><span class=\"p26-gf-base-meta\"><strong>+5 \u20ac<\/strong><span class=\"p26-gf-base-chevron\" aria-hidden=\"true\"><\/span><\/span><\/summary>\n              <p>Contains: gluten-free wheat starch, dextrose, maize starch, buckwheat flour, rice starch, vegetable fibre (psyllium), thickening agent (guar gum), flavouring.<\/p>\n              <p class=\"p26-gf-note\">May contain small amounts of soya, sesame seeds and milk.<\/p>\n            <\/details>\n            <details class=\"p26-gf-base\">\n              <summary><span>Naturally gluten-free pizza base<\/span><span class=\"p26-gf-base-meta\"><strong>+3 \u20ac<\/strong><span class=\"p26-gf-base-chevron\" aria-hidden=\"true\"><\/span><\/span><\/summary>\n              <p>Contains: water, maize starch, potato starch, tapioca starch, rice flour, rapeseed oil, potato flakes, yeast, rice starter powder, thickener (E415), sugar, salt, psyllium, whole grain rice flour, potato fibre, raising agents (E450, E500), fructose, emulsifier (E471).<\/p>\n            <\/details>\n          <\/div>\n          <p class=\"p26-gf-prep\"><strong>Manufacture and cross-contamination:<\/strong> Our gluten-free pizza bases are prepared in a separate kitchen area using dedicated equipment that does not handle products containing gluten. Please note that the pizzas are baked in the same ovens on a separate baking tray.<\/p>\n        <\/div>\n        <div class=\"p26-info-box\">\n          <strong>Lactose-free<\/strong>\n          <p>Most of the raw materials are lactose-free. Italian cheeses are generally low in lactose. Most pizzas can be made completely lactose-free by changing the cheese when the customer mentions this when ordering.<\/p>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <div class=\"p26-no-results\" data-p26-empty=\"\">\n      <span class=\"p26-tag\">No hits<\/span>\n      <h2>No doses found by filtration<\/h2>\n      <p>Try removing a specific dietary filter or selecting a broader category.<\/p>\n    <\/div>\n\n    <p class=\"p26-build\" style=\"margin:18px auto 0;text-align:center;font-size:11px;letter-spacing:.06em;color:var(--muted);opacity:.7;\">Menu \u00b7 updated 28 August 2026 \u00b7 v36 (End-of-summer menu)<\/p>\n\n  <\/div>\n\n  <script>\n    (function () {\n      var root = document.querySelector(\"[data-puoti26-menu]\");\n      if (!root) return;\n\n      var cards = Array.prototype.slice.call(root.querySelectorAll(\"[data-p26-card]\"));\n      var categoryButtons = Array.prototype.slice.call(root.querySelectorAll(\"[data-p26-category]\"));\n      var dietButtons = Array.prototype.slice.call(root.querySelectorAll(\"[data-p26-diet]\"));\n      var count = root.querySelector(\"[data-p26-count]\");\n      var empty = root.querySelector(\"[data-p26-empty]\");\n      var activeCategory = \"all\";\n      var activeDiet = \"all\";\n\n      function cardCategories(card) {\n        return String(card.dataset.category || \"\").split(\/\\s+\/).filter(Boolean);\n      }\n\n      function cardDiets(card) {\n        return String(card.dataset.diets || \"\").split(\/\\s+\/).filter(Boolean);\n      }\n\n      function isCategoryCopy(card) {\n        return card.dataset.p26CategoryCopy === \"true\";\n      }\n\n      function isTopNewCard(card) {\n        return card.dataset.new === \"true\" && !isCategoryCopy(card);\n      }\n\n      function isTopping(card) {\n        return cardCategories(card).indexOf(\"topping\") !== -1;\n      }\n\n      function parseP26Date(value) {\n        var m = \/^(\\d{4})-(\\d{2})-(\\d{2})$\/.exec(String(value || \"\"));\n        return m ? new Date(Number(m[1]), Number(m[2]) - 1, Number(m[3])) : null;\n      }\n\n      function isAvailable(card) {\n        var from = parseP26Date(card.dataset.p26AvailableFrom);\n        var until = parseP26Date(card.dataset.p26AvailableUntil);\n        if (!from && !until) return true;\n        var now = new Date();\n        var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n        if (from && today < from) return false;\n        if (until && today > until) return false;\n        return true;\n      }\n\n      function categoryMatches(card) {\n        if (isTopping(card)) return activeCategory === \"topping\";\n        if (activeCategory === \"topping\") return false;\n        if (activeCategory === \"all\") {\n          if (activeDiet !== \"all\" && isTopNewCard(card)) return false;\n          return activeDiet === \"all\" ? !isCategoryCopy(card) : true;\n        }\n        if (activeCategory === \"new\") return isTopNewCard(card);\n        if (isTopNewCard(card)) return false;\n        return cardCategories(card).indexOf(activeCategory) !== -1;\n      }\n\n      function dietMatches(card) {\n        if (activeDiet === \"all\") return true;\n        var diets = cardDiets(card);\n        if (activeDiet === \"M\") {\n          return diets.indexOf(\"M\") !== -1 || diets.indexOf(\"V\") !== -1;\n        }\n        if (activeDiet === \"VL\") {\n          return diets.indexOf(\"VL\") !== -1 || diets.indexOf(\"L\") !== -1;\n        }\n        if (activeDiet === \"KASVIS\") {\n          return diets.indexOf(\"KASVIS\") !== -1 || diets.indexOf(\"V\") !== -1;\n        }\n        return diets.indexOf(activeDiet) !== -1;\n      }\n\n      function update() {\n        var visible = 0;\n\n        cards.forEach(function (card) {\n          var show = isAvailable(card) && categoryMatches(card) && dietMatches(card);\n          card.hidden = !show;\n          if (show) visible += 1;\n        });\n\n        Array.prototype.slice.call(root.querySelectorAll(\"[data-p26-topping-group]\")).forEach(function (group) {\n          var groupVisible = Array.prototype.slice.call(group.querySelectorAll(\"[data-p26-card]\")).some(function (card) {\n            return !card.hidden;\n          });\n          group.hidden = !groupVisible;\n        });\n\n        Array.prototype.slice.call(root.querySelectorAll(\"[data-p26-section]\")).forEach(function (section) {\n          var isNewSection = section.hasAttribute(\"data-p26-new-section\");\n          var sectionVisible = Array.prototype.slice.call(section.querySelectorAll(\"[data-p26-card]\")).some(function (card) {\n            return !card.hidden;\n          });\n          if (isNewSection && activeCategory !== \"new\" && !(activeCategory === \"all\" && activeDiet === \"all\")) {\n            sectionVisible = false;\n          }\n          section.hidden = !sectionVisible;\n        });\n\n        if (count) {\n          count.textContent = visible === 1 ? \"1 annos\" : visible + \" annosta\";\n        }\n        if (empty) {\n          empty.classList.toggle(\"is-visible\", visible === 0);\n        }\n      }\n\n      categoryButtons.forEach(function (button) {\n        button.addEventListener(\"click\", function () {\n          activeCategory = button.dataset.p26Category || \"all\";\n          categoryButtons.forEach(function (other) {\n            var active = other === button;\n            other.classList.toggle(\"is-active\", active);\n            other.setAttribute(\"aria-pressed\", active ? \"true\" : \"false\");\n          });\n          update();\n        });\n      });\n\n      dietButtons.forEach(function (button) {\n        button.addEventListener(\"click\", function () {\n          activeDiet = button.dataset.p26Diet || \"all\";\n          dietButtons.forEach(function (other) {\n            var active = other === button;\n            other.classList.toggle(\"is-active\", active);\n            other.setAttribute(\"aria-pressed\", active ? \"true\" : \"false\");\n          });\n          update();\n        });\n      });\n\n      var jumpLinks = Array.prototype.slice.call(root.querySelectorAll(\"[data-p26-jump-cat]\"));\n      jumpLinks.forEach(function (link) {\n        link.addEventListener(\"click\", function (event) {\n          var cat = link.dataset.p26JumpCat || \"\";\n          var target = categoryButtons.filter(function (b) {\n            return (b.dataset.p26Category || \"\") === cat;\n          })[0];\n          if (target) target.click();\n          var href = link.getAttribute(\"href\") || \"\";\n          if (href.charAt(0) === \"#\") {\n            var dest = document.getElementById(href.slice(1));\n            if (dest) {\n              event.preventDefault();\n              window.requestAnimationFrame(function () {\n                dest.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n              });\n            }\n          }\n        });\n      });\n\n\n      function normalizeP26Hash(value) {\n        try {\n          value = decodeURIComponent(String(value || \"\"));\n        } catch (e) {\n          value = String(value || \"\");\n        }\n        return value.replace(\/^#\/, \"\").trim().toLowerCase();\n      }\n\n      var hashFilters = {\n        vegan: { type: \"diet\", value: \"V\" },\n        vegaaninen: { type: \"diet\", value: \"V\" },\n        gluteeniton: { type: \"diet\", value: \"G\" },\n        glutenfree: { type: \"diet\", value: \"G\" },\n        kasvis: { type: \"diet\", value: \"KASVIS\" },\n        vegetarian: { type: \"diet\", value: \"KASVIS\" },\n        maidoton: { type: \"diet\", value: \"M\" },\n        laktoositon: { type: \"diet\", value: \"L\" },\n        vahalaktoosinen: { type: \"diet\", value: \"VL\" },\n        \"vahalaktoosinen\": { type: \"diet\", value: \"VL\" },\n        mausteinen: { type: \"diet\", value: \"SPICY\" },\n        spicy: { type: \"diet\", value: \"SPICY\" },\n        pizza: { type: \"category\", value: \"pizza\" },\n        pizzat: { type: \"category\", value: \"pizza\" },\n        pasta: { type: \"category\", value: \"pasta\" },\n        pastat: { type: \"category\", value: \"pasta\" },\n        salaatti: { type: \"category\", value: \"salad\" },\n        salaatit: { type: \"category\", value: \"salad\" },\n        alkupalat: { type: \"category\", value: \"starter\" },\n        lapset: { type: \"category\", value: \"kids\" },\n        lapsille: { type: \"category\", value: \"kids\" },\n        \"lasten-menu\": { type: \"category\", value: \"kids\" },\n        snack: { type: \"category\", value: \"snack\" },\n        snackit: { type: \"category\", value: \"snack\" },\n        jalkiruoka: { type: \"category\", value: \"dessert\" },\n        \"jalkiruoat\": { type: \"category\", value: \"dessert\" },\n        lisataytteet: { type: \"category\", value: \"topping\" },\n        uutuudet: { type: \"category\", value: \"new\" },\n        uutta: { type: \"category\", value: \"new\" }\n      };\n\n      function clickP26Button(buttons, attr, value) {\n        var target = buttons.filter(function (button) {\n          return String(button.getAttribute(attr) || \"\") === value;\n        })[0];\n        if (!target) return false;\n        target.click();\n        return true;\n      }\n\n      function applyP26HashFilter(shouldScroll) {\n        var key = normalizeP26Hash(window.location.hash);\n        var match = hashFilters[key];\n        if (!match) return false;\n        var applied = false;\n        if (match.type === \"diet\") {\n          clickP26Button(categoryButtons, \"data-p26-category\", \"all\");\n          applied = clickP26Button(dietButtons, \"data-p26-diet\", match.value);\n        } else if (match.type === \"category\") {\n          clickP26Button(dietButtons, \"data-p26-diet\", \"all\");\n          applied = clickP26Button(categoryButtons, \"data-p26-category\", match.value);\n        }\n        if (applied && shouldScroll) {\n          var target = root.querySelector(\"#p26-filters\") || root;\n          window.requestAnimationFrame(function () {\n            target.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n          });\n        }\n        return applied;\n      }\n\n      update();\n      applyP26HashFilter(false);\n\n      window.addEventListener(\"hashchange\", function () {\n        applyP26HashFilter(true);\n      });\n\n    })();\n  <\/script>\n\n  <!-- ===== Oma tilaus \/ order notepad (localStorage, non-binding) ===== -->\n  <style id=\"p26cart-styles\">\n    #puoti26-menu-2026 .p26cart-ctl { margin-top: 12px; }\n    #puoti26-menu-2026 .p26cart-add {\n      width: 100%; border: 1.5px solid var(--red); background: var(--white);\n      color: var(--red); font-family: inherit; font-weight: 800; font-size: 14px;\n      letter-spacing: .02em; border-radius: 10px; padding: 10px 12px; cursor: pointer;\n      transition: background .15s, color .15s; -webkit-tap-highlight-color: transparent;\n    }\n    #puoti26-menu-2026 .p26cart-add:hover { background: var(--red); color: var(--white); }\n    #puoti26-menu-2026 .p26cart-add:active { transform: translateY(1px); }\n    #puoti26-menu-2026 .p26cart-step {\n      display: flex; align-items: center; justify-content: space-between; gap: 8px;\n      background: var(--red); border-radius: 10px; padding: 4px;\n    }\n    #puoti26-menu-2026 .p26cart-step button {\n      width: 36px; height: 36px; border: none; border-radius: 8px;\n      background: rgba(255,255,255,.2); color: var(--white); font-size: 20px;\n      font-weight: 800; line-height: 1; cursor: pointer;\n    }\n    #puoti26-menu-2026 .p26cart-step button:hover { background: rgba(255,255,255,.35); }\n    #puoti26-menu-2026 .p26cart-step .p26cart-qty {\n      color: var(--white); font-weight: 800; font-size: 17px;\n      font-family: \"League Spartan\", system-ui, sans-serif;\n    }\n    #puoti26-menu-2026 .p26-topping .p26cart-tctl { margin-left: 4px; }\n    #puoti26-menu-2026 .p26cart-plus {\n      width: 32px; height: 32px; border-radius: 8px; border: 1.5px solid var(--red);\n      background: var(--white); color: var(--red); font-size: 20px; font-weight: 800;\n      line-height: 1; cursor: pointer;\n    }\n    #puoti26-menu-2026 .p26cart-plus:hover { background: var(--red); color: #fff; }\n    #puoti26-menu-2026 .p26cart-tstep {\n      display: inline-flex; align-items: center; gap: 4px; background: var(--red);\n      border-radius: 8px; padding: 3px;\n    }\n    #puoti26-menu-2026 .p26cart-tstep button {\n      width: 26px; height: 26px; border: none; border-radius: 6px;\n      background: rgba(255,255,255,.22); color: #fff; font-size: 16px; font-weight: 800;\n      line-height: 1; cursor: pointer;\n    }\n    #puoti26-menu-2026 .p26cart-tstep span {\n      color: #fff; font-weight: 800; min-width: 16px; text-align: center; font-size: 14px;\n    }\n\n    \/* !important + id prefix: WP theme button styles must not blacken\/uppercase the FAB *\/\n    #puoti26-menu-2026 .p26cart-fab {\n      position: fixed; right: 18px; bottom: 18px; z-index: 9998;\n      display: inline-flex !important; align-items: center; gap: 9px; background: var(--red) !important;\n      color: var(--white) !important; border: none !important; border-radius: 999px !important; padding: 14px 20px !important;\n      font-family: \"League Spartan\", system-ui, sans-serif !important; font-weight: 800 !important;\n      font-size: 16px !important; letter-spacing: .02em !important; text-transform: none !important;\n      line-height: 1.2 !important; box-shadow: 0 10px 28px rgba(240,77,76,.45);\n      cursor: pointer; transition: transform .15s, box-shadow .15s;\n    }\n    #puoti26-menu-2026 .p26cart-fab:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(240,77,76,.55); }\n    #puoti26-menu-2026 .p26cart-fab[hidden] { display: none !important; }\n    .p26cart-fab .p26cart-badge {\n      background: var(--white); color: var(--red); border-radius: 999px; min-width: 22px;\n      height: 22px; padding: 0 6px; display: inline-flex; align-items: center;\n      justify-content: center; font-size: 13px; font-weight: 800;\n    }\n    .p26cart-backdrop {\n      position: fixed; inset: 0; z-index: 9998; background: rgba(12,12,12,.5);\n      opacity: 0; pointer-events: none; transition: opacity .25s;\n    }\n    .p26cart-backdrop.is-open { opacity: 1; pointer-events: auto; }\n    \/* Truendo cookie reopener (#truendo_fab) ships at z-index max-int and pokes through the\n       cart while ordering. Only the persistent FAB is lowered here \u2014 never the consent dialog. *\/\n    body.p26cart-open #truendo_fab { z-index: 9990 !important; }\n    .p26cart-drawer {\n      position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;\n      background: var(--cream-warm); border-radius: 20px 20px 0 0;\n      box-shadow: 0 -10px 40px rgba(12,12,12,.3); transform: translateY(110%);\n      transition: transform .28s cubic-bezier(.22,1,.36,1); max-height: 86vh;\n      display: flex; flex-direction: column; font-family: system-ui, sans-serif; color: var(--ink);\n    }\n    .p26cart-drawer.is-open { transform: translateY(0); }\n    @media (min-width: 720px) {\n      .p26cart-drawer { left: auto; right: 18px; bottom: 18px; width: 420px; border-radius: 20px; }\n    }\n    .p26cart-head { position: relative; padding: 18px 20px 12px; border-bottom: 1px solid var(--border); }\n    .p26cart-head h2 {\n      margin: 0; font-family: \"League Spartan\", system-ui, sans-serif; font-size: 19px;\n      font-weight: 800; color: var(--ink); padding-right: 38px;\n    }\n    .p26cart-head .p26cart-sub { margin: 4px 0 0; font-size: 13px; color: var(--red); font-weight: 700; }\n    #puoti26-menu-2026 .p26cart-close {\n      position: absolute !important; top: 16px; right: 16px; width: 32px; height: 32px;\n      display: flex !important; align-items: center; justify-content: center;\n      padding: 0 !important; margin: 0 !important; border: none !important;\n      border-radius: 999px !important; background: rgba(0,0,0,.06) !important; color: var(--ink) !important;\n      font-size: 24px !important; line-height: 1 !important; font-weight: 400 !important;\n      text-transform: none !important; cursor: pointer; -webkit-tap-highlight-color: transparent;\n    }\n    #puoti26-menu-2026 .p26cart-close:hover { background: rgba(0,0,0,.12) !important; }\n    .p26cart-body { overflow-y: auto; padding: 8px 20px 4px; flex: 1; }\n    .p26cart-empty { text-align: center; color: var(--muted); padding: 30px 8px; font-size: 15px; line-height: 1.6; }\n    .p26cart-item { display: flex; flex-direction: column; gap: 8px; padding: 12px 0; border-bottom: 1px solid var(--border); }\n    .p26cart-item-top { display: flex; align-items: center; gap: 12px; }\n    .p26cart-item-main { flex: 1; min-width: 0; }\n    .p26cart-item-name { font-weight: 700; font-size: 15px; color: var(--ink); }\n    .p26cart-mini { display: flex; align-items: center; gap: 6px; }\n    .p26cart-mini button {\n      width: 30px; height: 30px; border: 1.5px solid var(--red); background: var(--white);\n      color: var(--red); border-radius: 8px; font-size: 18px; font-weight: 800;\n      cursor: pointer; line-height: 1;\n    }\n    .p26cart-mini button:hover { background: var(--red); color: #fff; }\n    .p26cart-mini span { min-width: 20px; text-align: center; font-weight: 800; }\n    .p26cart-item-note textarea {\n      width: 100%; box-sizing: border-box; resize: none; overflow: hidden;\n      min-height: 36px; height: 36px; border: 1px solid var(--border); border-radius: 8px;\n      padding: 8px 10px; font-family: inherit; font-size: 13px; line-height: 1.4;\n      background: var(--white); color: var(--ink); display: block;\n    }\n    .p26cart-item-note textarea::placeholder { color: var(--muted); font-size: 12.5px; }\n    .p26cart-item-note textarea:focus { outline: none; border-color: var(--red); box-shadow: 0 0 0 2px rgba(240,77,76,.12); }\n    .p26cart-foot { border-top: 1px solid var(--border); padding: 14px 20px 18px; background: var(--cream-warm); }\n    .p26cart-disc { font-size: 12px; color: var(--muted); margin: 0 0 12px; line-height: 1.45; }\n    .p26cart-actions { display: flex; gap: 10px; }\n    \/* !important + id prefix: WP theme button styles must not blacken\/uppercase these *\/\n    #puoti26-menu-2026 .p26cart-actions button {\n      flex: 1; border-radius: 10px !important; padding: 12px !important; font-family: inherit !important;\n      font-weight: 800 !important; font-size: 14px !important; line-height: 1.2 !important;\n      letter-spacing: 0 !important; text-transform: none !important;\n      cursor: pointer; border: 1.5px solid var(--red) !important;\n    }\n    #puoti26-menu-2026 .p26cart-clear { background: var(--white) !important; color: var(--red) !important; }\n    #puoti26-menu-2026 .p26cart-done { background: var(--red) !important; color: var(--white) !important; }\n    .p26cart-tchips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }\n    #puoti26-menu-2026 .p26cart-tchip {\n      border: 1px dashed var(--red) !important; background: var(--white) !important; color: var(--red) !important;\n      border-radius: 999px !important; padding: 5px 11px !important; font-family: inherit !important;\n      font-weight: 700 !important; font-size: 12px !important; line-height: 1 !important;\n      letter-spacing: 0 !important; text-transform: none !important;\n      cursor: pointer; -webkit-tap-highlight-color: transparent;\n    }\n    #puoti26-menu-2026 .p26cart-tchip:hover { background: rgba(240,77,76,.08) !important; }\n    #puoti26-menu-2026 .p26cart-tchip.is-on { background: var(--red) !important; color: #fff !important; border-style: solid !important; }\n    #puoti26-menu-2026 .p26cart-suggest { padding: 9px 20px 11px; border-top: 1px solid var(--border); background: var(--cream-warm); }\n    #puoti26-menu-2026 .p26cart-suggest[hidden] { display: none; }\n    #puoti26-menu-2026 .p26cart-suggest-title {\n      margin: 0 0 6px; font-family: system-ui, sans-serif;\n      font-size: 11.5px; font-weight: 600; letter-spacing: .01em; color: var(--muted);\n      text-transform: none;\n    }\n    \/* single low-profile swipe row so it never walls off the cart review *\/\n    #puoti26-menu-2026 .p26cart-suggest-chips {\n      display: flex; flex-wrap: nowrap; gap: 6px; overflow-x: auto;\n      -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 1px;\n    }\n    #puoti26-menu-2026 .p26cart-suggest-chips::-webkit-scrollbar { display: none; }\n    \/* !important + id prefix: WP theme button styles must not blacken\/uppercase these *\/\n    #puoti26-menu-2026 .p26cart-dchip {\n      flex: 0 0 auto; white-space: nowrap;\n      border: 1px solid var(--red) !important; background: var(--white) !important; color: var(--red) !important;\n      border-radius: 999px !important; padding: 5px 11px !important; font-family: inherit !important;\n      font-weight: 600 !important; font-size: 11.5px !important; line-height: 1.15 !important;\n      letter-spacing: 0 !important; text-transform: none !important;\n      cursor: pointer; -webkit-tap-highlight-color: transparent;\n    }\n    #puoti26-menu-2026 .p26cart-dchip:hover { background: var(--red) !important; color: #fff !important; }\n    #puoti26-menu-2026 .p26cart-dchip:active { transform: translateY(1px); }\n    .p26up-back {\n      position: fixed; inset: 0; z-index: 10000; background: rgba(12,12,12,.5);\n      opacity: 0; pointer-events: none; transition: opacity .2s;\n      display: flex; align-items: center; justify-content: center; padding: 20px;\n    }\n    .p26up-back.is-open { opacity: 1; pointer-events: auto; }\n    .p26up {\n      background: var(--cream-warm); color: var(--ink); border-radius: 18px;\n      max-width: 360px; width: 100%; box-shadow: 0 20px 60px rgba(12,12,12,.35);\n      transform: translateY(12px) scale(.98); transition: transform .2s;\n      padding: 20px 20px 16px; font-family: system-ui, sans-serif;\n      max-height: 84vh; overflow-y: auto;\n    }\n    .p26up-back.is-open .p26up { transform: none; }\n    .p26up-conf { margin: 0 0 2px; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--red); }\n    .p26up-title { margin: 0 0 14px; font-family: \"League Spartan\", system-ui, sans-serif; font-size: 21px; font-weight: 800; line-height: 1.15; color: var(--ink); }\n    .p26up-sec { margin: 0 0 14px; }\n    .p26up-sec-t { margin: 0 0 8px; font-size: 13px; font-weight: 800; color: var(--ink); }\n    .p26up-opts { display: flex; flex-wrap: wrap; gap: 8px; }\n    #puoti26-menu-2026 .p26up-opt {\n      border: 1.5px solid var(--red) !important; background: var(--white) !important; color: var(--red) !important;\n      border-radius: 999px !important; padding: 9px 14px !important; font-family: inherit !important;\n      font-weight: 700 !important; font-size: 13px !important; line-height: 1 !important;\n      letter-spacing: 0 !important; text-transform: none !important;\n      cursor: pointer; -webkit-tap-highlight-color: transparent;\n    }\n    #puoti26-menu-2026 .p26up-opt:hover { background: var(--red) !important; color: #fff !important; }\n    #puoti26-menu-2026 .p26up-opt.is-on { background: var(--red) !important; color: #fff !important; }\n    #puoti26-menu-2026 .p26up-opt.is-on::before { content: \"\\2713  \"; }\n    .p26up-topts { display: flex; flex-direction: column; gap: 8px; }\n    #puoti26-menu-2026 .p26up-topt {\n      display: block; width: 100%; text-align: left !important; cursor: pointer;\n      border: 1.5px solid var(--border) !important; background: var(--white) !important; color: var(--ink) !important;\n      border-radius: 12px !important; padding: 11px 13px !important; font-family: inherit !important;\n      text-transform: none !important; letter-spacing: 0 !important;\n      -webkit-tap-highlight-color: transparent;\n    }\n    #puoti26-menu-2026 .p26up-topt:hover { border-color: var(--red) !important; }\n    #puoti26-menu-2026 .p26up-topt.is-on { border-color: var(--red) !important; background: #fff5f4 !important; }\n    .p26up-topt-l { display: block; font-weight: 800; font-size: 14px; color: var(--ink); }\n    .p26up-topt.is-on .p26up-topt-l { color: var(--red); }\n    .p26up-topt.is-on .p26up-topt-l::before { content: \"\\2713  \"; color: var(--red); }\n    .p26up-topt-d { display: block; margin-top: 2px; font-size: 12px; font-weight: 500; color: var(--muted); line-height: 1.3; }\n    #puoti26-menu-2026 .p26up-skip {\n      width: 100%; margin-top: 2px; border: none !important; background: transparent !important; color: var(--muted) !important;\n      font-family: inherit !important; font-weight: 700 !important; font-size: 13px !important; padding: 8px !important;\n      text-transform: none !important; letter-spacing: 0 !important;\n      cursor: pointer; text-decoration: underline; -webkit-tap-highlight-color: transparent;\n    }\n    @media print { .p26cart-fab, .p26cart-backdrop, .p26cart-drawer, .p26up-back, .p26cart-ctl, .p26cart-tctl { display: none !important; } }\n  <\/style>\n\n  <button class=\"p26cart-fab\" type=\"button\" data-p26cart-open=\"\" hidden=\"\" aria-label=\"View your order\">\n    My order <span class=\"p26cart-badge\" data-p26cart-badge=\"\">0<\/span>\n  <\/button>\n  <div class=\"p26cart-backdrop\" data-p26cart-backdrop=\"\"><\/div>\n  <aside class=\"p26cart-drawer\" data-p26cart-drawer=\"\" role=\"dialog\" aria-modal=\"true\" aria-label=\"My order\" aria-hidden=\"true\">\n    <div class=\"p26cart-head\">\n      <h2>My order<\/h2>\n      <p class=\"p26cart-sub\">Show this list at the till<\/p>\n      <button class=\"p26cart-close\" type=\"button\" data-p26cart-close=\"\" aria-label=\"Close\">\u00d7<\/button>\n    <\/div>\n    <div class=\"p26cart-body\">\n      <div data-p26cart-items=\"\"><\/div>\n    <\/div>\n    <div class=\"p26cart-suggest\" data-p26cart-suggest=\"\" hidden=\"\"><\/div>\n    <div class=\"p26cart-foot\">\n      <p class=\"p26cart-disc\">This is a shopping list, not a binding order. Orders and payment are handled at the till.<\/p>\n      <div class=\"p26cart-actions\">\n        <button class=\"p26cart-clear\" type=\"button\" data-p26cart-clear=\"\">Clear<\/button>\n        <button class=\"p26cart-done\" type=\"button\" data-p26cart-close=\"\">Done<\/button>\n      <\/div>\n    <\/div>\n  <\/aside>\n\n  <div class=\"p26up-back\" data-p26up-back=\"\">\n    <div class=\"p26up\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Recommendation\" data-p26up-card=\"\"><\/div>\n  <\/div>\n\n  <script>\n    (function () {\n      var root = document.getElementById(\"puoti26-menu-2026\") || document.querySelector(\"[data-puoti26-menu]\");\n      if (!root) return;\n      var STORE = \"p26cart-v2\";\n      var cards = Array.prototype.slice.call(root.querySelectorAll(\"[data-p26-card]\"));\n\n      function txt(el) { return el ? (el.textContent || \"\").replace(\/\\s+\/g, \" \").trim() : \"\"; }\n      function esc(s) { return String(s).replace(\/[&<>\"]\/g, function (c) { return { \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\", '\"': \"&quot;\" }[c]; }); }\n      function slug(s) { return s.toLowerCase().replace(\/[^a-z0-9\u00e4\u00f6\u00e5]+\/g, \"-\").replace(\/^-+|-+$\/g, \"\"); }\n      function cardTitle(card) { return txt(card.querySelector(\"h3\") || card.querySelector(\".p26-topping-name\")); }\n\n      function cleanName(n) { return String(n).replace(\/^#\\d+\\s*\/, \"\"); }\n\n      var catalog = {};\n      cards.forEach(function (card) {\n        var name = cardTitle(card);\n        if (!name) return;\n        var id = slug(name);\n        if (!catalog[id]) catalog[id] = { id: id, name: name, cat: card.getAttribute(\"data-category\") || \"\" };\n        card.setAttribute(\"data-p26cart-id\", id);\n      });\n\n      \/\/ Desserts offered as a pre-meal attach suggestion (deduped, menu order)\n      var desserts = [];\n      (function () {\n        var seen = {};\n        cards.forEach(function (card) {\n          if (card.getAttribute(\"data-category\") !== \"dessert\") return;\n          var name = cardTitle(card); if (!name) return;\n          var id = slug(name); if (seen[id]) return; seen[id] = 1;\n          desserts.push({ id: id, name: cleanName(name) });\n        });\n      })();\n\n      \/\/ Per-pizza high-margin topping upsells (price-free; appended to the line note)\n      var TOPPING_UPSELL = {\n\n        \"4-kolme-juustoa-rapsakka-pekoni\": [{ label: \"+ Spianata-salami\", note: \"Spianata-salami\", desc: \"Chorizo-tyylinen italialainen, mausteisempi salami\" }]\n      };\n      function noteParts(note) { return String(note || \"\").split(\",\").map(function (s) { return s.trim(); }).filter(Boolean); }\n      function noteHas(note, token) { return noteParts(note).indexOf(token) !== -1; }\n      function noteToggle(note, token) {\n        var parts = noteParts(note); var i = parts.indexOf(token);\n        if (i !== -1) parts.splice(i, 1); else parts.push(token);\n        return parts.join(\", \");\n      }\n      function toppingChipsHtml(id) {\n        var list = TOPPING_UPSELL[id]; if (!list) return \"\";\n        var h = '<div class=\"p26cart-tchips\">';\n        list.forEach(function (t) { h += '<button type=\"button\" class=\"p26cart-tchip\" data-tnote=\"' + esc(t.note) + '\">' + esc(t.label) + '<\/button>'; });\n        return h + '<\/div>';\n      }\n\n      function load() {\n        try { var s = JSON.parse(localStorage.getItem(STORE)); if (s && s.items) return s; } catch (e) {}\n        return { items: {}, notes: {} };\n      }\n      var state = load();\n      if (!state.items) state.items = {};\n      if (!state.notes) state.notes = {};\n      for (var k in state.items) { if (!catalog[k] || catalog[k].cat === \"topping\") delete state.items[k]; }\n      for (var nk in state.notes) { if (!state.items[nk]) delete state.notes[nk]; }\n      function save() { try { localStorage.setItem(STORE, JSON.stringify(state)); } catch (e) {} }\n\n      function qty(id) { return state.items[id] || 0; }\n      function add(id) { state.items[id] = qty(id) + 1; save(); renderAll(); }\n      function dec(id) {\n        var q = qty(id) - 1;\n        if (q <= 0) { delete state.items[id]; delete state.notes[id]; }\n        else state.items[id] = q;\n        save(); renderAll();\n      }\n      function clearAll() { state.items = {}; state.notes = {}; save(); renderAll(); }\n      function totalCount() { var n = 0; for (var k in state.items) n += state.items[k]; return n; }\n      function autoGrow(ta) { if (!ta) return; ta.style.height = \"auto\"; ta.style.height = Math.min(ta.scrollHeight, 160) + \"px\"; }\n\n      cards.forEach(function (card) {\n        var id = card.getAttribute(\"data-p26cart-id\");\n        if (!id) return;\n        var ctl = document.createElement(\"div\");\n        ctl.setAttribute(\"data-p26cart-ctl\", id);\n        if (card.classList.contains(\"p26-topping\")) {\n          ctl.className = \"p26cart-tctl\";\n          (card.querySelector(\".p26-topping-tail\") || card).appendChild(ctl);\n        } else {\n          ctl.className = \"p26cart-ctl\";\n          card.appendChild(ctl);\n        }\n      });\n\n      function cardAdd(id) { var was = qty(id); add(id); if (was === 0) maybeUpsell(id); }\n      function wire(ctl, id) {\n        var b = ctl.querySelectorAll(\"button\");\n        if (b.length === 1) { b[0].onclick = function (e) { e.preventDefault(); cardAdd(id); }; return; }\n        b[0].onclick = function (e) { e.preventDefault(); dec(id); };\n        b[1].onclick = function (e) { e.preventDefault(); cardAdd(id); };\n      }\n\n      function renderCards() {\n        cards.forEach(function (card) {\n          var id = card.getAttribute(\"data-p26cart-id\");\n          if (!id) return;\n          var ctl = card.querySelector(\"[data-p26cart-ctl]\");\n          if (!ctl) return;\n          if (card.classList.contains(\"p26-topping\")) { ctl.innerHTML = \"\"; return; }\n          var q = qty(id);\n          if (q <= 0) {\n            ctl.innerHTML = '<button class=\"p26cart-add\" type=\"button\">+ Lis\u00e4\u00e4 listalle<\/button>';\n          } else {\n            ctl.innerHTML = '<div class=\"p26cart-step\"><button type=\"button\" aria-label=\"V\u00e4henn\u00e4\">\u2212<\/button><span class=\"p26cart-qty\">' + q + '<\/span><button type=\"button\" aria-label=\"Lis\u00e4\u00e4\">+<\/button><\/div>';\n          }\n          wire(ctl, id);\n        });\n      }\n\n      var drawer = document.querySelector(\"[data-p26cart-drawer]\");\n      var backdrop = document.querySelector(\"[data-p26cart-backdrop]\");\n      var fab = document.querySelector(\"[data-p26cart-open]\");\n      var badge = document.querySelector(\"[data-p26cart-badge]\");\n      var itemsEl = drawer.querySelector(\"[data-p26cart-items]\");\n      var upBack = document.querySelector(\"[data-p26up-back]\");\n      var upCard = document.querySelector(\"[data-p26up-card]\");\n\n      function renderDrawer() {\n        var ids = Object.keys(state.items);\n        if (!ids.length) {\n          itemsEl.innerHTML = '<div class=\"p26cart-empty\">Listasi on tyhj\u00e4.<br>Selaa menua ja paina \u201c+ Lis\u00e4\u00e4 listalle\u201d.<\/div>';\n        } else {\n          var html = \"\";\n          ids.forEach(function (id) {\n            var c = catalog[id];\n            if (!c) return;\n            var q = state.items[id];\n            html += '<div class=\"p26cart-item\" data-id=\"' + id + '\">'\n              + '<div class=\"p26cart-item-top\">'\n              + '<div class=\"p26cart-item-main\"><div class=\"p26cart-item-name\">' + esc(c.name) + '<\/div><\/div>'\n              + '<div class=\"p26cart-mini\"><button type=\"button\" data-dec aria-label=\"V\u00e4henn\u00e4\">\u2212<\/button><span>' + q + '<\/span><button type=\"button\" data-inc aria-label=\"Lis\u00e4\u00e4\">+<\/button><\/div>'\n              + '<\/div>'\n              + '<div class=\"p26cart-item-note\"><textarea data-note rows=\"1\" placeholder=\"Lis&auml;t&auml;ytteet, erikoisruokavalio, juoma&hellip;\">' + esc(state.notes[id] || \"\") + '<\/textarea><\/div>'\n              + toppingChipsHtml(id)\n              + '<\/div>';\n          });\n          itemsEl.innerHTML = html;\n          Array.prototype.slice.call(itemsEl.querySelectorAll(\".p26cart-item\")).forEach(function (row) {\n            var id = row.getAttribute(\"data-id\");\n            row.querySelector(\"[data-dec]\").onclick = function () { dec(id); };\n            row.querySelector(\"[data-inc]\").onclick = function () { add(id); };\n            var ta = row.querySelector(\"[data-note]\");\n            var chips = Array.prototype.slice.call(row.querySelectorAll(\".p26cart-tchip\"));\n            function syncChips() { chips.forEach(function (ch) { ch.classList.toggle(\"is-on\", noteHas(ta ? ta.value : \"\", ch.getAttribute(\"data-tnote\"))); }); }\n            if (ta) {\n              autoGrow(ta);\n              ta.addEventListener(\"input\", function () { state.notes[id] = ta.value; save(); autoGrow(ta); syncChips(); });\n            }\n            chips.forEach(function (ch) {\n              ch.onclick = function () {\n                if (!ta) return;\n                var nv = noteToggle(ta.value, ch.getAttribute(\"data-tnote\"));\n                ta.value = nv; state.notes[id] = nv; save(); autoGrow(ta); syncChips();\n              };\n            });\n            syncChips();\n          });\n        }\n      }\n\n      function renderBadge() {\n        var n = totalCount();\n        badge.textContent = n;\n        fab.hidden = false;\n        badge.style.display = n > 0 ? \"\" : \"none\";\n      }\n\n      var suggestEl = drawer.querySelector(\"[data-p26cart-suggest]\");\n      function renderSuggest() {\n        if (!suggestEl) return;\n        var ids = Object.keys(state.items);\n        var hasMain = ids.some(function (id) { return catalog[id] && catalog[id].cat !== \"dessert\"; });\n        var hasDessert = ids.some(function (id) { return catalog[id] && catalog[id].cat === \"dessert\"; });\n        if (!hasMain || hasDessert || !desserts.length) { suggestEl.hidden = true; suggestEl.innerHTML = \"\"; return; }\n        var h = '<p class=\"p26cart-suggest-title\">J&auml;lkiruoaksi?<\/p><div class=\"p26cart-suggest-chips\">';\n        desserts.forEach(function (d) { h += '<button type=\"button\" class=\"p26cart-dchip\" data-add=\"' + d.id + '\">' + esc(d.name) + '<\/button>'; });\n        suggestEl.innerHTML = h + '<\/div>';\n        suggestEl.hidden = false;\n        Array.prototype.slice.call(suggestEl.querySelectorAll(\"[data-add]\")).forEach(function (b) {\n          b.onclick = function () { add(b.getAttribute(\"data-add\")); };\n        });\n      }\n\n      function renderAll() { renderCards(); renderDrawer(); renderSuggest(); renderBadge(); }\n\n      function syncOverlayState() {\n        var on = drawer.classList.contains(\"is-open\") || upBack.classList.contains(\"is-open\");\n        document.body.classList.toggle(\"p26cart-open\", on);\n      }\n      function openDrawer() {\n        backdrop.classList.add(\"is-open\"); drawer.classList.add(\"is-open\"); drawer.setAttribute(\"aria-hidden\", \"false\");\n        Array.prototype.slice.call(itemsEl.querySelectorAll(\"[data-note]\")).forEach(autoGrow);\n        syncOverlayState();\n      }\n      function closeDrawer() { backdrop.classList.remove(\"is-open\"); drawer.classList.remove(\"is-open\"); drawer.setAttribute(\"aria-hidden\", \"true\"); syncOverlayState(); }\n\n      function openUpsell(html) { upCard.innerHTML = html; upBack.classList.add(\"is-open\"); syncOverlayState(); }\n      function closeUpsell() { upBack.classList.remove(\"is-open\"); upCard.innerHTML = \"\"; syncOverlayState(); }\n      function maybeUpsell(id) {\n        var c = catalog[id];\n        if (!c || c.cat === \"dessert\" || c.cat === \"topping\") return;\n        var tList = (TOPPING_UPSELL[id] || []).filter(function (t) { return !noteHas(state.notes[id] || \"\", t.note); });\n        if (!tList.length) return;\n        var h = '<p class=\"p26up-conf\">Lis&auml;tty listalle<\/p><h3 class=\"p26up-title\">' + esc(cleanName(c.name)) + '<\/h3>';\n        if (tList.length) {\n          h += '<div class=\"p26up-sec\"><p class=\"p26up-sec-t\">Lis&auml;t&auml;ytesuositus<\/p><div class=\"p26up-topts\">';\n          tList.forEach(function (t) {\n            h += '<button type=\"button\" class=\"p26up-topt\" data-uptop=\"' + esc(t.note) + '\"><span class=\"p26up-topt-l\">' + esc(t.label) + '<\/span>' + (t.desc ? '<span class=\"p26up-topt-d\">' + esc(t.desc) + '<\/span>' : '') + '<\/button>';\n          });\n          h += '<\/div><\/div>';\n        }\n        h += '<button type=\"button\" class=\"p26up-skip\" data-up-skip>Ei kiitos, sulje<\/button>';\n        openUpsell(h);\n        Array.prototype.slice.call(upCard.querySelectorAll(\"[data-uptop]\")).forEach(function (b) {\n          b.onclick = function () {\n            var token = b.getAttribute(\"data-uptop\");\n            state.notes[id] = noteToggle(state.notes[id] || \"\", token);\n            save(); renderAll();\n            b.classList.toggle(\"is-on\", noteHas(state.notes[id], token));\n          };\n        });\n        upCard.querySelector(\"[data-up-skip]\").onclick = closeUpsell;\n      }\n\n      fab.addEventListener(\"click\", openDrawer);\n      backdrop.addEventListener(\"click\", closeDrawer);\n      upBack.addEventListener(\"click\", function (e) { if (e.target === upBack) closeUpsell(); });\n      Array.prototype.slice.call(document.querySelectorAll(\"[data-p26cart-close]\")).forEach(function (b) { b.addEventListener(\"click\", closeDrawer); });\n      document.querySelector(\"[data-p26cart-clear]\").addEventListener(\"click\", clearAll);\n      document.addEventListener(\"keydown\", function (e) { if (e.key === \"Escape\") { closeUpsell(); closeDrawer(); } });\n\n      renderAll();\n    })();\n  <\/script>\n\n<\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div><div class=\"elementor-element elementor-element-5ac7a77 e-container--column e-container\" data-id=\"5ac7a77\" data-element_type=\"container\" id=\"ev\">\t\t\t\t<div class=\"elementor-element elementor-element-2c14624 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"2c14624\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a href=\"https:\/\/www.saaristonpuoti.fi\/en\/advance-booking\/\" class=\"elementor-button-link elementor-button elementor-size-md\" role=\"button\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t<span class=\"elementor-button-icon elementor-align-icon-left\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"far fa-calendar-check\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Make a Pre-Booking<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8043c42 elementor-widget elementor-widget-spacer\" data-id=\"8043c42\" data-element_type=\"widget\" id=\"menu\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.6.4 - 13-04-2022 *\/\n.e-container.e-container--row .elementor-spacer-inner{width:var(--spacer-size)}.e-container.e-container--column .elementor-spacer-inner,.elementor-column .elementor-spacer-inner{height:var(--spacer-size)}<\/style>\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\t\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Summer 2026 Menu The Summer 2026 Menu \u2013 Tastes of summer! Artisan pizzas baked in a wood-fired oven, fresh salads, desserts and seasonal favourites \u2014 all brought together in the closing menu for the summer of 2026 \ud83c\udf55\ud83d\udd25 Special dietary labels (G, L, VL, M, V, Vegetarian, \ud83c\udf36) G Gluten-free or gluten-free option available L Lactose-free VL Low-lactose M Dairy-free V Vegan or vegan option available Vegetarian Vegetarian diet: no meat or fish (allows dairy products and eggs) \ud83c\udf36Spicy Summer season [\u2026]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-487","page","type-page","status-publish","hentry"],"acf":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/pages\/487","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/comments?post=487"}],"version-history":[{"count":341,"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/pages\/487\/revisions"}],"predecessor-version":[{"id":43200,"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/pages\/487\/revisions\/43200"}],"wp:attachment":[{"href":"https:\/\/www.saaristonpuoti.fi\/en\/wp-json\/wp\/v2\/media?parent=487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}