{"id":19030,"date":"2026-10-19T19:37:13","date_gmt":"2026-10-19T17:37:13","guid":{"rendered":"https:\/\/www.kunyeartfoundation.org\/?page_id=19030"},"modified":"2026-10-21T21:36:58","modified_gmt":"2026-10-21T19:36:58","slug":"recipes","status":"publish","type":"page","link":"https:\/\/www.kunyeartfoundation.org\/?page_id=19030","title":{"rendered":"Recipes"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"19030\" class=\"elementor elementor-19030\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b1abd1d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b1abd1d\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cc89d2d\" data-id=\"cc89d2d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-005901f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"005901f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fba6018\" data-id=\"fba6018\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-33780bf elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"33780bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<style>\n\/* Kunye Art Foundation - Recipe Book Page *\/\n.kaf-recipe-page {\n    --kaf-green: #008000;\n    --kaf-dark-green: #006400;\n    --kaf-light-green: #f0f8ee;\n    --kaf-text: #000000;\n    font-family: Arial;\n    color: var(--kaf-text);\n    max-width: 1750px;\n    margin: 0 auto;\n    padding: 15px 20px 55px;\n    box-sizing: border-box;\n}\n\n.kaf-recipe-page *,\n.kaf-recipe-page *::before,\n.kaf-recipe-page *::after {\n    box-sizing: border-box;\n}\n\n.kaf-recipe-page .kaf-intro {\n    text-align: center;\n    padding: 32px 15px 38px;\n}\n\n.kaf-recipe-page .kaf-eyebrow {\n    display: inline-block;\n    color: var(--kaf-green);\n    font-size: 19px;\n    font-weight: 700;\n    letter-spacing: 2px;\n    text-transform: uppercase;\n    margin-bottom: 12px;\n}\n\n.kaf-recipe-page h1,\n.kaf-recipe-page h2,\n.kaf-recipe-page h3 {\n    color: var(--kaf-green);\n    font-family: inherit;\n    line-height: 1.3;\n}\n\n.kaf-recipe-page h1 {\n    font-size: clamp(30px, 5vw, 43px);\n    font-weight: 800;\n    margin: 0 0 17px;\n}\n\n.kaf-recipe-page .kaf-subtitle {\n    font-size: 17px;\n    line-height: 1.8;\n    max-width: 700px;\n    margin: 0 auto;\n}\n\n.kaf-recipe-page .kaf-hero {\n    display: grid;\n    grid-template-columns: 1fr 0.9fr;\n    gap: 38px;\n    align-items: center;\n    padding: 38px;\n    background: var(--kaf-light-green);\n    border-top: 4px solid var(--kaf-green);\n    border-radius: 3px;\n}\n\n.kaf-recipe-page .kaf-hero h2 {\n    font-size: clamp(25px, 3.5vw, 34px);\n    font-weight: 800;\n    margin: 0 0 18px;\n}\n\n.kaf-recipe-page .kaf-hero p {\n    font-size: 15px;\n    line-height: 1.9;\n    margin: 0 0 18px;\n}\n\n.kaf-recipe-page .kaf-motto {\n    color: var(--kaf-green);\n    font-weight: 700;\n    font-size: 15px;\n    line-height: 1.8;\n    margin: 20px 0 25px;\n}\n\n.kaf-recipe-page .kaf-button {\n    display: inline-block;\n    padding: 15px 24px;\n    background: var(--kaf-green);\n    color: #ffffff !important;\n    text-decoration: none !important;\n    font-size: 14px;\n    font-weight: 700;\n    line-height: 1.5;\n    text-align: center;\n    border: 2px solid var(--kaf-green);\n    border-radius: 3px;\n    transition: background 0.2s ease, color 0.2s ease;\n}\n\n.kaf-recipe-page .kaf-button:hover {\n    background: var(--kaf-dark-green);\n    border-color: var(--kaf-dark-green);\n    color: #ffffff !important;\n}\n\n.kaf-recipe-page .kaf-button:focus-visible {\n    outline: 3px solid #e2a900;\n    outline-offset: 3px;\n}\n\n.kaf-recipe-page .kaf-cover {\n    min-height: 350px;\n    padding: 22px;\n    background: #ffffff;\n    border: 1px solid #d9e5d5;\n    box-shadow: 0 12px 28px rgba(0, 70, 0, 0.10);\n    display: flex;\n    align-items: stretch;\n    justify-content: center;\n}\n\n.kaf-recipe-page .kaf-cover-inner {\n    width: 100%;\n    min-height: 305px;\n    padding: 30px 20px;\n    background:\n        radial-gradient(ellipse at 100% 0%, #d8ebcf 0, transparent 43%),\n        radial-gradient(ellipse at 0% 100%, #e2efdb 0, transparent 43%),\n        #ffffff;\n    border: 1px solid #e4eddf;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n}\n\n.kaf-recipe-page .kaf-cover-mark {\n    width: 60px;\n    height: 60px;\n    border: 2px solid var(--kaf-green);\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    color: var(--kaf-green);\n    font-size: 28px;\n    margin-bottom: 20px;\n}\n\n.kaf-recipe-page .kaf-cover-brand {\n    font-size: 11px;\n    font-weight: 800;\n    letter-spacing: 2px;\n    color: var(--kaf-green);\n    text-transform: uppercase;\n    margin-bottom: 18px;\n}\n\n.kaf-recipe-page .kaf-cover h3 {\n    font-size: clamp(25px, 3vw, 32px);\n    font-weight: 800;\n    margin: 0 0 12px;\n}\n\n.kaf-recipe-page .kaf-cover-line {\n    width: 55px;\n    height: 3px;\n    background: var(--kaf-green);\n    margin: 6px auto 17px;\n}\n\n.kaf-recipe-page .kaf-cover-caption {\n    font-size: 13px;\n    line-height: 1.7;\n    color: #666666;\n    font-style: italic;\n}\n\n.kaf-recipe-page .kaf-values {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 22px;\n    margin: 35px 0 45px;\n}\n\n.kaf-recipe-page .kaf-value {\n    padding: 23px 16px;\n    text-align: center;\n    border: 1px solid #e5e5e5;\n    background: #ffffff;\n}\n\n.kaf-recipe-page .kaf-value-icon {\n    color: var(--kaf-green);\n    font-size: 27px;\n    margin-bottom: 10px;\n}\n\n.kaf-recipe-page .kaf-value h3 {\n    font-size: 17px;\n    margin: 0 0 9px;\n    font-weight: 700;\n}\n\n.kaf-recipe-page .kaf-value p {\n    font-size: 14px;\n    line-height: 1.7;\n    margin: 0;\n}\n\n.kaf-recipe-page .kaf-bottom {\n    text-align: center;\n    padding: 35px 20px;\n    border-top: 1px solid #dcdcdc;\n}\n\n.kaf-recipe-page .kaf-bottom h2 {\n    font-size: 25px;\n    font-weight: 800;\n    margin: 0 0 13px;\n}\n\n.kaf-recipe-page .kaf-bottom p {\n    font-size: 15px;\n    line-height: 1.8;\n    max-width: 650px;\n    margin: 0 auto 22px;\n}\n\n.kaf-recipe-page .kaf-note {\n    margin-top: 15px;\n    font-size: 12px;\n    color: #777777;\n}\n\n@media (max-width: 700px) {\n    .kaf-recipe-page {\n        padding: 5px 12px 35px;\n    }\n\n    .kaf-recipe-page .kaf-intro {\n        padding: 25px 5px 28px;\n    }\n\n    .kaf-recipe-page .kaf-subtitle {\n        font-size: 15px;\n    }\n\n    .kaf-recipe-page .kaf-hero {\n        grid-template-columns: 1fr;\n        gap: 25px;\n        padding: 23px 18px;\n    }\n\n    .kaf-recipe-page .kaf-cover {\n        min-height: 300px;\n        padding: 14px;\n    }\n\n    .kaf-recipe-page .kaf-cover-inner {\n        min-height: 270px;\n    }\n\n    .kaf-recipe-page .kaf-values {\n        grid-template-columns: 1fr;\n        gap: 13px;\n        margin: 25px 0 32px;\n    }\n\n    .kaf-recipe-page .kaf-value {\n        padding: 20px 15px;\n    }\n\n    .kaf-recipe-page .kaf-button {\n        width: 100%;\n    }\n}\n\n@media (prefers-reduced-motion: reduce) {\n    .kaf-recipe-page .kaf-button {\n        transition: none;\n    }\n}\n<\/style>\n\n<section class=\"kaf-recipe-page\">\n\n    <header class=\"kaf-intro\">\n        <span class=\"kaf-eyebrow\">Kunye Art Foundation Presents<\/span>\n        <h1>Heritage Recipes \u2013 On Our Tables, Under The Table<\/h1>\n        <p class=\"kaf-subtitle\">\n            Celebrating culture, creativity and community through\n            the wonderful world of food.\n        <\/p>\n    <\/header>\n\n    <div class=\"kaf-hero\">\n\n        <div class=\"kaf-hero-content\">\n            <h2>A Recipe Book to Share<\/h2>\n\n            <p>\n                At Kunye Art Foundation, we celebrate the creativity\n                that connects us. Food, like art, brings people\n                together, preserves traditions and tells the stories\n                of our communities.\n            <\/p>\n\n            <p>\n                Explore our recipe book, discover treasured flavours\n                and enjoy a collection created to inspire sharing,\n                learning and connection.\n            <\/p>\n\n            <div class=\"kaf-motto\">\n                Art Inspires Creativity<br>\n                Creativity Inspires Art\n            <\/div>\n\n            <!--  -WITH-YOUR-PDF-URL below -->\n            <a class=\"kaf-button\"\n               href=\"anchor\"\n               target=\"_blank\"\n               rel=\"noopener\">\n                &#8595; &nbsp; DOWNLOAD YOUR OWN RECIPE BOOK\n            <\/a>\n        <\/div>\n\n        \n<div class=\"kaf-cover\" aria-label=\"Recipe book cover preview\">\n    <div class=\"kaf-cover-inner\">\n\n        <img decoding=\"async\"\n            class=\"kaf-cover-image lazyload\"\n            data-src=\"https:\/\/www.kunyeartfoundation.org\/wp-content\/uploads\/2026\/10\/Heritage-Recipe-Book-fp.jpg\"\n            alt=\"Ku\u1e4bye Art Foundation Our Recipe Book cover\"\n           \n         src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1131px; --smush-placeholder-aspect-ratio: 1131\/1600;\">\n\n        <h3>Our Recipe Book<\/h3>\n\n        <div class=\"kaf-cover-line\"><\/div>\n\n        <div class=\"kaf-cover-caption\">\n            A celebration of food,<br>\n            culture &amp; community\n        <\/div>\n\n    <\/div>\n<\/div>\n\n<style>\n.kaf-cover {\n    width: 100%;\n    max-width: 340px;\n    margin: 24px auto;\n    padding: 12px;\n    box-sizing: border-box;\n}\n\n.kaf-cover-inner {\n    background: #ffffff;\n    border: 2px solid #008000;\n    border-radius: 12px;\n    padding: 18px;\n    text-align: center;\n    box-shadow: 0 5px 16px rgba(0, 0, 0, 0.12);\n    box-sizing: border-box;\n}\n\n.kaf-cover-image {\n    display: block;\n    width: 100%;\n    max-width: 270px;\n    max-height: 330px;\n    height: auto;\n    object-fit: contain;\n    margin: 0 auto 18px;\n    border-radius: 5px;\n}\n\n.kaf-cover-brand {\n    color: #008000;\n    font-size: 14px;\n    font-weight: 700;\n    margin-bottom: 8px;\n}\n\n.kaf-cover-inner h3 {\n    color: #008000;\n    font-size: 25px;\n    line-height: 1.2;\n    margin: 8px 0 14px;\n}\n\n.kaf-cover-line {\n    width: 65px;\n    height: 3px;\n    background: #008000;\n    margin: 0 auto 15px;\n    border-radius: 3px;\n}\n\n.kaf-cover-caption {\n    color: #000000;\n    font-size: 14px;\n    line-height: 1.6;\n}\n\n@media (max-width: 480px) {\n    .kaf-cover {\n        max-width: 300px;\n    }\n\n    .kaf-cover-inner {\n        padding: 14px;\n    }\n\n    .kaf-cover-image {\n        max-height: 290px;\n    }\n}\n<\/style>\n\n\n    <\/div>\n\n    <div class=\"kaf-values\">\n\n        <article class=\"kaf-value\">\n            <div class=\"kaf-value-icon\" aria-hidden=\"true\">\n                &#9829;\n            <\/div>\n            <h3>Made for Sharing<\/h3>\n            <p>\n                Bringing people together through recipes,\n                memories and the joy of food.\n            <\/p>\n        <\/article>\n\n        <article class=\"kaf-value\">\n            <div class=\"kaf-value-icon\" aria-hidden=\"true\">\n                &#10047;\n            <\/div>\n            <h3>Rooted in Culture<\/h3>\n            <p>\n                Celebrating the traditions, flavours and stories\n                that make our communities unique.\n            <\/p>\n        <\/article>\n\n        <article class=\"kaf-value\">\n            <div class=\"kaf-value-icon\" aria-hidden=\"true\">\n                &#10022;\n            <\/div>\n            <h3>Inspired by Creativity<\/h3>\n            <p>\n                Discovering the creativity that lives in our art,\n                our kitchens and our everyday lives.\n            <\/p>\n        <\/article>\n\n    <\/div>\n    <style>\n\/* ===== Recipe Accordion \u2013 matches KAF green theme ===== *\/\n.kaf-recipes {\n    --kaf-green: #008000;\n    --kaf-dark-green: #006400;\n    --kaf-light-green: #f0f8ee;\n    --kaf-border: #d9e5d5;\n    --kaf-text: #555555;\n    --kaf-muted: #777777;\n    max-width: 900px;\n    margin: 45px auto 50px;\n    padding: 0 15px;\n    font-family: inherit;\n}\n\n.kaf-recipes-header {\n    text-align: center;\n    margin-bottom: 28px;\n}\n\n.kaf-recipes-header h2 {\n    color: var(--kaf-green);\n    font-size: clamp(22px, 3.5vw, 28px);\n    font-weight: 800;\n    margin: 0 0 8px;\n}\n\n.kaf-recipes-header p {\n    color: var(--kaf-muted);\n    font-size: 15px;\n    margin: 0;\n}\n\n\/* Accordion item *\/\n.kaf-acc-item {\n    border: 1px solid var(--kaf-border);\n    border-radius: 6px;\n    margin-bottom: 12px;\n    background: #ffffff;\n    overflow: hidden;\n    transition: box-shadow 0.2s ease;\n}\n\n.kaf-acc-item:hover {\n    box-shadow: 0 4px 14px rgba(0, 100, 0, 0.08);\n}\n\n.kaf-acc-item.is-open {\n    border-color: var(--kaf-green);\n    box-shadow: 0 4px 18px rgba(0, 100, 0, 0.10);\n}\n\n\/* Trigger button *\/\n.kaf-acc-trigger {\n    width: 100%;\n    display: flex;\n    align-items: center;\n    gap: 16px;\n    padding: 16px 18px;\n    background: transparent;\n    border: none;\n    cursor: pointer;\n    text-align: left;\n    font-family: inherit;\n}\n\n.kaf-acc-trigger:focus-visible {\n    outline: 3px solid #e2a900;\n    outline-offset: 2px;\n}\n\n.kaf-acc-thumb {\n    width: 56px;\n    height: 56px;\n    border-radius: 6px;\n    object-fit: cover;\n    flex-shrink: 0;\n    background: var(--kaf-light-green);\n}\n\n.kaf-acc-meta {\n    flex: 1;\n    min-width: 0;\n}\n\n.kaf-acc-title {\n    display: block;\n    font-size: 16px;\n    font-weight: 700;\n    color: var(--kaf-green);\n    margin-bottom: 3px;\n    line-height: 1.3;\n}\n\n.kaf-acc-sub {\n    display: block;\n    font-size: 13px;\n    color: var(--kaf-muted);\n}\n\n.kaf-acc-tags {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 6px;\n    margin-top: 6px;\n}\n\n.kaf-tag {\n    font-size: 11px;\n    font-weight: 600;\n    color: var(--kaf-green);\n    background: var(--kaf-light-green);\n    padding: 3px 8px;\n    border-radius: 20px;\n}\n\n.kaf-acc-icon {\n    font-size: 20px;\n    color: var(--kaf-green);\n    transition: transform 0.25s ease;\n    flex-shrink: 0;\n}\n\n.kaf-acc-item.is-open .kaf-acc-icon {\n    transform: rotate(45deg);\n}\n\n\/* Panel *\/\n.kaf-acc-panel {\n    max-height: 0;\n    overflow: hidden;\n    transition: max-height 0.35s ease;\n}\n\n.kaf-acc-item.is-open .kaf-acc-panel {\n    max-height: 600px; \/* enough for content *\/\n}\n\n.kaf-acc-body {\n    padding: 0 18px 20px 90px; \/* aligns under text, past thumbnail *\/\n    color: var(--kaf-text);\n    font-size: 14px;\n    line-height: 1.7;\n}\n\n.kaf-acc-body p {\n    margin: 0 0 12px;\n}\n\n.kaf-acc-body .kaf-story {\n    font-style: italic;\n    color: var(--kaf-muted);\n    margin-bottom: 14px;\n}\n\n.kaf-acc-cta {\n    display: inline-block;\n    margin-top: 6px;\n    padding: 9px 16px;\n    background: var(--kaf-green);\n    color: #ffffff !important;\n    text-decoration: none !important;\n    font-size: 13px;\n    font-weight: 700;\n    border-radius: 3px;\n    border: 2px solid var(--kaf-green);\n    transition: background 0.2s ease;\n}\n\n.kaf-acc-cta:hover {\n    background: var(--kaf-dark-green);\n    border-color: var(--kaf-dark-green);\n}\n\n\/* Mobile adjustments *\/\n@media (max-width: 600px) {\n    .kaf-acc-trigger {\n        gap: 12px;\n        padding: 14px 14px;\n    }\n    .kaf-acc-thumb {\n        width: 48px;\n        height: 48px;\n    }\n    .kaf-acc-body {\n        padding: 0 14px 18px 14px;\n    }\n    .kaf-acc-title {\n        font-size: 15px;\n    }\n}\n<\/style>\n\n<script>\n\/\/ Simple vanilla JS accordion (no dependencies)\ndocument.querySelectorAll('.kaf-acc-trigger').forEach(btn => {\n    btn.addEventListener('click', () => {\n        const item = btn.closest('.kaf-acc-item');\n        const isOpen = item.classList.contains('is-open');\n\n        \/\/ Close all others (optional \u2013 remove these two lines if you want multiple open)\n        document.querySelectorAll('.kaf-acc-item.is-open').forEach(el => {\n            el.classList.remove('is-open');\n            el.querySelector('.kaf-acc-trigger').setAttribute('aria-expanded', 'false');\n        });\n\n        if (!isOpen) {\n            item.classList.add('is-open');\n            btn.setAttribute('aria-expanded', 'true');\n        }\n    });\n});\n\n<\/script>\n\n<div id=\"kunye-recipe-library\">\n  <style>\n    #kunye-recipe-library {\n      --kr-green: #008000;\n      --kr-dark: #174c3c;\n      --kr-light: #edf6ef;\n      --kr-ink: #000000;\n      --kr-muted: 000000;\n      font-family: inherit;\n      color: var(--kr-ink);\n      width: 100%;\n      box-sizing: border-box;\n    }\n    #kunye-recipe-library * { box-sizing: border-box; }\n    #kunye-recipe-library .kr-intro {\n      text-align: center;\n      padding: 26px 12px 30px;\n    }\n    #kunye-recipe-library .kr-eyebrow {\n      color: var(--kr-green);\n      text-transform: uppercase;\n      letter-spacing: 2px;\n      font-size: 12px;\n      font-weight: 700;\n    }\n    #kunye-recipe-library h2 {\n      font-size: clamp(28px, 4vw, 42px);\n      color: var(--kr-dark);\n      margin: 10px 0;\n      line-height: 1.2;\n    }\n    #kunye-recipe-library .kr-intro p {\n      max-width: 620px;\n      margin: 0 auto;\n      color: var(--kr-muted);\n      line-height: 1.7;\n    }\n    #kunye-recipe-library .kr-toolbar {\n      background: #f7faf7;\n      border: 1px solid #e0eae1;\n      border-radius: 16px;\n      padding: 20px;\n      margin-bottom: 24px;\n    }\n    #kunye-recipe-library .kr-search {\n      display: block;\n      width: 100%;\n      padding: 14px 16px;\n      border: 1px solid #d5e1d7;\n      border-radius: 9px;\n      background: white;\n      font: inherit;\n      color: var(--kr-ink);\n      margin-bottom: 16px;\n      box-shadow: none;\n    }\n    #kunye-recipe-library .kr-label {\n      font-size: 12px;\n      font-weight: 700;\n      text-transform: uppercase;\n      letter-spacing: 1px;\n      display: block;\n      margin-bottom: 10px;\n    }\n    #kunye-recipe-library .kr-filters {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 8px;\n    }\n    #kunye-recipe-library button {\n      font: inherit;\n      cursor: pointer;\n      transition: background .18s, color .18s, border-color .18s;\n    }\n    #kunye-recipe-library .kr-filter {\n      border: 1px solid #cbded0;\n      color: var(--kr-dark);\n      background: white;\n      padding: 9px 14px;\n      border-radius: 30px;\n      font-size: 13px;\n    }\n    #kunye-recipe-library .kr-filter:hover,\n    #kunye-recipe-library .kr-filter.kr-active {\n      background: var(--kr-green);\n      color: white;\n      border-color: var(--kr-green);\n    }\n    #kunye-recipe-library .kr-selection-bar {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      flex-wrap: wrap;\n      gap: 14px;\n      margin: 22px 0 16px;\n    }\n    #kunye-recipe-library .kr-selection-count {\n      color: var(--kr-dark);\n      font-size: 14px;\n      font-weight: 700;\n    }\n    #kunye-recipe-library .kr-text-button {\n      border: 0;\n      background: transparent;\n      color: var(--kr-green);\n      padding: 6px;\n      font-size: 13px;\n      text-decoration: underline;\n      text-underline-offset: 3px;\n    }\n    #kunye-recipe-library .kr-grid {\n      display: grid;\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n      gap: 20px;\n    }\n    #kunye-recipe-library .kr-card {\n      position: relative;\n      border: 1px solid #e0e8e0;\n      background: white;\n      border-radius: 13px;\n      overflow: hidden;\n      min-width: 0;\n      transition: border-color .2s, box-shadow .2s, transform .2s;\n    }\n    #kunye-recipe-library .kr-card:hover {\n      transform: translateY(-3px);\n      box-shadow: 0 8px 24px #173f2912;\n    }\n    #kunye-recipe-library .kr-card.kr-selected {\n      border: 2px solid var(--kr-green);\n      box-shadow: 0 0 0 3px #04785714;\n    }\n    #kunye-recipe-library .kr-image {\n      aspect-ratio: 4 \/ 3;\n      position: relative;\n      background: linear-gradient(135deg, #e3eee3, #f6f1e5);\n      overflow: hidden;\n    }\n    #kunye-recipe-library .kr-image img {\n      display: block;\n      width: 100%;\n      height: 100%;\n      object-fit: cover;\n    }\n    #kunye-recipe-library .kr-image.kr-no-image:after {\n      content: \"Kunye \u00b7 Heritage Recipes\";\n      position: absolute;\n      left: 12px;\n      right: 12px;\n      bottom: 14px;\n      text-align: center;\n      color: var(--kr-dark);\n      font-size: 13px;\n      letter-spacing: .5px;\n    }\n    #kunye-recipe-library .kr-check {\n      appearance: none;\n      -webkit-appearance: none;\n      position: absolute;\n      z-index: 3;\n      top: 10px;\n      right: 10px;\n      width: 29px;\n      height: 29px;\n      margin: 0;\n      background: rgba(255,255,255,.96);\n      border: 2px solid #b6c9ba;\n      border-radius: 5px;\n      cursor: pointer;\n      display: grid;\n      place-items: center;\n    }\n    #kunye-recipe-library .kr-check:checked {\n      background: var(--kr-green);\n      border-color: var(--kr-green);\n    }\n    #kunye-recipe-library .kr-check:checked:after {\n      content: \"\u2713\";\n      color: white;\n      font-size: 19px;\n      font-weight: 700;\n    }\n    #kunye-recipe-library .kr-check:focus-visible {\n      outline: 3px solid #008000;\n      outline-offset: 3px;\n    }\n    #kunye-recipe-library .kr-card-body { padding: 15px 16px 17px; }\n    #kunye-recipe-library .kr-tag {\n      display: inline-block;\n      color: #008000);\n      background: var(--kr-light);\n      border-radius: 4px;\n      padding: 4px 8px;\n      font-size: 10px;\n      font-weight: 700;\n      letter-spacing: .8px;\n      text-transform: uppercase;\n    }\n    #kunye-recipe-library .kr-card h3 {\n      font-size: 18px;\n      line-height: 1.35;\n      margin: 11px 0 8px;\n      color: var(--kr-dark);\n    }\n    #kunye-recipe-library .kr-card p {\n      font-size: 13px;\n      color: var(--kr-ink);\n      line-height: 1.6;\n      margin: 0 0 13px;\n    }\n    #kunye-recipe-library .kr-view {\n      padding: 0;\n      border: 0;\n      background: transparent;\n      color: #008000;\n      font-weight: 700;\n      font-size: 13px;\n      text-align: left;\n    }\n    #kunye-recipe-library .kr-view:hover { text-decoration: underline; }\n    #kunye-recipe-library .kr-empty {\n      padding: 36px 15px;\n      text-align: center;\n      border: 1px dashed #cbded0;\n      border-radius: 12px;\n      color: var(--kr-muted);\n      grid-column: 1 \/ -1;\n    }\n    #kunye-recipe-library .kr-download-panel {\n      background: #008000;\n      color: white;\n      border-radius: 15px;\n      margin-top: 28px;\n      padding: 22px 24px;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      flex-wrap: wrap;\n      gap: 18px;\n    }\n    #kunye-recipe-library .kr-download-panel h3 {\n      color: white;\n      font-size: 19px;\n      margin: 0 0 6px;\n    }\n    #kunye-recipe-library .kr-download-panel p {\n      margin: 0;\n      color: #d7e8dd;\n      font-size: 13px;\n      line-height: 1.6;\n    }\n    #kunye-recipe-library .kr-download {\n      background: #fff;\n      color: var(--kr-dark);\n      border: 1px solid white;\n      border-radius: 8px;\n      padding: 13px 19px;\n      font-weight: 700;\n      font-size: 13px;\n    }\n    #kunye-recipe-library .kr-download:hover {\n      background: #e8f3e9;\n    }\n    #kunye-recipe-library .kr-download:disabled {\n      opacity: .45;\n      cursor: not-allowed;\n    }\n    #kunye-recipe-library .kr-note {\n      margin-top: 12px;\n      color: var(--kr-muted);\n      font-size: 12px;\n      line-height: 1.6;\n    }\n    #kunye-recipe-library .kr-modal {\n      display: none;\n      position: fixed;\n      z-index: 999999;\n      inset: 0;\n      background: rgba(16, 35, 26, .72);\n      padding: 20px;\n      overflow-y: auto;\n      align-items: center;\n      justify-content: center;\n    }\n    #kunye-recipe-library .kr-modal.kr-open { display: flex; }\n    #kunye-recipe-library .kr-modal-content {\n      position: relative;\n      width: min(620px, 100%);\n      background: white;\n      border-radius: 15px;\n      padding: 28px;\n      max-height: 90vh;\n      overflow-y: auto;\n    }\n    #kunye-recipe-library .kr-close {\n      position: absolute;\n      right: 12px;\n      top: 10px;\n      width: 36px;\n      height: 36px;\n      border: 0;\n      border-radius: 50%;\n      background: #edf6ef;\n      color: var(--kr-dark);\n      font-size: 23px;\n    }\n    #kunye-recipe-library .kr-modal-content h3 {\n      color: var(--kr-dark);\n      font-size: 26px;\n      margin: 16px 35px 10px 0;\n    }\n    #kunye-recipe-library .kr-modal-content p {\n      line-height: 1.7;\n      color: var(--kr-muted);\n    }\n    #kunye-recipe-library .kr-modal-content .kr-modal-warning {\n      padding: 13px;\n      background: #f7faf7;\n      border-left: 3px solid var(--kr-green);\n      font-size: 13px;\n    }\n    @media(max-width: 850px) {\n      #kunye-recipe-library .kr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }\n    }\n    @media(max-width: 520px) {\n      #kunye-recipe-library .kr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }\n      #kunye-recipe-library .kr-card-body { padding: 11px; }\n      #kunye-recipe-library .kr-card h3 { font-size: 15px; }\n      #kunye-recipe-library .kr-card p { font-size: 12px; }\n      #kunye-recipe-library .kr-toolbar { padding: 14px; }\n      #kunye-recipe-library .kr-download-panel { padding: 18px; }\n      #kunye-recipe-library .kr-download { width: 100%; }\n    }\n    @media print {\n      body * { visibility: hidden !important; }\n      #kr-print-output, #kr-print-output * { visibility: visible !important; }\n      #kr-print-output {\n        display: block !important;\n        position: absolute;\n        left: 0;\n        top: 0;\n        width: 100%;\n        background: white;\n        color: black;\n        padding: 20px;\n      }\n    }\n  <\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b9e7eef elementor-widget elementor-widget-shortcode\" data-id=\"b9e7eef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n\t<div id=\"kaf-menu-2\" class=\"kaf-dynamic-recipe-menu\">\n\n\t\t<style>\n\t\t\t#kaf-menu-2 {\n\t\t\t\t--kr-green:#008000;\n\t\t\t\t--kr-dark:#006400;\n\t\t\t\t--kr-light:#f0f8ee;\n\t\t\t\t--kr-ink:#000000;\n\t\t\t\tfont-family:inherit;\n\t\t\t\tcolor:var(--kr-ink);\n\t\t\t\twidth:100%;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 *,\n\t\t\t#kaf-menu-2 *:before,\n\t\t\t#kaf-menu-2 *:after {\n\t\t\t\tbox-sizing:border-box;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 button {\n\t\t\t\tfont:inherit;\n\t\t\t\tcursor:pointer;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-intro {\n\t\t\t\ttext-align:center;\n\t\t\t\tpadding:26px 12px 30px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-eyebrow {\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t\ttext-transform:uppercase;\n\t\t\t\tletter-spacing:2px;\n\t\t\t\tfont-size:12px;\n\t\t\t\tfont-weight:700;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-intro h2 {\n\t\t\t\tfont-size:clamp(28px,4vw,42px);\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t\tmargin:10px 0;\n\t\t\t\tline-height:1.2;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-intro p {\n\t\t\t\tmax-width:720px;\n\t\t\t\tmargin:0 auto;\n\t\t\t\tcolor:#000;\n\t\t\t\tline-height:1.7;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-toolbar {\n\t\t\t\tbackground:#f7faf7;\n\t\t\t\tborder:1px solid #dfe9df;\n\t\t\t\tborder-radius:16px;\n\t\t\t\tpadding:20px;\n\t\t\t\tmargin-bottom:24px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-search {\n\t\t\t\tdisplay:block;\n\t\t\t\twidth:100%;\n\t\t\t\tpadding:14px 16px;\n\t\t\t\tborder:1px solid #cbded0;\n\t\t\t\tborder-radius:9px;\n\t\t\t\tbackground:#fff;\n\t\t\t\tfont:inherit;\n\t\t\t\tcolor:#000;\n\t\t\t\tmargin-bottom:16px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-label {\n\t\t\t\tfont-size:12px;\n\t\t\t\tfont-weight:700;\n\t\t\t\ttext-transform:uppercase;\n\t\t\t\tletter-spacing:1px;\n\t\t\t\tdisplay:block;\n\t\t\t\tmargin-bottom:10px;\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-filters {\n\t\t\t\tdisplay:flex;\n\t\t\t\tflex-wrap:wrap;\n\t\t\t\tgap:8px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-filter {\n\t\t\t\tdisplay:inline-block;\n\t\t\t\tborder:1px solid #cbded0;\n\t\t\t\tcolor:var(--kr-dark);\n\t\t\t\tbackground:#fff;\n\t\t\t\tpadding:9px 14px;\n\t\t\t\tborder-radius:30px;\n\t\t\t\tfont-size:13px;\n\t\t\t\ttext-decoration:none;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-filter:hover,\n\t\t\t#kaf-menu-2 .kr-filter.kr-active {\n\t\t\t\tbackground:var(--kr-green);\n\t\t\t\tcolor:#fff;\n\t\t\t\tborder-color:var(--kr-green);\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-selection-bar {\n\t\t\t\tdisplay:flex;\n\t\t\t\tjustify-content:space-between;\n\t\t\t\talign-items:center;\n\t\t\t\tflex-wrap:wrap;\n\t\t\t\tgap:14px;\n\t\t\t\tmargin:22px 0 16px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-selection-count {\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t\tfont-size:14px;\n\t\t\t\tfont-weight:700;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-text-button {\n\t\t\t\tborder:0;\n\t\t\t\tbackground:transparent;\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t\tpadding:6px;\n\t\t\t\tfont-size:13px;\n\t\t\t\ttext-decoration:underline;\n\t\t\t\ttext-underline-offset:3px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-grid {\n\t\t\t\tdisplay:grid;\n\t\t\t\tgrid-template-columns:repeat(3,minmax(0,1fr));\n\t\t\t\tgap:20px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-card {\n\t\t\t\tposition:relative;\n\t\t\t\tborder:2px solid var(--kr-green);\n\t\t\t\tbackground:#fff;\n\t\t\t\tborder-radius:13px;\n\t\t\t\toverflow:hidden;\n\t\t\t\tmin-width:0;\n\t\t\t\ttransition:box-shadow .2s,transform .2s;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-card:hover {\n\t\t\t\ttransform:translateY(-3px);\n\t\t\t\tbox-shadow:0 8px 24px rgba(23,63,41,.12);\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-card.kr-selected {\n\t\t\t\tborder-color:var(--kr-dark);\n\t\t\t\tbox-shadow:0 0 0 3px rgba(0,128,0,.14);\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-card[hidden] {\n\t\t\t\tdisplay:none!important;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-image {\n\t\t\t\taspect-ratio:4\/3;\n\t\t\t\tposition:relative;\n\t\t\t\tbackground:linear-gradient(135deg,#e3eee3,#f6f1e5);\n\t\t\t\toverflow:hidden;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-image a {\n\t\t\t\tdisplay:block;\n\t\t\t\twidth:100%;\n\t\t\t\theight:100%;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-image img {\n\t\t\t\tdisplay:block;\n\t\t\t\twidth:100%;\n\t\t\t\theight:100%;\n\t\t\t\tobject-fit:cover;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-no-image:after {\n\t\t\t\tcontent:\"Ku\u1e4bye \u00b7 Heritage Recipes\";\n\t\t\t\tposition:absolute;\n\t\t\t\tleft:12px;\n\t\t\t\tright:12px;\n\t\t\t\tbottom:14px;\n\t\t\t\ttext-align:center;\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t\tfont-size:13px;\n\t\t\t\tletter-spacing:.5px;\n\t\t\t\tpointer-events:none;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-check {\n\t\t\t\tappearance:none;\n\t\t\t\t-webkit-appearance:none;\n\t\t\t\tposition:absolute;\n\t\t\t\tz-index:3;\n\t\t\t\ttop:10px;\n\t\t\t\tright:10px;\n\t\t\t\twidth:29px;\n\t\t\t\theight:29px;\n\t\t\t\tmargin:0;\n\t\t\t\tbackground:rgba(255,255,255,.96);\n\t\t\t\tborder:2px solid var(--kr-green);\n\t\t\t\tborder-radius:5px;\n\t\t\t\tcursor:pointer;\n\t\t\t\tdisplay:grid;\n\t\t\t\tplace-items:center;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-check:checked {\n\t\t\t\tbackground:var(--kr-green);\n\t\t\t\tborder-color:var(--kr-green);\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-check:checked:after {\n\t\t\t\tcontent:\"\u2713\";\n\t\t\t\tcolor:#fff;\n\t\t\t\tfont-size:19px;\n\t\t\t\tfont-weight:700;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-check:focus-visible {\n\t\t\t\toutline:3px solid var(--kr-green);\n\t\t\t\toutline-offset:3px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-card-body {\n\t\t\t\tpadding:15px 16px 17px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-tag {\n\t\t\t\tdisplay:inline-block;\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t\tbackground:var(--kr-light);\n\t\t\t\tborder-radius:4px;\n\t\t\t\tpadding:4px 8px;\n\t\t\t\tfont-size:10px;\n\t\t\t\tfont-weight:700;\n\t\t\t\tletter-spacing:.8px;\n\t\t\t\ttext-transform:uppercase;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-card h3 {\n\t\t\t\tfont-size:18px;\n\t\t\t\tline-height:1.35;\n\t\t\t\tmargin:11px 0 8px;\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-card h3 a {\n\t\t\t\tcolor:var(--kr-green)!important;\n\t\t\t\ttext-decoration:none!important;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-card h3 a:hover {\n\t\t\t\ttext-decoration:underline!important;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-card p {\n\t\t\t\tfont-size:13px;\n\t\t\t\tcolor:#000;\n\t\t\t\tline-height:1.6;\n\t\t\t\tmargin:0 0 13px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-view {\n\t\t\t\tpadding:0;\n\t\t\t\tborder:0;\n\t\t\t\tbackground:transparent;\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t\tfont-weight:700;\n\t\t\t\tfont-size:13px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-view:hover {\n\t\t\t\ttext-decoration:underline;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-empty {\n\t\t\t\tpadding:36px 15px;\n\t\t\t\ttext-align:center;\n\t\t\t\tborder:1px dashed var(--kr-green);\n\t\t\t\tborder-radius:12px;\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t\tgrid-column:1\/-1;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-download-panel {\n\t\t\t\tbackground:var(--kr-green);\n\t\t\t\tcolor:#fff;\n\t\t\t\tborder-radius:22px;\n\t\t\t\tmargin-top:28px;\n\t\t\t\tpadding:22px 24px;\n\t\t\t\tdisplay:flex;\n\t\t\t\tjustify-content:space-between;\n\t\t\t\talign-items:center;\n\t\t\t\tflex-wrap:wrap;\n\t\t\t\tgap:18px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-download-panel h3 {\n\t\t\t\tcolor:#fff;\n\t\t\t\tfont-size:19px;\n\t\t\t\tmargin:0 0 6px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-download-panel p {\n\t\t\t\tmargin:0;\n\t\t\t\tcolor:#fff;\n\t\t\t\tfont-size:13px;\n\t\t\t\tline-height:1.6;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-download {\n\t\t\t\tbackground:#fff;\n\t\t\t\tcolor:var(--kr-dark);\n\t\t\t\tborder:1px solid #fff;\n\t\t\t\tborder-radius:8px;\n\t\t\t\tpadding:13px 19px;\n\t\t\t\tfont-weight:700;\n\t\t\t\tfont-size:13px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-download:hover {\n\t\t\t\tbackground:#e8f3e9;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-download:disabled {\n\t\t\t\topacity:.55;\n\t\t\t\tcursor:not-allowed;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-note {\n\t\t\t\tmargin-top:12px;\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t\tfont-size:12px;\n\t\t\t\tline-height:1.6;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-modal {\n\t\t\t\tdisplay:none;\n\t\t\t\tposition:fixed;\n\t\t\t\tz-index:999999;\n\t\t\t\tinset:0;\n\t\t\t\tbackground:rgba(16,35,26,.72);\n\t\t\t\tpadding:20px;\n\t\t\t\toverflow-y:auto;\n\t\t\t\talign-items:center;\n\t\t\t\tjustify-content:center;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-modal.kr-open {\n\t\t\t\tdisplay:flex;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-modal-content {\n\t\t\t\tposition:relative;\n\t\t\t\twidth:min(760px,100%);\n\t\t\t\tbackground:#fff;\n\t\t\t\tborder-radius:18px;\n\t\t\t\tpadding:28px;\n\t\t\t\tmax-height:90vh;\n\t\t\t\toverflow-y:auto;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-close {\n\t\t\t\tposition:absolute;\n\t\t\t\tright:12px;\n\t\t\t\ttop:10px;\n\t\t\t\twidth:36px;\n\t\t\t\theight:36px;\n\t\t\t\tborder:0;\n\t\t\t\tborder-radius:50%;\n\t\t\t\tbackground:var(--kr-light);\n\t\t\t\tcolor:var(--kr-dark);\n\t\t\t\tfont-size:23px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-modal-image {\n\t\t\t\tdisplay:block;\n\t\t\t\twidth:100%;\n\t\t\t\tmax-height:380px;\n\t\t\t\tobject-fit:contain;\n\t\t\t\tbackground:var(--kr-light);\n\t\t\t\tborder-radius:12px;\n\t\t\t\tmargin-bottom:18px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-modal-content h3 {\n\t\t\t\tcolor:var(--kr-green);\n\t\t\t\tfont-size:28px;\n\t\t\t\tline-height:1.3;\n\t\t\t\tmargin:16px 35px 10px 0;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-modal-content p {\n\t\t\t\tline-height:1.7;\n\t\t\t\tcolor:#000;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-modal-warning {\n\t\t\t\tpadding:13px;\n\t\t\t\tbackground:#f7faf7;\n\t\t\t\tborder-left:3px solid var(--kr-green);\n\t\t\t\tfont-size:13px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-modal-actions {\n\t\t\t\tdisplay:flex;\n\t\t\t\tflex-wrap:wrap;\n\t\t\t\tgap:9px;\n\t\t\t}\n\n\t\t\t#kaf-menu-2 .kr-modal-actions a {\n\t\t\t\ttext-decoration:none;\n\t\t\t}\n\n\t\t\t@media(max-width:850px) {\n\t\t\t\t#kaf-menu-2 .kr-grid {\n\t\t\t\t\tgrid-template-columns:repeat(2,minmax(0,1fr));\n\t\t\t\t\tgap:14px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media(max-width:520px) {\n\t\t\t\t#kaf-menu-2 .kr-grid {\n\t\t\t\t\tgrid-template-columns:repeat(2,minmax(0,1fr));\n\t\t\t\t\tgap:10px;\n\t\t\t\t}\n\n\t\t\t\t#kaf-menu-2 .kr-card-body {\n\t\t\t\t\tpadding:11px;\n\t\t\t\t}\n\n\t\t\t\t#kaf-menu-2 .kr-card h3 {\n\t\t\t\t\tfont-size:15px;\n\t\t\t\t}\n\n\t\t\t\t#kaf-menu-2 .kr-card p {\n\t\t\t\t\tfont-size:12px;\n\t\t\t\t}\n\n\t\t\t\t#kaf-menu-2 .kr-toolbar {\n\t\t\t\t\tpadding:14px;\n\t\t\t\t}\n\n\t\t\t\t#kaf-menu-2 .kr-download-panel {\n\t\t\t\t\tpadding:18px;\n\t\t\t\t}\n\n\t\t\t\t#kaf-menu-2 .kr-download {\n\t\t\t\t\twidth:100%;\n\t\t\t\t}\n\n\t\t\t\t#kaf-menu-2 .kr-modal-content {\n\t\t\t\t\tpadding:18px;\n\t\t\t\t}\n\t\t\t}\n\t\t<\/style>\n\n\t\t<section class=\"kr-intro\">\n\t\t\t<span class=\"kr-eyebrow\">Ku\u1e4bye Art Foundation<\/span>\n\t\t\t<h2>Explore the Heritage Collection<\/h2>\n\t\t\t<p>\n\t\t\t\tDiscover the flavours, memories and traditions that bring us together.\n\t\t\t\tChoose the recipes you love and build a collection to take home.\n\t\t\t<\/p>\n\t\t<\/section>\n\n\t\t<section class=\"kr-toolbar\" aria-label=\"Search and filter recipes\">\n\t\t\t<label class=\"kr-label\" for=\"kaf-menu-2-search\">\n\t\t\t\tFind something delicious\n\t\t\t<\/label>\n\n\t\t\t<input\n\t\t\t\tid=\"kaf-menu-2-search\"\n\t\t\t\tclass=\"kr-search\"\n\t\t\t\ttype=\"search\"\n\t\t\t\tplaceholder=\"Search recipes, authors or descriptions...\"\n\t\t\t\/>\n\n\t\t\t<span class=\"kr-label\">Explore by collection<\/span>\n\n\t\t\t<div class=\"kr-filters\">\n\t\t\t\t<button class=\"kr-filter kr-active\" type=\"button\" data-filter=\"all\">\n\t\t\t\t\tAll recipes\n\t\t\t\t<\/button>\n\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\n\t\t<div class=\"kr-selection-bar\">\n\t\t\t<div class=\"kr-selection-count\" aria-live=\"polite\">\n\t\t\t\t<span class=\"kr-count\">0<\/span> recipes selected\n\t\t\t<\/div>\n\n\t\t\t<div>\n\t\t\t\t<button class=\"kr-text-button kr-select-visible\" type=\"button\">\n\t\t\t\t\tSelect visible\n\t\t\t\t<\/button>\n\n\t\t\t\t<button class=\"kr-text-button kr-clear\" type=\"button\">\n\t\t\t\t\tClear selection\n\t\t\t\t<\/button>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<div class=\"kr-grid\">\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t<article\n\t\t\t\t\t\tclass=\"kr-card\"\n\t\t\t\t\t\tdata-id=\"19253\"\n\t\t\t\t\t\tdata-terms=\"\"\n\t\t\t\t\t\tdata-search=\"christines&#8217; chocolate banana loaf  kunye art foundation \"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"kr-image kr-no-image\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"kr-check\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\taria-label=\"Select Christines&#8217; Chocolate Banana Loaf\"\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"kr-card-body\">\n\t\t\t\t\t\t\t<span class=\"kr-tag\">Heritage recipe<\/span>\n\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\tclass=\"kr-title-link\"\n\t\t\t\t\t\t\t\t\thref=\"https:\/\/www.kunyeartfoundation.org\/?p=19253\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tChristines&#8217; Chocolate Banana Loaf\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t\t\t<p class=\"kr-description\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"kr-author\">\n\t\t\t\t\t\t\t\t\t<strong>Recipe by:<\/strong>\n\t\t\t\t\t\t\t\t\tKunye Art Foundation\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"kr-view\" type=\"button\">\n\t\t\t\t\t\t\t\tDiscover this recipe \u2192\n\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/article>\n\n\t\t\t\t\n\t\t\t\t\t<article\n\t\t\t\t\t\tclass=\"kr-card\"\n\t\t\t\t\t\tdata-id=\"19247\"\n\t\t\t\t\t\tdata-terms=\"\"\n\t\t\t\t\t\tdata-search=\"corinnes&#8217; papballetjies  kunye art foundation \"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"kr-image kr-no-image\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"kr-check\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\taria-label=\"Select Corinnes&#8217; Papballetjies\"\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"kr-card-body\">\n\t\t\t\t\t\t\t<span class=\"kr-tag\">Heritage recipe<\/span>\n\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\tclass=\"kr-title-link\"\n\t\t\t\t\t\t\t\t\thref=\"https:\/\/www.kunyeartfoundation.org\/?p=19247\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tCorinnes&#8217; Papballetjies\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t\t\t<p class=\"kr-description\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"kr-author\">\n\t\t\t\t\t\t\t\t\t<strong>Recipe by:<\/strong>\n\t\t\t\t\t\t\t\t\tKunye Art Foundation\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"kr-view\" type=\"button\">\n\t\t\t\t\t\t\t\tDiscover this recipe \u2192\n\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/article>\n\n\t\t\t\t\n\t\t\t\t\t<article\n\t\t\t\t\t\tclass=\"kr-card\"\n\t\t\t\t\t\tdata-id=\"19246\"\n\t\t\t\t\t\tdata-terms=\"\"\n\t\t\t\t\t\tdata-search=\"elizabeths&#8217; grannys&#8217; babotie  kunye art foundation \"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"kr-image kr-no-image\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"kr-check\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\taria-label=\"Select Elizabeths&#8217; Grannys&#8217; Babotie\"\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"kr-card-body\">\n\t\t\t\t\t\t\t<span class=\"kr-tag\">Heritage recipe<\/span>\n\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\tclass=\"kr-title-link\"\n\t\t\t\t\t\t\t\t\thref=\"https:\/\/www.kunyeartfoundation.org\/?p=19246\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tElizabeths&#8217; Grannys&#8217; Babotie\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t\t\t<p class=\"kr-description\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"kr-author\">\n\t\t\t\t\t\t\t\t\t<strong>Recipe by:<\/strong>\n\t\t\t\t\t\t\t\t\tKunye Art Foundation\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"kr-view\" type=\"button\">\n\t\t\t\t\t\t\t\tDiscover this recipe \u2192\n\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/article>\n\n\t\t\t\t\n\t\t\t\t\t<article\n\t\t\t\t\t\tclass=\"kr-card\"\n\t\t\t\t\t\tdata-id=\"19252\"\n\t\t\t\t\t\tdata-terms=\"\"\n\t\t\t\t\t\tdata-search=\"elsa-maries&#8217; rhubarb tart  kunye art foundation \"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"kr-image kr-no-image\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"kr-check\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\taria-label=\"Select Elsa-Maries&#8217; Rhubarb Tart\"\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"kr-card-body\">\n\t\t\t\t\t\t\t<span class=\"kr-tag\">Heritage recipe<\/span>\n\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\tclass=\"kr-title-link\"\n\t\t\t\t\t\t\t\t\thref=\"https:\/\/www.kunyeartfoundation.org\/?p=19252\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tElsa-Maries&#8217; Rhubarb Tart\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t\t\t<p class=\"kr-description\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"kr-author\">\n\t\t\t\t\t\t\t\t\t<strong>Recipe by:<\/strong>\n\t\t\t\t\t\t\t\t\tKunye Art Foundation\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"kr-view\" type=\"button\">\n\t\t\t\t\t\t\t\tDiscover this recipe \u2192\n\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/article>\n\n\t\t\t\t\n\t\t\t\t\t<article\n\t\t\t\t\t\tclass=\"kr-card\"\n\t\t\t\t\t\tdata-id=\"19244\"\n\t\t\t\t\t\tdata-terms=\"\"\n\t\t\t\t\t\tdata-search=\"esethu&#8217;s umngqusho  kunye art foundation \"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"kr-image kr-no-image\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"kr-check\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\taria-label=\"Select Esethu&#8217;s Umngqusho\"\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"kr-card-body\">\n\t\t\t\t\t\t\t<span class=\"kr-tag\">Heritage recipe<\/span>\n\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\tclass=\"kr-title-link\"\n\t\t\t\t\t\t\t\t\thref=\"https:\/\/www.kunyeartfoundation.org\/?p=19244\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tEsethu&#8217;s Umngqusho\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t\t\t<p class=\"kr-description\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"kr-author\">\n\t\t\t\t\t\t\t\t\t<strong>Recipe by:<\/strong>\n\t\t\t\t\t\t\t\t\tKunye Art Foundation\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"kr-view\" type=\"button\">\n\t\t\t\t\t\t\t\tDiscover this recipe \u2192\n\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/article>\n\n\t\t\t\t\n\t\t\t\t\t<article\n\t\t\t\t\t\tclass=\"kr-card\"\n\t\t\t\t\t\tdata-id=\"19242\"\n\t\t\t\t\t\tdata-terms=\"\"\n\t\t\t\t\t\tdata-search=\"fil&#8217;s kourambiedes  kunye art foundation \"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"kr-image kr-no-image\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"kr-check\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\taria-label=\"Select Fil&#8217;s Kourambiedes\"\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"kr-card-body\">\n\t\t\t\t\t\t\t<span class=\"kr-tag\">Heritage recipe<\/span>\n\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\tclass=\"kr-title-link\"\n\t\t\t\t\t\t\t\t\thref=\"https:\/\/www.kunyeartfoundation.org\/?p=19242\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tFil&#8217;s Kourambiedes\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t\t\t<p class=\"kr-description\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"kr-author\">\n\t\t\t\t\t\t\t\t\t<strong>Recipe by:<\/strong>\n\t\t\t\t\t\t\t\t\tKunye Art Foundation\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"kr-view\" type=\"button\">\n\t\t\t\t\t\t\t\tDiscover this recipe \u2192\n\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/article>\n\n\t\t\t\t\n\t\t\t\t\t<article\n\t\t\t\t\t\tclass=\"kr-card\"\n\t\t\t\t\t\tdata-id=\"18996\"\n\t\t\t\t\t\tdata-terms=\"\"\n\t\t\t\t\t\tdata-search=\"malva pudding  kunye art foundation \"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"kr-image kr-no-image\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"kr-check\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\taria-label=\"Select Malva Pudding\"\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"kr-card-body\">\n\t\t\t\t\t\t\t<span class=\"kr-tag\">Heritage recipe<\/span>\n\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\tclass=\"kr-title-link\"\n\t\t\t\t\t\t\t\t\thref=\"https:\/\/www.kunyeartfoundation.org\/?p=18996\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tMalva Pudding\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t\t\t<p class=\"kr-description\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"kr-author\">\n\t\t\t\t\t\t\t\t\t<strong>Recipe by:<\/strong>\n\t\t\t\t\t\t\t\t\tKunye Art Foundation\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"kr-view\" type=\"button\">\n\t\t\t\t\t\t\t\tDiscover this recipe \u2192\n\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/article>\n\n\t\t\t\t\n\t\t\t\t\t<article\n\t\t\t\t\t\tclass=\"kr-card\"\n\t\t\t\t\t\tdata-id=\"18990\"\n\t\t\t\t\t\tdata-terms=\"\"\n\t\t\t\t\t\tdata-search=\"recipes &#8211; on our tables, under the table denningvleis from aneesah one of the oldest and most favoured cape malay recipes with an exciting combination of spices. the name denning comes from the javanese word dendeng,\u2026 kunye art foundation \"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"kr-image kr-no-image\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"kr-check\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\taria-label=\"Select Recipes &#8211; on our Tables, under The Table\"\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"kr-card-body\">\n\t\t\t\t\t\t\t<span class=\"kr-tag\">Heritage recipe<\/span>\n\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\tclass=\"kr-title-link\"\n\t\t\t\t\t\t\t\t\thref=\"https:\/\/www.kunyeartfoundation.org\/?p=18990\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tRecipes &#8211; on our Tables, under The Table\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t\t\t<p class=\"kr-description\">\n\t\t\t\t\t\t\t\tDenningvleis from Aneesah One of the oldest and most favoured Cape Malay recipes with an exciting combination of spices. The name denning comes from the Javanese word dendeng,\u2026\t\t\t\t\t\t\t<\/p>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"kr-author\">\n\t\t\t\t\t\t\t\t\t<strong>Recipe by:<\/strong>\n\t\t\t\t\t\t\t\t\tKunye Art Foundation\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"kr-view\" type=\"button\">\n\t\t\t\t\t\t\t\tDiscover this recipe \u2192\n\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/article>\n\n\t\t\t\t\n\t\t\t\t\t<article\n\t\t\t\t\t\tclass=\"kr-card\"\n\t\t\t\t\t\tdata-id=\"19238\"\n\t\t\t\t\t\tdata-terms=\"\"\n\t\t\t\t\t\tdata-search=\"sweet potato corn chowder  kunye art foundation \"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"kr-image kr-no-image\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"kr-check\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\taria-label=\"Select Sweet Potato Corn Chowder\"\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"kr-card-body\">\n\t\t\t\t\t\t\t<span class=\"kr-tag\">Heritage recipe<\/span>\n\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\tclass=\"kr-title-link\"\n\t\t\t\t\t\t\t\t\thref=\"https:\/\/www.kunyeartfoundation.org\/?p=19238\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tSweet Potato Corn Chowder\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t\t\t<p class=\"kr-description\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"kr-author\">\n\t\t\t\t\t\t\t\t\t<strong>Recipe by:<\/strong>\n\t\t\t\t\t\t\t\t\tKunye Art Foundation\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"kr-view\" type=\"button\">\n\t\t\t\t\t\t\t\tDiscover this recipe \u2192\n\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/article>\n\n\t\t\t\t\n\t\t\t\t\t<article\n\t\t\t\t\t\tclass=\"kr-card\"\n\t\t\t\t\t\tdata-id=\"19178\"\n\t\t\t\t\t\tdata-terms=\"\"\n\t\t\t\t\t\tdata-search=\"traditional ashkenazi jewish chopped liver  kunye art foundation \"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"kr-image kr-no-image\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"kr-check\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\taria-label=\"Select Traditional Ashkenazi Jewish chopped liver\"\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"kr-card-body\">\n\t\t\t\t\t\t\t<span class=\"kr-tag\">Heritage recipe<\/span>\n\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\tclass=\"kr-title-link\"\n\t\t\t\t\t\t\t\t\thref=\"https:\/\/www.kunyeartfoundation.org\/?p=19178\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tTraditional Ashkenazi Jewish chopped liver\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t\t\t<p class=\"kr-description\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"kr-author\">\n\t\t\t\t\t\t\t\t\t<strong>Recipe by:<\/strong>\n\t\t\t\t\t\t\t\t\tKunye Art Foundation\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"kr-view\" type=\"button\">\n\t\t\t\t\t\t\t\tDiscover this recipe \u2192\n\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/article>\n\n\t\t\t\t\n\t\t\t\t\t<article\n\t\t\t\t\t\tclass=\"kr-card\"\n\t\t\t\t\t\tdata-id=\"19217\"\n\t\t\t\t\t\tdata-terms=\"\"\n\t\t\t\t\t\tdata-search=\"traditional cheese scones  kunye art foundation \"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"kr-image kr-no-image\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"kr-check\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\taria-label=\"Select Traditional Cheese Scones\"\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"kr-card-body\">\n\t\t\t\t\t\t\t<span class=\"kr-tag\">Heritage recipe<\/span>\n\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\tclass=\"kr-title-link\"\n\t\t\t\t\t\t\t\t\thref=\"https:\/\/www.kunyeartfoundation.org\/?p=19217\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tTraditional Cheese Scones\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t\t\t<p class=\"kr-description\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"kr-author\">\n\t\t\t\t\t\t\t\t\t<strong>Recipe by:<\/strong>\n\t\t\t\t\t\t\t\t\tKunye Art Foundation\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"kr-view\" type=\"button\">\n\t\t\t\t\t\t\t\tDiscover this recipe \u2192\n\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/article>\n\n\t\t\t\t\n\t\t\t\t\t<\/div>\n\n\t\t<section class=\"kr-download-panel\">\n\t\t\t<div>\n\t\t\t\t<h3>Your personal recipe collection<\/h3>\n\t\t\t\t<p class=\"kr-download-caption\">\n\t\t\t\t\tChoose your favourites to prepare your collection.\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\n\t\t\t<button class=\"kr-download\" type=\"button\" disabled>\n\t\t\t\tPrepare selected recipes\n\t\t\t<\/button>\n\t\t<\/section>\n\n\t\t<p class=\"kr-note\">\n\t\t\tSelect the recipes you want in your book. The collection will include\n\t\t\tingredients, cooking instructions, method headings, notes and recipe\n\t\t\timages where available. Your browser will let you print or save the\n\t\t\tfinished collection as a PDF.\n\t\t<\/p>\n\n\t\t<div class=\"kr-modal\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Recipe details\">\n\t\t\t<div class=\"kr-modal-content\">\n\t\t\t\t<button class=\"kr-close\" type=\"button\" aria-label=\"Close recipe details\">\n\t\t\t\t\t\u00d7\n\t\t\t\t<\/button>\n\n\t\t\t\t<img class=\"kr-modal-image\" alt=\"\" hidden \/>\n\n\t\t\t\t<div class=\"kr-modal-tag kr-tag\">Heritage recipe<\/div>\n\t\t\t\t<h3 class=\"kr-modal-title\"><\/h3>\n\t\t\t\t<p class=\"kr-modal-description\"><\/p>\n\n\t\t\t\t<p class=\"kr-modal-warning\">\n\t\t\t\t\tOpen the original published recipe to see its complete WP Recipe Maker\n\t\t\t\t\tcontent. The printable collection is assembled from that page.\n\t\t\t\t<\/p>\n\n\t\t\t\t<div class=\"kr-modal-actions\">\n\t\t\t\t\t<a class=\"kr-modal-open kr-filter kr-active\" href=\"#\">\n\t\t\t\t\t\tOpen full recipe\n\t\t\t\t\t<\/a>\n\n\t\t\t\t\t<button class=\"kr-modal-select kr-filter\" type=\"button\">\n\t\t\t\t\t\tAdd to my collection\n\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<script>\n\t\t(function() {\n\t\t\t'use strict';\n\n\t\t\tconst root = document.getElementById(\n\t\t\t\t\"kaf-menu-2\"\t\t\t);\n\n\t\t\tif (!root || root.dataset.initialized === 'true') return;\n\t\t\troot.dataset.initialized = 'true';\n\n\t\t\tconst search = root.querySelector('.kr-search');\n\t\t\tconst cards = Array.from(root.querySelectorAll('.kr-card[data-id]'));\n\t\t\tconst count = root.querySelector('.kr-count');\n\t\t\tconst caption = root.querySelector('.kr-download-caption');\n\t\t\tconst download = root.querySelector('.kr-download');\n\t\t\tconst grid = root.querySelector('.kr-grid');\n\t\t\tconst modal = root.querySelector('.kr-modal');\n\t\t\tconst modalImg = root.querySelector('.kr-modal-image');\n\t\t\tconst selected = new Set();\n\t\t\tconst recipeData = [{\"id\":\"19253\",\"name\":\"Christines\\u0026#8217; Chocolate Banana Loaf\",\"url\":\"https:\\\/\\\/www.kunyeartfoundation.org\\\/?p=19253\",\"description\":\"\",\"image\":\"\",\"author\":\"Kunye Art Foundation\",\"terms\":[],\"tag\":\"Heritage recipe\",\"search\":\"christines\\u0026#8217; chocolate banana loaf  kunye art foundation \"},{\"id\":\"19247\",\"name\":\"Corinnes\\u0026#8217; Papballetjies\",\"url\":\"https:\\\/\\\/www.kunyeartfoundation.org\\\/?p=19247\",\"description\":\"\",\"image\":\"\",\"author\":\"Kunye Art Foundation\",\"terms\":[],\"tag\":\"Heritage recipe\",\"search\":\"corinnes\\u0026#8217; papballetjies  kunye art foundation \"},{\"id\":\"19246\",\"name\":\"Elizabeths\\u0026#8217; Grannys\\u0026#8217; Babotie\",\"url\":\"https:\\\/\\\/www.kunyeartfoundation.org\\\/?p=19246\",\"description\":\"\",\"image\":\"\",\"author\":\"Kunye Art Foundation\",\"terms\":[],\"tag\":\"Heritage recipe\",\"search\":\"elizabeths\\u0026#8217; grannys\\u0026#8217; babotie  kunye art foundation \"},{\"id\":\"19252\",\"name\":\"Elsa-Maries\\u0026#8217; Rhubarb Tart\",\"url\":\"https:\\\/\\\/www.kunyeartfoundation.org\\\/?p=19252\",\"description\":\"\",\"image\":\"\",\"author\":\"Kunye Art Foundation\",\"terms\":[],\"tag\":\"Heritage recipe\",\"search\":\"elsa-maries\\u0026#8217; rhubarb tart  kunye art foundation \"},{\"id\":\"19244\",\"name\":\"Esethu\\u0026#8217;s Umngqusho\",\"url\":\"https:\\\/\\\/www.kunyeartfoundation.org\\\/?p=19244\",\"description\":\"\",\"image\":\"\",\"author\":\"Kunye Art Foundation\",\"terms\":[],\"tag\":\"Heritage recipe\",\"search\":\"esethu\\u0026#8217;s umngqusho  kunye art foundation \"},{\"id\":\"19242\",\"name\":\"Fil\\u0026#8217;s Kourambiedes\",\"url\":\"https:\\\/\\\/www.kunyeartfoundation.org\\\/?p=19242\",\"description\":\"\",\"image\":\"\",\"author\":\"Kunye Art Foundation\",\"terms\":[],\"tag\":\"Heritage recipe\",\"search\":\"fil\\u0026#8217;s kourambiedes  kunye art foundation \"},{\"id\":\"18996\",\"name\":\"Malva Pudding\",\"url\":\"https:\\\/\\\/www.kunyeartfoundation.org\\\/?p=18996\",\"description\":\"\",\"image\":\"\",\"author\":\"Kunye Art Foundation\",\"terms\":[],\"tag\":\"Heritage recipe\",\"search\":\"malva pudding  kunye art foundation \"},{\"id\":\"18990\",\"name\":\"Recipes \\u0026#8211; on our Tables, under The Table\",\"url\":\"https:\\\/\\\/www.kunyeartfoundation.org\\\/?p=18990\",\"description\":\"Denningvleis from Aneesah One of the oldest and most favoured Cape Malay recipes with an exciting combination of spices. The name denning comes from the Javanese word dendeng,\\u2026\",\"image\":\"\",\"author\":\"Kunye Art Foundation\",\"terms\":[],\"tag\":\"Heritage recipe\",\"search\":\"recipes \\u0026#8211; on our tables, under the table denningvleis from aneesah one of the oldest and most favoured cape malay recipes with an exciting combination of spices. the name denning comes from the javanese word dendeng,\\u2026 kunye art foundation \"},{\"id\":\"19238\",\"name\":\"Sweet Potato Corn Chowder\",\"url\":\"https:\\\/\\\/www.kunyeartfoundation.org\\\/?p=19238\",\"description\":\"\",\"image\":\"\",\"author\":\"Kunye Art Foundation\",\"terms\":[],\"tag\":\"Heritage recipe\",\"search\":\"sweet potato corn chowder  kunye art foundation \"},{\"id\":\"19178\",\"name\":\"Traditional Ashkenazi Jewish chopped liver\",\"url\":\"https:\\\/\\\/www.kunyeartfoundation.org\\\/?p=19178\",\"description\":\"\",\"image\":\"\",\"author\":\"Kunye Art Foundation\",\"terms\":[],\"tag\":\"Heritage recipe\",\"search\":\"traditional ashkenazi jewish chopped liver  kunye art foundation \"},{\"id\":\"19217\",\"name\":\"Traditional Cheese Scones\",\"url\":\"https:\\\/\\\/www.kunyeartfoundation.org\\\/?p=19217\",\"description\":\"\",\"image\":\"\",\"author\":\"Kunye Art Foundation\",\"terms\":[],\"tag\":\"Heritage recipe\",\"search\":\"traditional cheese scones  kunye art foundation \"}];\n\n\t\t\tlet activeFilter = 'all';\n\t\t\tlet openCard = null;\n\t\t\tlet loadingBook = false;\n\n\t\t\tfunction escapeHtml(value) {\n\t\t\t\treturn String(value == null ? '' : value).replace(\/[&<>\"']\/g, function(char) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t'&': '&amp;',\n\t\t\t\t\t\t'<': '&lt;',\n\t\t\t\t\t\t'>': '&gt;',\n\t\t\t\t\t\t'\"': '&quot;',\n\t\t\t\t\t\t\"'\": '&#39;'\n\t\t\t\t\t}[char];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction normaliseUrl(value, base) {\n\t\t\t\tif (!value) return '';\n\n\t\t\t\ttry {\n\t\t\t\t\tconst url = new URL(value, base || window.location.href);\n\n\t\t\t\t\tif (url.protocol !== 'https:' && url.protocol !== 'http:') {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn url.href;\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction visibleCards() {\n\t\t\t\tconst term = search.value.trim().toLowerCase();\n\n\t\t\t\treturn cards.filter(function(card) {\n\t\t\t\t\tconst terms = (card.dataset.terms || '')\n\t\t\t\t\t\t.split(\/\\s+\/)\n\t\t\t\t\t\t.filter(Boolean);\n\n\t\t\t\t\tconst matchesFilter =\n\t\t\t\t\t\tactiveFilter === 'all' || terms.includes(activeFilter);\n\n\t\t\t\t\tconst matchesSearch =\n\t\t\t\t\t\t(card.dataset.search || '').toLowerCase().includes(term);\n\n\t\t\t\t\treturn matchesFilter && matchesSearch;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction refresh() {\n\t\t\t\tconst visible = visibleCards();\n\n\t\t\t\tcards.forEach(function(card) {\n\t\t\t\t\tconst checkbox = card.querySelector('.kr-check');\n\t\t\t\t\tconst checked = selected.has(card.dataset.id);\n\n\t\t\t\t\tcheckbox.checked = checked;\n\t\t\t\t\tcard.classList.toggle('kr-selected', checked);\n\t\t\t\t\tcard.hidden = !visible.includes(card);\n\t\t\t\t});\n\n\t\t\t\tlet liveEmpty = root.querySelector('.kr-empty-live');\n\n\t\t\t\tif (!visible.length) {\n\t\t\t\t\tif (!liveEmpty) {\n\t\t\t\t\t\tliveEmpty = document.createElement('div');\n\t\t\t\t\t\tliveEmpty.className = 'kr-empty kr-empty-live';\n\t\t\t\t\t\tgrid.appendChild(liveEmpty);\n\t\t\t\t\t}\n\n\t\t\t\t\tliveEmpty.textContent = 'No recipes match your search or filter.';\n\t\t\t\t\tliveEmpty.hidden = false;\n\t\t\t\t} else if (liveEmpty) {\n\t\t\t\t\tliveEmpty.hidden = true;\n\t\t\t\t}\n\n\t\t\t\tcount.textContent = selected.size;\n\n\t\t\t\tcaption.textContent = selected.size\n\t\t\t\t\t? selected.size + (selected.size === 1\n\t\t\t\t\t\t? ' recipe selected.'\n\t\t\t\t\t\t: ' recipes selected.')\n\t\t\t\t\t: 'Choose your favourites to prepare your collection.';\n\n\t\t\t\tdownload.disabled = selected.size === 0 || loadingBook;\n\n\t\t\t\tdownload.textContent = loadingBook\n\t\t\t\t\t? 'Preparing recipe book\u2026'\n\t\t\t\t\t: selected.size\n\t\t\t\t\t\t? 'Prepare ' + selected.size +\n\t\t\t\t\t\t\t(selected.size === 1 ? ' recipe' : ' recipes')\n\t\t\t\t\t\t: 'Prepare selected recipes';\n\t\t\t}\n\n\t\t\tfunction openRecipeModal(card) {\n\t\t\t\topenCard = card;\n\n\t\t\t\tconst titleLink = card.querySelector('.kr-title-link');\n\t\t\t\tconst description = card.querySelector('.kr-description');\n\t\t\t\tconst tag = card.querySelector('.kr-tag');\n\t\t\t\tconst image = card.querySelector('.kr-image img');\n\n\t\t\t\troot.querySelector('.kr-modal-title').textContent =\n\t\t\t\t\ttitleLink ? titleLink.textContent.trim() : '';\n\n\t\t\t\troot.querySelector('.kr-modal-description').textContent =\n\t\t\t\t\tdescription ? description.textContent.trim() : '';\n\n\t\t\t\troot.querySelector('.kr-modal-tag').textContent =\n\t\t\t\t\ttag ? tag.textContent.trim() : 'Heritage recipe';\n\n\t\t\t\troot.querySelector('.kr-modal-open').href =\n\t\t\t\t\ttitleLink ? titleLink.href : '#';\n\n\t\t\t\troot.querySelector('.kr-modal-select').textContent =\n\t\t\t\t\tselected.has(card.dataset.id)\n\t\t\t\t\t\t? 'Remove from my collection'\n\t\t\t\t\t\t: 'Add to my collection';\n\n\t\t\t\tif (image && image.src) {\n\t\t\t\t\tmodalImg.src = image.src;\n\t\t\t\t\tmodalImg.alt = image.alt || '';\n\t\t\t\t\tmodalImg.hidden = false;\n\t\t\t\t} else {\n\t\t\t\t\tmodalImg.removeAttribute('src');\n\t\t\t\t\tmodalImg.alt = '';\n\t\t\t\t\tmodalImg.hidden = true;\n\t\t\t\t}\n\n\t\t\t\tmodal.classList.add('kr-open');\n\t\t\t\troot.querySelector('.kr-close').focus();\n\t\t\t}\n\n\t\t\tfunction closeModal() {\n\t\t\t\tmodal.classList.remove('kr-open');\n\t\t\t\topenCard = null;\n\t\t\t}\n\n\t\t\troot.querySelectorAll('[data-filter]').forEach(function(button) {\n\t\t\t\tbutton.addEventListener('click', function() {\n\t\t\t\t\tactiveFilter = button.dataset.filter;\n\n\t\t\t\t\troot.querySelectorAll('[data-filter]').forEach(function(item) {\n\t\t\t\t\t\titem.classList.toggle('kr-active', item === button);\n\t\t\t\t\t});\n\n\t\t\t\t\trefresh();\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tsearch.addEventListener('input', refresh);\n\n\t\t\troot.querySelector('.kr-select-visible').addEventListener('click', function() {\n\t\t\t\tvisibleCards().forEach(function(card) {\n\t\t\t\t\tselected.add(card.dataset.id);\n\t\t\t\t});\n\t\t\t\trefresh();\n\t\t\t});\n\n\t\t\troot.querySelector('.kr-clear').addEventListener('click', function() {\n\t\t\t\tselected.clear();\n\t\t\t\trefresh();\n\t\t\t});\n\n\t\t\troot.addEventListener('change', function(event) {\n\t\t\t\tconst checkbox = event.target.closest('.kr-check');\n\t\t\t\tif (!checkbox) return;\n\n\t\t\t\tconst card = checkbox.closest('.kr-card');\n\t\t\t\tif (!card) return;\n\n\t\t\t\tif (checkbox.checked) {\n\t\t\t\t\tselected.add(card.dataset.id);\n\t\t\t\t} else {\n\t\t\t\t\tselected.delete(card.dataset.id);\n\t\t\t\t}\n\n\t\t\t\trefresh();\n\t\t\t});\n\n\t\t\troot.addEventListener('click', function(event) {\n\t\t\t\tconst viewButton = event.target.closest('.kr-view');\n\n\t\t\t\tif (viewButton) {\n\t\t\t\t\tconst card = viewButton.closest('.kr-card');\n\t\t\t\t\tif (card) openRecipeModal(card);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\troot.querySelector('.kr-close').addEventListener('click', closeModal);\n\n\t\t\tmodal.addEventListener('click', function(event) {\n\t\t\t\tif (event.target === modal) closeModal();\n\t\t\t});\n\n\t\t\troot.querySelector('.kr-modal-select').addEventListener('click', function() {\n\t\t\t\tif (!openCard) return;\n\n\t\t\t\tconst id = openCard.dataset.id;\n\n\t\t\t\tif (selected.has(id)) {\n\t\t\t\t\tselected.delete(id);\n\t\t\t\t} else {\n\t\t\t\t\tselected.add(id);\n\t\t\t\t}\n\n\t\t\t\trefresh();\n\t\t\t\tcloseModal();\n\t\t\t});\n\n\t\t\tdocument.addEventListener('keydown', function(event) {\n\t\t\t\tif (event.key === 'Escape' && modal.classList.contains('kr-open')) {\n\t\t\t\t\tcloseModal();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tfunction cleanText(node) {\n\t\t\t\tif (!node) return '';\n\n\t\t\t\tconst clone = node.cloneNode(true);\n\n\t\t\t\tclone.querySelectorAll(\n\t\t\t\t\t'script,style,svg,.wprm-spacer,.wprm-recipe-instruction-buttons'\n\t\t\t\t).forEach(function(element) {\n\t\t\t\t\telement.remove();\n\t\t\t\t});\n\n\t\t\t\treturn (clone.textContent || '')\n\t\t\t\t\t.replace(\/\\u00a0\/g, ' ')\n\t\t\t\t\t.replace(\/\\s+\/g, ' ')\n\t\t\t\t\t.trim();\n\t\t\t}\n\n\t\t\tfunction findWprmId(doc) {\n\t\t\t\tconst recipeNodes = doc.querySelectorAll(\n\t\t\t\t\t'.wprm-recipe-container[data-recipe], ' +\n\t\t\t\t\t'.wprm-recipe[data-recipe], ' +\n\t\t\t\t\t'[id^=\"recipe-\"][id]'\n\t\t\t\t);\n\n\t\t\t\tfor (const node of recipeNodes) {\n\t\t\t\t\tconst value = node.getAttribute('data-recipe');\n\n\t\t\t\t\tif (value && \/^\\d+$\/.test(value)) return value;\n\n\t\t\t\t\tconst match = (node.id || '').match(\n\t\t\t\t\t\t\/^recipe-(\\d+)(?:-(?:ingredients|instructions|notes|image|equipment|nutrition))?$\/\n\t\t\t\t\t);\n\n\t\t\t\t\tif (match) return match[1];\n\t\t\t\t}\n\n\t\t\t\tconst selectors = [\n\t\t\t\t\t'.wprm-recipe-ingredients-container[data-recipe]',\n\t\t\t\t\t'.wprm-recipe-instructions-container[data-recipe]',\n\t\t\t\t\t'.wprm-recipe-notes-container[data-recipe]'\n\t\t\t\t];\n\n\t\t\t\tfor (const selector of selectors) {\n\t\t\t\t\tfor (const node of doc.querySelectorAll(selector)) {\n\t\t\t\t\t\tconst value = node.getAttribute('data-recipe');\n\n\t\t\t\t\t\tif (value && \/^\\d+$\/.test(value)) return value;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tfunction getRecipeRoot(doc, recipeId) {\n\t\t\t\treturn doc.querySelector(\n\t\t\t\t\t'.wprm-recipe-container[data-recipe=\"' + recipeId + '\"]'\n\t\t\t\t) || doc.querySelector(\n\t\t\t\t\t'.wprm-recipe[data-recipe=\"' + recipeId + '\"]'\n\t\t\t\t) || doc.querySelector(\n\t\t\t\t\t'#wprm-recipe-container-' + recipeId\n\t\t\t\t) || doc.querySelector(\n\t\t\t\t\t'#recipe-' + recipeId\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfunction getRecipeSection(doc, recipeId, type, rootNode) {\n\t\t\t\tconst className = {\n\t\t\t\t\tingredients: '.wprm-recipe-ingredients-container',\n\t\t\t\t\tinstructions: '.wprm-recipe-instructions-container',\n\t\t\t\t\tnotes: '.wprm-recipe-notes-container'\n\t\t\t\t}[type];\n\n\t\t\t\tif (!className) return null;\n\n\t\t\t\tif (rootNode) {\n\t\t\t\t\tconst inside = rootNode.matches(className)\n\t\t\t\t\t\t? rootNode\n\t\t\t\t\t\t: rootNode.querySelector(className);\n\n\t\t\t\t\tif (inside) return inside;\n\t\t\t\t}\n\n\t\t\t\tconst exact = doc.querySelector(\n\t\t\t\t\tclassName + '[data-recipe=\"' + recipeId + '\"]'\n\t\t\t\t);\n\n\t\t\t\tif (exact) return exact;\n\n\t\t\t\tconst byId = doc.querySelector(\n\t\t\t\t\t'#recipe-' + recipeId + '-' + type\n\t\t\t\t);\n\n\t\t\t\treturn byId || null;\n\t\t\t}\n\n\t\t\tfunction parseIngredients(doc, recipeId, rootNode) {\n\t\t\t\tconst container = getRecipeSection(\n\t\t\t\t\tdoc, recipeId, 'ingredients', rootNode\n\t\t\t\t);\n\n\t\t\t\tif (!container) return [];\n\n\t\t\t\tfunction parseItem(li) {\n\t\t\t\t\tconst amount = cleanText(\n\t\t\t\t\t\tli.querySelector('.wprm-recipe-ingredient-amount')\n\t\t\t\t\t);\n\n\t\t\t\t\tconst unit = cleanText(\n\t\t\t\t\t\tli.querySelector('.wprm-recipe-ingredient-unit')\n\t\t\t\t\t);\n\n\t\t\t\t\tconst name = cleanText(\n\t\t\t\t\t\tli.querySelector('.wprm-recipe-ingredient-name')\n\t\t\t\t\t);\n\n\t\t\t\t\tconst notes = cleanText(\n\t\t\t\t\t\tli.querySelector('.wprm-recipe-ingredient-notes')\n\t\t\t\t\t);\n\n\t\t\t\t\tconst parts = [];\n\n\t\t\t\t\tif (amount) parts.push(amount);\n\t\t\t\t\tif (unit) parts.push(unit);\n\t\t\t\t\tif (name) parts.push(name);\n\n\t\t\t\t\tlet text = parts.join(' ');\n\n\t\t\t\t\tif (notes) text += (text ? ' \u2014 ' : '') + notes;\n\n\t\t\t\t\treturn text.trim();\n\t\t\t\t}\n\n\t\t\t\tconst groups = [];\n\t\t\t\tconst groupNodes = container.querySelectorAll(\n\t\t\t\t\t'.wprm-recipe-ingredient-group'\n\t\t\t\t);\n\n\t\t\t\tif (groupNodes.length) {\n\t\t\t\t\tgroupNodes.forEach(function(groupNode) {\n\t\t\t\t\t\tconst title = cleanText(\n\t\t\t\t\t\t\tgroupNode.querySelector('.wprm-recipe-group-name')\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst items = [];\n\n\t\t\t\t\t\tgroupNode.querySelectorAll('li.wprm-recipe-ingredient')\n\t\t\t\t\t\t\t.forEach(function(li) {\n\t\t\t\t\t\t\t\tconst item = parseItem(li);\n\t\t\t\t\t\t\t\tif (item) items.push(item);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (items.length) {\n\t\t\t\t\t\t\tgroups.push({ title: title, items: items });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconst items = [];\n\n\t\t\t\t\tcontainer.querySelectorAll('li.wprm-recipe-ingredient')\n\t\t\t\t\t\t.forEach(function(li) {\n\t\t\t\t\t\t\tconst item = parseItem(li);\n\t\t\t\t\t\t\tif (item) items.push(item);\n\t\t\t\t\t\t});\n\n\t\t\t\t\tif (items.length) groups.push({ title: '', items: items });\n\t\t\t\t}\n\n\t\t\t\treturn groups;\n\t\t\t}\n\n\t\t\tfunction parseInstructions(doc, recipeId, rootNode) {\n\t\t\t\tconst container = getRecipeSection(\n\t\t\t\t\tdoc, recipeId, 'instructions', rootNode\n\t\t\t\t);\n\n\t\t\t\tif (!container) return [];\n\n\t\t\t\tfunction parseStep(stepNode) {\n\t\t\t\t\tconst textNode = stepNode.querySelector(\n\t\t\t\t\t\t'.wprm-recipe-instruction-text'\n\t\t\t\t\t);\n\n\t\t\t\t\treturn cleanText(textNode || stepNode);\n\t\t\t\t}\n\n\t\t\t\tconst groups = [];\n\t\t\t\tconst groupNodes = container.querySelectorAll(\n\t\t\t\t\t'.wprm-recipe-instruction-group'\n\t\t\t\t);\n\n\t\t\t\tif (groupNodes.length) {\n\t\t\t\t\tgroupNodes.forEach(function(groupNode) {\n\t\t\t\t\t\tconst title = cleanText(\n\t\t\t\t\t\t\tgroupNode.querySelector('.wprm-recipe-group-name')\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst steps = [];\n\n\t\t\t\t\t\tgroupNode.querySelectorAll('.wprm-recipe-instruction')\n\t\t\t\t\t\t\t.forEach(function(stepNode) {\n\t\t\t\t\t\t\t\tconst text = parseStep(stepNode);\n\t\t\t\t\t\t\t\tif (text) steps.push(text);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (steps.length) groups.push({ title: title, steps: steps });\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconst steps = [];\n\n\t\t\t\t\tcontainer.querySelectorAll('.wprm-recipe-instruction')\n\t\t\t\t\t\t.forEach(function(stepNode) {\n\t\t\t\t\t\t\tconst text = parseStep(stepNode);\n\t\t\t\t\t\t\tif (text) steps.push(text);\n\t\t\t\t\t\t});\n\n\t\t\t\t\tif (steps.length) groups.push({ title: '', steps: steps });\n\t\t\t\t}\n\n\t\t\t\treturn groups;\n\t\t\t}\n\n\t\t\tfunction parseNotes(doc, recipeId, rootNode) {\n\t\t\t\tconst container = getRecipeSection(\n\t\t\t\t\tdoc, recipeId, 'notes', rootNode\n\t\t\t\t);\n\n\t\t\t\tconst noteNode = container\n\t\t\t\t\t? (container.querySelector('.wprm-recipe-notes') || container)\n\t\t\t\t\t: (rootNode ? rootNode.querySelector('.wprm-recipe-notes') : null);\n\n\t\t\t\tconst text = cleanText(noteNode);\n\t\t\t\treturn text ? [text] : [];\n\t\t\t}\n\n\t\t\tfunction parseRecipeImage(doc, recipeId, fallback, rootNode) {\n\t\t\t\tconst selectors = [\n\t\t\t\t\t'.wprm-recipe-image img',\n\t\t\t\t\t'.wprm-recipe-image-container img',\n\t\t\t\t\t'.wprm-recipe-image-container picture img',\n\t\t\t\t\t'img.wprm-recipe-image'\n\t\t\t\t];\n\n\t\t\t\tfunction usableImage(image) {\n\t\t\t\t\tif (!image) return '';\n\n\t\t\t\t\tconst candidates = [\n\t\t\t\t\t\timage.getAttribute('data-src'),\n\t\t\t\t\t\timage.getAttribute('data-lazy-src'),\n\t\t\t\t\t\timage.getAttribute('data-original'),\n\t\t\t\t\t\timage.getAttribute('src')\n\t\t\t\t\t];\n\n\t\t\t\t\tfor (const candidate of candidates) {\n\t\t\t\t\t\tconst url = normaliseUrl(candidate, doc.baseURI);\n\t\t\t\t\t\tif (url) return url;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst srcset = image.getAttribute('srcset');\n\n\t\t\t\t\tif (srcset) {\n\t\t\t\t\t\tconst candidate = srcset.split(',')[0].trim().split(\/\\s+\/)[0];\n\t\t\t\t\t\tconst url = normaliseUrl(candidate, doc.baseURI);\n\t\t\t\t\t\tif (url) return url;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\n\t\t\t\tif (rootNode) {\n\t\t\t\t\tfor (const selector of selectors) {\n\t\t\t\t\t\tconst url = usableImage(rootNode.querySelector(selector));\n\t\t\t\t\t\tif (url) return url;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst exactRoot = doc.querySelector(\n\t\t\t\t\t'.wprm-recipe-container[data-recipe=\"' + recipeId + '\"]'\n\t\t\t\t) || doc.querySelector(\n\t\t\t\t\t'.wprm-recipe[data-recipe=\"' + recipeId + '\"]'\n\t\t\t\t) || doc.querySelector('#wprm-recipe-container-' + recipeId)\n\t\t\t\t  || doc.querySelector('#recipe-' + recipeId);\n\n\t\t\t\tif (exactRoot) {\n\t\t\t\t\tfor (const selector of selectors) {\n\t\t\t\t\t\tconst url = usableImage(exactRoot.querySelector(selector));\n\t\t\t\t\t\tif (url) return url;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst allImages = Array.from(\n\t\t\t\t\tdoc.querySelectorAll('.wprm-recipe-image img, img.wprm-recipe-image')\n\t\t\t\t);\n\n\t\t\t\tif (allImages.length === 1) {\n\t\t\t\t\tconst url = usableImage(allImages[0]);\n\t\t\t\t\tif (url) return url;\n\t\t\t\t}\n\n\t\t\t\tfor (const selector of [\n\t\t\t\t\t'meta[property=\"og:image\"]',\n\t\t\t\t\t'meta[name=\"twitter:image\"]'\n\t\t\t\t]) {\n\t\t\t\t\tconst meta = doc.querySelector(selector);\n\n\t\t\t\t\tif (meta) {\n\t\t\t\t\t\tconst url = normaliseUrl(\n\t\t\t\t\t\t\tmeta.getAttribute('content'),\n\t\t\t\t\t\t\tdoc.baseURI\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (url) return url;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn normaliseUrl(fallback, doc.baseURI);\n\t\t\t}\n\n\t\t\tasync function getRecipePage(recipe) {\n\t\t\t\tconst response = await fetch(recipe.url, {\n\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\tcache: 'no-cache'\n\t\t\t\t});\n\n\t\t\t\tif (!response.ok) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Could not load \"' + recipe.name +\n\t\t\t\t\t\t'\" (HTTP ' + response.status + ').'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst html = await response.text();\n\t\t\t\tconst doc = new DOMParser().parseFromString(html, 'text\/html');\n\t\t\t\tconst recipeId = findWprmId(doc);\n\n\t\t\t\tif (!recipeId) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'No numeric WP Recipe Maker recipe ID was found for \"' +\n\t\t\t\t\t\trecipe.name + '\".'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tdoc: doc,\n\t\t\t\t\trecipeId: recipeId,\n\t\t\t\t\troot: getRecipeRoot(doc, recipeId)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tasync function fetchFullRecipe(card) {\n\t\t\t\tconst recipe = recipeData.find(function(item) {\n\t\t\t\t\treturn String(item.id) === String(card.dataset.id);\n\t\t\t\t});\n\n\t\t\t\tif (!recipe) {\n\t\t\t\t\tthrow new Error('Recipe data was not found for this card.');\n\t\t\t\t}\n\n\t\t\t\tconst page = await getRecipePage(recipe);\n\n\t\t\t\tconst ingredients = parseIngredients(\n\t\t\t\t\tpage.doc, page.recipeId, page.root\n\t\t\t\t);\n\n\t\t\t\tconst instructions = parseInstructions(\n\t\t\t\t\tpage.doc, page.recipeId, page.root\n\t\t\t\t);\n\n\t\t\t\tconst notes = parseNotes(\n\t\t\t\t\tpage.doc, page.recipeId, page.root\n\t\t\t\t);\n\n\t\t\t\tconst image = parseRecipeImage(\n\t\t\t\t\tpage.doc, page.recipeId, recipe.image, page.root\n\t\t\t\t);\n\n\t\t\t\tif (!ingredients.length && !instructions.length) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'The published page for \"' + recipe.name +\n\t\t\t\t\t\t'\" loaded, but its ingredients and instructions could not ' +\n\t\t\t\t\t\t'be identified. No incomplete PDF was created. Check that ' +\n\t\t\t\t\t\t'the recipe is published and contains a WP Recipe Maker recipe.'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tname: recipe.name,\n\t\t\t\t\turl: recipe.url,\n\t\t\t\t\tauthor: recipe.author || '',\n\t\t\t\t\timage: image,\n\t\t\t\t\tdescription: recipe.description || '',\n\t\t\t\t\tingredients: ingredients,\n\t\t\t\t\tinstructions: instructions,\n\t\t\t\t\tnotes: notes\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tasync function loadCardImage(card) {\n\t\t\t\tif (card.dataset.imageAttempted === 'true') return;\n\n\t\t\t\tcard.dataset.imageAttempted = 'true';\n\n\t\t\t\tconst recipe = recipeData.find(function(item) {\n\t\t\t\t\treturn String(item.id) === String(card.dataset.id);\n\t\t\t\t});\n\n\t\t\t\tif (!recipe || !recipe.url) return;\n\n\t\t\t\ttry {\n\t\t\t\t\tconst page = await getRecipePage(recipe);\n\t\t\t\t\tconst imageUrl = parseRecipeImage(\n\t\t\t\t\t\tpage.doc, page.recipeId, recipe.image, page.root\n\t\t\t\t\t);\n\n\t\t\t\t\tif (!imageUrl) return;\n\n\t\t\t\t\tconst imageBox = card.querySelector('.kr-image');\n\t\t\t\t\tif (!imageBox || imageBox.querySelector('img')) return;\n\n\t\t\t\t\tconst link = document.createElement('a');\n\t\t\t\t\tlink.href = recipe.url;\n\t\t\t\t\tlink.setAttribute('aria-label', 'Open ' + recipe.name);\n\n\t\t\t\t\tconst image = document.createElement('img');\n\t\t\t\t\timage.src = imageUrl;\n\t\t\t\t\timage.alt = recipe.name;\n\t\t\t\t\timage.loading = 'lazy';\n\n\t\t\t\t\tlink.appendChild(image);\n\t\t\t\t\timageBox.insertBefore(link, imageBox.firstChild);\n\t\t\t\t\timageBox.classList.remove('kr-no-image');\n\n\t\t\t\t\timage.addEventListener('error', function() {\n\t\t\t\t\t\tlink.remove();\n\t\t\t\t\t\timageBox.classList.add('kr-no-image');\n\t\t\t\t\t}, { once: true });\n\n\t\t\t\t\tif (modal.classList.contains('kr-open') && openCard === card) {\n\t\t\t\t\t\tmodalImg.src = imageUrl;\n\t\t\t\t\t\tmodalImg.alt = recipe.name;\n\t\t\t\t\t\tmodalImg.hidden = false;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'Ku\u1e4bye: could not load card image for ' + recipe.name,\n\t\t\t\t\t\terror\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('IntersectionObserver' in window) {\n\t\t\t\tconst imageObserver = new IntersectionObserver(function(entries) {\n\t\t\t\t\tentries.forEach(function(entry) {\n\t\t\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\t\t\timageObserver.unobserve(entry.target);\n\t\t\t\t\t\t\tloadCardImage(entry.target);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}, { rootMargin: '300px 0px' });\n\n\t\t\t\tcards.forEach(function(card) {\n\t\t\t\t\tif (!card.querySelector('.kr-image img')) {\n\t\t\t\t\t\timageObserver.observe(card);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcards.forEach(function(card) {\n\t\t\t\t\tif (!card.querySelector('.kr-image img')) {\n\t\t\t\t\t\tloadCardImage(card);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction renderRecipe(recipe) {\n\t\t\t\tlet html =\n\t\t\t\t\t'<article class=\"print-recipe\">' +\n\t\t\t\t\t'<h2>' + escapeHtml(recipe.name) + '<\/h2>';\n\n\t\t\t\tif (recipe.image) {\n\t\t\t\t\thtml +=\n\t\t\t\t\t\t'<img decoding=\"async\" class=\"print-recipe-image\" src=\"' +\n\t\t\t\t\t\tescapeHtml(recipe.image) +\n\t\t\t\t\t\t'\" alt=\"' + escapeHtml(recipe.name) + '\">';\n\t\t\t\t}\n\n\t\t\t\tif (recipe.author) {\n\t\t\t\t\thtml += '<p><strong>Recipe by:<\/strong> ' +\n\t\t\t\t\t\tescapeHtml(recipe.author) + '<\/p>';\n\t\t\t\t}\n\n\t\t\t\tif (recipe.description) {\n\t\t\t\t\thtml += '<p>' + escapeHtml(recipe.description) + '<\/p>';\n\t\t\t\t}\n\n\t\t\t\tif (recipe.ingredients.length) {\n\t\t\t\t\thtml += '<h3>Ingredients<\/h3>';\n\n\t\t\t\t\trecipe.ingredients.forEach(function(group) {\n\t\t\t\t\t\thtml += '<div class=\"print-group\">';\n\n\t\t\t\t\t\tif (group.title) {\n\t\t\t\t\t\t\thtml += '<h4>' + escapeHtml(group.title) + '<\/h4>';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\thtml += '<ul>';\n\n\t\t\t\t\t\tgroup.items.forEach(function(item) {\n\t\t\t\t\t\t\thtml += '<li>' + escapeHtml(item) + '<\/li>';\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\thtml += '<\/ul><\/div>';\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (recipe.instructions.length) {\n\t\t\t\t\thtml += '<h3>Method<\/h3>';\n\n\t\t\t\t\trecipe.instructions.forEach(function(group) {\n\t\t\t\t\t\thtml += '<div class=\"print-group\">';\n\n\t\t\t\t\t\tif (group.title) {\n\t\t\t\t\t\t\thtml += '<h4>' + escapeHtml(group.title) + '<\/h4>';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\thtml += '<ol>';\n\n\t\t\t\t\t\tgroup.steps.forEach(function(step) {\n\t\t\t\t\t\t\thtml += '<li>' + escapeHtml(step) + '<\/li>';\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\thtml += '<\/ol><\/div>';\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (recipe.notes.length) {\n\t\t\t\t\thtml += '<h3>Notes<\/h3><div class=\"print-notes\">';\n\n\t\t\t\t\trecipe.notes.forEach(function(note) {\n\t\t\t\t\t\thtml += '<p>' + escapeHtml(note) + '<\/p>';\n\t\t\t\t\t});\n\n\t\t\t\t\thtml += '<\/div>';\n\t\t\t\t}\n\n\t\t\t\thtml +=\n\t\t\t\t\t'<p class=\"print-source\">Original recipe: ' +\n\t\t\t\t\t'<a href=\"' + escapeHtml(recipe.url) + '\">' +\n\t\t\t\t\tescapeHtml(recipe.url) + '<\/a><\/p><\/article>';\n\n\t\t\t\treturn html;\n\t\t\t}\n\n\t\t\tfunction waitForImages(doc) {\n\t\t\t\tconst images = Array.from(doc.images);\n\n\t\t\t\treturn Promise.all(images.map(function(image) {\n\t\t\t\t\tif (image.complete) {\n\t\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn new Promise(function(resolve) {\n\t\t\t\t\t\tlet finished = false;\n\n\t\t\t\t\t\tfunction finish() {\n\t\t\t\t\t\t\tif (finished) return;\n\t\t\t\t\t\t\tfinished = true;\n\t\t\t\t\t\t\timage.removeEventListener('load', finish);\n\t\t\t\t\t\t\timage.removeEventListener('error', finish);\n\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\timage.addEventListener('load', finish);\n\t\t\t\t\t\timage.addEventListener('error', finish);\n\t\t\t\t\t\twindow.setTimeout(finish, 10000);\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\tfunction printBook(recipes, printWindow) {\n\t\t\t\tconst coverUrl =\n\t\t\t\t\t'https:\/\/www.kunyeartfoundation.org\/wp-content\/uploads\/2026\/10\/Heritage-Recipe-Book-fp.jpg';\n\n\t\t\t\tlet book =\n\t\t\t\t\t'<section class=\"print-cover\">' +\n\t\t\t\t\t\t'<img decoding=\"async\" class=\"print-cover-image\" src=\"' +\n\t\t\t\t\t\t\tescapeHtml(coverUrl) +\n\t\t\t\t\t\t\t'\" alt=\"Ku\u1e4bye Art Foundation Heritage Recipe Book\">' +\n\t\t\t\t\t\t'<div class=\"print-cover-caption\">' +\n\t\t\t\t\t\t\t'<h1>My Heritage Recipe Collection<\/h1>' +\n\t\t\t\t\t\t\t'<p>A personal collection of recipes selected from the ' +\n\t\t\t\t\t\t\t'Ku\u1e4bye Art Foundation Heritage Collection.<\/p>' +\n\t\t\t\t\t\t\t'<p class=\"print-motto\">Art Inspires Creativity<br>' +\n\t\t\t\t\t\t\t'Creativity Inspires Art<\/p>' +\n\t\t\t\t\t\t'<\/div>' +\n\t\t\t\t\t'<\/section>';\n\n\t\t\t\trecipes.forEach(function(recipe) {\n\t\t\t\t\tbook += renderRecipe(recipe);\n\t\t\t\t});\n\n\t\t\t\tbook +=\n\t\t\t\t\t'<footer class=\"print-footer\">' +\n\t\t\t\t\t'Ku\u1e4bye Art Foundation \u00b7 Art Inspires Creativity \u00b7 Creativity Inspires Art' +\n\t\t\t\t\t'<\/footer>';\n\n\t\t\t\tconst printCss = `\n\t\t\t\t\t@page {\n\t\t\t\t\t\tsize: A4;\n\t\t\t\t\t\tmargin: 15mm;\n\t\t\t\t\t}\n\n\t\t\t\t\t* {\n\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t}\n\n\t\t\t\t\thtml, body {\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t\tbackground: #fff;\n\t\t\t\t\t\tcolor: #000;\n\t\t\t\t\t\tfont-family: Arial, Helvetica, sans-serif;\n\t\t\t\t\t\tfont-size: 11pt;\n\t\t\t\t\t\tline-height: 1.5;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-cover {\n\t\t\t\t\t\tmin-height: 255mm;\n\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\tflex-direction: column;\n\t\t\t\t\t\tjustify-content: center;\n\t\t\t\t\t\talign-items: center;\n\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\tpage-break-after: always;\n\t\t\t\t\t\tbreak-after: page;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-cover-image {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\tmax-height: 175mm;\n\t\t\t\t\t\tobject-fit: contain;\n\t\t\t\t\t\tmargin: 0 auto 12mm;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-cover-caption {\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\tborder-top: 2px solid #008000;\n\t\t\t\t\t\tpadding-top: 8mm;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-cover-caption h1 {\n\t\t\t\t\t\tcolor: #008000;\n\t\t\t\t\t\tfont-size: 26pt;\n\t\t\t\t\t\tline-height: 1.2;\n\t\t\t\t\t\tmargin: 0 0 8px;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-cover-caption p {\n\t\t\t\t\t\tmargin: 8px 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-motto {\n\t\t\t\t\t\tcolor: #008000;\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tmargin-top: 15px !important;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-recipe {\n\t\t\t\t\t\tpage-break-before: always;\n\t\t\t\t\t\tbreak-before: page;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-recipe h2 {\n\t\t\t\t\t\tcolor: #008000;\n\t\t\t\t\t\tfont-size: 25pt;\n\t\t\t\t\t\tline-height: 1.25;\n\t\t\t\t\t\tmargin: 0 0 12px;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-recipe h3 {\n\t\t\t\t\t\tcolor: #008000;\n\t\t\t\t\t\tfont-size: 16pt;\n\t\t\t\t\t\tmargin: 22px 0 8px;\n\t\t\t\t\t\tpage-break-after: avoid;\n\t\t\t\t\t\tbreak-after: avoid;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-recipe h4 {\n\t\t\t\t\t\tcolor: #008000;\n\t\t\t\t\t\tfont-size: 12pt;\n\t\t\t\t\t\tmargin: 12px 0 6px;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-recipe-image {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tmax-width: 100%;\n\t\t\t\t\t\tmax-height: 85mm;\n\t\t\t\t\t\twidth: auto;\n\t\t\t\t\t\theight: auto;\n\t\t\t\t\t\tobject-fit: contain;\n\t\t\t\t\t\tobject-position: left center;\n\t\t\t\t\t\tmargin: 0 0 16px;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-recipe ul,\n\t\t\t\t\t.print-recipe ol {\n\t\t\t\t\t\tpadding-left: 23px;\n\t\t\t\t\t\tmargin-top: 6px;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-recipe li {\n\t\t\t\t\t\tmargin-bottom: 6px;\n\t\t\t\t\t\tbreak-inside: avoid;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-group {\n\t\t\t\t\t\tmargin: 10px 0 14px;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-notes {\n\t\t\t\t\t\tbackground: #f0f8ee;\n\t\t\t\t\t\tborder-left: 3px solid #008000;\n\t\t\t\t\t\tpadding: 10px 14px;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-source {\n\t\t\t\t\t\tmargin-top: 25px;\n\t\t\t\t\t\tpadding-top: 10px;\n\t\t\t\t\t\tborder-top: 1px solid #ddd;\n\t\t\t\t\t\tfont-size: 8pt;\n\t\t\t\t\t\tcolor: #555;\n\t\t\t\t\t\toverflow-wrap: anywhere;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-source a {\n\t\t\t\t\t\tcolor: #333;\n\t\t\t\t\t}\n\n\t\t\t\t\t.print-footer {\n\t\t\t\t\t\tmargin-top: 25px;\n\t\t\t\t\t\tpadding-top: 10px;\n\t\t\t\t\t\tborder-top: 1px solid #ccc;\n\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\tfont-size: 8pt;\n\t\t\t\t\t\tcolor: #008000;\n\t\t\t\t\t}\n\n\t\t\t\t\t@media screen {\n\t\t\t\t\t\tbody {\n\t\t\t\t\t\t\tmax-width: 850px;\n\t\t\t\t\t\t\tmargin: 20px auto;\n\t\t\t\t\t\t\tpadding: 20px;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t`;\n\n\t\t\t\tprintWindow.document.open();\n\t\t\t\tprintWindow.document.write(\n\t\t\t\t\t'<!doctype html><html><head>' +\n\t\t\t\t\t'<meta charset=\"utf-8\">' +\n\t\t\t\t\t'<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">' +\n\t\t\t\t\t'<title>Ku\u1e4bye Heritage Recipe Collection<\/title>' +\n\t\t\t\t\t'<style>' + printCss + '<\/style>' +\n\t\t\t\t\t'<\/head><body>' + book + '<\/body><\/html>'\n\t\t\t\t);\n\t\t\t\tprintWindow.document.close();\n\n\t\t\t\treturn waitForImages(printWindow.document).then(function() {\n\t\t\t\t\treturn new Promise(function(resolve) {\n\t\t\t\t\t\tprintWindow.requestAnimationFrame(function() {\n\t\t\t\t\t\t\tprintWindow.requestAnimationFrame(resolve);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}).then(function() {\n\t\t\t\t\tprintWindow.focus();\n\t\t\t\t\tprintWindow.print();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tdownload.addEventListener('click', async function() {\n\t\t\t\tif (loadingBook || !selected.size) return;\n\n\t\t\t\t\/*\n\t\t\t\t * Open the print window immediately from the click.\n\t\t\t\t * This reduces the chance of the browser blocking it.\n\t\t\t\t *\/\n\t\t\t\tconst printWindow = window.open('', '_blank');\n\n\t\t\t\tif (!printWindow) {\n\t\t\t\t\twindow.alert(\n\t\t\t\t\t\t'Your browser blocked the recipe-book window. ' +\n\t\t\t\t\t\t'Please allow pop-ups for kunyeartfoundation.org and try again.'\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tprintWindow.document.open();\n\t\t\t\tprintWindow.document.write(\n\t\t\t\t\t'<!doctype html><html><head><title>Preparing recipe book<\/title>' +\n\t\t\t\t\t'<\/head><body style=\"font-family:Arial;padding:30px\">' +\n\t\t\t\t\t'<h2>Preparing your recipe collection\u2026<\/h2>' +\n\t\t\t\t\t'<p>Please keep this window open while the recipes load.<\/p>' +\n\t\t\t\t\t'<\/body><\/html>'\n\t\t\t\t);\n\t\t\t\tprintWindow.document.close();\n\n\t\t\t\tconst chosen = cards.filter(function(card) {\n\t\t\t\t\treturn selected.has(card.dataset.id);\n\t\t\t\t});\n\n\t\t\t\tloadingBook = true;\n\t\t\t\trefresh();\n\n\t\t\t\ttry {\n\t\t\t\t\tconst results = [];\n\n\t\t\t\t\tfor (let index = 0; index < chosen.length; index++) {\n\t\t\t\t\t\tdownload.textContent =\n\t\t\t\t\t\t\t'Loading recipe ' + (index + 1) +\n\t\t\t\t\t\t\t' of ' + chosen.length + '\u2026';\n\n\t\t\t\t\t\tconst recipe = await fetchFullRecipe(chosen[index]);\n\t\t\t\t\t\tresults.push(recipe);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!results.length) {\n\t\t\t\t\t\tthrow new Error('No recipes were selected for the book.');\n\t\t\t\t\t}\n\n\t\t\t\t\tawait printBook(results, printWindow);\n\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error('Ku\u1e4bye recipe book error:', error);\n\n\t\t\t\t\tif (printWindow && !printWindow.closed) {\n\t\t\t\t\t\tprintWindow.close();\n\t\t\t\t\t}\n\n\t\t\t\t\twindow.alert(\n\t\t\t\t\t\t'The recipe book could not be prepared.\\n\\n' +\n\t\t\t\t\t\terror.message +\n\t\t\t\t\t\t'\\n\\nNo recipes were changed. Please open the original ' +\n\t\t\t\t\t\t'recipe page to verify that its WP Recipe Maker recipe is published.'\n\t\t\t\t\t);\n\t\t\t\t} finally {\n\t\t\t\t\tloadingBook = false;\n\t\t\t\t\trefresh();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\trefresh();\n\n\t\t})();\n\t\t<\/script>\n\n\t<\/div>\n\n\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7aeefef elementor-widget elementor-widget-html\" data-id=\"7aeefef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n\/* Standalone styling for the recipe page footer and support block *\/\n.kaf-recipe-page {\n    --kaf-green: #008000;\n    --kaf-dark-green: #006400;\n    --kaf-light-green: #f0f8ee;\n    --kaf-text: #000000;\n    font-family: Arial, sans-serif;\n    color: var(--kaf-text);\n    box-sizing: border-box;\n}\n.kaf-recipe-page *,\n.kaf-recipe-page *::before,\n.kaf-recipe-page *::after { box-sizing: border-box; }\n.kaf-recipe-page .kaf-bottom {\n    margin-top: 34px;\n    padding: 36px 24px;\n    text-align: center;\n    background: var(--kaf-light-green);\n    border: 2px solid var(--kaf-green);\n    border-radius: 28px;\n}\n.kaf-recipe-page .kaf-bottom-layout {\n    display: flex;\n    align-items: center;\n    gap: 26px;\n}\n.kaf-recipe-page .kaf-bottom-content {\n    flex: 1 1 auto;\n    min-width: 0;\n}\n.kaf-recipe-page .kaf-qr-wrap {\n    flex: 0 0 112px;\n    width: 112px;\n    margin-left: auto;\n    text-align: center;\n}\n.kaf-recipe-page .kaf-qr-link {\n    display: inline-block;\n    padding: 6px;\n    background: #ffffff;\n    border: 1px solid rgba(0, 128, 0, .25);\n    border-radius: 12px;\n    line-height: 0;\n}\n.kaf-recipe-page .kaf-qr-image {\n    display: block;\n    width: 120px;\n    height: 120px2px;\n    max-width: 100%;\n    object-fit: contain;\n}\n.kaf-recipe-page .kaf-qr-caption {\n    display: block;\n    margin-top: 7px;\n    color: var(--kaf-green);\n    font-size: 11px;\n    line-height: 1.4;\n    font-weight: 700;\n}\n.kaf-recipe-page .kaf-bottom h2 {\n    margin: 0 0 14px;\n    color: var(--kaf-green);\n    font-family: inherit;\n    font-size: clamp(24px, 3vw, 32px);\n    line-height: 1.3;\n}\n.kaf-recipe-page .kaf-bottom p {\n    max-width: 760px;\n    margin: 0 auto 20px;\n    color: var(--kaf-text);\n    font-size: 15px;\n    line-height: 1.8;\n}\n.kaf-recipe-page .kaf-bottom .kaf-button {\n    display: inline-block;\n    padding: 13px 22px;\n    border: 2px solid var(--kaf-green);\n    border-radius: 999px;\n    background: var(--kaf-green);\n    color: #ffffff !important;\n    font-size: 13px;\n    font-weight: 700;\n    letter-spacing: .4px;\n    line-height: 1.4;\n    text-decoration: none;\n    transition: background .2s ease, transform .2s ease;\n}\n.kaf-recipe-page .kaf-bottom .kaf-button:hover {\n    background: var(--kaf-dark-green);\n    border-color: var(--kaf-dark-green);\n    transform: translateY(-1px);\n}\n.kaf-recipe-page .kaf-bottom .kaf-support-button {\n    background: #ffffff;\n    color: var(--kaf-green) !important;\n    border: 2px solid var(--kaf-green);\n    border-radius: 28px;\n}\n.kaf-recipe-page .kaf-bottom .kaf-support-button:hover {\n    background: var(--kaf-green);\n    color: #ffffff !important;\n}\n.kaf-recipe-page .kaf-bottom .kaf-note {\n    margin-top: 12px;\n    color: var(--kaf-green);\n    font-size: 12px;\n    line-height: 1.7;\n}\n@media (max-width: 600px) {\n    .kaf-recipe-page .kaf-bottom { padding: 28px 16px; border-radius: 24px; }\n    .kaf-recipe-page .kaf-bottom-layout { flex-direction: column; gap: 20px; }\n    .kaf-recipe-page .kaf-qr-wrap { flex: 0 0 auto; width: 112px; margin: 0 auto; }\n    .kaf-recipe-page .kaf-bottom .kaf-button { width: 100%; max-width: 360px; }\n}\n<\/style>\n\n<section class=\"kaf-recipe-page\">\n    <footer class=\"kaf-bottom\">\n        <div class=\"kaf-bottom-layout\">\n            <div class=\"kaf-bottom-content\">\n                <h2>Take a Little Inspiration Home<\/h2>\n                <p>\n                    Visiting us at the gallery? Scan the QR code to explore our online\n                    community recipe book. Browse the recipes, choose your favourites\n                    and share them with loved ones.\n                <\/p>\n                <a class=\"kaf-button\"\n                   href=\"https:\/\/www.kunyeartfoundation.org\/?page_id=19030\"\n                   target=\"_blank\"\n                   rel=\"noopener\">\n                    EXPLORE THE RECIPES ONLINE\n                <\/a>\n\n                <!-- Donation button -->\n                <div style=\"margin-top: 22px;\">\n                    <a class=\"kaf-button kaf-support-button\"\n                       href=\"https:\/\/www.kunyeartfoundation.org\/wp-content\/uploads\/2026\/10\/Kunye_Art_Foundation_Heritage_Recipes.pdf#WhatsApp-Image-2026-10-19-at-14\"\n                       target=\"_blank\"\n                       rel=\"noopener\">\n                        SUPPORT KUNYE ART FOUNDATION\n                    <\/a>\n                    <p class=\"kaf-note\">\n                        Your donation helps us continue celebrating culture, creativity and community.\n                    <\/p>\n                <\/div>\n\n                <div class=\"kaf-note\">\n                    A community resource from Kunye Art Foundation.\n                <\/div>\n            <\/div>\n\n            <div class=\"kaf-qr-wrap\">\n                <a class=\"kaf-qr-link\"\n                   href=\"https:\/\/www.kunyeartfoundation.org\/?page_id=19030\"\n                   target=\"_blank\" rel=\"noopener\"\n                   aria-label=\"Open the Ku\u1e4bye Art Foundation online recipe page\">\n                    <img decoding=\"async\" class=\"kaf-qr-image lazyload\"\n                         data-src=\"https:\/\/www.kunyeartfoundation.org\/wp-content\/uploads\/2026\/10\/qr-code_recipes.png\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1125px; --smush-placeholder-aspect-ratio: 1125\/1125;\">\n                <\/a>\n                <span class=\"kaf-qr-caption\">Scan to explore recipes<\/span>\n            <\/div>\n        <\/div>\n    <\/footer>\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>At Ku\u1e4bye Art Foundation, we celebrate the creativity<br \/>\n                that connects us. Food, like art, brings people<br \/>\n                together, preserves traditions and tells the stories<br \/>\n                of our communities.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"wprm-recipe-roundup-name":"","wprm-recipe-roundup-description":"","footnotes":""},"class_list":["post-19030","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.kunyeartfoundation.org\/index.php?rest_route=\/wp\/v2\/pages\/19030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kunyeartfoundation.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.kunyeartfoundation.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.kunyeartfoundation.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kunyeartfoundation.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19030"}],"version-history":[{"count":28,"href":"https:\/\/www.kunyeartfoundation.org\/index.php?rest_route=\/wp\/v2\/pages\/19030\/revisions"}],"predecessor-version":[{"id":19224,"href":"https:\/\/www.kunyeartfoundation.org\/index.php?rest_route=\/wp\/v2\/pages\/19030\/revisions\/19224"}],"wp:attachment":[{"href":"https:\/\/www.kunyeartfoundation.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}