{"product_id":"succulent-chili-mango-sweet-heat-that-gives-back","title":"Dried Fruit - Sweet Chili Mango","description":"\u003c!-- =========================================================\n  CommuniTea — Product Page (Rise theme friendly)\n  Product: Succulent Chili Mango\n  FINAL: Robust 40% progress bar + stacked cards + soothing guarantee\n  Notes:\n    • Paste entire block into the product description.\n    • Buttons anchor to #AddToCartForm (change if your theme uses a different ID).\n========================================================= --\u003e\n\u003cstyle\u003e\n  \/* ---------- Scope ---------- *\/\n  .ctp { font-family: inherit; color: #111827; line-height: 1.55; }\n  .ctp * { box-sizing: border-box; }\n\n  \/* Page container *\/\n  .ctp .container { max-width: 980px; margin: 0 auto; padding: 0 16px; }\n\n  \/* Readable text width inside cards\/sections *\/\n  .ctp .measure { max-width: 68ch; }\n  @media (min-width: 1200px){ .ctp .measure { max-width: 62ch; } }\n\n  \/* Avoid odd wrapping \/ overflow *\/\n  .ctp p, .ctp li, .ctp td { overflow-wrap: anywhere; word-break: normal; }\n\n  \/* Headings *\/\n  .ctp .kicker { letter-spacing: .12em; text-transform: uppercase; font-weight: 800; font-size: 12px; color: #0b5342; margin-bottom: 10px; }\n  .ctp h1.title { font-size: clamp(28px, 4.2vw, 42px); line-height: 1.15; font-weight: 900; margin: 0 0 10px; color: #0b3324; }\n  .ctp .lead { font-size: 18px; color: #374151; margin: 0; }\n\n  \/* Badges *\/\n  .ctp .badges { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 0; }\n  .ctp .badge {\n    display: inline-flex; align-items: center; gap: 8px;\n    background: #ecfdf5; color: #065f46; border: 1px solid #d1fae5;\n    border-radius: 999px; font-weight: 800; font-size: 12px; padding: 8px 12px;\n  }\n  .ctp .badge svg { width: 16px; height: 16px; }\n\n  \/* CTA Buttons *\/\n  .ctp .cta { display: flex; gap: 12px; flex-wrap: wrap; margin: 22px 0 10px; }\n  .ctp .btn { display: inline-flex; align-items: center; justify-content: center; padding: 12px 18px; border-radius: 999px; text-decoration: none; font-weight: 900; border: 1px solid transparent; transition: transform .15s ease, box-shadow .15s ease; }\n  .ctp .btn:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(0,0,0,.08); }\n  .ctp .btn--primary { background: #1b8f6a; color: #fff; border-color: #1b8f6a; }\n  .ctp .btn--ghost   { background: #fff; color: #1f2937; border-color: #e5e7eb; }\n\n  \/* Sections + Cards (stacked) *\/\n  .ctp .section { margin: 28px 0; }\n  .ctp .stack { display: grid; gap: 18px; }\n  .ctp .card {\n    background: #fff; border: 1px solid #e5e7eb; border-radius: 16px; padding: 18px;\n    box-shadow: 0 4px 18px rgba(0,0,0,.05);\n  }\n  .ctp .card \u003e .inner { max-width: 68ch; margin: 0 auto; }\n  @media (min-width: 1200px){ .ctp .card \u003e .inner { max-width: 62ch; } }\n\n  .ctp h2.h2 { font-size: 22px; font-weight: 800; margin: 0 0 10px; color: #0b3324; }\n  .ctp .muted { color: #4b5563; }\n\n  \/* Checklist *\/\n  .ctp .list { display: grid; gap: 12px; margin: 8px 0 0; padding: 0; list-style: none; }\n  .ctp .list__item { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; }\n  .ctp .icon { margin-top: 3px; width: 18px; height: 18px; color: #1b8f6a; flex: none; }\n\n  \/* Impact progress (robust 40% demo) *\/\n  .ctp .progress { background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 12px; padding: 12px; }\n  .ctp .progress__bar {\n    position: relative;\n    height: 12px;\n    background: #e5e7eb;\n    border-radius: 999px;\n    overflow: hidden;\n  }\n  \/* Default 40% fill for demo; can be overridden by inline style if needed *\/\n  .ctp .progress__fill {\n    width: 40%;\n    height: 100%;\n    display: block;\n    background: linear-gradient(180deg, #34d399, #10b981); \/* green *\/\n  }\n  .ctp .progress__meta { display: flex; justify-content: space-between; font-size: 13px; margin-top: 8px; color: #374151; }\n  .ctp .note { font-size: 13px; color: #6b7280; margin-top: 10px; }\n\n  \/* Specs *\/\n  .ctp table.spec { width: 100%; border-collapse: collapse; font-size: 14px; }\n  .ctp table.spec th, .ctp table.spec td { padding: 10px 12px; border-bottom: 1px solid #f0f0f0; text-align: left; vertical-align: top; }\n  .ctp table.spec th { width: 36%; color: #374151; background: #fafafa; font-weight: 700; }\n\n  \/* Guarantee (soft green) + clearer separation between items *\/\n  .ctp .guarantee {\n    background: #ecfdf5;\n    border: 1px solid #a7f3d0;\n    border-radius: 16px;\n    padding: 18px;\n  }\n  .ctp .guarantee h3 { margin: 0 0 8px; font-size: 18px; font-weight: 900; color: #065f46; }\n  .ctp .guarantee p, .ctp .guarantee li { color: #065f46; }\n  .ctp .guarantee ul { padding-left: 0; list-style: none; margin: 0; }\n  .ctp .guarantee li {\n    padding: 10px 0 12px;\n    border-bottom: 1px solid #c7f0df;\n  }\n  .ctp .guarantee li:last-child { border-bottom: 0; }\n\n  \/* FAQs *\/\n  .ctp .faqs details { border: 1px solid #e5e7eb; border-radius: 12px; padding: 12px 14px; background: #fff; margin-bottom: 10px; }\n  .ctp .faqs summary { cursor: pointer; font-weight: 800; color: #0b3324; outline: none; }\n  .ctp .faqs p { margin: 10px 0 0; color: #4b5563; }\n\n  \/* Trust row *\/\n  .ctp .trust { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; align-items: center; margin-top: 20px; }\n  @media (min-width: 520px){ .ctp .trust { grid-template-columns: repeat(4,1fr); } }\n  .ctp .trust__item { background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 10px; height: 42px; display: grid; place-items: center; font-weight: 700; color: #6b7280; }\n\n  \/* Utilities *\/\n  .mt-5{margin-top:20px}.mt-6{margin-top:24px}\n\u003c\/style\u003e\n\u003cdiv class=\"ctp\"\u003e\n\u003cdiv class=\"container\"\u003e\n\u003c!-- HERO COPY --\u003e\n\u003csection class=\"section\"\u003e\n\u003cdiv class=\"kicker\"\u003eLimited-ingredient dried fruit\u003c\/div\u003e\n\u003ch1 class=\"title\"\u003e\u003cbr\u003e\u003c\/h1\u003e\n\u003cp class=\"lead measure\"\u003eA bold twist on classic mango: sweet, chewy slices finished with a gentle chili lift. Small-batch dried fruit crafted for clean snacking and community impact.\u003c\/p\u003e\n\u003cdiv class=\"cta\"\u003e\n\u003ca class=\"btn btn--primary js-ctp-atc\" href=\"#\" role=\"button\"\u003eAdd to Cart\u003c\/a\u003e \u003ca class=\"btn btn--ghost\" href=\"\/collections\/all\"\u003eBrowse All Products\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"badges\"\u003e\n\u003cspan class=\"badge\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3l7 4v5c0 5-3.5 9-7 9s-7-4-7-9V7l7-4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e 30-Day Money-Back \u003c\/span\u003e \u003cspan class=\"badge\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 21s-6-4.35-8.485-6.835A6 6 0 1112 5a6 6 0 1110.485 9.165C18 16.65 12 21 12 21z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e 20% to Your Fundraiser \u003c\/span\u003e \u003cspan class=\"badge\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"\u003e\u003cpath d=\"M11 21C7 21 3 17 3 13 3 7 9 3 15 3c0 6-4 12-10 12 0 3 3 6 6 6z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e No Artificial Colours \u003c\/span\u003e \u003cspan class=\"badge\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"\u003e\u003crect x=\"3\" y=\"11\" width=\"18\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M7 11V7a5 5 0 0110 0v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Secure Checkout \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- STACKED CARDS --\u003e\n\u003csection class=\"section stack\"\u003e\u003c!-- Benefits --\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cdiv class=\"inner\"\u003e\n\u003ch2 class=\"h2\"\u003eWhy You’ll Love It\u003c\/h2\u003e\n\u003cul class=\"list\"\u003e\n\u003cli class=\"list__item\"\u003e\n\u003csvg class=\"icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"\u003e\u003cpath d=\"M20 6L9 17l-5-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eBold flavour pairing\u003c\/strong\u003e — juicy dried mango balanced with a gentle chili finish.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"list__item\"\u003e\n\u003csvg class=\"icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"\u003e\u003cpath d=\"M20 6L9 17l-5-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eWholesome snacking\u003c\/strong\u003e — naturally gluten-free, no artificial colours, a source of Vitamin C.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"list__item\"\u003e\n\u003csvg class=\"icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"\u003e\u003cpath d=\"M20 6L9 17l-5-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eFreshness that lasts\u003c\/strong\u003e —  resealable pouch keeps slices soft and shareable.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"list__item\"\u003e\n\u003csvg class=\"icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"\u003e\u003cpath d=\"M20 6L9 17l-5-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eFeel-good impact\u003c\/strong\u003e — 20% of your purchase is allocated to the fundraiser you choose at checkout.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv class=\"cta mt-5\"\u003e\n\u003ca class=\"btn btn--primary js-ctp-atc\" href=\"#\" role=\"button\"\u003eAdd to Cart\u003c\/a\u003e \u003ca class=\"btn btn--ghost\" href=\"\/pages\/how-it-works\"\u003eHow Fundraising Works\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Impact (DEMO: 40% green fill) --\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cdiv class=\"inner\"\u003e\n\u003ch2 class=\"h2\"\u003eEvery Pack Powers a Cause\u003c\/h2\u003e\n\u003cp class=\"muted\"\u003eWith each order, \u003cstrong\u003e20% of the retail price (excluding delivery)\u003c\/strong\u003e is allocated to the campaign you select. Your contribution appears on that campaign’s progress bar immediately after purchase.\u003c\/p\u003e\n\u003cdiv class=\"progress mt-5\" aria-labelledby=\"impact-label\"\u003e\n\u003cdiv class=\"progress__bar\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-valuenow=\"40\"\u003e\n\u003c!-- FORCE 40% FILL: inline style wins over any theme CSS --\u003e\n\u003cdiv class=\"progress__fill\" style=\"width: 40%; height: 100%; display: block; background: #16a34a;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"progress__meta\"\u003e\n\u003cspan id=\"impact-label\"\u003eRaised: Example $400\u003c\/span\u003e \u003cspan\u003eGoal: $1,000\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"note\"\u003eIllustrative progress bar shown at 40% for demo. Actual totals update in real time during checkout.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Product Highlights --\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cdiv class=\"inner\"\u003e\n\u003ch2 class=\"h2\"\u003eProduct Highlights\u003c\/h2\u003e\n\u003ctable class=\"spec\" aria-label=\"Product highlights\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eNet Weight\u003c\/th\u003e\n\u003ctd\u003e250 g \u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eIngredients\u003c\/th\u003e\n\u003ctd\u003eMango, cane sugar, natural chili seasoning\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eShelf Life\u003c\/th\u003e\n\u003ctd\u003e12 months\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eAllergy Info\u003c\/th\u003e\n\u003ctd\u003eMay contain traces of coconut or macadamia from the production facility\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp class=\"note\"\u003eAlways check the back-of-pack label for the most current ingredient and allergen information.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Serving \u0026 Storage --\u003e\n\u003cdiv class=\"card\"\u003e\n\u003cdiv class=\"inner\"\u003e\n\u003ch2 class=\"h2\"\u003eServing \u0026amp; Storage\u003c\/h2\u003e\n\u003cul class=\"list\"\u003e\n\u003cli class=\"list__item\"\u003e\n\u003csvg class=\"icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"\u003e\u003cpath d=\"M20 6L9 17l-5-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003cdiv\u003e\n\u003cstrong\u003ePerfect anytime\u003c\/strong\u003e — school lunchboxes, office snack drawers, hikes, and party platters.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"list__item\"\u003e\n\u003csvg class=\"icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"\u003e\u003cpath d=\"M20 6L9 17l-5-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eStorage\u003c\/strong\u003e — keep sealed in a cool, dry place away from direct sunlight. Reseal after opening.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"list__item\"\u003e\n\u003csvg class=\"icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"\u003e\u003cpath d=\"M20 6L9 17l-5-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n\u003cdiv\u003e\n\u003cstrong\u003ePairing idea\u003c\/strong\u003e — mix with coconut chips or roasted nuts for a sweet-heat trail blend.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Guarantee (soft green, with lines between items) --\u003e\n\u003cdiv class=\"guarantee\"\u003e\n\u003cdiv class=\"inner\"\u003e\n\u003ch3\u003eOur Guarantee\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003e30-Day Money-Back:\u003c\/strong\u003e Not satisfied for any reason? We’ll refund you within 30 days — no questions asked.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDamaged or Unusable Goods:\u003c\/strong\u003e If your product arrives broken, spoiled, or unusable, we’ll send a replacement at no cost.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFreight Costs:\u003c\/strong\u003e Under the Australian Consumer Law, customers may be asked to cover return freight — \u003cem\u003ewe waive this requirement\u003c\/em\u003e. CommuniTea covers both return and replacement freight.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRefund Processing:\u003c\/strong\u003e Refunds are processed via the original payment method.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- FAQs --\u003e\n\u003cdiv class=\"card faqs\"\u003e\n\u003cdiv class=\"inner\"\u003e\n\u003ch2 class=\"h2\"\u003eFrequently Asked Questions\u003c\/h2\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIs the chili flavour very spicy?\u003c\/summary\u003e\n\u003cp\u003eIt’s a gentle, crowd-pleasing heat balanced by natural mango sweetness — designed to be enjoyable for most palates.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails open=\"\"\u003e\n\u003csummary\u003eHow does my purchase support a fundraiser?\u003c\/summary\u003e\n\u003cp\u003eAt checkout, select a campaign. We automatically allocate \u003cstrong\u003e20% of the retail price (excluding delivery)\u003c\/strong\u003e to that campaign and record it in their progress.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIs this product gluten-free?\u003c\/summary\u003e\n\u003cp\u003eIt’s naturally gluten-free and made without artificial colours. Always review the on-pack label if you have dietary needs.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails open=\"\"\u003e\n\u003csummary\u003eWhat if my order arrives damaged?\u003c\/summary\u003e\n\u003cp\u003eContact us and we’ll replace it at no cost. If you’d prefer a refund, our 30-day, no-questions-asked policy applies.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- Bottom CTA --\u003e\n\u003cdiv class=\"cta mt-6\"\u003e\n\u003ca class=\"btn btn--primary\" href=\"#AddToCartForm\"\u003eAdd to Cart\u003c\/a\u003e \u003ca class=\"btn btn--ghost\" href=\"\/collections\/all\"\u003eBrowse All Products\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Lightweight Product Schema (theme may already inject its own) --\u003e\n\u003cp\u003e\u003cscript type=\"application\/ld+json\"\u003e\n{\n  \"@context\": \"https:\/\/schema.org\/\",\n  \"@type\": \"Product\",\n  \"name\": \"Succulent Chili Mango — Fiery Tropical Slices\",\n  \"description\": \"Sweet, chewy dried mango with a gentle chili finish. 150g resealable pouch, naturally gluten-free, no artificial colours, a source of Vitamin C. Every pack sends 25% to your chosen fundraiser.\",\n  \"brand\": { \"@type\": \"Brand\", \"name\": \"CommuniTea\" },\n  \"category\": \"Dried Fruit\",\n  \"offers\": {\n    \"@type\": \"Offer\",\n    \"url\": \"{{ shop.url }}{{ product.url }}\",\n    \"priceCurrency\": \"{{ shop.currency }}\",\n    \"price\": \"{{ product.price | divided_by: 100.0 }}\",\n    \"availability\": \"{% if product.available %}https:\/\/schema.org\/InStock{% else %}https:\/\/schema.org\/OutOfStock{% endif %}\"\n  }\n}\n\u003c\/script\u003e \u003cscript\u003e\n(function () {\n  \/\/ Scope to this block if possible\n  var scope = document.currentScript.closest('.ctp') || document;\n  var triggers = [].slice.call(scope.querySelectorAll('.js-ctp-atc'));\n  if (!triggers.length) return;\n\n  function getVisibleProductForm() {\n    var forms = [].slice.call(document.querySelectorAll('form[action*=\"\/cart\/add\"]'));\n    for (var i = 0; i \u003c forms.length; i++) {\n      if (forms[i].offsetParent !== null) return forms[i];\n    }\n    return forms[0] || null;\n  }\n\n  function getSelectedVariantId(form) {\n    \/\/ Most themes keep the selected variant here:\n    var idInput = form \u0026\u0026 form.querySelector('input[name=\"id\"]');\n    if (idInput \u0026\u0026 idInput.value) return idInput.value;\n\n    \/\/ Fallback: some themes keep it in a select[name=id]\n    var selectId = form \u0026\u0026 form.querySelector('select[name=\"id\"]');\n    if (selectId \u0026\u0026 selectId.value) return selectId.value;\n\n    return null;\n  }\n\n  function openCartDrawerIfPossible() {\n    \/\/ Try common selectors Rise\/others use\n    var toggle = document.querySelector('[data-cart-open],[data-drawer-target=\"cart\"],[aria-controls=\"CartDrawer\"]');\n    if (toggle) toggle.click();\n    \/\/ Also ping any theme listeners\n    document.dispatchEvent(new CustomEvent('cart:refresh'));\n  }\n\n  function addViaAjax(variantId, quantity) {\n    return fetch('\/cart\/add.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json', 'Accept': 'application\/json' },\n      body: JSON.stringify({ id: variantId, quantity: quantity || 1 })\n    }).then(function (r) {\n      if (!r.ok) throw new Error('Add to cart failed: ' + r.status);\n      return r.json();\n    });\n  }\n\n  function handleClick(e) {\n    e.preventDefault();\n\n    var form = getVisibleProductForm();\n    if (!form) {\n      console.warn('[CTP] No product form found on page.');\n      alert('Please refresh the page and try again.');\n      return;\n    }\n\n    var vid = getSelectedVariantId(form);\n    if (!vid) {\n      console.warn('[CTP] Variant ID missing. Ensure a variant is selected.');\n      alert('Please select a variant before adding to cart.');\n      return;\n    }\n\n    console.log('[CTP] Adding variant', vid, 'to cart...');\n    addViaAjax(vid, 1)\n      .then(function (item) {\n        console.log('[CTP] Added to cart:', item);\n        \/\/ Try to open the cart drawer; if none, show a minimal confirmation\n        openCartDrawerIfPossible();\n        if (!document.querySelector('[data-cart-open],[data-drawer-target=\"cart\"],[aria-controls=\"CartDrawer\"]')) {\n          \/\/ Lightweight in-page toast\n          var toast = document.createElement('div');\n          toast.textContent = 'Added to cart';\n          toast.style.cssText = 'position:fixed;right:16px;bottom:16px;background:#111;color:#fff;padding:10px 14px;border-radius:10px;z-index:9999;opacity:.95';\n          document.body.appendChild(toast);\n          setTimeout(function(){ toast.remove(); }, 1500);\n        }\n      })\n      .catch(function (err) {\n        console.error('[CTP] AJAX add failed:', err);\n        \/\/ Fallback: try submitting the native form (helps if theme requires it)\n        var submitBtn = form.querySelector('button[type=\"submit\"],[type=\"submit\"][name=\"add\"]');\n        if (submitBtn) submitBtn.click();\n        else if (form.requestSubmit) form.requestSubmit();\n        else form.submit();\n      });\n  }\n\n  triggers.forEach(function (btn) {\n    btn.addEventListener('click', handleClick, { passive: false });\n  });\n})();\n\u003c\/script\u003e\u003c\/p\u003e","brand":"CommuniTea - Australia","offers":[{"title":"Default Title","offer_id":51751509262520,"sku":null,"price":19.95,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0907\/1286\/7000\/files\/front_of_pack_ALL_DRIED_FRUITS_chilli_mango.jpg?v=1761274598","url":"https:\/\/communiteafundraising.com.au\/products\/succulent-chili-mango-sweet-heat-that-gives-back","provider":"CommuniTea - Fundraising Platform","version":"1.0","type":"link"}