{"product_id":"buy-more-get-more-free-hex-nootropic-pouches","title":"Buy More Get More Free – HEX Nootropic Pouches","description":"\u003c!-- ── Hero ── --\u003e\n\u003csection class=\"bundle-hero\"\u003e\n  \u003cp class=\"eyebrow\"\u003eMystic's Energy · Limited Offer\u003c\/p\u003e\n  \u003ch1\u003eBuy More, \u003cspan\u003eGet More Free\u003c\/span\u003e\n\u003c\/h1\u003e\n  \u003cp class=\"subtitle\"\u003ePick your flavours — the more you buy, the more free cans you unlock.\u003c\/p\u003e\n  \u003cdiv class=\"trust-row\"\u003e\n    \u003cdiv class=\"trust-pill\"\u003e\n\u003cspan\u003e🎁\u003c\/span\u003e Up to 4 Free Cans\u003c\/div\u003e\n    \u003cdiv class=\"trust-pill\"\u003e\n\u003cspan\u003e⚡\u003c\/span\u003e 100mg Clean Caffeine\u003c\/div\u003e\n    \u003cdiv class=\"trust-pill\"\u003e\n\u003cspan\u003e🚫\u003c\/span\u003e Tobacco \u0026amp; Nicotine Free\u003c\/div\u003e\n    \u003cdiv class=\"trust-pill\"\u003e\n\u003cspan\u003e↩️\u003c\/span\u003e 30-Day Guarantee\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ── BOGO Tiers ── --\u003e\n\u003csection class=\"bogo-section\"\u003e\n  \u003cp class=\"section-label\"\u003eCurrent Offer — Choose How Many You Want\u003c\/p\u003e\n  \u003cdiv class=\"bogo-grid\"\u003e\n\n    \u003cdiv class=\"bogo-card\" id=\"bogo-2\"\u003e\n      \u003cdiv class=\"buy-label\"\u003eBuy\u003c\/div\u003e\n      \u003cdiv class=\"buy-num\"\u003e2\u003c\/div\u003e\n      \u003cdiv class=\"get-row\"\u003e\n        \u003cdiv class=\"get-badge inactive\" id=\"badge-2\"\u003eGet 1 Free\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"value-label\" id=\"val-2\"\u003eWorth £9.99\u003c\/div\u003e\n      \u003cdiv class=\"total-label\" id=\"total-label-2\"\u003ePay for 2, get 3\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bogo-card\" id=\"bogo-3\"\u003e\n      \u003cspan class=\"popular-tag\"\u003eMost Popular\u003c\/span\u003e\n      \u003cdiv class=\"buy-label\"\u003eBuy\u003c\/div\u003e\n      \u003cdiv class=\"buy-num\"\u003e3\u003c\/div\u003e\n      \u003cdiv class=\"get-row\"\u003e\n        \u003cdiv class=\"get-badge inactive\" id=\"badge-3\"\u003eGet 2 Free\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"value-label\" id=\"val-3\"\u003eWorth £19.98\u003c\/div\u003e\n      \u003cdiv class=\"total-label\" id=\"total-label-3\"\u003ePay for 3, get 5\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bogo-card\" id=\"bogo-4\"\u003e\n      \u003cdiv class=\"buy-label\"\u003eBuy\u003c\/div\u003e\n      \u003cdiv class=\"buy-num\"\u003e4\u003c\/div\u003e\n      \u003cdiv class=\"get-row\"\u003e\n        \u003cdiv class=\"get-badge inactive\" id=\"badge-4\"\u003eGet 3 Free\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"value-label\" id=\"val-4\"\u003eWorth £29.97\u003c\/div\u003e\n      \u003cdiv class=\"total-label\" id=\"total-label-4\"\u003ePay for 4, get 7\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bogo-card\" id=\"bogo-5\"\u003e\n      \u003cspan class=\"popular-tag\" style=\"background:var(--orange);color:white;\"\u003eBest Value\u003c\/span\u003e\n      \u003cdiv class=\"buy-label\"\u003eBuy\u003c\/div\u003e\n      \u003cdiv class=\"buy-num\"\u003e5\u003c\/div\u003e\n      \u003cdiv class=\"get-row\"\u003e\n        \u003cdiv class=\"get-badge inactive\" id=\"badge-5\"\u003eGet 4 Free\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"value-label\" id=\"val-5\"\u003eWorth £39.96\u003c\/div\u003e\n      \u003cdiv class=\"total-label\" id=\"total-label-5\"\u003ePay for 5, get 9\u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"bogo-progress-wrap\"\u003e\n    \u003cdiv class=\"bogo-progress-track\"\u003e\n      \u003cdiv class=\"bogo-progress-fill\" id=\"bogo-fill\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cp class=\"bogo-nudge\" id=\"bogo-nudge\"\u003eAdd cans to unlock your free cans\u003c\/p\u003e\n\u003c\/section\u003e\n\n\u003c!-- ── Main Content ── --\u003e\n\u003cdiv class=\"bundle-main\"\u003e\n\n  \u003c!-- Left: Flavour Picker --\u003e\n  \u003cdiv class=\"flavours-col\"\u003e\n    \u003cdiv class=\"flavours-header\"\u003e\n      \u003ch2\u003ePick Your Flavours\u003c\/h2\u003e\n      \u003cdiv style=\"text-align:right;\"\u003e\n        \u003cdiv class=\"qty-badge-big\" id=\"total-display\"\u003e0\u003c\/div\u003e\n        \u003cdiv class=\"qty-label-sm\"\u003ecans selected\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"flavour-grid\"\u003e\n\n      \u003c!-- Phoenix Flame Mango --\u003e\n      \u003cdiv class=\"flavour-card\" id=\"card-mango\"\u003e\n        \u003cdiv class=\"check-badge\"\u003e✓\u003c\/div\u003e\n        \u003cdiv class=\"img-wrap\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0905\/5138\/6492\/files\/MYSTIC_S_Energy_Mockup_Mango_V2_02.png?v=1740038447\" alt=\"Phoenix Flame Mango\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"colour-bar\" style=\"background:linear-gradient(90deg,#FF6B00,#FFB800);\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"card-body\"\u003e\n          \u003cdiv class=\"flavour-name\"\u003ePhoenix Flame\u003c\/div\u003e\n          \u003cdiv class=\"flavour-sub\"\u003eMango · 100mg Caffeine\u003c\/div\u003e\n          \u003cdiv class=\"card-footer\"\u003e\n            \u003cdiv class=\"qty-ctrl\"\u003e\n              \u003cbutton class=\"qty-btn\" onclick=\"changeQty('mango',-1)\" id=\"minus-mango\"\u003e−\u003c\/button\u003e\n              \u003cspan class=\"qty-num\" id=\"qty-mango\"\u003e0\u003c\/span\u003e\n              \u003cbutton class=\"qty-btn\" onclick=\"changeQty('mango',1)\" id=\"plus-mango\"\u003e+\u003c\/button\u003e\n            \u003c\/div\u003e\n            \u003cbutton class=\"add-btn\" onclick=\"addFlavour('mango')\" id=\"addbtn-mango\"\u003eADD\u003c\/button\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- Sapphire Storm Blueberry --\u003e\n      \u003cdiv class=\"flavour-card\" id=\"card-blueberry\"\u003e\n        \u003cdiv class=\"check-badge\"\u003e✓\u003c\/div\u003e\n        \u003cdiv class=\"img-wrap\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0905\/5138\/6492\/files\/MYSTIC_S_Energy_Mockup_Blueberry_02.png?v=1742216884\" alt=\"Sapphire Storm Blueberry\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"colour-bar\" style=\"background:linear-gradient(90deg,#1E3A8A,#3B82F6);\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"card-body\"\u003e\n          \u003cdiv class=\"flavour-name\"\u003eSapphire Storm\u003c\/div\u003e\n          \u003cdiv class=\"flavour-sub\"\u003eBlueberry · 100mg Caffeine\u003c\/div\u003e\n          \u003cdiv class=\"card-footer\"\u003e\n            \u003cdiv class=\"qty-ctrl\"\u003e\n              \u003cbutton class=\"qty-btn\" onclick=\"changeQty('blueberry',-1)\" id=\"minus-blueberry\"\u003e−\u003c\/button\u003e\n              \u003cspan class=\"qty-num\" id=\"qty-blueberry\"\u003e0\u003c\/span\u003e\n              \u003cbutton class=\"qty-btn\" onclick=\"changeQty('blueberry',1)\" id=\"plus-blueberry\"\u003e+\u003c\/button\u003e\n            \u003c\/div\u003e\n            \u003cbutton class=\"add-btn\" onclick=\"addFlavour('blueberry')\" id=\"addbtn-blueberry\"\u003eADD\u003c\/button\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- Dark Surge Cola --\u003e\n      \u003cdiv class=\"flavour-card\" id=\"card-cola\"\u003e\n        \u003cdiv class=\"check-badge\"\u003e✓\u003c\/div\u003e\n        \u003cdiv class=\"img-wrap\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0905\/5138\/6492\/files\/MYSTIC_S_Energy_Mockup_Cola_02.png?v=1742216884\" alt=\"Dark Surge Cola\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"colour-bar\" style=\"background:linear-gradient(90deg,#1a1a1a,#4a4a4a);\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"card-body\"\u003e\n          \u003cdiv class=\"flavour-name\"\u003eDark Surge\u003c\/div\u003e\n          \u003cdiv class=\"flavour-sub\"\u003eCola · 100mg Caffeine\u003c\/div\u003e\n          \u003cdiv class=\"card-footer\"\u003e\n            \u003cdiv class=\"qty-ctrl\"\u003e\n              \u003cbutton class=\"qty-btn\" onclick=\"changeQty('cola',-1)\" id=\"minus-cola\"\u003e−\u003c\/button\u003e\n              \u003cspan class=\"qty-num\" id=\"qty-cola\"\u003e0\u003c\/span\u003e\n              \u003cbutton class=\"qty-btn\" onclick=\"changeQty('cola',1)\" id=\"plus-cola\"\u003e+\u003c\/button\u003e\n            \u003c\/div\u003e\n            \u003cbutton class=\"add-btn\" onclick=\"addFlavour('cola')\" id=\"addbtn-cola\"\u003eADD\u003c\/button\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- Ruby Quartz Watermelon --\u003e\n      \u003cdiv class=\"flavour-card\" id=\"card-watermelon\"\u003e\n        \u003cdiv class=\"check-badge\"\u003e✓\u003c\/div\u003e\n        \u003cdiv class=\"img-wrap\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0905\/5138\/6492\/files\/MYSTIC_S_Energy_Mockup_Watermelon_02.png?v=1742216884\" alt=\"Ruby Quartz Watermelon\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"colour-bar\" style=\"background:linear-gradient(90deg,#BE123C,#F43F5E);\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"card-body\"\u003e\n          \u003cdiv class=\"flavour-name\"\u003eRuby Quartz\u003c\/div\u003e\n          \u003cdiv class=\"flavour-sub\"\u003eWatermelon · 100mg Caffeine\u003c\/div\u003e\n          \u003cdiv class=\"card-footer\"\u003e\n            \u003cdiv class=\"qty-ctrl\"\u003e\n              \u003cbutton class=\"qty-btn\" onclick=\"changeQty('watermelon',-1)\" id=\"minus-watermelon\"\u003e−\u003c\/button\u003e\n              \u003cspan class=\"qty-num\" id=\"qty-watermelon\"\u003e0\u003c\/span\u003e\n              \u003cbutton class=\"qty-btn\" onclick=\"changeQty('watermelon',1)\" id=\"plus-watermelon\"\u003e+\u003c\/button\u003e\n            \u003c\/div\u003e\n            \u003cbutton class=\"add-btn\" onclick=\"addFlavour('watermelon')\" id=\"addbtn-watermelon\"\u003eADD\u003c\/button\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- Arctic Crystal Spearmint --\u003e\n      \u003cdiv class=\"flavour-card\" id=\"card-spearmint\"\u003e\n        \u003cdiv class=\"check-badge\"\u003e✓\u003c\/div\u003e\n        \u003cdiv class=\"img-wrap\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0905\/5138\/6492\/files\/MYSTIC_S_Energy_Mockup_Spearmint_02.png?v=1742216884\" alt=\"Arctic Crystal Spearmint\" loading=\"lazy\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"colour-bar\" style=\"background:linear-gradient(90deg,#0E7490,#22D3EE);\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"card-body\"\u003e\n          \u003cdiv class=\"flavour-name\"\u003eArctic Crystal\u003c\/div\u003e\n          \u003cdiv class=\"flavour-sub\"\u003eSpearmint · 100mg Caffeine\u003c\/div\u003e\n          \u003cdiv class=\"card-footer\"\u003e\n            \u003cdiv class=\"qty-ctrl\"\u003e\n              \u003cbutton class=\"qty-btn\" onclick=\"changeQty('spearmint',-1)\" id=\"minus-spearmint\"\u003e−\u003c\/button\u003e\n              \u003cspan class=\"qty-num\" id=\"qty-spearmint\"\u003e0\u003c\/span\u003e\n              \u003cbutton class=\"qty-btn\" onclick=\"changeQty('spearmint',1)\" id=\"plus-spearmint\"\u003e+\u003c\/button\u003e\n            \u003c\/div\u003e\n            \u003cbutton class=\"add-btn\" onclick=\"addFlavour('spearmint')\" id=\"addbtn-spearmint\"\u003eADD\u003c\/button\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Right: Order Summary --\u003e\n  \u003cdiv class=\"summary-sidebar\"\u003e\n    \u003cdiv class=\"summary-card\"\u003e\n      \u003cdiv class=\"summary-header\"\u003e\n        \u003ch3\u003eYour Order\u003c\/h3\u003e\n        \u003cdiv class=\"tier-label\" id=\"summary-tier-label\"\u003eAdd cans to unlock free ones\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"summary-body\"\u003e\n\n        \u003cdiv id=\"empty-state\" class=\"empty-state\"\u003e\n          \u003cdiv class=\"icon\"\u003e🎁\u003c\/div\u003e\n          \u003cp\u003eStart adding flavours.\u003cbr\u003eBuy 2+ to unlock free cans.\u003c\/p\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv id=\"summary-content\" style=\"display:none;\"\u003e\n\n          \u003c!-- BOGO breakdown --\u003e\n          \u003cdiv class=\"bogo-breakdown\" id=\"bogo-breakdown\"\u003e\n            \u003cdiv class=\"bb-title\"\u003e🎁 Your Free Cans\u003c\/div\u003e\n            \u003cdiv class=\"bb-row\"\u003e\n\u003cspan\u003eCans you're paying for\u003c\/span\u003e\u003cspan class=\"bb-val\" id=\"bb-paid\"\u003e0\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"bb-row\"\u003e\n\u003cspan\u003eFree cans included\u003c\/span\u003e\u003cspan class=\"bb-val\" id=\"bb-free\"\u003e0\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"bb-total\"\u003e\n\u003cspan\u003eTotal cans received\u003c\/span\u003e\u003cspan id=\"bb-total\"\u003e0\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"selected-flavours-list\" id=\"selected-list\"\u003e\u003c\/div\u003e\n\n          \u003cdiv class=\"summary-row\"\u003e\n            \u003cspan class=\"row-label\"\u003eYou pay for\u003c\/span\u003e\n            \u003cspan class=\"row-val\" id=\"paid-cans-label\"\u003e0 cans\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"summary-row\" id=\"free-row\" style=\"display:none;\"\u003e\n            \u003cspan class=\"row-label\"\u003eFree cans\u003c\/span\u003e\n            \u003cspan class=\"row-val savings-val\" id=\"free-cans-label\"\u003e0 FREE\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"summary-row\" id=\"saving-row\" style=\"display:none;\"\u003e\n            \u003cspan class=\"row-label\"\u003eYou save\u003c\/span\u003e\n            \u003cspan class=\"row-val savings-val\" id=\"saving-val\"\u003e£0.00\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"summary-row total-row\"\u003e\n            \u003cspan class=\"row-label\"\u003eTotal\u003c\/span\u003e\n            \u003cspan class=\"row-val\" id=\"total-price\"\u003e£0.00\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cdiv style=\"text-align:center;margin-top:4px;font-size:12px;color:var(--light);\"\u003e\n            \u003cspan id=\"per-can-price\"\u003e\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cbutton class=\"cta-btn\" id=\"add-to-cart-btn\" disabled onclick=\"addToCart()\"\u003e\n          Add to Cart\n          \u003cspan class=\"btn-sub\" id=\"btn-sub-text\"\u003eAdd at least 2 cans to continue\u003c\/span\u003e\n        \u003c\/button\u003e\n\n        \u003cdiv class=\"need-more\" id=\"need-more-msg\" style=\"display:none;\"\u003e\n          Add \u003cstrong id=\"cans-needed\"\u003e1\u003c\/strong\u003e more to unlock \u003cstrong id=\"next-reward-label\"\u003e1 free can\u003c\/strong\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"trust-icons\"\u003e\n          \u003cdiv class=\"trust-icon-item\"\u003e\n\u003cspan\u003e🔒\u003c\/span\u003e Secure Checkout\u003c\/div\u003e\n          \u003cdiv class=\"trust-icon-item\"\u003e\n\u003cspan\u003e↩️\u003c\/span\u003e 30-Day Returns\u003c\/div\u003e\n          \u003cdiv class=\"trust-icon-item\"\u003e\n\u003cspan\u003e🚚\u003c\/span\u003e Fast Dispatch\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003c!-- ── FAQ ── --\u003e\n\u003csection class=\"faq-section\"\u003e\n  \u003ch2\u003eFrequently Asked Questions\u003c\/h2\u003e\n  \u003cdetails class=\"faq-item\"\u003e\n    \u003csummary\u003eHow does the Buy More Get More offer work?\u003c\/summary\u003e\n    \u003cdiv class=\"faq-body\"\u003eSimply add the number of cans you want to pay for. We'll automatically include your free cans in the order. Buy 2 get 1 free, buy 3 get 2 free, buy 4 get 3 free, or buy 5 get 4 free — the more you buy, the more you save.\u003c\/div\u003e\n  \u003c\/details\u003e\n  \u003cdetails class=\"faq-item\"\u003e\n    \u003csummary\u003eCan I choose the flavour of my free cans?\u003c\/summary\u003e\n    \u003cdiv class=\"faq-body\"\u003eYes — use the + \/ − controls or the ADD button to select exactly which flavours you'd like across your entire order, including your free cans. Mix and match freely.\u003c\/div\u003e\n  \u003c\/details\u003e\n  \u003cdetails class=\"faq-item\"\u003e\n    \u003csummary\u003eHow much caffeine is in each HEX pouch?\u003c\/summary\u003e\n    \u003cdiv class=\"faq-body\"\u003eEach HEX pouch contains \u003cstrong\u003e100mg of clean caffeine\u003c\/strong\u003e combined with nootropics (Alpha-GPC, L-Tyrosine, L-Theanine, Taurine) for sustained focus without the crash.\u003c\/div\u003e\n  \u003c\/details\u003e\n  \u003cdetails class=\"faq-item\"\u003e\n    \u003csummary\u003eAre HEX pouches tobacco or nicotine free?\u003c\/summary\u003e\n    \u003cdiv class=\"faq-body\"\u003eYes. HEX pouches contain \u003cstrong\u003ezero tobacco and zero nicotine\u003c\/strong\u003e. They are a clean, non-addictive alternative designed to replace the ritual without the dependency.\u003c\/div\u003e\n  \u003c\/details\u003e\n  \u003cdetails class=\"faq-item\"\u003e\n    \u003csummary\u003eHow long will delivery take?\u003c\/summary\u003e\n    \u003cdiv class=\"faq-body\"\u003eOrders are dispatched within 1–2 business days. UK delivery typically arrives within \u003cstrong\u003e3–5 business days\u003c\/strong\u003e. You will receive a tracking link once your order ships.\u003c\/div\u003e\n  \u003c\/details\u003e\n  \u003cdetails class=\"faq-item\"\u003e\n    \u003csummary\u003eWhat is the return policy?\u003c\/summary\u003e\n    \u003cdiv class=\"faq-body\"\u003eWe offer a \u003cstrong\u003e30-day money-back guarantee\u003c\/strong\u003e. If you are not satisfied for any reason, contact us within 30 days of receiving your order for a full refund.\u003c\/div\u003e\n  \u003c\/details\u003e\n\u003c\/section\u003e\n\n\u003cdiv class=\"toast\" id=\"toast\"\u003e\u003c\/div\u003e\n\n\u003cscript\u003e\n  const PRICE = 9.99;\n\n  \/\/ BOGO tiers: buy X, get Y free\n  \/\/ Total cans received = buy + free\n  const BOGO_TIERS = [\n    { buy: 2, free: 1, total: 3 },\n    { buy: 3, free: 2, total: 5 },\n    { buy: 4, free: 3, total: 7 },\n    { buy: 5, free: 4, total: 9 }\n  ];\n\n  const FLAVOURS = {\n    mango:      { name: 'Phoenix Flame (Mango)',      colour: '#FF6B00', variantId: '55682572747132' },\n    blueberry:  { name: 'Sapphire Storm (Blueberry)', colour: '#3B82F6', variantId: '55682572845436' },\n    cola:       { name: 'Dark Surge (Cola)',           colour: '#1a1a1a', variantId: '55682572943740' },\n    watermelon: { name: 'Ruby Quartz (Watermelon)',   colour: '#F43F5E', variantId: '55682573042044' },\n    spearmint:  { name: 'Arctic Crystal (Spearmint)', colour: '#22D3EE', variantId: '55682573140348' }\n  };\n\n  let quantities = { mango: 0, blueberry: 0, cola: 0, watermelon: 0, spearmint: 0 };\n\n  function totalSelected() { return Object.values(quantities).reduce((a,b) =\u003e a+b, 0); }\n  function fmt(n) { return '£' + n.toFixed(2); }\n\n  \/\/ Given total cans selected, work out which BOGO tier applies\n  \/\/ User selects total cans (paid + free). We figure out how many they're paying for.\n  \/\/ Logic: user picks total cans. We find the best tier where paid \u003c= total \u003c= total_received\n  \/\/ Simpler UX: user selects how many they want to PAY for (2-5), free cans are shown separately\n  \/\/ But since user just adds cans freely, we interpret: total selected = paid cans\n  \/\/ Free cans are added on top automatically.\n  function getBogoTier(paid) {\n    let tier = null;\n    for (const t of BOGO_TIERS) {\n      if (paid \u003e= t.buy) tier = t;\n    }\n    return tier;\n  }\n\n  function getNextBogoTier(paid) {\n    for (const t of BOGO_TIERS) {\n      if (paid \u003c t.buy) return t;\n    }\n    return null;\n  }\n\n  function showToast(msg) {\n    const t = document.getElementById('toast');\n    t.innerHTML = msg; t.classList.add('show');\n    setTimeout(() =\u003e t.classList.remove('show'), 2800);\n  }\n\n  function addFlavour(f) {\n    quantities[f]++;\n    updateUI();\n    const btn = document.getElementById('addbtn-' + f);\n    btn.classList.add('added'); btn.textContent = 'ADDED ✓';\n    setTimeout(() =\u003e {\n      btn.textContent = quantities[f] \u003e 0 ? 'ADD MORE' : 'ADD';\n      if (quantities[f] === 0) btn.classList.remove('added');\n    }, 1000);\n  }\n\n  function changeQty(f, delta) {\n    const newVal = quantities[f] + delta;\n    if (newVal \u003c 0) return;\n    quantities[f] = newVal;\n    updateUI();\n  }\n\n  function updateUI() {\n    const paid = totalSelected(); \/\/ cans user is paying for\n    const tier = getBogoTier(paid);\n    const next = getNextBogoTier(paid);\n    const freeCans = tier ? tier.free : 0;\n    const totalCans = paid + freeCans;\n\n    \/\/ ── BOGO tier cards ──\n    for (const t of BOGO_TIERS) {\n      const card = document.getElementById('bogo-' + t.buy);\n      const badge = document.getElementById('badge-' + t.buy);\n      if (paid \u003e= t.buy) {\n        card.classList.add('active-tier');\n        badge.classList.remove('inactive');\n      } else {\n        card.classList.remove('active-tier');\n        badge.classList.add('inactive');\n      }\n    }\n\n    \/\/ ── Progress bar ──\n    const maxBuy = 5;\n    const pct = Math.min((paid \/ maxBuy) * 100, 100);\n    document.getElementById('bogo-fill').style.width = pct + '%';\n    document.getElementById('total-display').textContent = paid;\n\n    \/\/ ── Nudge ──\n    const nudge = document.getElementById('bogo-nudge');\n    if (!next) {\n      nudge.innerHTML = `🏆 Maximum offer unlocked — \u003cstrong\u003eBuy 5 Get 4 Free!\u003c\/strong\u003e`;\n    } else if (!tier) {\n      nudge.innerHTML = `Add \u003cstrong\u003e${next.buy - paid} more can${next.buy - paid !== 1 ? 's' : ''}\u003c\/strong\u003e to unlock \u003cstrong\u003eBuy ${next.buy} Get ${next.free} Free\u003c\/strong\u003e`;\n    } else {\n      nudge.innerHTML = `Add \u003cstrong\u003e${next.buy - paid} more can${next.buy - paid !== 1 ? 's' : ''}\u003c\/strong\u003e to upgrade to \u003cstrong\u003eBuy ${next.buy} Get ${next.free} Free\u003c\/strong\u003e`;\n    }\n\n    \/\/ ── Card states ──\n    Object.keys(quantities).forEach(f =\u003e {\n      const q = quantities[f];\n      document.getElementById('qty-' + f).textContent = q;\n      const card = document.getElementById('card-' + f);\n      const addBtn = document.getElementById('addbtn-' + f);\n      if (q \u003e 0) {\n        card.classList.add('selected');\n        addBtn.textContent = 'ADD MORE'; addBtn.classList.add('added');\n      } else {\n        card.classList.remove('selected');\n        addBtn.classList.remove('added'); addBtn.textContent = 'ADD';\n      }\n      document.getElementById('minus-' + f).disabled = q === 0;\n    });\n\n    \/\/ ── Summary ──\n    if (paid === 0) {\n      document.getElementById('empty-state').style.display = 'block';\n      document.getElementById('summary-content').style.display = 'none';\n      document.getElementById('add-to-cart-btn').disabled = true;\n      document.getElementById('btn-sub-text').textContent = 'Add at least 2 cans to continue';\n      document.getElementById('need-more-msg').style.display = 'none';\n      document.getElementById('summary-tier-label').textContent = 'Add cans to unlock free ones';\n      return;\n    }\n\n    document.getElementById('empty-state').style.display = 'none';\n    document.getElementById('summary-content').style.display = 'block';\n\n    const paidTotal = paid * PRICE;\n    const savedTotal = freeCans * PRICE;\n\n    \/\/ Tier label\n    if (tier) {\n      document.getElementById('summary-tier-label').textContent = `Buy ${tier.buy} Get ${tier.free} Free · ${totalCans} cans total`;\n    } else {\n      document.getElementById('summary-tier-label').textContent = `${paid} can${paid !== 1 ? 's' : ''} · Add ${next ? next.buy - paid : 0} more for free cans`;\n    }\n\n    \/\/ BOGO breakdown\n    if (freeCans \u003e 0) {\n      document.getElementById('bogo-breakdown').classList.add('show');\n      document.getElementById('bb-paid').textContent = paid;\n      document.getElementById('bb-free').textContent = freeCans;\n      document.getElementById('bb-total').textContent = totalCans;\n    } else {\n      document.getElementById('bogo-breakdown').classList.remove('show');\n    }\n\n    \/\/ Flavour list\n    const listEl = document.getElementById('selected-list');\n    listEl.innerHTML = '';\n    Object.entries(quantities).forEach(([f, q]) =\u003e {\n      if (q \u003e 0) {\n        const row = document.createElement('div');\n        row.className = 'sel-flavour-row';\n        row.innerHTML = `\u003cspan class=\"dot\" style=\"background:${FLAVOURS[f].colour}\"\u003e\u003c\/span\u003e\u003cspan class=\"name\"\u003e${FLAVOURS[f].name}\u003c\/span\u003e\u003cspan class=\"qty-badge-sm\"\u003e×${q}\u003c\/span\u003e`;\n        listEl.appendChild(row);\n      }\n    });\n\n    document.getElementById('paid-cans-label').textContent = paid + ' can' + (paid !== 1 ? 's' : '');\n\n    if (freeCans \u003e 0) {\n      document.getElementById('free-row').style.display = 'flex';\n      document.getElementById('free-cans-label').textContent = freeCans + ' FREE 🎁';\n      document.getElementById('saving-row').style.display = 'flex';\n      document.getElementById('saving-val').textContent = fmt(savedTotal);\n    } else {\n      document.getElementById('free-row').style.display = 'none';\n      document.getElementById('saving-row').style.display = 'none';\n    }\n\n    document.getElementById('total-price').textContent = fmt(paidTotal);\n    document.getElementById('per-can-price').textContent = totalCans \u003e 0 ? fmt(paidTotal \/ totalCans) + ' per can (incl. free)' : '';\n\n    \/\/ CTA\n    if (paid \u003e= 2) {\n      document.getElementById('add-to-cart-btn').disabled = false;\n      if (tier) {\n        document.getElementById('btn-sub-text').textContent = fmt(paidTotal) + ` · ${freeCans} free can${freeCans !== 1 ? 's' : ''} included`;\n      } else {\n        document.getElementById('btn-sub-text').textContent = fmt(paidTotal);\n      }\n      if (next) {\n        const needed = next.buy - paid;\n        document.getElementById('cans-needed').textContent = needed;\n        document.getElementById('next-reward-label').textContent = `Buy ${next.buy} Get ${next.free} Free`;\n        document.getElementById('need-more-msg').style.display = 'block';\n      } else {\n        document.getElementById('need-more-msg').style.display = 'none';\n      }\n    } else {\n      document.getElementById('add-to-cart-btn').disabled = true;\n      const needed = 2 - paid;\n      document.getElementById('btn-sub-text').textContent = `Add ${needed} more can${needed !== 1 ? 's' : ''} to continue`;\n      document.getElementById('cans-needed').textContent = needed;\n      document.getElementById('next-reward-label').textContent = '1 free can';\n      document.getElementById('need-more-msg').style.display = paid \u003e 0 ? 'block' : 'none';\n    }\n  }\n\n  function addToCart() {\n    const paid = totalSelected();\n    if (paid \u003c 2) return;\n    const items = [];\n    Object.entries(quantities).forEach(([f, q]) =\u003e {\n      if (q \u003e 0) items.push({ id: FLAVOURS[f].variantId, quantity: q });\n    });\n    const tier = getBogoTier(paid);\n    const discountCode = tier ? `BOGOB${tier.buy}G${tier.free}` : null;\n    fetch('\/cart\/add.js', {\n      method: 'POST', headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify({ items })\n    })\n    .then(r =\u003e r.json())\n    .then(() =\u003e {\n      if (discountCode) return fetch('\/discount\/' + discountCode, { method: 'GET' });\n    })\n    .then(() =\u003e {\n      showToast('🎁 Bundle added to cart!');\n      setTimeout(() =\u003e { window.location.href = '\/cart'; }, 1200);\n    })\n    .catch(() =\u003e {\n      showToast('🎁 Bundle added to cart!');\n      setTimeout(() =\u003e { window.location.href = '\/cart'; }, 1200);\n    });\n  }\n\n  updateUI();\n\u003c\/script\u003e","brand":"Mystic's Energy","offers":[{"title":"Default Title","offer_id":57128436597116,"sku":null,"price":0.0,"currency_code":"GBP","in_stock":true}],"url":"https:\/\/mysticsenergy.com\/products\/buy-more-get-more-free-hex-nootropic-pouches","provider":"Mystic's Energy","version":"1.0","type":"link"}