1<!doctype html> 2<!--[if IE 9]> <html class="ie9 no-js supports-no-cookies" lang="en"> <![endif]--> 3<!-- [if (gt IE 9)|!(IE)]><! --> 4<html class="no-js supports-no-cookies " lang="en"> 5 <!-- <![endif] --> 6 <head><!-- ! Yoast SEO --> 7 8 9 10<Meta name="robots" content="index, follow, max-snippet:-1, max-image-preview: large, max-video-preview:-1" /> 11 <!-- Google Tag Manager --> 12
12<script> 13 14 window.addEventListener('DOMContentLoaded', function () { 15 setTimeout(function() {
vendor: 378 bytes, lines 15-20
15 16 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 17 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 18 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 19 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 20 })(window,document,'script','dataLayer','
20GTM-PWRXKR8
vendor: 12 bytes, lines 20-21
20'); 21
21}, 5000); // delay by 2s 22 }); 23 </script>
23 24 25 <!-- Remove "Powered By Gorgias in the Chatbot" --> 26
26<script> 27var initGorgiasChatPromise = (window.GorgiasChat) ? window.GorgiasChat.init() : new Promise(function (resolve) { window.addEventListener('gorgias-widget-loaded', function () { resolve();})}); 28 29initGorgiasChatPromise.then(async () => { 30 GorgiasChat.hidePoweredBy(true) 31}) 32</script>
32 33 34 <!-- Basic and Helper page needs --> 35 <meta charset="utf-8"> 36 <meta http-equiv="x-ua-compatible" content="IE=edge"> 37 <meta name="viewport" content="width=device-width,initial-scale=1"> 38 <meta name="theme-color" content="#4cb849"><link rel="canonical" href="https://thrivemeals.com.au/"><link rel="shortcut icon" href="//thrivemeals.com.au/cdn/shop/files/1ve_Logo_32x32.png?v=1684975472" type="image/png"><!-- Title and description --> 39 40<title>Healthy Meals Delivered To Your Door | THR1VE 41 42 43 44 – Thrive Meals</title><meta name="description" content="THR1VE - look, feel and perform your best with healthy meals delivered straight to your door. Enjoy nutritionist designed meals and plans using the best market-fresh, seasonal Aussie produce."><!-- Helpers --> 45 46<meta property="og:type" content="website"> 47<meta property="og:title" content="Healthy Meals Delivered To Your Door | THR1VE"> 48<meta property="og:description" content="THR1VE - look, feel and perform your best with healthy meals delivered straight to your door. Enjoy nutritionist designed meals and plans using the best market-fresh, seasonal Aussie produce."> 49 50<meta property="og:url" content="https://thrivemeals.com.au/"> 51<meta property="og:site_name" content="Thrive Meals"> 52 53 54 55<meta name="twitter:card" content="summary"> 56 57 58<meta name="twitter:title" content="Healthy Meals Delivered To Your Door | THR1VE"> 59<meta name="twitter:description" content="THR1VE - look, feel and perform your best with healthy meals delivered straight to your door. Enjoy nutritionist designed meals and plans using the best market-fresh, seasonal Aussie produce."> 60 61 62 63 <!-- CSS --> 64 <style> 65 *,::after,::before{box-sizing:border-box}body{font-family: var(--font-stack-body);font-weight: var(--font-weight-body);font-style: var(--font-style-body);}h1,h2,h3,h4,h5,h6{font-family: var(--font-stack-header);font-weight: var(--font-weight-header);font-style: var(--font-style-header);} 66 @font-face { 67 font-family: Montserrat; 68 font-weight: 700; 69 font-style: normal; 70 font-display: swap; 71 src: url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n7.3c434e22befd5c18a6b4afadb1e3d77c128c7939.woff2") format("woff2"), 72 url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n7.5d9fa6e2cae713c8fb539a9876489d86207fe957.woff") format("woff"); 73} 74 75 @font-face { 76 font-family: Montserrat; 77 font-weight: 500; 78 font-style: normal; 79 font-display: swap; 80 src: url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n5.07ef3781d9c78c8b93c98419da7ad4fbeebb6635.woff2") format("woff2"), 81 url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n5.adf9b4bd8b0e4f55a0b203cdd84512667e0d5e4d.woff") format("woff"); 82} 83 84 @font-face { 85 font-family: Montserrat; 86 font-weight: 400; 87 font-style: normal; 88 font-display: swap; 89 src: url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2") format("woff2"), 90 url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n4.a6c632ca7b62da89c3594789ba828388aac693fe.woff") format("woff"); 91} 92 93 @font-face { 94 font-family: Montserrat; 95 font-weight: 700; 96 font-style: normal; 97 font-display: swap; 98 src: url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n7.3c434e22befd5c18a6b4afadb1e3d77c128c7939.woff2") format("woff2"), 99 url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n7.5d9fa6e2cae713c8fb539a9876489d86207fe957.woff") format("woff"); 100} 101 102 @font-face { 103 font-family: Montserrat; 104 font-weight: 700; 105 font-style: normal; 106 font-display: swap; 107 src: url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n7.3c434e22befd5c18a6b4afadb1e3d77c128c7939.woff2") format("woff2"), 108 url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n7.5d9fa6e2cae713c8fb539a9876489d86207fe957.woff") format("woff"); 109} 110 111 @font-face { 112 font-family: Montserrat; 113 font-weight: 400; 114 font-style: italic; 115 font-display: swap; 116 src: url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_i4.5a4ea298b4789e064f62a29aafc18d41f09ae59b.woff2") format("woff2"), 117 url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_i4.072b5869c5e0ed5b9d2021e4c2af132e16681ad2.woff") format("woff"); 118} 119 120 @font-face { 121 font-family: Montserrat; 122 font-weight: 700; 123 font-style: italic; 124 font-display: swap; 125 src: url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_i7.a0d4a463df4f146567d871890ffb3c80408e7732.woff2") format("woff2"), 126 url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_i7.f6ec9f2a0681acc6f8152c40921d2a4d2e1a2c78.woff") format("woff"); 127} 128 129 @font-face { 130 font-family: Montserrat; 131 font-weight: 600; 132 font-style: normal; 133 font-display: swap; 134 src: url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), 135 url("//thrivemeals.com.au/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); 136} 137 138 @font-face { 139 font-family: Rubik; 140 font-weight: 900; 141 font-style: normal; 142 font-display: swap; 143 src: url("//thrivemeals.com.au/cdn/fonts/rubik/rubik_n9.3f4d0724475b415c135f62c66bd7bc809d96e9ee.woff2?h1=dGhyaXZlLW1lYWxzLW9wcGVuaGVpbWVyLmFjY291bnQubXlzaG9waWZ5LmNvbQ&h2=dGhyaXZlbWVhbHMuY29tLmF1&hmac=46e7a41aad8b75f38f4bf9cfdd4da223878a8bad60752
14363033c07a6c3f035afc") format("woff2"), 144 url("//thrivemeals.com.au/cdn/fonts/rubik/rubik_n9.12723f00a16a09f47e0c40e11618903df4206391.woff?h1=dGhyaXZlLW1lYWxzLW9wcGVuaGVpbWVyLmFjY291bnQubXlzaG9waWZ5LmNvbQ&h2=dGhyaXZlbWVhbHMuY29tLmF1&hmac=bf2b3e5fc1f7c4e8a1dd48a6bea14de638c1cd64bb812eb6bfa43b877ba600e1") format("woff"); 145 } 146 147 148 .cardFilterIcons ul{ 149 display:flex; 150 flex-wrap:wrap; 151 } 152 .cardFilterIcons li { 153 position: relative; 154 width: 32px; 155 height: 32px; 156 margin-inline-end: 5px; 157 } 158 li.filterTooltip:hover:before { 159 content: attr(tip-title); 160 position: absolute; 161 top: 0; 162 white-space: nowrap; 163 top: -100%; 164 left: 50%; 165 width: max-content; 166 transform: translate(-50%); 167 background: #4cb849; 168 color: #ffffff; 169 padding: 2px 7px; 170 border-radius: clamp(0px,30px,5px); 171 } 172 li.filterTooltip:hover:after { 173 top: -35%; 174 left: 50%; 175 border: solid transparent; 176 content: ""; 177 height: 0; 178 width: 0; 179 position: absolute; 180 pointer-events: none; 181 border-color: transparent; 182 border-top-color: #4cb849; 183 border-width: .3125rem; 184 margin-inline-start: -.3125rem; 185 } 186 </style> 187 188 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css"> 189<link rel="preload" href="//thrivemeals.com.au/cdn/shop/t/214/assets/added-for-optimize-common.css?v=76239766610092170891783673534" as="style" onload="this.onload=null;this.rel='stylesheet'"> 190<noscript><link rel="stylesheet" href="//thrivemeals.com.au/cdn/shop/t/214/assets/added-for-optimize-common.css?v=76239766610092170891783673534"></noscript> 191 <link rel="preload" href="//thrivemeals.com.au/cdn/shop/t/214/assets/added-for-optimize-bypass-left.css?v=181734138381596880221783673534" as="style" onload="this.onload=null;this.rel='stylesheet'"> 192 <noscript><link rel="stylesheet" href="//thrivemeals.com.au/cdn/shop/t/214/assets/added-for-optimize-bypass-left.css?v=181734138381596880221783673534"></noscript> 193<link rel="preload" href="//thrivemeals.com.au/cdn/shop/t/214/assets/added-for-optimize-css-after.css?v=15458344354482757771788746160" as="style" onload="this.onload=null;this.rel='stylesheet'"> 194<noscript><link rel="stylesheet" href="//thrivemeals.com.au/cdn/shop/t/214/assets/added-for-optimize-css-after.css?v=15458344354482757771788746160"></noscript> <!-- Header hook for plugins --> 195
195<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
195<meta name="google-site-verification" content="AH3KQYZOWLv5ZJj89QbHp57rWpqz2FYA5w-uZpNkcpc"> 196<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/72982430012/digital_wallets/dialog"> 197<meta id="in-context-paypal-metadata" data-shop-id="72982430012" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="AUD"> 198<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
198<script async="async" src="/checkouts/internal/preloads.js?locale=en-AU&default_configuration_id=56328508"></script>
198 199<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
200<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-AU&default_configuration_id=56328508&shop_id=72982430012" crossorigin="anonymous"></script>
vendor: 1 bytes, line 200
200
201<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":72982430012,"countryCode":"AU","currencyCode":"AUD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/72982430012","merchantName":"Thrive Meals","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","jcb"],"total":{"type":"pending","label":"Thrive Meals","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 201
201
202<script id="shopify-features" type="application/json">{"accessToken":"2ce7fa426808991aa7c460dfe0b0735c","betas":["rich-media-storefront-analytics"],"domain":"thrivemeals.com.au","predictiveSearch":true,"shopId":72982430012,"locale":"en"}</script>
vendor: 1 bytes, line 202
202
203<script>var Shopify = Shopify || {}; 204Shopify.shop = "thrive-meals-oppenheimer.myshopify.com"; 205Shopify.locale = "en"; 206Shopify.currency = {"active":"AUD","rate":"1.0"}; 207Shopify.country = "AU"; 208Shopify.theme = {"name":"Site Supplements with GTM 12.7.2026 [Production]","id":186870890812,"schema_name":"Vegist","schema_version":"1.22","theme_store_id":null,"role":"main"}; 209Shopify.theme.handle = "null"; 210Shopify.theme.style = {"id":null,"handle":null}; 211Shopify.cdnHost = "thrivemeals.com.au/cdn"; 212Shopify.routes = Shopify.routes || {}; 213Shopify.routes.root = "/"; 214Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 215Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 216Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 217Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 217
217
218<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 218
218
219<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 219
219
220<script> 221 window.ShopifyPay = window.ShopifyPay || {}; 222 window.ShopifyPay.apiHost = "shop.app\/pay"; 223 window.ShopifyPay.redirectState = null; 224</script>
vendor: 1 bytes, line 224
224
225<script> 226 window.Shopify = window.Shopify || {}; 227 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 228 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 229 window.Shopify.SignInWithShop.eligible = true; 230</script>
vendor: 1 bytes, line 230
230
231<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 231
231
232<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 232
232
233<script type="module"> 234 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 235 236 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 237 238</script>
vendor: 1 bytes, line 238
238
239<script> 240 window.Shopify = window.Shopify || {}; 241 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 242 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 243</script>
vendor: 1 bytes, line 243
243
244<script>(function() { 245 var isLoaded = false; 246 function asyncLoad() { 247 if (isLoaded) return; 248 isLoaded = true; 249 var urls = ["https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=U988Pp\u0026shop=thrive-meals-oppenheimer.myshopify.com"]; 250 for (var i = 0; i < urls.length; i++) { 251 var s = document.createElement('script'); 252 s.type = 'text/javascript'; 253 s.async = true; 254 s.src = urls[i]; 255 var x = document.getElementsByTagName('script')[0]; 256 x.parentNode.insertBefore(s, x); 257 } 258 }; 259 if(window.attachEvent) { 260 window.attachEvent('onload', asyncLoad); 261 } else { 262 window.addEventListener('load', asyncLoad, false); 263 } 264})();</script>
vendor: 1 bytes, line 264
264
265<script id="__st">var __st={"a":72982430012,"offset":39600,"reqid":"18ecebbb-aee1-45e4-9956-be2d9038bfac-1791584052","pageurl":"thrivemeals.com.au\/","u":"5efd7c8a4b7b","p":"home"};</script>
vendor: 1 bytes, line 265
265
266<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 266
266
267<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!1,!0)}();</script>
vendor: 1 bytes, line 267
267
268<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//thrivemeals.com.au/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 268
268
269<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//thrivemeals.com.au/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
269<script crossorigin="anonymous" defer="defer" src="//thrivemeals.com.au/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 269
269
270<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 270
270
271<script> 272 window.Shopify = window.Shopify || {}; 273 window.Shopify.MCP = window.Shopify.MCP || {}; 274 window.Shopify.MCP.enabled = true; 275 window.Shopify.MCP.shop = "thrive-meals-oppenheimer.myshopify.com"; 276 window.Shopify.MCP.mcpEndpoint = "https:\/\/thrivemeals.com.au\/api\/mcp"; 277 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question â e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 278</script>
vendor: 1 bytes, line 278
278
279<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/thrivemeals.com.au\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-f427de6a.js","sha256-ypGF+5vIq4Psw4WG7nsVtdd\/TCfsJWnrNuACdqLCElY=");})(); 280</script>
vendor: 1 bytes, line 280
280
281<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://thrivemeals.com.au/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 282</script>
vendor: 1 bytes, line 282
282
283<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 284 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 285</script>
vendor: 1 bytes, line 285
285
286<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 287</script>
287 288<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://thrivemeals.com.au/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 289<style id="shopify-accelerated-checkout-cart"> 290 #shopify-buyer-consent { 291 margin-top: 1em; 292 display: inline-block; 293 width: 100%; 294} 295 296#shopify-buyer-consent.hidden { 297 display: none; 298} 299 300#shopify-subscription-policy-button { 301 background: none; 302 border: none; 303 padding: 0; 304 text-decoration: underline; 305 font-size: inherit; 306 cursor: pointer; 307} 308 309#shopify-subscription-policy-button::before { 310 box-shadow: none; 311} 312 313 </style> 314
315<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
315 316 317<!--[if lt IE 9]>
318<script src="//thrivemeals.com.au/cdn/shop/t/214/assets/html5shiv.min.js?v=82288979872422875571783673534" async="async"></script>
vendor: 1 bytes, line 318
318
319<script src="//thrivemeals.com.au/cdn/shop/t/214/assets/respond.min.js?v=53972" async="async"></script>
319 320<link href="//thrivemeals.com.au/cdn/shop/t/214/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 321<link href="//thrivemeals.com.au/search?q=43b7cbb18859bc7faa0f414467c75666" id="respond-redirect" rel="respond-redirect" />
322<script src="//thrivemeals.com.au/search?q=43b7cbb18859bc7faa0f414467c75666" type="text/javascript"></script>
322 323<![endif]--> 324 325 326 <!-- JS -->
326<script> 327 // Antigravity: Detect customer login change or logout to clear stale localStorage data 328 (function() { 329 const currentCustomerEmail = null; 330 const storedCustomerEmail = localStorage.getItem("logged_in_customer_email"); 331 332 let shouldClear = false; 333 if (currentCustomerEmail) { 334 // User is logged in 335 if (storedCustomerEmail !== currentCustomerEmail) { 336 // Different user logged in, or fresh login 337 shouldClear = true; 338 } 339 } else { 340 // Guest user (not logged in) 341 if (storedCustomerEmail) { 342 // User has logged out 343 shouldClear = true; 344 } 345 } 346 347 if (shouldClear) { 348 console.log("Antigravity: Clearing previous session data from localStorage"); 349 localStorage.removeItem("window_state"); 350 localStorage.removeItem("deliveryInfo"); 351 localStorage.removeItem("widgetAddress"); 352 localStorage.removeItem("shipping_amount"); 353 354 if (currentCustomerEmail) { 355 localStorage.setItem("logged_in_customer_email", currentCustomerEmail); 356 } else { 357 localStorage.removeItem("logged_in_customer_email"); 358 } 359 } else if (currentCustomerEmail) { 360 localStorage.setItem("logged_in_customer_email", currentCustomerEmail); 361 } 362 })(); 363 364 const isLogin = false; 365 const window_state = JSON.parse(localStorage.getItem("window_state") || "{}"); 366 const loca_del = JSON.parse(localStorage.getItem("deliveryInfo") || "{}"); 367 const loca_address = JSON.parse(localStorage.getItem("widgetAddress") || "{}"); 368 369 window.state = {}; 370 371 372 373 const __DEFAULT_STATE__ = { 374 step: window_state.step ? window_state.step : 1, 375 phone: window_state.phone ? window_state.phone : "", 376 email: window_state.email ? window_state.email : "", 377 378 address: loca_address.address_line_combined ? loca_address.address_line_combined : (window_state.address ? window_state.address : ""), 379 suburb: loca_address.locality_name ? loca_address.locality_name : (window_state.suburb ? window_state.suburb : ""), 380 state: loca_address.state_territory ? loca_address.state_territory : (window_state.state ? window_state.state : ""), 381 postcode: loca_address.postcode ? loca_address.postcode : (window_state.postcode ? window_state.postcode : ""), 382 date: loca_del.deliveryDate ? loca_del.deliveryDate : (window_state.date ? window_state.date : ""), 383 time: loca_del.deliveryStart 384 ? "[" + loca_del.deliveryStart.replace(/[\[\]]/g, '') + " - " + loca_del.deliveryEnd.replace(/[\[\]]/g, '') + "]"
385 : (window_state.time ? window_state.time : ""), 386 plan: window_state.plan ? window_state.plan : "subscribe", 387 freq: window_state.freq ? window_state.freq : "WeeklySubscription", 388 started: "", 389 shipping_amount: window_state.shipping_amount ? window_state.shipping_amount : 0, 390 splan_seclected: window_state.splan_seclected ? window_state.splan_seclected : "" 391 }; 392 393 if (__DEFAULT_STATE__.time && (__DEFAULT_STATE__.time !== '')) { 394 __DEFAULT_STATE__.time = __DEFAULT_STATE__.time.replace(/[\[\]]/g, ''); 395 } 396 397 398 399 const state = __DEFAULT_STATE__; 400 window.state = state; 401 402 console.log('__DEFAULT_STATE__', state); 403 404 localStorage.setItem("window_state", JSON.stringify(state)); 405 406</script>
406 407
408<script> 409/*====================================================== 410 OTP SHIPPING VIA POSTCODE API (ONE-TIME ONLY) 411 Rule: 412 - sortCode suffix 1 => METRO => $14.95 413 - suffix 2-5 => RURAL => $16.95 414 - else => WA/FNQ => $19.95 415 ====================================================== */ 416 417const OTP_SHIPPING = { 418 N: 15, 419 QAV: 17, 420 DEFAULT: 19.95 421}; 422 423const state_dd = JSON.parse(localStorage.getItem("window_state") || "{}"); 424 425const POSTCODE_API_BASE = 426 "https://83cv7ta60b.execute-api.ap-southeast-2.amazonaws.com/hdcPostalCode/postal/"; 427 428/* ---------------- Helpers ---------------- */ 429 430function normalizePostcode(postcode) { 431 return String(postcode || "").replace(/\D/g, "").trim().slice(0, 4); 432} 433 434function getPcShipCacheKey(postcode) { 435 return "pc_ship_tier_" + String(postcode || "").trim(); 436} 437 438function setShippingAmountUI(amount) { 439 const n = typeof amount === "string" ? parseFloat(amount) : amount; 440 const safe = Number.isFinite(n) ? n : 0; 441 442 const statenew_dd = JSON.parse(localStorage.getItem("window_state") || "{}"); 443 const currentShippingCents = Math.round(parseFloat(amount || 0) * 100); 444 let deliveryShippingEl = document.querySelector(".delivery-text-shippingamount"); 445 let selected_frequency = statenew_dd?.freq; 446 let amountEl = document.querySelector(".free-shipping-amount"); 447 const mealsCountNEW = localCart.countLunchAndDinnerMeals(localCart.cart.items); 448 449 // Logic from LocalCart for consistency 450 const defaultShippingCents = 1500; // $15.00 default 451 const format = (cents) => "$" + (cents / 100).toFixed(2); 452 let hasAddress_new = !!(statenew_dd?.address && String(statenew_dd.address).trim() !== ""); 453 454 const setShippingTextNEW = (text) => { 455 amountEl.textContent = text; 456 }; 457 458 459 // Update all matching elements (mini cart + cart page etc.) 460 document.querySelectorAll(".free-shipping-amount").forEach((el) => { 461 const freeTextEl = el.parentElement?.querySelector(".free-shipping-text"); 462 463 // â Address blank হলৠshipping Pending দà§à¦à¦¾à¦¬à§ 464 if (!hasAddress_new) { 465 466 if(selected_frequency != "OneTimePurchase"){ 467 if(mealsCountNEW < 10){ 468 setShippingTextNEW("Pending"); 469 amountEl.classList.remove("free_amount"); 470 }else{ 471 setShippingTextNEW("Free"); 472 amountEl.classList.add("free_amount"); 473 } 474 }else{ 475 setShippingTextNEW("Pending"); 476 amountEl.classList.remove("free_amount"); 477 } 478 amountEl.classList.remove("text-decoration-line-through"); 479 480 if (deliveryShippingEl) { 481 deliveryShippingEl.textContent = "Pending"; 482 } 483 484 if (freeTextEl) { 485 freeTextEl.classList.add("d-none"); 486 } 487 return; 488 489 }else{ 490 491 if (deliveryShippingEl) { 492 deliveryShippingEl.textContent = format(currentShippingCents || defaultShippingCents); 493 } 494 495 if(userLoggedIn && customerData?.tags?.includes("NDIS") && typeof customerData?.ndisDiscountPercentage === "number"){ 496 el.textContent = "$0.00"; 497 el.classList.add("free_amount"); 498 el.classList.remove("text-decoration-line-through"); 499 if (freeTextEl) { 500 freeTextEl.textContent = format(currentShippingCents || defaultShippingCents); 501 freeTextEl.classList.remove("d-none"); 502 freeTextEl.classList.add("text-decoration-line-through", "text", "ms-1"); 503 freeTextEl.classList.remove("text-grren", "text-uppercase"); 504 } 505 } else if (selected_frequency === "WeeklySubscription" || selected_frequency === "FortnightlySubscription") { 506 el.textContent = "$0.00"; 507 el.classList.add("free_amount"); 508 el.classList.remove("text-decoration-line-through"); 509 if (freeTextEl) { 510 freeTextEl.textContent = format(currentShippingCents || defaultShippingCents); 511 freeTextEl.classList.remove("d-none"); 512 freeTextEl.classList.add("text-decoration-line-through", "text", "ms-1"); 513 freeTextEl.classList.remove("text-grren", "text-uppercase"); 514 } 515 } else { 516 el.textContent = "$" + safe.toFixed(2); 517 el.classList.remove("free_amount"); 518 519 if (safe === 0) { 520 el.textContent = "$0.00"; 521 el.classList.remove("text-decoration-line-through"); 522 if (freeTextEl) { 523 freeTextEl.textContent = format(currentShippingCents || defaultShippingCents); 524 freeTextEl.classList.remove("d-none"); 525 freeTextEl.classList.add("text-decoration-line-through", "text", "ms-1"); 526 freeTextEl.classList.remove("text-grren", "text-uppercase"); 527 } 528 } else { 529 el.classList.remove("text-decoration-line-through"); 530 freeTextEl?.classList.add("d-none"); 531 } 532 } 533 } 534 }); 535} 536 537async function fetchShippingTierByPostcode(postcode) { 538 539 const pc = normalizePostcode(postcode); 540 541 const CACHE_KEY = "shipping_tier_data"; 542 const CACHE_EXPIRE_DAYS = 30; 543 544 // 30 days in milliseconds 545 const CACHE_EXPIRE_TIME = CACHE_EXPIRE_DAYS * 24 * 60 * 60 * 1000; 546 547 // â default cache object 548 let shipping_tier = {}; 549 550 // â get cache safely 551 try { 552 553 const stored = localStorage.getItem(CACHE_KEY); 554 555 if (stored) { 556 557 const parsed = JSON.parse(stored); 558 559 // â ensure object only 560 if ( 561 typeof parsed === "object" && 562 parsed !== null && 563 !Array.isArray(parsed) 564 ) { 565 shipping_tier = parsed; 566 } 567 } 568 569 } catch (e) { 570 571 console.log( 572 "Invalid shipping_tier cache, resetting..." 573 ); 574 575 shipping_tier = {}; 576 } 577 578 // â check existing cache 579 if (shipping_tier[pc]) { 580 581 const cached = shipping_tier[pc]; 582
583 // â valid cache 584 if ( 585 cached.timestamp && 586 (Date.now() - cached.timestamp) < CACHE_EXPIRE_TIME 587 ) { 588 589 console.log( 590 "From Cache", 591 cached.data 592 ); 593 594 return cached.data; 595 } 596 597 // â expired cache remove 598 delete shipping_tier[pc]; 599 600 localStorage.setItem( 601 CACHE_KEY, 602 JSON.stringify(shipping_tier) 603 ); 604 605 console.log( 606 "Expired cache removed" 607 ); 608 } 609 610 // â api request 611 const res = await fetch( 612 POSTCODE_API_BASE + pc, 613 { 614 method: "GET" 615 } 616 ); 617 618 const json = await res.json(); 619 620 // â api list 621 const list = Array.isArray(json?.data) 622 ? json.data 623 : []; 624 625 // â exact postcode match 626 const matched = list.filter( 627 r => 628 String( 629 r?.postcode || "" 630 ).trim() === pc 631 ); 632 633 // â first matched row 634 const first = matched[0] || null; 635 636 const sortCode = 637 first?.sortCode || ""; 638 639 // No sortCode match = the postcode did NOT resolve â "NONE" (shipping unknown â $0, decided at 640 // checkout). A REAL far-zone postcode HAS a sortCode (just not N/Q/A/V) â stays "DEFAULT" ($19.95). 641 let tier = sortCode ? "DEFAULT" : "NONE"; 642 643 // â tier logic 644 const firstChar = sortCode 645 ? sortCode 646 .charAt(0) 647 .toUpperCase() 648 : ""; 649 650 if (firstChar === "N") { 651 652 tier = "N"; 653 654 } else if ( 655 ["Q", "A", "V"].includes(firstChar) 656 ) { 657 658 tier = "QAV"; 659 } 660 661 // â final output
662 const out = { 663 postcode: pc, 664 tier, 665 sortCode: sortCode || null, 666 response: json 667 }; 668 669 // â save with timestamp 670 shipping_tier[pc] = { 671 data: out, 672 timestamp: Date.now() 673 }; 674 675 // â save cache 676 localStorage.setItem( 677 CACHE_KEY, 678 JSON.stringify(shipping_tier) 679 ); 680 681 console.log( 682 "Saved Cache", 683 shipping_tier 684 ); 685 686 return out; 687} 688 689function getShippingAmountByTier(tier) { 690 if (tier === "N") return OTP_SHIPPING.N; 691 if (tier === "QAV") return OTP_SHIPPING.QAV; 692 if (tier === "NONE") return 0; // unresolved postcode â don't guess a paid amount; $0 until checkout 693 return OTP_SHIPPING.DEFAULT; // resolved far-zone (WA/SA/TAS/NT) â $19.95 694} 695 696// Try to read postcode from your saved state/address 697function getStatePostcode(postcode1 = '') { 698 let sdata_new = JSON.parse(localStorage.getItem("window_state") || "{}"); 699 let deliveryInfo = JSON.parse(localStorage.getItem("deliveryInfo") || "{}"); 700 return ( 701 sdata_new?.postcode || 702 deliveryInfo?.postcode || 703 postcode1 || 704 "" 705 ); 706} 707 708/* ---------------- Public functions ---------------- */ 709 710// One-time: Updates UI + stores shipping_amount in window_state 711async function applyOneTimeShippingUI(postcode1 = '') { //alert('d'); 712 713 const postcode = postcode1 || 714 state_dd?.postcode || 715 state_dd?.widgetAddress?.postcode || 716 state_dd?.address?.postcode; 717 718 const { tier } = await fetchShippingTierByPostcode(postcode); 719 720 const shipping = getShippingAmountByTier(tier); 721 722 return shipping; 723} 724 725/* ---------------- Optional: Keep checkout attributes in sync ---------------- 726 Call window.syncCartAttributesShipping() from your cart JS BEFORE redirect to checkout, 727 if you want the info available in cart.attributes (for a Shipping/Delivery Function). 728-------------------------------------------------------------------------- */ 729async function syncCartAttributesShipping(postcode_new = '') { 730 let amount = 0; 731 let tier = ""; 732 const postcode = postcode_new || getStatePostcode(); 733 const t = await fetchShippingTierByPostcode(postcode); 734 tier = t?.tier || "NONE"; // unresolved lookup â $0 (was "FNQ" â a phantom $19.95 default) 735 amount = getShippingAmountByTier(tier); 736 localStorage.setItem("shipping_amount", amount); 737 localStorage.setItem("shipping_tier", tier); 738 console.log('shipping_amount',amount); 739 console.log('postcode',postcode); 740 setShippingAmountUI(amount); 741} 742 743async function initShippingOnLoad() { 744 745 let state_newone = JSON.parse(localStorage.getItem("window_state") || "{}"); 746 747 let postcode_newone = 748 state_newone?.postcode || 749 state_newone?.widgetAddress?.postcode || 750 state_newone?.address?.postcode || 751 ""; 752 753 if (!postcode_newone) return; // â correct variable 754 755 let selected_Frequency = state_newone?.freq || "OneTimePurchase"; 756 757 let shipping = 0; 758 759 let customFREE = false; 760 761 762 shipping = await window.applyOneTimeShippingUI(postcode_newone); 763 764 if (userLoggedIn && Array.isArray(customerData.tags) && customerData.tags.includes("NDIS") && typeof customerData.ndisDiscountPercentage === "number") { 765 766 customFREE = true; 767 768 } else if (userLoggedIn && Array.isArray(customerData.tags) && customerData.tags.includes("keto_customers") && typeof customerData.ketoCustDiscountFixed === "number") { 769 770 //customFREE = true; 771 772 } else if (userLoggedIn && Array.isArray(customerData.tags) && customerData.tags.includes("T1") && typeof customerData.ketoCustDiscountFixed === "number") { 773 774 //customFREE = true; 775 776 } else if (userLoggedIn && Array.isArray(customerData.tags) && customerData.tags.includes("T2") && typeof customerData.ketoCustDiscountFixed === "number") { 777 778 //customFREE = true; 779 780 } else if (userLoggedIn && Array.isArray(customerData.tags) && customerData.tags.includes("T3") && typeof customerData.ketoCustDiscountFixed === "number") { 781 782 //customFREE = true; 783 784 } 785 786 if ((selected_Frequency !== "OneTimePurchase") && !customFREE) { 787 shipping = 0; 788 } 789 790 if (window.LocalCart) { 791 window.LocalCart.shipping = shipping; 792 window.LocalCart.totalPrice = window.LocalCart.subtotal + shipping; 793 794 if (typeof window.LocalCart.updateDOM === "function") { 795 window.LocalCart.updateDOM(); 796 } 797 } 798} 799 800 801/* ---------------- Expose globally ---------------- */ 802//window.applyOneTimeShippingUI = applyOneTimeShippingUI; 803//window.fetchShippingTierByPostcode = fetchShippingTierByPostcode; 804//window.getShippingAmountByTier = getShippingAmountByTier; 805window.syncCartAttributesShipping = syncCartAttributesShipping; 806</script>
806 807
808<script src="//thrivemeals.com.au/cdn/shop/t/214/assets/jquery-1.12.0.min.js?v=180303338299147220221783673534"></script>
vendor: 1 bytes, line 808
808
809<script src="//thrivemeals.com.au/cdn/shop/t/214/assets/custom-cart-ajax-local.js?v=42584562945682488001789111707" defer></script>
vendor: 1 bytes, line 809
809
810<script src="//thrivemeals.com.au/cdn/shop/t/214/assets/bootstrap.bundle.min.js?v=178806464053651140501783673534" async="async"></script>
vendor: 1 bytes, line 810
810
811<script src="//thrivemeals.com.au/cdn/shop/t/214/assets/owl.carousel.min.js?v=97891440811553454251783673534"></script>
811 812
812<script src="//thrivemeals.com.au/cdn/shopifycloud/storefront/assets/themes_support/shopify_common-5f594365.js" async="async"></script>
812 813 814 815 816 817
817<script type="text/javascript"> 818 819 window.addEventListener('DOMContentLoaded', function () { 820 setTimeout(function () { 821 (function(c,l,a,r,i,t,y){ 822 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 823 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 824 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 825 })(window, document, "clarity", "script", "ncmyrfqzac"); 826 }, 5000); // Delay Clarity by 3s 827 }); 828 </script>
828 829 830 <meta name="google-site-verification" content="O_0nTZYTzS_XxrQyaicrphFdF9RybfHhk26TSFUtTZ4" />
830<script> 831 832const customerData = null; 833 834const MIN_SUBS_CART_AMOUNT = 89; 835 const MIN_SUBS_MEAL_LIMIT = 0; 836 const MIN_OTP_CART_AMOUNT = 89; 837 const MIN_ONE_TIME_MEALS = 8; 838 const MIN_NDIS_SUBS_CART_AMOUNT = 29; 839 const MIN_NDIS_OTP_CART_AMOUNT = 29; 840 const SHIPPING_COST = 15;// SEGMENT PRICING â mirrors cart-transform run.js EXACTLY (display == checkout). Prices in CENTS. 841 // Metafield thr1ve/segment_pricing (json) with identical hardcoded fallback to run.js 842 // FALLBACK_SEGMENT_PRICING: bluefit 9.95, conditn 9.95, wholesale 9.00 (keto/T1/T2/T3 = null / never priced here). 843 // validateSegmentPrice mirrors run.js validatePrice(): a metafield value is used ONLY if it parses to a 844 // finite number in [0.01, 50] dollars; otherwise fall back to the hardcoded default. This stops a malformed 845 // metafield (0, negative, sub-cent, non-numeric, or > $50) from fabricating a price below/above checkout. 846 function validateSegmentPrice(raw, fallbackCents) { 847 // Mirror run.js validatePrice() TYPE check first: reject anything that isn't a number or string 848 // BEFORE numeric conversion. Without this, Number(true)===1 / Number([5])===5 / Number([0.5])===0.5 849 // would fabricate $1.00/$5.00/$0.50 while checkout rejects the boolean/array and charges the 850 // fallback ($9.95/$9.00) â i.e. display < checkout. (typeof null === 'object' also falls back here.) 851 if (typeof raw !== 'number' && typeof raw !== 'string') return fallbackCents; 852 // Use Number() (NOT parseFloat) to match run.js: "8abc" -> NaN -> fallback (never $8.00 < checkout). 853 var n = Number(raw); 854 if (!isFinite(n) || n < 0.01 || n > 50) return fallbackCents; 855 return Math.round(n * 100); 856 } 857 const SEGMENT_PRICING = { 858 bluefit: validateSegmentPrice(null, 995), 859 conditn: validateSegmentPrice(null, 995), 860 wholesale: validateSegmentPrice(null, 900) 861 }; 862 // Priority: first PRICED match wins (matches run.js object order). 863 const SEGMENT_PRIORITY = ["bluefit", "conditn", "wholesale"]; 864 const BLUEFIT_PRICE = SEGMENT_PRICING.bluefit; // alias (was 995) â now metafield-driven, cannot drift from checkout 865 const KETO_PRICE = 1050; 866 const KETO_PRICE_T1 = 1120; 867 const KETO_PRICE_T2 = 1080; 868 const KETO_PRICE_T3 = 1050; 869 // Metafield-driven (prod default): dev store has different selling-plan IDs; nil metafield falls back to prod id. 870 const SELLING_PLAN_S = 689703944508; 871 // Metafield-driven (prod default): dev store has different selling-plan IDs; nil metafield falls back to prod id. 872 const SELLING_PLAN_FS = 692900364604; 873 // B4 tier-priced subscription plans (per-meal-count). 10â13 meals use the BASE plan above ($12.95); 874 // 14/18/25 use these tier plans, whose fixed PRICE policy bills each meal at the Doc5 §4 tier â the 875 // ONLY way to charge the tier on a subscription (the cart-transform can't reprice selling-plan lines). 876 // Key = getDoc5MealTier().currentTierMeals (the deep tier is 25/$9.95; counts 18â24 map to the 18 plan). 877 // Metafield-driven like SELLING_PLAN_S/FS: the DEFAULT below is the PROD plan IDs (created on the prod 878 // "Subscribe and save" group 77408993596 on 2026-07-06, each with a fixed PRICE policy at the tier). 879 // The dev store overrides via the shop.metafields.thr1ve.selling_plan_tiers (json) metafield.
880 const SELLING_PLAN_TIERS ={"WeeklySubscription":{"14":694332916028,"18":694332948796,"25":694332981564},"FortnightlySubscription":{"14":694333014332,"18":694333047100,"25":694333079868}}; 881 const lastChecked = new Map(); // key=e164phone 882 const DEDUPE_TTL_MS = 2 * 60 * 1000; 883 const EMAIL_CACHE_KEY = "email_check_cache"; 884 const EMAIL_CACHE_TTL = 1 * 60 * 1000; 885 const PROMO_PROD_PRICE = 1000; 886 const KETO_PRICE_CONDITN = 995;window.THR1VE_MEAL_MACROS = window.THR1VE_MEAL_MACROS || {}; 887 window.THR1VE_BUNDLE_INFO = window.THR1VE_BUNDLE_INFO || {};window.THR1VE_MEAL_MACROS["8219808891196"] = { protein: "25.6 g", kcal: "294 Cal" };window.THR1VE_MEAL_MACROS["8219804336444"] = { protein: "42.1 g", kcal: "328 Cal" };window.THR1VE_MEAL_MACROS["9590788784444"] = { protein: "43.9 g", kcal: "391 Cal" };window.THR1VE_MEAL_MACROS["8219775893820"] = { protein: "33.3 g", kcal: "361 Cal" };window.THR1VE_MEAL_MACROS["8219786084668"] = { protein: "30.3 g", kcal: "326 Cal" };window.THR1VE_MEAL_MACROS["9093920719164"] = { protein: "47.5 g", kcal: "319 Cal" };window.THR1VE_MEAL_MACROS["9197210665276"] = { protein: "39.5 g", kcal: "402 Cal" };window.THR1VE_MEAL_MACROS["9093918196028"] = { protein: "42.3 g", kcal: "341 Cal" };window.THR1VE_MEAL_MACROS["9715305873724"] = { protein: "40.5 g", kcal: "260 Cal" };window.THR1VE_MEAL_MACROS["9715303088444"] = { protein: "32.6 g", kcal: "351 Cal" };window.THR1VE_MEAL_MACROS["9715303579964"] = { protein: "39.4 g", kcal: "371 Cal" };window.THR1VE_MEAL_MACROS["9590789013820"] = { protein: "32.5 g", kcal: "423 Cal" };window.THR1VE_MEAL_MACROS["9093467767100"] = { protein: "44.7 g", kcal: "387 Cal" };window.THR1VE_MEAL_MACROS["9093915902268"] = { protein: "45.0 g", kcal: "403 Cal" };window.THR1VE_MEAL_MACROS["9093445255484"] = { protein: "39.8 g", kcal: "406 Cal" };window.THR1VE_MEAL_MACROS["9590789210428"] = { protein: "32.3 g", kcal: "422 Cal" };window.THR1VE_MEAL_MACROS["9093463245116"] = { protein: "29.1 g", kcal: "311 Cal" };window.THR1VE_MEAL_MACROS["9715306070332"] = { protein: "51.6 g", kcal: "613 Cal" };window.THR1VE_MEAL_MACROS["9093921603900"] = { protein: "34.2 g", kcal: "345 Cal" };window.THR1VE_MEAL_MACROS["9973175910716"] = { protein: "53.4 g", kcal: "353 Cal" };window.THR1VE_MEAL_MACROS["8969868312892"] = { protein: "7.6 g", kcal: "170 Cal" };window.THR1VE_MEAL_MACROS["9973171061052"] = { protein: "45.5 g", kcal: "414 Cal" };window.THR1VE_MEAL_MACROS["8969884631356"] = { protein: "4.8g", kcal: "235 Cal" };window.THR1VE_MEAL_MACROS["8473862865212"] = { protein: "0.0g", kcal: "25.1 Cal" };window.THR1VE_MEAL_MACROS["8473862046012"] = { protein: "0.0", kcal: "25.1 Cal" };window.THR1VE_MEAL_MACROS["8473862406460"] = { protein: "0.0g", kcal: "25.1 Cal" };window.THR1VE_MEAL_MACROS["8219781759292"] = { protein: "5g", kcal: "478 Cal" };window.THR1VE_MEAL_MACROS["8339019628860"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["8339019628860"] = { mealCount: 3 };window.THR1VE_MEAL_MACROS["9882190971196"] = { protein: "6.0 g", kcal: "235 Cal" };window.THR1VE_MEAL_MACROS["9995289821500"] = { protein: "21.5 g", kcal: "306 Cal" };window.THR1VE_MEAL_MACROS["9995289854268"] = { protein: "20.1 g", kcal: "334 Cal" };window.THR1VE_MEAL_MACROS["9882191364412"] = { protein: "9.7 g", kcal: "185 Cal" };window.THR1VE_MEAL_MACROS["8628528611644"] = { protein: "24.7 g", kcal: "395 Cal" };window.THR1VE_MEAL_MACROS["10113514373436"] = { protein: "48.2 g", kcal: "480 Cal" };window.THR1VE_MEAL_MACROS["9882192576828"] = { protein: "6.0 g", kcal: "302 Cal" };window.THR1VE_MEAL_MACROS["10113521287484"] = { protein: "47.8 g", kcal: "477 Cal" };window.THR1VE_MEAL_MACROS["9882190217532"] = { protein: "3.7 g", kcal: "263 Cal" };window.THR1VE_MEAL_MACROS["8474035061052"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["8474035061052"] = { mealCount: 3 };window.THR1VE_MEAL_MACROS["9937929437500"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["9937929437500"] = { mealCount: 3 };window.THR1VE_MEAL_MACROS["8474033815868"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["8474033815868"] = { mealCount: 3 };window.THR1VE_MEAL_MACROS["10172338831676"] = { protein: "41.8 g", kcal: "569 Cal" };window.THR1VE_MEAL_MACROS["8473936101692"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["8473936101692"] = { mealCount: 3 };window.THR1VE_MEAL_MACROS["10113497203004"] = { protein: "56.0 g", kcal: "426 Cal" };window.THR1VE_MEAL_MACROS["10113492025660"] = { protein: "39.4 g", kcal: "529 Cal" };window.THR1VE_MEAL_MACROS["9659562983740"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["9659562983740"] = { mealCount: 14 };window.THR1VE_MEAL_MACROS["10113508671804"] = { protein: "39.1 g", kcal: "536 Cal" };window.THR1VE_MEAL_MACROS["9604639260988"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["9604639260988"] = { mealCount: 8 };window.THR1VE_MEAL_MACROS["9962541515068"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["9962541515068"] = { mealCount: 15 };window.THR1VE_MEAL_MACROS["10113522434364"] = { protein: "43.6 g", kcal: "390 Cal" };window.THR1VE_MEAL_MACROS["10127098675516"] = { protein: "41.3 g", kcal: "461 Cal" };window.THR1VE_MEAL_MACROS["10357550645564"] = { protein: "40.7 g", kcal: "232 Cal" };window.THR1VE_MEAL_MACROS["10357551857980"] = { protein: "37.5 g", kcal: "395 Cal" };window.THR1VE_MEAL_MACROS["10369084555580"] = { protein: "30.3 g", kcal: "362 Cal" };window.THR1VE_MEAL_MACROS["10369084588348"] = { protein: "31.5 g", kcal: "284 Cal" };window.THR1VE_MEAL_MACROS["10369084522812"] = { protein: "37.5 g", kcal: "293 Cal" };window.THR1VE_MEAL_MACROS["10357554086204"] = { protein: "32.9 g", kcal: "400 Cal" };window.THR1VE_MEAL_MACROS["10357553758524"] = { protein: "32.8 g", kcal: "311 Cal" };window.THR1VE_MEAL_MACROS["10369073709372"] = { protein: "48.1 g", kcal: "386 Cal" };window.THR1VE_MEAL_MACROS["10369084457276"] = { protein: "36.5 g", kcal: "380 Cal" };window.THR1VE_MEAL_MACROS["10357554053436"] = { protein: "32.8 g", kcal: "304 Cal" };window.THR1VE_MEAL_MACROS["10357553791292"] = { protein: "31.8 g", kcal: "480 Cal" };window.THR1VE_MEAL_MACROS["10360399364412"] = { protein: "40.4 g", kcal: "594 Cal" };window.THR1VE_MEAL_MACROS["10360399266108"] = { protein: "30.0 g", kcal: "399 Cal" };window.THR1VE_MEAL_MACROS["10357552087356"] = { protein: "39.7 g", kcal: "431 Cal" };window.THR1VE_MEAL_MACROS["10113510670652"] = { protein: "38.0 g", kcal: "462 Cal" };window.THR1VE_MEAL_MACROS["10113517846844"] = { protein: "42.1 g", kcal: "499 Cal" };window.THR1VE_MEAL_MACROS["10113518993724"] = { protein: "32.1 g", kcal: "456 Cal" };window.THR1VE_MEAL_MACROS["10113496547644"] = { protein: "39.6 g", kcal: "515 Cal" };window.THR1VE_MEAL_MACROS["10127098511676"] = { protein: "42.7 g", kcal: "418 Cal" };window.THR1VE_MEAL_MACROS["10221168132412"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["10221168132412"] = { mealCount: 34 };window.THR1VE_MEAL_MACROS["10221102301500"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["10221102301500"] = { mealCount: 34 };window.THR1VE_MEAL_MACROS["10221165871420"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["10221165871420"] = { mealCount: 34 };window.THR1VE_MEAL_MACROS["9958800523580"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["9958800523580"] = { mealCount: 19 };window.THR1VE_MEAL_MACROS["10076819128636"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["10076819128636"] = { mealCount: 14 };window.THR1VE_MEAL_MACROS["9659562721596"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["9659562721596"] = { mealCount: 14 };window.THR1VE_MEAL_MACROS["9648248291644"] = { protein: "-", kcal: "-" };window.THR1VE_BUNDLE_INFO["9648248291644"] = { mealCount: 14 };// F4 â canonical out-of-zone copy (Document #5 §1, exact, ACL-compliant). 888 // Single source of truth referenced by postal-code.js, postal-code-new.js, 889 // and the address-confirmation modal so the wording cannot drift (Codex L2). 890 window.THR1VE_OUT_OF_ZONE_HTML = 'We are not currently servicing your area yet â follow our <a href="https://www.instagram.com/thr1ve/" target="_blank" rel="noopener">Instagram</a> for updates!'; 891
892 // F1 cart-deferred â Meal macro map (screens-cart.jsx CartLine line 16: "Ng protein · N cal"). 893 // Source of truth = product metafields custom.protein_perserve / custom.calories_perserve 894 // (the SAME fields product-menu-item.liquid reads). Keyed by product_id so the LocalCart 895 // render (which carries product_id on every line) can light up the macro slot WITHOUT 896 // fabricating a number â a meal with no metafield value is simply omitted from the map and 897 // its slot stays hidden. Looping the bounded meal collections only (never all_products). 898 window.THR1VE_MEAL_MACROS = window.THR1VE_MEAL_MACROS || {}; 899 900 // F3 cart-deferred â Bundle (Starter Box) info map (screens-cart.jsx BundleLine). 901 // A bundle product is marked by product_type "Bundle" (and/or a custom.bundle_summary / 902 // custom.bundle_products metafield). We expose, keyed by product_id: `summary` â the real 903 // custom.bundle_summary string (e.g. "7 meals · 3 snacks · 3 drinks", the Starter Pack's 904 // actual metafield) â and `mealCount`, summed from bundle_products_quantity when that list 905 // exists (numeric fallback only). The cart prefers `summary`; mealCount is the fallback. 906 // This lets the cart render the distinct "â¦Â· fixed-price set" line WITHOUT counting the 907 // bundle toward the per-meal tier. No invented data â built straight from the metafields. 908 window.THR1VE_BUNDLE_INFO = window.THR1VE_BUNDLE_INFO || {}; 909 910 // Phase 2 (B2/F10 theme seam) â supplement classification. A cart line is a SUPPLEMENT 911 // (nutraceutical: flat-price, One-Time, may ship Aus Post standalone) when its product_type 912 // is in this list. THR1VE's nutraceuticals carry the Shopify product type "SUPPLEMENTS" 913 // (the /collections/supplements range: whey/collagen/electrolytes/creatine). This activates 914 // the EXISTING cart scaffolding â updateSupplementsSection() (the "Supplements & extras · 915 // flat price" block + One-Time/Monthly cadence) and updateShipmentDisclosure() (§11 split 916 // shipment line) â which stay dormant while the list is empty. Meals/snacks/drinks/bundles 917 // are NOT supplements. No fabricated taxonomy: the type comes straight from the product. 918 window.THR1VE_SUPPLEMENT_TYPES = ["SUPPLEMENTS"]; 919 // Shared segment-price resolver for JS render points (quick-view, etc.) â mirrors run.js. 920 // Returns the segment unit price in CENTS, or null (=> caller shows the normal price). 921 // Gate: logged in AND priced tag (bluefit>conditn>wholesale) AND productType EXACTLY 'LUNCH & DINNER'. 922 function resolveSegmentPriceCents(productType) { 923 if (typeof userLoggedIn === 'undefined' || !userLoggedIn) return null; 924 if (productType !== "LUNCH & DINNER") return null; 925 var tags = (typeof customerData !== 'undefined' && Array.isArray(customerData.tags)) ? customerData.tags : []; 926 for (var i = 0; i < SEGMENT_PRIORITY.length; i++) { 927 var segKey = SEGMENT_PRIORITY[i]; 928 if (SEGMENT_PRICING[segKey] == null) continue; // placeholder -> skip 929 if (tags.indexOf(segKey) !== -1) return SEGMENT_PRICING[segKey]; 930 } 931 return null; // fail-safe -> normal price 932 } 933 window.resolveSegmentPriceCents = resolveSegmentPriceCents; 934</script>
934 935
936<script> 937 let LAST_ORDER = { 938 order_id: 0, 939 created_at: '', 940 items: [] 941 }; 942</script>
942 943 944 945 946 947<!-- BEGIN app block: shopify://apps/pagefly-ai-page-builder/blocks/app-embed/83e179f7-59a0-4589-8c66-c0dddf959200 --> 948 949<!-- BEGIN app snippet: pagefly-cro-ab-testing-main --> 950 951 952 953 954 955 956
957<script> 958 ;(function () { 959 const url = new URL(window.location) 960 const viewParam = url.searchParams.get('view') 961 if (viewParam && viewParam.includes('variant-pf-')) { 962 url.searchParams.set('pf_v', viewParam) 963 url.searchParams.delete('view') 964 window.history.replaceState({}, '', url) 965 } 966 })() 967</script>
967 968 969 970
971<script type='module'> 972 973 window.PAGEFLY_CRO = window.PAGEFLY_CRO || {} 974 975 window.PAGEFLY_CRO['data_debug'] = { 976 original_template_suffix: "home", 977 allow_ab_test: false, 978 ab_test_start_time: 0, 979 ab_test_end_time: 0, 980 today_date_time: 1791584053000, 981 } 982 window.PAGEFLY_CRO['GA4'] = { enabled: false} 983</script>
983 984 985<!-- END app snippet --> 986 987 988 989 990 991 992 993 994
994<script src='https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-helper.js' defer='defer'></script>
994 995 996
996<script src='https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-general-helper.js' defer='defer'></script>
996 997 998
998<script src='https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-snap-slider.js' defer='defer'></script>
998 999 1000
1000<script src='https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-slideshow-v3.js' defer='defer'></script>
1000 1001 1002
1002<script src='https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-slideshow-v4.js' defer='defer'></script>
1002 1003 1004
1004<script src='https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-glider.js' defer='defer'></script>
1004 1005 1006
1006<script src='https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-slideshow-v1-v2.js' defer='defer'></script>
1006 1007 1008
1008<script src='https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-product-media.js' defer='defer'></script>
1008 1009 1010
1010<script src='https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-product.js' defer='defer'></script>
1010 1011 1012
1013<script id='pagefly-helper-data' type='application/json'> 1014 { 1015 "page_optimization": { 1016 "assets_prefetching": false 1017 }, 1018 "elements_asset_mapper": { 1019 "Accordion": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-accordion.js", 1020 "Accordion3": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-accordion3.js", 1021 "CountDown": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-countdown.js", 1022 "GMap1": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-gmap.js", 1023 "GMap2": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-gmap.js", 1024 "GMapBasicV2": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-gmap.js", 1025 "GMapAdvancedV2": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-gmap.js", 1026 "HTML.Video": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-htmlvideo.js", 1027 "HTML.Video2": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-htmlvideo2.js", 1028 "HTML.Video3": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-htmlvideo2.js", 1029 "BackgroundVideo": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-htmlvideo2.js", 1030 "Instagram": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-instagram.js", 1031 "Instagram2": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-instagram.js", 1032 "Insta3": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-instagram3.js", 1033 "Tabs": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-tab.js", 1034 "Tabs3": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-tab3.js", 1035 "ProductBox": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-cart.js", 1036 "FBPageBox2": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-facebook.js", 1037 "FBLikeButton2": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-facebook.js", 1038 "TwitterFeed2": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-twitter.js", 1039 "Paragraph4": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-paragraph4.js", 1040 1041 "AliReviews": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1042 "BackInStock": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1043 "GloboBackInStock": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1044 "GrowaveWishlist": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1045 "InfiniteOptionsShopPad": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1046 "InkybayProductPersonalizer": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder
1046-368/assets/pagefly-3rd-elements.js", 1047 "LimeSpot": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1048 "Loox": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1049 "Opinew": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1050 "Powr": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1051 "ProductReviews": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1052 "PushOwl": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1053 "ReCharge": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1054 "Rivyo": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1055 "TrackingMore": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1056 "Vitals": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js", 1057 "Wiser": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-3rd-elements.js" 1058 }, 1059 "custom_elements_mapper": { 1060 "pf-click-action-element": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-click-action-element.js", 1061 "pf-dialog-element": "https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-dialog-element.js" 1062 } 1063 } 1064</script>
1064 1065
1066<script id='pagefly-heatmap-config' type='application/json'> 1067 {} 1068</script>
vendor: 1 bytes, line 1068
1068
1069<script> 1070 (function () { 1071 var el = document.getElementById('pagefly-heatmap-config') 1072 if (!el) { window.__pagefly_heatmap_config__ = {}; return } 1073 try { 1074 window.__pagefly_heatmap_config__ = JSON.parse(el.textContent || '{}') || {} 1075 } catch (e) { 1076 window.__pagefly_heatmap_config__ = {} 1077 } 1078 })() 1079</script>
vendor: 1 bytes, line 1079
1079
1080<script> 1081 // Heatmap overlay loader. Three gates, all of them cheap, none of them trusting the URL: 1082 // the visitor must have arrived on a pf_heatmap link, the SERVER must have published an 1083 // overlay path in the metafield, and this page must already be one the merchant enabled 1084 // tracking for. The last gate is what stops a crafted link pulling the asset onto an 1085 // arbitrary storefront page. Everything else is decided inside the asset, and by the server. 1086 (function () { 1087 var cfg = window.__pagefly_heatmap_config__ || {} 1088 var id = (window.__pagefly_page_setting__ || {}).pageId 1089 if (!/[#&]pf_heatmap=/.test(window.location.hash || '')) return 1090 if (!cfg.overlay_data_path || !Array.isArray(cfg.enabled_page_ids)) return 1091 if (!id || cfg.enabled_page_ids.indexOf(id) === -1) return 1092 var s = document.createElement('script') 1093 s.src = 'https://cdn.shopify.com/extensions/01a11f15-76fc-7eb4-aca4-56f1414c090f/pagefly-ai-page-builder-368/assets/pagefly-heatmap-overlay.js' 1094 s.defer = true 1095 document.head.appendChild(s) 1096 })() 1097</script>
1097 1098 1099<!-- BEGIN app snippet: pf-ai-schema --> 1100<!-- END app snippet --> 1101 1102 1103<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116
1116<script async src="https://static.klaviyo.com/onsite/js/U988Pp/klaviyo.js?company_id=U988Pp"></script>
1116 1117
1117<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
1117 1118 1119 1120 1121 1122 1123 1124
1124<script> 1125 window.klaviyoReviewsProductDesignMode = false 1126 </script>
1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
1137<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/thrive-meals-oppenheimer.myshopify.com"></script>
1137 1138 1139
1140<script defer data-gorgias-loader-convert src="https://content.9gtb.com/loader.js"></script>
1140 1141 1142
1143<script defer data-gorgias-loader-mailto-replace src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=thrive-meals-oppenheimer"></script>
1143 1144 1145 1146<!-- END app block --><meta property="og:image" content="https://cdn.shopify.com/s/files/1/0729/8243/0012/files/Thr1ve_Logo.png?v=1689176621" /> 1147<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/0729/8243/0012/files/Thr1ve_Logo.png?v=1689176621" /> 1148<meta property="og:image:width" content="1000" /> 1149<meta property="og:image:height" content="455" /> 1150<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1151<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 72982430012,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1151
1151
1152<script> 1153 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1154</script>
vendor: 1 bytes, line 1154
1154
1155<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
1155).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 72982430012,storefrontBaseUrl: "https://thrivemeals.com.au",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://thrivemeals.com.au/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"1812595004","configuration":"{\"accountID\":\"U988Pp\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"729088316","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-71R9FQHN9Y\\\",\\\"GT-KTTDB5H\\\"],\\\"target_country\\\":\\\"AU\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-71R9FQHN9Y\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-71R9FQHN9Y\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-71R9FQHN9Y\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-71R9FQHN9Y\\\",\\\"MC-RQ8JSSBF22\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-71R9FQHN9Y\\\",\\\"MC-RQ8JSSBF22\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-71R9FQHN9Y\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-71R9FQHN9Y\\\",\\\"MC-RQ8JSSBF22\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-71R9FQHN9Y\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-71R9FQHN9Y\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-71R9FQHN9Y\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-71R9FQHN9Y\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"352944444","configuration":"{\"shopId\":\"107876\",\"env\":\"production\",\"metaData\":\"[]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8323bee30e1ec3ae135ae5e0cef4ab6d","type":"APP","apiClientId":2773553,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1155,"dataSharingState":"unrestricted"},{"id":"279085372","configuration":"{\"pixel_id\":\"3116440315341388\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"86376764","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"25","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Checkout Completed[GTM]"},{"id":"119636284","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":[],"name":"Google Tag Manager [Test SOUP]"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Thrive Meals","paymentSettings":{"currencyCode":"AUD"},"myshopifyDomain":"thrive-meals-oppenheimer.myshopify.com","countryCode":"AU","storefrontUrl":"https:\/\/thrivemeals.com.au"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"9197210665276","handle":"beef-lasagne","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48753653678396","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9590788784444","handle":"nasi-goreng-peanut-chicken","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"49781203796284","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9093918196028","handle":"mexican-chicken-and-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48425146319164","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8219775893820","handle":"butter-chicken-with-broccoli-cauliflower-rice-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44799323668796","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9093920719164","handle":"chicken-teriyaki-with-asian-greens","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48425156051260","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9590789210428","handle":"curry-with-carb-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"49781204222268","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8219808891196","handle":"basil-and-oregano-chicken-meat-balls-with-zoodles","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44799397003580","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8219804336444","handle":"clean-keto-chicken-bowl","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44799385010492","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8219786084668","handle":"thai-green-chicken-curry-with-broccoli-cauliflower-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44799341429052","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9715305873724","handle":"monoglian-beef","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50174261166396","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9715303088444","handle":"sausage-onion-gravy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50174233084220","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9715303579964","handle":"parmesan-chicken","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50174234755388","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1155,{"id":"9590789013820","handle":"massamam-beef-curry-broccoli-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"49781203992892","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9093467767100","handle":"chicken-breast-with-clean-and-green-veg","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48422386303292","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9093915902268","handle":"low-carb-spaghetti-bolognese","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48425140683068","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9093445255484","handle":"satay-chicken-with-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48422248743228","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9093463245116","handle":"butter-chicken-with-low-carb-rice-2","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48422358286652","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9715306070332","handle":"steak-diane","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50174261559612","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9093921603900","handle":"thai-green-chicken-curry-with-low-carb-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48425158050108","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9973175910716","handle":"lamb-rugu-with-spaghetti","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51554776514876","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8969868312892","handle":"blueberry-muffin","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48069527339324","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9973171061052","handle":"lamb-biryani","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51554768257340","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8969884631356","handle":"keto-brownie","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"48069558174012","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8473862865212","handle":"organic-kambucha-coconut-lime-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45696141328700","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8473862046012","handle":"organic-kambucha-berry-smash","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45696140607804","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8473862406460","handle":"organic-kambucha-turmeric-ginger-pear","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45696140902716","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8219781759292","handle":"nutessa-slice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44799334580540","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8339019628860","handle":"kombucha","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45207862247740","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9882190971196","handle":"low-carb-coconut-blondie","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50756426596668","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9995289821500","handle":"chickenveg-pizza","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51601956700476","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9995289854268","handle":"mammamia-pizza","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51601956733244","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9882191364412","handle":"crustless-zucchini-slice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50756427088188","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8628528611644","handle":"basil-and-oregano-chicken-meat-balls-with-spaghetti","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46500884611388","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1155,{"id":"10113514373436","handle":"skinny-chicken-alfredo-pasta","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51962975486268","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9882192576828","handle":"macadamia-shortbread","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50756428431676","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10113521287484","handle":"low-carb-chicken-spaghetti-in-pink-sauce","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51962987413820","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9882190217532","handle":"low-carb-caramel-slice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50756423713084","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8474035061052","handle":"organic-kombucha-coconut-lime-3-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45696464355644","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9937929437500","handle":"saver-snack-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51432648343868","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8474033815868","handle":"organic-kombucha-berry-smash-3-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45696461373756","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10172338831676","handle":"crumbed-chicken-roast-potatoes-and-gravy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52240059531580","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8473936101692","handle":"organic-kombucha-turmeric-ginger-pear-3-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45696268173628","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10113497203004","handle":"sticky-teriyaki-chicken-greens-over-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51962940096828","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10113492025660","handle":"chicken-penne-with-tomato-cream1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51962929119548","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9659562983740","handle":"low-carb-favourites-box","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"49972108558652","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10113508671804","handle":"chicken-fettuccine-alfredo","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51962965492028","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9604639260988","handle":"snack-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"49814596682044","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9962541515068","handle":"15-pack-bundle-saver","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51524680024380","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1155,{"id":"10113522434364","handle":"mongolian-beef-with-steamed-basmati","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51962990002492","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10127098675516","handle":"malaysian-satay-chicken-with-basmati-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52016378216764","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10357550645564","handle":"baked-chicken-with-sweet-sour-sauce-and-broccoli-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52961463796028","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10357551857980","handle":"baked-chicken-with-sweet-sour-sauce-and-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52961467466044","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10369084555580","handle":"lamb-rogan-josh-with-basmati-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52997017174332","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10369084588348","handle":"lamb-rogan-josh-with-low-carb-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52997017305404","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10369084522812","handle":"japanese-beef-curry-with-low-carb-rice-pickles","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52997016977724","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10357554086204","handle":"spanish-chicken-with-patatas-bravas","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52961492009276","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10357553758524","handle":"malabar-spiced-golden-basa-with-broccoli-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52961490010428","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10369073709372","handle":"beef-stroganoff-with-low-carb-fettuccine","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52996994171196","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10369084457276","handle":"japanese-beef-curry-with-steamed-rice-pickles","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52997016879420","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10357554053436","handle":"spanish-chicken-with-cauliflower-bravas","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52961491681596","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10357553791292","handle":"malabar-spiced-golden-basa-with-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52961490436412","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10360399364412","handle":"beef-lasagne-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52967892975932","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1155,{"id":"10360399266108","handle":"lamb-biryani-with-basmati-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52967892549948","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10357552087356","handle":"beef-stroganoff-with-fettuccine","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52961471594812","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10113510670652","handle":"thai-green-curry-with-fragrant-basmati-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51962969063740","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10113517846844","handle":"butter-chicken-with-spice-basmati","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51962982138172","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10113518993724","handle":"spaghetti-bolognese-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51962984005948","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10113496547644","handle":"massaman-beef-bowl-with-caramelised-shallot-rice","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51962937082172","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10127098511676","handle":"lamb-ragu-with-fettuccini","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52016375169340","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10221168132412","handle":"performance-bundle-box-34-meals","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52433519051068","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10221102301500","handle":"low-carb-bundle-box-34-meals","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52433206051132","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10221165871420","handle":"low-calorie-bundle-box-34-meals","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52433490739516","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9958800523580","handle":"best-seller-box","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51510684221756","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10076819128636","handle":"keto-favourites-box","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51836936585532","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9659562721596","handle":"high-protein-favourites-box","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"49972107379004","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9648248291644","handle":"customer-favourites-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"49936177529148","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10167998513468","handle":"quest-protein-chips-tortilla-style-chili-lime-flavour","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52204785762620","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1155,{"id":"10168002117948","handle":"quest-protein-chips-tortilla-style-nacho-cheese","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52204828000572","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10142720983356","handle":"peanut-granola","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52093242704188","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10142721278268","handle":"almond-granola","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52093247619388","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://thrivemeals.com.au/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"186870890812","themePublished":"true","eventMetadataId":"ac882a24-c26a-43f8-8a5d-7233db1fa4ad","pageType":"home","shopId":"72982430012","storefrontBaseUrl":"https:\/\/thrivemeals.com.au","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1155<script> 1156 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1157 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1158 window.ShopifyAnalytics.meta.currency = 'AUD'; 1159 var meta = {"page":{"pageType":"home","requestId":"18ecebbb-aee1-45e4-9956-be2d9038bfac-1791584052"}}; 1160 for (var attr in meta) { 1161 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1162 } 1163</script>
vendor: 1 bytes, line 1163
1163
1164<script class="analytics"> 1165 (function () { 1166 var customDocumentWrite = function(content) { 1167 var jquery = null; 1168 1169 if (window.jQuery) { 1170 jquery = window.jQuery; 1171 } else if (window.Checkout && window.Checkout.$) { 1172 jquery = window.Checkout.$; 1173 } 1174 1175 if (jquery) { 1176 jquery('body').append(content); 1177 } 1178 }; 1179 1180 var hasLoggedConversion = function(token) { 1181 if (token) { 1182 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1183 } 1184 return false; 1185 } 1186 1187 var setCookieIfConversion = function(token) { 1188 if (token) { 1189 var twoMonthsFromNow = new Date(Date.now()); 1190 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1191 1192 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1193 } 1194 } 1195 1196 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1197 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1198 if (trekkie.integrations) { 1199 return; 1200 } 1201 trekkie.methods = [ 1202 'identify', 1203 'page', 1204 'ready', 1205 'track', 1206 'trackForm', 1207 'trackLink' 1208 ]; 1209 trekkie.factory = function(method) { 1210 return function() { 1211 var args = Array.prototype.slice.call(arguments); 1212 args.unshift(method); 1213 trekkie.push(args); 1214 if (method == 'track' || method == 'page') { 1215 var pageUrl; 1216 try { 1217 pageUrl = window.location.href; 1218 } catch (e) {} 1219 var pageReferrer; 1220 try { 1221 pageReferrer = document.referrer; 1222 } catch (e) {} 1223 try { 1224 if (window.__TREKKIE_SHIM_QUEUE == null) { 1225 window.__TREKKIE_SHIM_QUEUE = []; 1226 } 1227 window.__TREKKIE_SHIM_QUEUE.push({ 1228 from: 'trekkie-stub', 1229 method: method, 1230 args: args.slice(1), 1231 pageContext: { 1232 url: pageUrl, 1233 referrer: pageReferrer 1234 } 1235 }); 1236 } catch (e) { 1237 // no-op 1238 } 1239 } 1240 return trekkie; 1241 }; 1242 }; 1243 for (var i = 0; i < trekkie.methods.length; i++) { 1244 var key = trekkie.methods[i]; 1245 trekkie[key] = trekkie.factory(key); 1246 } 1247 trekkie.load = function(config) { 1248 trekkie.config = config || {}; 1249 trekkie.config.initialDocumentCookie = document.cookie; 1250 var first = document.getElementsByTagName('script')[0]; 1251var script = document.createElement('script'); 1252script.type = 'text/javascript'; 1253script.onerror = function(e) { 1254 var scriptFallback = document.createElement('script'); 1255 scriptFallback.type = 'text/javascript'; 1256 scriptFallback.onerror = function(error) { 1257 var Monorail = { 1258 produce: function produce(monorailDomain, schemaId, payload) { 1259 var currentMs = new Date().getTime(); 1260 var event = { 1261 schema_id: schemaId, 1262 payload: payload, 1263 metadata: { 1264 event_created_at_ms: currentMs, 1265 event_sent_at_ms: currentMs 1266 } 1267 }; 1268 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1269 }, 1270 sendRequest: function sendRequest(endpointUrl, payload) { 1271 // Try the sendBeacon API 1272 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1273 var blobData = new window.Blob([payload], { 1274 type: 'text/plain' 1275 }); 1276 1277 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1278 return true; 1279 } // sendBeacon was not successful 1280 1281 } // XHR beacon 1282 1283 var xhr = new XMLHttpRequest(); 1284 1285 try { 1286 xhr.open('POST', endpointUrl); 1287 xhr.setRequestHeader('Content-Type', 'text/plain'); 1288 xhr.send(payload); 1289 } catch (e) { 1290 console.log(e); 1291 } 1292 1293 return false; 1294 }, 1295 isIos12: function isIos12() { 1296 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1297 } 1298 }; 1299 Monorail.produce('monorail-edge.shopifysvc.com', 1300 'trekkie_storefront_load_errors/1.1', 1301 {shop_id: 72982430012, 1302 theme_id: 186870890812, 1303 app_name: "storefront", 1304 context_url: window.location.href, 1305 source_url: "//thrivemeals.com.au/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 1306 1307 }; 1308 scriptFallback.async = true; 1309 scriptFallback.src = '//thrivemeals.com.au/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 1310 first.parentNode.insertBefore(scriptFallback, first); 1311}; 1312script.async = true; 1313script.src = '//thrivemeals.com.au/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 1314first.parentNode.insertBefore(script, first); 1315 1316 }; 1317 trekkie.load( 1318 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":72982430012,"isMerchantRequest":null,"themeId":186870890812,"themeCityHash":"22332899
131805418744645","contentLanguage":"en","currency":"AUD","eventMetadataId":"ac882a24-c26a-43f8-8a5d-7233db1fa4ad"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1319 ); 1320 1321 var loaded = false; 1322 trekkie.ready(function() { 1323 if (loaded) return; 1324 loaded = true; 1325 1326 window.ShopifyAnalytics.lib = window.trekkie; 1327 1328 var originalDocumentWrite = document.write; 1329 document.write = customDocumentWrite; 1330 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1331 document.write = originalDocumentWrite; 1332 1333 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1334 var token = match? match[1]: undefined; 1335 if (!hasLoggedConversion(token)) { 1336 setCookieIfConversion(token); 1337 1338 } 1339 }); 1340 1341 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"18ecebbb-aee1-45e4-9956-be2d9038bfac-1791584052","shopifyEmitted":true}); 1342 1343 var eventsListenerScript = document.createElement('script'); 1344 eventsListenerScript.async = true; 1345 eventsListenerScript.src = "//thrivemeals.com.au/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1346 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1347})();</script>
vendor: 1 bytes, line 1347
1347
1348<script 1349 defer 1350 src="https://thrivemeals.com.au/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js" 1351 data-application="storefront-renderer" 1352 data-shop-id="72982430012" 1353 data-render-region="gcp-us-central1" 1354 data-page-type="index" 1355 data-theme-instance-id="186870890812" 1356 data-theme-name="Vegist" 1357 data-theme-version="1.22" 1358 data-monorail-region="shop_domain" 1359 data-resource-timing-sampling-rate="10" 1360 data-shs="true" 1361 data-shs-beacon="true" 1362 data-shs-export-with-fetch="true" 1363 data-shs-logs-sample-rate="1" 1364 data-shs-beacon-endpoint="https://thrivemeals.com.au/api/collect" 1365></script>
1365 1366<meta name="shopify-y" content="538baf9c-ef68-471f-96cf-56da68f4193a" data-expiration="1823141652000"><meta name="shopify-s" content="79df3aba-6152-4b10-904e-cd3a6b6ea455" data-expiration="1791585852000"> 1367</head> 1368 <body 1369 id="healthy-meals-delivered-to-your-door-thr1ve" 1370 class="index landingPage template-index" 1371 > 1372 <div id="shopify-section-custom-fonts" class="shopify-section"> 1373 <style data-custom-fonts> 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 @font-face { 1400 font-family: 'Advetime'; 1401 src: url(https://cdn.shopify.com/s/files/1/0729/8243/0012/files/Advetime.ttf?v=1706612814) format('truetype'); 1402 1403 1404 font-style: italic; 1405 1406 1407 } 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 </style> 1432 1433 1434 1435</div>
vendor: 87 bytes, lines 1435-1438
1435 1436 <noscript 1437 ><iframe 1438 src="https://www.googletagmanager.com/ns.html?id=
1438GTM-PWRXKR8
vendor: 124 bytes, lines 1438-1444
1438" 1439 height="0" 1440 width="0" 1441 style="display:none;visibility:hidden" 1442 ></iframe 1443 ></noscript> 1444
1445<div class="top-notification-bar"> 1446 <div class="notifictnsticky"> 1447 <div class="container-fluid"> 1448 <div class="row"> 1449 <div class="col-xl-12 col-lg-12 col-md-12 col-12 bg-orange rounded px-md-1"> 1450 <ul id="top-notification-bar" class="notification-entry py-2 text-center"> 1451 <li class="notify-wrap text-white fw-bold small"> 1452 New Bundle Pricing with savings up to $300 monthly! 1453 <a class="text-decoration-underline text-white" href="/pages/build-your-box">Order Now!</a> 1454 </li> 1455 </ul> 1456 </div> 1457 </div> 1458 </div> 1459 </div> 1460</div> 1461 1462<div id="shopify-section-header" class="shopify-section"><link href="//thrivemeals.com.au/cdn/shop/t/214/assets/nav-redesign.css?v=146774013807573881021788933185" rel="stylesheet" type="text/css" media="all" /> 1463<div class="header-main-area"> 1464 <div class="header-area headerstky header-sticky"> 1465 <div class="container-fluid"> 1466 <div class="row align-items-xl-center shadow rounded"> 1467 <div class="col-xl-12 col-lg-12 col-md-12 col-12 py-2 cusheaderleft"> 1468 <div class="header-main"> 1469 <div class="logo header-element"><a href="https://thrivemeals.com.au" class="theme-header-logo"> 1470 <img src="//thrivemeals.com.au/cdn/shop/files/logo_thrive.png?v=1677951050" class="img-fluid" alt="Thrive Meals" style="width: 105px;"> 1471</a><style> 1472 /* logo css */ 1473 a.theme-header-logo { 1474 display: block; 1475 } 1476 1477 /* store css */ 1478 a.shop-header-name { 1479 display: block; 1480 } 1481 a.shop-header-name span { 1482 color: var(--color-secondary); 1483 font-size: 16px; 1484 font-weight: 600; 1485 } 1486</style></div> 1487 <div class="header-element main-menu-area"> 1488 <nav id="main-navigation-desk" class="main-navigation navbar-expand-xl d-none "> 1489 <div class="box-header"> 1490 <button class="close-box" type="button"><i class="ion-close-round"></i></button> 1491 </div> 1492 <ul class="main-menu"> 1493 1494 1495 1496 <li class="menu-link"> 1497 <a 1498 1499 href="/pages/build-your-box" 1500 class="link-title Menu" 1501 > 1502 <span>Menu</span> 1503 </a> 1504 <a href="/pages/build-your-box" class="link-title link-title-lg"> 1505 <span>Menu</span> 1506 </a> 1507 </li> 1508 1509 1510 1511 1512 <li class="menu-link parant "> 1513 <a 1514 1515 class="link-title Learn Nutrition" 1516 href="#" 1517 > 1518 <span>Learn Nutrition</span> 1519 <i class="fa fa-angle-down"></i> 1520 </a> 1521 <a 1522 data-bs-toggle="collapse" 1523 href="#collapse-learn-nutrition" 1524 class="link-title link-title-lg Learn Nutrition" 1525 > 1526 <span>Learn Nutrition</span> 1527 <i class="fa fa-angle-down"></i> 1528 </a> 1529 <ul class="dropdown-submenu collapse" id="collapse-learn-nutrition"> 1530 1531 1532 1533 1534 <li class="submenu-li parant"> 1535 <a href="/pages/diets" class="sublink-title">Diet Guides</a> 1536 </li> 1537 1538 1539 1540 1541 1542 1543 <li class="submenu-li parant"> 1544 <a href="/pages/high-protein-diet" class="sublink-title">High Protein</a> 1545 </li> 1546 1547 1548 1549 1550 1551 1552 <li class="submenu-li parant"> 1553 <a href="/pages/gluten-free-diet" class="sublink-title">Gluten Free</a> 1554 </li> 1555 1556 1557 1558 1559 1560 1561 <li class="submenu-li parant"> 1562 <a href="/pages/low-calorie-diet" class="sublink-title">Low Calorie</a> 1563 </li> 1564 1565 1566 1567 1568 1569 1570 <li class="submenu-li parant"> 1571 <a href="/pages/atkins-diet" class="sublink-title">Atkins</a> 1572 </li> 1573 1574 1575 1576 1577 1578 1579 <li class="submenu-li parant"> 1580 <a href="/pages/healthy-eating" class="sublink-title">Healthy Eating</a> 1581 </li> 1582 1583 1584 1585 1586 1587 1588 <li class="submenu-li parant"> 1589 <a href="/pages/low-carb" class="sublink-title">Low Carb</a> 1590 </li> 1591 1592 1593 1594 1595 1596 1597 <li class="submenu-li parant"> 1598 <a href="/pages/keto" class="sublink-title">Keto</a> 1599 </li> 1600 1601 1602 1603 </ul> 1604 </li> 1605 1606 1607 1608 1609 <li class="menu-link parant "> 1610 <a 1611 1612 class="link-title Diets and Recipes" 1613 href="#" 1614 >
1615 <span>Diets and Recipes</span> 1616 <i class="fa fa-angle-down"></i> 1617 </a> 1618 <a 1619 data-bs-toggle="collapse" 1620 href="#collapse-diets-and-recipes" 1621 class="link-title link-title-lg Diets and Recipes" 1622 > 1623 <span>Diets and Recipes</span> 1624 <i class="fa fa-angle-down"></i> 1625 </a> 1626 <ul class="dropdown-submenu collapse" id="collapse-diets-and-recipes"> 1627 1628 1629 1630 1631 <li class="submenu-li parant"> 1632 <a href="/pages/keto-foods" class="sublink-title">Keto Diet</a> 1633 </li> 1634 1635 1636 1637 1638 1639 1640 <li class="submenu-li parant"> 1641 <a href="/pages/low-carb-foods" class="sublink-title">Low Carb Diet</a> 1642 </li> 1643 1644 1645 1646 1647 1648 1649 <li class="submenu-li parant"> 1650 <a href="/pages/gluten-free-foods" class="sublink-title">Gluten Free Diet</a> 1651 </li> 1652 1653 1654 1655 </ul> 1656 </li> 1657 1658 1659 1660 1661 <li class="menu-link parant "> 1662 <a 1663 1664 class="link-title About" 1665 href="/pages/about-us" 1666 > 1667 <span>About</span> 1668 <i class="fa fa-angle-down"></i> 1669 </a> 1670 <a 1671 data-bs-toggle="collapse" 1672 href="#collapse-about" 1673 class="link-title link-title-lg About" 1674 > 1675 <span>About</span> 1676 <i class="fa fa-angle-down"></i> 1677 </a> 1678 <ul class="dropdown-submenu collapse" id="collapse-about"> 1679 1680 1681 1682 1683 <li class="submenu-li parant"> 1684 <a href="/pages/about-us" class="sublink-title">About Us</a> 1685 </li> 1686 1687 1688 1689 1690 1691 1692 <li class="submenu-li parant"> 1693 <a href="/pages/faq" class="sublink-title">FAQ</a> 1694 </li> 1695 1696 1697 1698 1699 1700 1701 <li class="submenu-li parant"> 1702 <a href="/pages/where-we-deliver" class="sublink-title">Where We Deliver</a> 1703 </li> 1704 1705 1706 1707 1708 1709 1710 <li class="submenu-li parant"> 1711 <a href="/pages/meal-delivery-sydney" class="sublink-title">Sydney</a> 1712 </li> 1713 1714 1715 1716 1717 1718 1719 <li class="submenu-li parant"> 1720 <a href="/pages/meal-delivery-melbourne" class="sublink-title">Melbourne</a> 1721 </li> 1722 1723 1724 1725 1726 1727 1728 <li class="submenu-li parant"> 1729 <a href="/pages/meal-delivery-brisbane" class="sublink-title">Brisbane</a> 1730 </li> 1731 1732 1733 1734 1735 1736 1737 <li class="submenu-li parant"> 1738 <a href="https://thrivemeals.com.au/pages/ndis" class="sublink-title">NDIS</a> 1739 </li> 1740 1741 1742 1743 </ul> 1744 </li> 1745 1746 1747 1748 1749 <li class="menu-link"> 1750 <a 1751 1752 href="/pages/contact-us" 1753 class="link-title Contact" 1754 > 1755 <span>Contact</span> 1756 </a> 1757 <a href="/pages/contact-us" class="link-title link-title-lg"> 1758 <span>Contact</span> 1759 </a> 1760 </li> 1761 1762 1763</ul>
1764<script> 1765 $('.megamenu-li').parent('ul').addClass('mega-menu'); 1766 $('.menu-banner').parent('ul').addClass('banner-menu'); 1767 $('.submenu-li').parent('ul').addClass('sub-menu'); 1768</script>
1768 1769 1770 </nav> 1771 </div> 1772 1773 <div class="col col-md-2 ms-4 cusheaderright"> 1774 <ul class="d-flex justify-content-end align-items-center"><li class="order-now-wrap ele-wrap d-none d-lg-block px-2"> 1775 <a href="/pages/build-your-box" class="header-order-now"> 1776 <span>Order now</span> 1777 1778 <svg 1779 class="icon icon-arrow" 1780 width="12" 1781 height="11" 1782 viewBox="0 0 12 11" 1783 xmlns="http://www.w3.org/2000/svg" 1784 > 1785 <path d="M5.684 1.336 9.247 4.9H1.442a.64.64 0 0 0-.465.197.64.64 0 0 0-.197.465q0 .285.197.48a.64.64 0 0 0 .465.198h7.805L5.684 9.803a.62.62 0 0 0-.205.473q0 .284.205.473a.62.62 0 0 0 .473.205q.285 0 .473-.205l4.715-4.698a.5.5 0 0 0 .079-.103l.063-.118a.73.73 0 0 0 0-.52.4.4 0 0 0-.056-.119 1 1 0 0 0-.086-.102L6.63.389a.62.62 0 0 0-.473-.204.62.62 0 0 0-.473.205.6.6 0 0 0-.205.465q0 .276.205.481" fill="#111"/> 1786 </svg> 1787 1788 </a> 1789 </li> 1790 <li class="toggler-wrap px-2"> 1791 <button 1792 class="navbar-toggler" 1793 type="button" 1794 data-bs-toggle="collapse" 1795 data-bs-target="#navbarContent" 1796 aria-label="Menu" 1797 data-ga4-cta="open_menu" 1798 data-ga4-cta-location="header" 1799 > 1800 <i class="feather-menu fs-2"></i> 1801 </button> 1802 </li> 1803 1804 <li class="user-wrap ele-wrap px-2"> 1805 <div class="st-user"> 1806 <a href="/customer_authentication/login?return_to=/apps/account/dashboard" data-ga4-cta="account" data-ga4-cta-location="header"> 1807 <i class="icon-user fs-2"></i> 1808 </a> 1809 </div> 1810 </li> 1811 <li class="cart-wrap ele-wrap"> 1812 <div class="shopping-widget"> 1813 <div class="shopping-cart"> 1814 <a 1815 1816 href="javascript:void(0)" class="cart-count" 1817 1818 > 1819 <span class="counter-wrap position-relative"> 1820 <i class="icon-handbag fs-2 "></i> 1821 <span 1822 id="cart-total" 1823 class="bigcounter position-absolute bg-green rounded-pill text-white fw-bolder" 1824 style=" 1825 top: -7px; 1826 right: -7px; 1827 display: flex; 1828 align-items: center; 1829 justify-content: center; 1830 width: 20px; 1831 height: 20px; 1832 " 1833 >0</span> 1834 </span> 1835 </a> 1836 </div> 1837 </div> 1838 </li> 1839 </ul> 1840 </div> 1841 </div> 1842 </div> 1843 </div> 1844 </div> 1845 </div> 1846</div> 1847<div class="menu-mobile"> 1848 <div class="main-menu-area header-element"> 1849 <nav id="main-navigation-mob" class="main-navigation navbar-expand-xl d-none "> 1850 <div class="box-header"> 1851 <button class="close-box" type="button"><i class="ion-close-round"></i></button> 1852 </div> 1853 <ul class="main-menu"> 1854 1855 1856 1857 <li class="menu-link"> 1858 <a 1859 1860 href="/pages/build-your-box" 1861 class="link-title Menu" 1862 > 1863 <span>Menu</span> 1864 </a> 1865 <a href="/pages/build-your-box" class="link-title link-title-lg"> 1866 <span>Menu</span> 1867 </a> 1868 </li> 1869 1870 1871 1872 1873 <li class="menu-link parant "> 1874 <a 1875 1876 class="link-title Learn Nutrition" 1877 href="#" 1878 > 1879 <span>Learn Nutrition</span> 1880 <i class="fa fa-angle-down"></i> 1881 </a> 1882 <a 1883 data-bs-toggle="collapse" 1884 href="#collapse-learn-nutrition" 1885 class="link-title link-title-lg Learn Nutrition" 1886 >
1887 <span>Learn Nutrition</span> 1888 <i class="fa fa-angle-down"></i> 1889 </a> 1890 <ul class="dropdown-submenu collapse" id="collapse-learn-nutrition"> 1891 1892 1893 1894 1895 <li class="submenu-li parant"> 1896 <a href="/pages/diets" class="sublink-title">Diet Guides</a> 1897 </li> 1898 1899 1900 1901 1902 1903 1904 <li class="submenu-li parant"> 1905 <a href="/pages/high-protein-diet" class="sublink-title">High Protein</a> 1906 </li> 1907 1908 1909 1910 1911 1912 1913 <li class="submenu-li parant"> 1914 <a href="/pages/gluten-free-diet" class="sublink-title">Gluten Free</a> 1915 </li> 1916 1917 1918 1919 1920 1921 1922 <li class="submenu-li parant"> 1923 <a href="/pages/low-calorie-diet" class="sublink-title">Low Calorie</a> 1924 </li> 1925 1926 1927 1928 1929 1930 1931 <li class="submenu-li parant"> 1932 <a href="/pages/atkins-diet" class="sublink-title">Atkins</a> 1933 </li> 1934 1935 1936 1937 1938 1939 1940 <li class="submenu-li parant"> 1941 <a href="/pages/healthy-eating" class="sublink-title">Healthy Eating</a> 1942 </li> 1943 1944 1945 1946 1947 1948 1949 <li class="submenu-li parant"> 1950 <a href="/pages/low-carb" class="sublink-title">Low Carb</a> 1951 </li> 1952 1953 1954 1955 1956 1957 1958 <li class="submenu-li parant"> 1959 <a href="/pages/keto" class="sublink-title">Keto</a> 1960 </li> 1961 1962 1963 1964 </ul> 1965 </li> 1966 1967 1968 1969 1970 <li class="menu-link parant "> 1971 <a 1972 1973 class="link-title Diets and Recipes" 1974 href="#" 1975 > 1976 <span>Diets and Recipes</span> 1977 <i class="fa fa-angle-down"></i> 1978 </a> 1979 <a 1980 data-bs-toggle="collapse" 1981 href="#collapse-diets-and-recipes" 1982 class="link-title link-title-lg Diets and Recipes" 1983 > 1984 <span>Diets and Recipes</span> 1985 <i class="fa fa-angle-down"></i> 1986 </a> 1987 <ul class="dropdown-submenu collapse" id="collapse-diets-and-recipes"> 1988 1989 1990 1991 1992 <li class="submenu-li parant"> 1993 <a href="/pages/keto-foods" class="sublink-title">Keto Diet</a> 1994 </li> 1995 1996 1997 1998 1999 2000 2001 <li class="submenu-li parant"> 2002 <a href="/pages/low-carb-foods" class="sublink-title">Low Carb Diet</a> 2003 </li> 2004 2005 2006 2007 2008 2009 2010 <li class="submenu-li parant"> 2011 <a href="/pages/gluten-free-foods" class="sublink-title">Gluten Free Diet</a> 2012 </li> 2013 2014 2015 2016 </ul> 2017 </li> 2018 2019 2020 2021 2022 <li class="menu-link parant "> 2023 <a 2024 2025 class="link-title About" 2026 href="/pages/about-us" 2027 > 2028 <span>About</span> 2029 <i class="fa fa-angle-down"></i> 2030 </a> 2031 <a 2032 data-bs-toggle="collapse" 2033 href="#collapse-about" 2034 class="link-title link-title-lg About" 2035 > 2036 <span>About</span> 2037 <i class="fa fa-angle-down"></i> 2038 </a> 2039 <ul class="dropdown-submenu collapse" id="collapse-about"> 2040 2041 2042 2043 2044 <li class="submenu-li parant"> 2045 <a href="/pages/about-us" class="sublink-title">About Us</a> 2046 </li> 2047 2048 2049 2050 2051 2052 2053 <li class="submenu-li parant"> 2054 <a href="/pages/faq" class="sublink-title">FAQ</a> 2055 </li> 2056 2057 2058 2059 2060 2061 2062 <li class="submenu-li parant"> 2063 <a href="/pages/where-we-deliver" class="sublink-title">Where We Deliver</a> 2064 </li> 2065 2066 2067 2068 2069 2070 2071 <li class="submenu-li parant"> 2072 <a href="/pages/meal-delivery-sydney" class="sublink-title">Sydney</a> 2073 </li> 2074 2075 2076 2077 2078 2079 2080 <li class="submenu-li parant"> 2081 <a href="/pages/meal-delivery-melbourne" class="sublink-title">Melbourne</a> 2082 </li> 2083 2084 2085 2086 2087 2088 2089 <li class="submenu-li parant"> 2090 <a href="/pages/meal-delivery-brisbane" class="sublink-title">Brisbane</a> 2091 </li> 2092 2093 2094 2095 2096 2097 2098 <li class="submenu-li parant"> 2099 <a href="https://thrivemeals.com.au/pages/ndis" class="sublink-title">NDIS</a> 2100 </li> 2101 2102 2103 2104 </ul> 2105 </li> 2106 2107 2108 2109 2110 <li class="menu-link"> 2111 <a 2112 2113 href="/pages/contact-us" 2114 class="link-title Contact" 2115 >
2116 <span>Contact</span> 2117 </a> 2118 <a href="/pages/contact-us" class="link-title link-title-lg"> 2119 <span>Contact</span> 2120 </a> 2121 </li> 2122 2123 2124</ul>
2125<script> 2126 $('.megamenu-li').parent('ul').addClass('mega-menu'); 2127 $('.menu-banner').parent('ul').addClass('banner-menu'); 2128 $('.submenu-li').parent('ul').addClass('sub-menu'); 2129</script>
2129 2130 2131 </nav> 2132 </div> 2133</div> 2134
2135<script> 2136 document.addEventListener("DOMContentLoaded", function() { 2137 document.getElementById("main-navigation-desk").classList.remove("d-none"); 2138 document.getElementById("main-navigation-mob").classList.remove("d-none"); 2139 }); 2140</script>
2140 2141 2142<style> 2143 .header-area .header-main-area { 2144 background-color: rgba(0,0,0,0); 2145 }.header-area.is-sticky{ 2146 position: fixed; 2147 top: 0; 2148 left: 0; 2149 right: 0; 2150 background-color: #fff; 2151 z-index: 8; 2152 width: 100%; 2153 box-shadow: 0 0 15px rgb(0 0 0 / 15%); 2154 -webkit-box-shadow: 0 0 15px rgb(0 0 0 / 15%); 2155 -moz-box-shadow: 0 0 15px rgba(0, 0, 0, 0.15); 2156 -ms-box-shadow: 0 0 15px rgba(0, 0, 0, 0.15); 2157 background-color: #fff; 2158 animation: smoothScroll 1s forwards; 2159 } 2160 @keyframes smoothScroll { 2161 0% { 2162 transform: translateY(-150px); 2163 } 2164 100% { 2165 transform: translateY(0px); 2166 } 2167 }@media (max-width : 767px){ 2168 .theme-logo img{ 2169 max-width: 100%; 2170 } 2171 } 2172</style> 2173</div> 2174 2175 <main role="main"> 2176 <!-- BEGIN content_for_index --><div id="shopify-section-custom_banner_63b76i" class="shopify-section"><style data-shopify> 2177 .customBanner{ 2178 padding-top:0px; 2179 padding-bottom:0px; 2180 } 2181 .customBanner .postCodeButton { 2182 position: unset; 2183 transform: unset; 2184 border-radius: unset; 2185 background: unset; 2186 box-shadow: unset; 2187 width: unset; 2188 border: none; 2189 padding: 15px 10px; 2190 text-align: center; 2191 cursor: pointer; 2192 font-family: Montserrat,sans-serif; 2193 z-index: 9; 2194 display: block; 2195 } 2196 .customBanner { 2197 background-image:url(//thrivemeals.com.au/cdn/shopifycloud/storefront/assets/no-image-50-e6fb86f4_8X5.gif); 2198 } 2199 .desktop-bg{ 2200 background-image:url(//thrivemeals.com.au/cdn/shopifycloud/storefront/assets/no-image-2048-a2addb12_1000X600.gif); 2201 } 2202</style> 2203<div 2204 class=" 2205 customBanner topbanner-clc 2206 " 2207> 2208 <div class="container"> 2209 <div class="bannerBlock" style="display:flex; justify-content:center;"> 2210 <div class="bannerContent"> 2211 2212 2213 <div class="customLiquid"><h1 style ="font-family: Rubik; 2214 max-width: 800px; 2215 font-size: 60px; 2216 line-height: 60px; 2217 margin-bottom: 5px;color:#000000;">HEALTHY</h1></div> 2218 2219 2220 2221 <div class="customLiquid"><h1 style ="font-family: Rubik; 2222 max-width: 800px; 2223 font-size: 60px; 2224 line-height: 60px; 2225 margin-bottom: 5px;color:#4cb848;">LOW-CARB</h1></div> 2226 2227 2228 2229 <div class="customLiquid"><h1 style ="font-family: Rubik; 2230 max-width: 800px; 2231 font-size: 60px; 2232 line-height: 60px; 2233 margin-bottom: 5px;color:#000000;">MEALS</h1></div> 2234 2235 2236 2237 <h3>Made Easy. Delivered Fresh.</h3> 2238 2239 2240 2241<a class="btn themeBtn mt-4" href="/pages/build-your-box">BROWSE FULL MENU</a> 2242 2243 2244 2245 <div class="customLiquid"><span style="color: #000;max-width: 500px;width: 100%;text-align: center;"><i></i></span></div> 2246 2247 2248 </div> 2249 2250 <div class="imageBlock"> 2251 <img 2252 srcset=" 2253 //thrivemeals.com.au/cdn/shop/files/banner_1_300x.webp?v=1751373363 300w, 2254 //thrivemeals.com.au/cdn/shop/files/banner_1_400x.webp?v=1751373363 400w, 2255 //thrivemeals.com.au/cdn/shop/files/banner_1_600x.webp?v=1751373363 600w, 2256 //thrivemeals.com.au/cdn/shop/files/banner_1_770x.webp?v=1751373363 900w, 2257 //thrivemeals.com.au/cdn/shop/files/banner_1_770x.webp?v=1751373363 1200w 2258 " 2259 sizes="(max-width: 600px) 100vw, 1440px" 2260 > 2261 </div> 2262 2263 </div> 2264 </div> 2265</div> 2266 2267<style> #shopify-section-custom_banner_63b76i .topbanner-clc {background: linear-gradient(#ffffff 60%, #54b52a);} </style></div><div id="shopify-section-multi_column_with_image_4WBzVQ" class="shopify-section"><style data-shopify> 2268 .muteUnmute.muted .muteIcon{ 2269 display:block; 2270 } 2271 .muteUnmute.muted .unmuteIcon, .muteUnmute .muteIcon{ 2272 display:none; 2273 } 2274</style> 2275<section class="multiColumnWithImage freshCookedMealsSlider menu-page"> 2276 <div class="container"> 2277 <div class="multiColumnWithImageBlock"> 2278 2279 <div class=" sectionHeadingblock"> 2280 2281 2282 <h2 class="sectionHeading">EXPLORE OUR RANGE OF READY MEALS</h2> 2283 2284 2285 2286 <div class="description fs-16"> 2287 <p>Meal prep that gives you more choice, more taste, more time. Enjoy fresh food and richer flavours, whether your want to lose weight, bulk up or get time back in your day.</p> 2288 </div> 2289 2290 </div> 2291 2292 2293 2294 2295 <div class="multiColumnWithImageItems"> 2296 2297 2298 2299 2300 2301 2302 2303 2304 <div 2305 class="columnBlockItems d-flex flex-column flex-md-row justify-content-center align-items-center sliderDisabled" 2306 2307 > 2308 2309 2310 <div class="columnBlockItem "> 2311 <div class="columnHeadingBlock "> 2312 2313 <div class="imageBlock"> 2314 2315 <img 2316 srcset=" 2317 //thrivemeals.com.au/cdn/shop/files/CleanChickenKetoBowl_72f1868d-363f-4d30-ad62-198f9acf19be_300x.webp?v=1751373545 300w, 2318 //thrivemeals.com.au/cdn/shop/files/CleanChickenKetoBowl_72f1868d-363f-4d30-ad62-198f9acf19be_400x.webp?v=1751373545 400w, 2319 //thrivemeals.com.au/cdn/shop/files/CleanChickenKetoBowl_72f1868d-363f-4d30-ad62-198f9acf19be_400x.webp?v=1751373545 600w, 2320 //thrivemeals.com.au/cdn/shop/files/CleanChickenKetoBowl_72f1868d-363f-4d30-ad62-198f9acf19be_400x.webp?v=1751373545 800w, 2321 //thrivemeals.com.au/cdn/shop/files/CleanChickenKetoBowl_72f1868d-363f-4d30-ad62-198f9acf19be_400x.webp?v=1751373545 900w, 2322 //thrivemeals.com.au/cdn/shop/files/CleanChickenKetoBowl_72f1868d-363f-4d30-ad62-198f9acf19be_400x.webp?v=1751373545 1200w, 2323 //thrivemeals.com.au/cdn/shop/files/CleanChickenKetoBowl_72f1868d-363f-4d30-ad62-198f9acf19be_400x.webp?v=1751373545 1400w 2324 " 2325 loading="lazy" 2326 sizes="(max-width: 768px) 100vw, 1440px" 2327 alt="" 2328 > 2329 </div> 2330 2331 <div class="blockContentBlock"> 2332 2333 2334 2335 2336 </div> 2337 </div> 2338 2339 <div class="buttonBlock d-flex justify-content-center align-items-center"> 2340 2341 <a 2342 class="btn bg-black rounded-pill text-white py-2 px-5 themeBtn outlineBtn" 2343 href="https://thrivemeals.com.au/collections/fresh-ready-meals?g=keto-friendly" 2344 > 2345 2346 2347
2348 <span class="buttonText"> 2349 2350 2351 Keto Friendly 2352 2353 </span> 2354 2355 <span class="iconBlock rightChevron1IconBlock "> 2356 2357 <svg 2358 class="icon rightChevron1Icon" 2359 width="18" 2360 height="15" 2361 viewBox="0 0 18 25" 2362 fill="none" 2363 xmlns="http://www.w3.org/2000/svg" 2364 > 2365 <path d="M17.142 12.7 5.194.667C2.886-1.66-1.853 2.64.927 5.346l7.559 7.355-7.803 7.233c-2.376 2.203 2.025 6.723 4.39 4.438z" fill="#fff"/> 2366 </svg> 2367 2368 </span> 2369 2370 2371 2372 </a> 2373 2374 </div> 2375 2376 </div> 2377 2378 2379 2380 <div class="columnBlockItem "> 2381 <div class="columnHeadingBlock "> 2382 2383 <div class="imageBlock"> 2384 2385 <img 2386 srcset=" 2387 //thrivemeals.com.au/cdn/shop/files/LambKetoBowl_2d84cca3-3e7e-4ffa-90b9-3bb21eaeb3c8_300x.webp?v=1751373545 300w, 2388 //thrivemeals.com.au/cdn/shop/files/LambKetoBowl_2d84cca3-3e7e-4ffa-90b9-3bb21eaeb3c8_400x.webp?v=1751373545 400w, 2389 //thrivemeals.com.au/cdn/shop/files/LambKetoBowl_2d84cca3-3e7e-4ffa-90b9-3bb21eaeb3c8_400x.webp?v=1751373545 600w, 2390 //thrivemeals.com.au/cdn/shop/files/LambKetoBowl_2d84cca3-3e7e-4ffa-90b9-3bb21eaeb3c8_400x.webp?v=1751373545 800w, 2391 //thrivemeals.com.au/cdn/shop/files/LambKetoBowl_2d84cca3-3e7e-4ffa-90b9-3bb21eaeb3c8_400x.webp?v=1751373545 900w, 2392 //thrivemeals.com.au/cdn/shop/files/LambKetoBowl_2d84cca3-3e7e-4ffa-90b9-3bb21eaeb3c8_400x.webp?v=1751373545 1200w, 2393 //thrivemeals.com.au/cdn/shop/files/LambKetoBowl_2d84cca3-3e7e-4ffa-90b9-3bb21eaeb3c8_400x.webp?v=1751373545 1400w 2394 " 2395 loading="lazy" 2396 sizes="(max-width: 768px) 100vw, 1440px" 2397 alt="" 2398 > 2399 </div> 2400 2401 <div class="blockContentBlock"> 2402 2403 2404 2405 2406 </div> 2407 </div> 2408 2409 <div class="buttonBlock d-flex justify-content-center align-items-center"> 2410 2411 <a 2412 class="btn bg-black rounded-pill text-white py-2 px-5 themeBtn outlineBtn" 2413 href="/collections/fresh-ready-meals" 2414 > 2415 2416 2417 2418 <span class="buttonText"> 2419 2420 2421 Gluten Friendly 2422 2423 </span> 2424 2425 <span class="iconBlock rightChevron1IconBlock "> 2426 2427 <svg 2428 class="icon rightChevron1Icon" 2429 width="18" 2430 height="15" 2431 viewBox="0 0 18 25" 2432 fill="none" 2433 xmlns="http://www.w3.org/2000/svg" 2434 > 2435 <path d="M17.142 12.7 5.194.667C2.886-1.66-1.853 2.64.927 5.346l7.559 7.355-7.803 7.233c-2.376 2.203 2.025 6.723 4.39 4.438z" fill="#fff"/> 2436 </svg> 2437 2438 </span> 2439 2440 2441 2442 </a> 2443 2444 </div> 2445 2446 </div> 2447 2448 2449 2450 <div class="columnBlockItem "> 2451 <div class="columnHeadingBlock "> 2452 2453 <div class="imageBlock"> 2454 2455 <img 2456 srcset=" 2457 //thrivemeals.com.au/cdn/shop/files/MisoBarramundi_300x.webp?v=1751373545 300w, 2458 //thrivemeals.com.au/cdn/shop/files/MisoBarramundi_400x.webp?v=1751373545 400w, 2459 //thrivemeals.com.au/cdn/shop/files/MisoBarramundi_400x.webp?v=1751373545 600w, 2460 //thrivemeals.com.au/cdn/shop/files/MisoBarramundi_400x.webp?v=1751373545 800w, 2461 //thrivemeals.com.au/cdn/shop/files/MisoBarramundi_400x.webp?v=1751373545 900w, 2462 //thrivemeals.com.au/cdn/shop/files/MisoBarramundi_400x.webp?v=1751373545 1200w, 2463 //thrivemeals.com.au/cdn/shop/files/MisoBarramundi_400x.webp?v=1751373545 1400w 2464 " 2465 loading="lazy" 2466 sizes="(max-width: 768px) 100vw, 1440px" 2467 alt="" 2468 > 2469 </div> 2470 2471 <div class="blockContentBlock"> 2472 2473 2474 2475 2476 </div> 2477 </div> 2478 2479 <div class="buttonBlock d-flex justify-content-center align-items-center"> 2480 2481 <a 2482 class="btn bg-black rounded-pill text-white py-2 px-5 themeBtn outlineBtn" 2483 href="https://thrivemeals.com.au/collections/fresh-ready-meals?g=high-protein" 2484 > 2485 2486 2487
2488 <span class="buttonText"> 2489 2490 2491 High Protein 2492 2493 </span> 2494 2495 <span class="iconBlock rightChevron1IconBlock "> 2496 2497 <svg 2498 class="icon rightChevron1Icon" 2499 width="18" 2500 height="15" 2501 viewBox="0 0 18 25" 2502 fill="none" 2503 xmlns="http://www.w3.org/2000/svg" 2504 > 2505 <path d="M17.142 12.7 5.194.667C2.886-1.66-1.853 2.64.927 5.346l7.559 7.355-7.803 7.233c-2.376 2.203 2.025 6.723 4.39 4.438z" fill="#fff"/> 2506 </svg> 2507 2508 </span> 2509 2510 2511 2512 </a> 2513 2514 </div> 2515 2516 </div> 2517 2518 2519 </div> 2520 </div> 2521 </div> 2522 </div> 2523</section> 2524 2525 2526 2527<style> #shopify-section-multi_column_with_image_4WBzVQ .freshCookedMealsSlider {background: linear-gradient(#55b52b 70%, #b0ec8b);} #shopify-section-multi_column_with_image_4WBzVQ .sectionHeading, #shopify-section-multi_column_with_image_4WBzVQ .description {color: #ffffff; text-align: center;} </style></div><div id="shopify-section-multi_column_with_image_wyNpMA" class="shopify-section"><style data-shopify> 2528 .muteUnmute.muted .muteIcon{ 2529 display:block; 2530 } 2531 .muteUnmute.muted .unmuteIcon, .muteUnmute .muteIcon{ 2532 display:none; 2533 } 2534</style> 2535<section class="multiColumnWithImage shippingProcessSection menu-page"> 2536 <div class="container"> 2537 <div class="multiColumnWithImageBlock"> 2538 2539 <div class=" sectionHeadingblock"> 2540 2541 2542 2543 2544 </div> 2545 2546 2547 2548 2549 <div class="multiColumnWithImageItems"> 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 <div 2561 class="columnBlockItems sliderDisabled" 2562 2563 > 2564 2565 2566 <div class="columnBlockItem "> 2567 <div class="columnHeadingBlock d-flex flex-column flex-md-row justify-content-center align-items-center"> 2568 2569 <div class="imageBlock"> 2570 2571 <img 2572 srcset=" 2573 //thrivemeals.com.au/cdn/shop/files/icon_5_300x.svg?v=1715746750 300w, 2574 //thrivemeals.com.au/cdn/shop/files/icon_5_400x.svg?v=1715746750 400w, 2575 //thrivemeals.com.au/cdn/shop/files/icon_5_400x.svg?v=1715746750 600w, 2576 //thrivemeals.com.au/cdn/shop/files/icon_5_400x.svg?v=1715746750 800w, 2577 //thrivemeals.com.au/cdn/shop/files/icon_5_400x.svg?v=1715746750 900w, 2578 //thrivemeals.com.au/cdn/shop/files/icon_5_400x.svg?v=1715746750 1200w, 2579 //thrivemeals.com.au/cdn/shop/files/icon_5_400x.svg?v=1715746750 1400w 2580 " 2581 loading="lazy" 2582 sizes="(max-width: 768px) 100vw, 1440px" 2583 alt="" 2584 > 2585 </div> 2586 2587 <div class="blockContentBlock"> 2588 2589 2590 <h4 class="blockSubHeading">Science Backed, Dietitian Designed</h4> 2591 2592 2593 2594 </div> 2595 </div> 2596 2597 </div> 2598 2599 2600 2601 <div class="columnBlockItem "> 2602 <div class="columnHeadingBlock d-flex flex-column flex-md-row justify-content-center align-items-center"> 2603 2604 <div class="imageBlock"> 2605 2606 <img 2607 srcset=" 2608 //thrivemeals.com.au/cdn/shop/files/icon_2_300x.svg?v=1715746736 300w, 2609 //thrivemeals.com.au/cdn/shop/files/icon_2_400x.svg?v=1715746736 400w, 2610 //thrivemeals.com.au/cdn/shop/files/icon_2_400x.svg?v=1715746736 600w, 2611 //thrivemeals.com.au/cdn/shop/files/icon_2_400x.svg?v=1715746736 800w, 2612 //thrivemeals.com.au/cdn/shop/files/icon_2_400x.svg?v=1715746736 900w, 2613 //thrivemeals.com.au/cdn/shop/files/icon_2_400x.svg?v=1715746736 1200w, 2614 //thrivemeals.com.au/cdn/shop/files/icon_2_400x.svg?v=1715746736 1400w 2615 " 2616 loading="lazy" 2617 sizes="(max-width: 768px) 100vw, 1440px" 2618 alt="" 2619 > 2620 </div> 2621 2622 <div class="blockContentBlock"> 2623 2624 2625 <h4 class="blockSubHeading">Fresh Meals, Never Frozen</h4> 2626 2627 2628 2629 </div> 2630 </div> 2631 2632 </div> 2633 2634 2635 2636 <div class="columnBlockItem "> 2637 <div class="columnHeadingBlock d-flex flex-column flex-md-row justify-content-center align-items-center"> 2638 2639 <div class="imageBlock"> 2640 2641 <img 2642 srcset=" 2643 //thrivemeals.com.au/cdn/shop/files/icon_3_300x.svg?v=1715746741 300w, 2644 //thrivemeals.com.au/cdn/shop/files/icon_3_400x.svg?v=1715746741 400w, 2645 //thrivemeals.com.au/cdn/shop/files/icon_3_400x.svg?v=1715746741 600w, 2646 //thrivemeals.com.au/cdn/shop/files/icon_3_400x.svg?v=1715746741 800w, 2647 //thrivemeals.com.au/cdn/shop/files/icon_3_400x.svg?v=1715746741 900w, 2648 //thrivemeals.com.au/cdn/shop/files/icon_3_400x.svg?v=1715746741 1200w, 2649 //thrivemeals.com.au/cdn/shop/files/icon_3_400x.svg?v=1715746741 1400w 2650 " 2651 loading="lazy" 2652 sizes="(max-width: 768px) 100vw, 1440px" 2653 alt="" 2654 > 2655 </div> 2656 2657 <div class="blockContentBlock"> 2658 2659 2660 <h4 class="blockSubHeading">Delivered to You Every Week</h4> 2661 2662 2663 2664 </div> 2665 </div> 2666 2667 </div> 2668 2669 2670 2671 <div class="columnBlockItem "> 2672 <div class="columnHeadingBlock d-flex flex-column flex-md-row justify-content-center align-items-center"> 2673 2674 <div class="imageBlock"> 2675 2676 <img 2677 srcset=" 2678 //thrivemeals.com.au/cdn/shop/files/icon_4_300x.svg?v=1715746746 300w, 2679 //thrivemeals.com.au/cdn/shop/files/icon_4_400x.svg?v=1715746746 400w, 2680 //thrivemeals.com.au/cdn/shop/files/icon_4_400x.svg?v=1715746746 600w, 2681 //thrivemeals.com.au/cdn/shop/files/icon_4_400x.svg?v=1715746746 800w, 2682 //thrivemeals.com.au/cdn/shop/files/icon_4_400x.svg?v=1715746746 900w, 2683 //thrivemeals.com.au/cdn/shop/files/icon_4_400x.svg?v=1715746746 1200w, 2684 //thrivemeals.com.au/cdn/shop/files/icon_4_400x.svg?v=1715746746 1400w 2685 " 2686 loading="lazy" 2687 sizes="(max-width: 768px) 100vw, 1440px" 2688 alt="" 2689 > 2690 </div> 2691 2692 <div class="blockContentBlock"> 2693 2694 2695 <h4 class="blockSubHeading">No Compromising Taste for Health</h4> 2696 2697 2698 2699 </div> 2700 </div> 2701 2702 </div> 2703 2704 2705 </div> 2706 </div> 2707 </div> 2708 </div> 2709</section> 2710 2711 2712 2713</div><div id="shopify-section-bb0b4474-a65e-4c3f-b292-45e352933b97" class="shopify-section"><div class="discover-menu"> 2714 <div class="container"> 2715 2716 <div class="bg-box"> 2717 <div class="row"> 2718 2719 <div class="col-lg-4 col-xs-12 distitle"> 2720 <h2><p>Our Most<br>Popular Meals</p></h2> 2721 </div> 2722 2723 2724 <div class="col-lg-8 col-xs-12 disdesc"> 2725 <p class="firstdesc">Pick from some of our most popular meals!</p> 2726 <p class="secdesc">Find out why our customers love our food. Once you try, you won't go back!</p> 2727 </div> 2728 2729 </div> 2730 </div> 2731 2732 </div> 2733</div> 2734 2735<style> #shopify-section-bb0b4474-a65e-4c3f-b292-45e352933b97 .discover-menu {margin-top: 80px;} </style></div><div id="shopify-section-7b451ab7-248d-4516-9c9b-bcecaf66a94e" class="shopify-section"> 2736<link href="//thrivemeals.com.au/cdn/shop/t/214/assets/menu-redesign.css?v=111497265428397155091786598712" rel="stylesheet" type="text/css" media="all" /> 2737<section class="productSliderSection sectionPadding d-none"> 2738 <div class="container"> 2739 <div class="slider-content"> 2740 <div class="product-slider owl-carousel" id="product-slider"> 2741 2742 2743 2744 2745 2746<div class="item menu-card-redesign mcard cat-lowcarb low_carb loop_index_0 is-ld-meal" data-ga4-item="{"item_id":"9197210665276","item_name":"Beef Lasagne (Low Carb)","item_category":"LUNCH \u0026 DINNER","price":12.95}">
2747 <div style="display:none;">1295 == 1295</div> 2748 2749 <div class="product-slider-image mcard-photo photo"> 2750 2751 <a 2752 class="desk-img f7-quick-view quick-view" 2753 href="/products/beef-lasagne" 2754 id="productId_9197210665276" 2755 data-meta='{"allergen_information":{"type":"root","children":[{"type":"paragraph","children":[{"type":"text","value":"Contains Gluten, Wheat, Milk, Soy\n","bold":true},{"type":"text","value":"\nFood Allergy Notice: Our meals are prepared in a kitchen whose environment contains eggs, fish, milk, peanuts, sesame, crustaceans, soy, nuts, tree nuts, gluten, lupin, and sulphites. Though best practices are used in preparing the meal, inadvertent cross-contamination may occur. We cannot guarantee the complete absence of these allergens. Our nutrition data includes all sauces, dressings, condiments, and garnishes included with a dish. Every reasonable effort has been made to ensure the accuracy of all information at the time of publication. However, the information contained above is subject to change without prior notice"}]}]},"calories_per100":"134 Cal","calories_perserve":"402 Cal","carbs_per100":"3.9 g","carbs_perserve":"11.6 g","custom_filter":["Egg-Free","Peanut-Free","Tree Nut-Free","Fish-Free","Crustacea-Free"],"energy_per100":"560 kJ","energy_perserve":"1680 kJ","fat_per100":"6.9 g","fat_perserve":"20.7 g","fibre_per100":"2.0 g","fibre_perserve":"6.0 g","ingredients":"Beef Mince, Water, Tomato Puree, Low Carb Lasagne Sheets (Organic Soy Bean), Cream, Tomato Paste, Mozzarella, Carrot, Celery, Onion, Mushroom, Parmesan Cheese, Butter, Olive Oil, Salt, Plain Flour, Black Pepper, Herb, Oregano, Bay Leaves, Nutmeg.","meal_category":["Low Carb"],"meal_subtitle":"Low Carb Style","product_ingredients":["Beef Mince","Low Carb Lasagne Sheets (Organic Soy Bean)","Tomatoes","Water","Tomato Paste","Carrot","Celery","Onion","Mozzarella (Milk)","Cream (Milk)","Mushroom","Parmesan Cheese (Milk)","Flour (Wheat)","Butter (Milk)","Beef Stock","Salt","Black Pepper","Herb","Olive Oil","Oregano","Thyme","Bay Leaves","Nutmeg","Thickener (1422)"],"product_instructions":{"type":"root","children":[{"type":"list","listType":"ordered","children":[{"type":"list-item","children":[{"type":"text","value":"Remove sleeve and peel film slightly from corner then heat in Microwave for 90 seconds"}]},{"type":"list-item","children":[{"type":"text","value":"Peel film off, stir \u0026 heat for an additional 30 seconds if required"}]},{"type":"list-item","children":[{"type":"text","value":"Serve on a plate for the most delicious, healthy meal. Enjoy!"}]}]}]},"product_name_highlight":"Beef Lasagne","protein_per100":"13.2 g","protein_perserve":"39.5 g","protein_type":"Beef","satfat_per100":"3.4 g","satfat_perserve":"10.2 g","sodium_per100":"550 mg","sodium_perserve":"1650 mg","sugars_per100":"2.2 g","sugars_perserve":"6.6 g","why_good_for_you":"Beef provides complete protein, iron and zinc; soy lasagne, tomatoes and vegetables contribute fibre, lycopene, folate and plant protein."}' 2756 data-allergen='null' 2757 data-instructions='null' 2758 onclick="if(window.quiqview){quiqview('beef-lasagne');return false;}" 2759 > 2760 <img 2761 class="img-fluid placeholder-image" 2762 loading="lazy" 2763 srcset=" 2764 //thrivemeals.com.au/cdn/shop/files/Lasagne.png?crop=center&height=400&v=1722391912&width=400 300w, 2765 //thrivemeals.com.au/cdn/shop/files/Lasagne.png?crop=center&height=400&v=1722391912&width=400 400w, 2766 //thrivemeals.com.au/cdn/shop/files/Lasagne.png?crop=center&height=400&v=1722391912&width=400 600w, 2767 //thrivemeals.com.au/cdn/shop/files/Lasagne.png?crop=center&height=400&v=1722391912&width=400 800w, 2768 //thrivemeals.com.au/cdn/shop/files/Lasagne.png?crop=center&height=400&v=1722391912&width=400 1200w 2769 " 2770 sizes="(max-width: 600px) 100vw, 400px" 2771 width="230" 2772 height="230" 2773 alt="Beef Lasagne" 2774 > 2775 </a> 2776 2777 2778 <span class="inboxb inbox-badge d-none">In box ×<span class="inbox-qty quantity-48753653678396">0</span></span> 2779 2780 2781 2782 2783 </div> 2784 2785 2786 2787 <div class="cat-bar lowcarb">Low Carb</div> 2788 2789 2790 2791 2792 <div class="macro-strip nutritionCount lowcarb"> 2793
2794 <span class="nutritionItem">402 CAL</span> 2795 2796 2797 <span class="nutritionItem">40 P</span> 2798 2799 2800 <span class="nutritionItem">12 C</span> 2801 2802 2803 <span class="nutritionItem">21 F</span> 2804 2805 </div> 2806 2807 2808 <div class="productContent mcard-b"> 2809 <div class="otherContent d-flex flex-column "> 2810 <div class="cardFilterIcons"> 2811 2812 <div class=""> 2813 <ul class="flex-nowrap justify-content-start"> 2814 2815 2816 2817 <li class="filterTooltip" tip-title="Egg-Free"> 2818 <img src=" 2819 //thrivemeals.com.au/cdn/shop/files/EF-removebg-preview_50x.png?v=1759769778 2820 " alt="Filter Icons" width="30" height="30"> 2821 </li> 2822 2823 2824 2825 2826 <li class="filterTooltip" tip-title="Peanut-Free"> 2827 <img src=" 2828 //thrivemeals.com.au/cdn/shop/files/PF-removebg-preview_50x.png?v=1759769778 2829 " alt="Filter Icons" width="30" height="30"> 2830 </li> 2831 2832 2833 2834 2835 <li class="filterTooltip" tip-title="Tree Nut-Free"> 2836 <img src=" 2837 //thrivemeals.com.au/cdn/shop/files/TNF-removebg-preview_50x.png?v=1759769778 2838 " alt="Filter Icons" width="30" height="30"> 2839 </li> 2840 2841 2842 2843 2844 2845 2846 2847 <li class="filterTooltip" tip-title="Crustacea-Free"> 2848 <img src=" 2849 //thrivemeals.com.au/cdn/shop/files/CF-removebg-preview_50x.png?v=1759769779 2850 " alt="Filter Icons" width="30" height="30"> 2851 </li> 2852 2853 2854 </ul> 2855</div> 2856 2857 </div> 2858 2859 <h3 class="mc-name"><a href="/products/beef-lasagne" title="Beef Lasagne">Beef Lasagne</a></h3><p class="mc-sub">Low Carb Style</p> 2860 2861 <div class="mt-auto"> 2862 2863 <div class="mc-foot d-flex align-items-baseline my-2 comparePriceOuter"> 2864 <span class="price-block mc-price" id="ProductPrice"> 2865 <b class="price-now">$12.95</b> 2866 </span> 2867 2868 <span class="products-weight serve-weight small">300g</span> 2869 2870 </div> 2871 2872
2873 <div class="priceAndAction mcard-action d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto"> 2874 2875 <div class="product-all product-id-9197210665276 " data-product-id="9197210665276"> 2876 <div class="add-cart-button d-none"> 2877 <a href="javascript:void(0);" onclick="localCart.addItemCondition(9197210665276, 48753653678396, 'Beef Lasagne', '/products/beef-lasagne', '//thrivemeals.com.au/cdn/shop/files/Lasagne_150X150_crop_center.png?v=1722391912', 1295, 1295, 1, 'LUNCH & DINNER', 689703944508, null , '', '')" class="add-to-cart ajax-spin-cart btn-style3 bg-green border-green "> 2878 <span class="cart-title fw-bolder">Add to box</span> 2879 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 2880 <span class="cart-added"><i class="ion-android-done"></i></span> 2881 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 2882 </a> 2883 </div> 2884 <div class="quantity-selector d-none"> 2885 <div class="upsell_quantity buttons d-flex"> 2886 <div class="product-quantity" data-variant="48753653678396"> 2887 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 2888 <div class="dec qtybutton" data-action="-"><i class="icon-minus fw-bolder"></i></div> 2889 <input 2890 value="1" 2891 class="qtyinputcs" 2892 type="text" 2893 name="quantity" 2894 min="1" 2895 pattern="[0-9]*" 2896 > 2897 2898 <span class="cusqtyspan quantity-48753653678396 quantity-var-9197210665276" 2899 >1</span 2900 > 2901 <div class="inc qtybutton" data-action="+"><i class="icon-plus fw-bolder"></i></div> 2902 </div> 2903 </div> 2904 </div> 2905 </div> 2906</div> 2907 2908 </div> 2909 2910 </div> 2911 </div> 2912 </div> 2913</div> 2914 2915 2916 2917 2918 2919<div class="item menu-card-redesign mcard cat-lowcarb low_carb low_calorie loop_index_0 is-ld-meal" data-ga4-item="{"item_id":"9590788784444","item_name":"Peanut Chicken with Low Carb Fried Rice","item_category":"LUNCH \u0026 DINNER","price":12.95}"> 2920 <div style="display:none;">1295 == 1295</div> 2921 2922 <div class="product-slider-image mcard-photo photo"> 2923 2924 <a 2925 class="desk-img f7-quick-view quick-view" 2926 href="/products/nasi-goreng-peanut-chicken" 2927 id="productId_9590788784444" 2928 data-meta='{"allergen_information":{"type":"root","children":[{"type":"paragraph","children":[{"type":"text","value":"Contains Crustacean, Peanut, Soy.","bold":true}]},{"type":"paragraph","children":[{"type":"text","value":"Food Allergy Notice: Our meals are prepared in a kitchen whose environment contains eggs, fish, milk, peanuts, sesame, crustaceans, soy, nuts, tree nuts, gluten, lupin, and sulphites. Though best practices are used in preparing the meal, inadvertent cross-contamination may occur. We cannot guarantee the complete absence of these allergens. Our nutrition data includes all sauces, dressings, condiments, and garnishes included with a dish. Every reasonable effort has been made to ensure the accuracy of all information at the time of publication. However, the information contained above is subject to change without prior notice."}]}]},"calories_per100":"115 Cal","calories_perserve":"391 Cal","carbs_per100":"3.8 g","carbs_perserve":"12.9 g","custom_filter":["No Gluten Added","Egg-Free","Tree Nut-Free","Fish-Free"],"energy_per100":"481 kJ","energy_perserve":"1640 kJ","fat_per100":"4.9 g","fat_perserve":"16.7 g","fibre_per100":"1.3 g","fibre_perserve":"4.4 g","ingredients":"Chicken Breast, Low Carb Rice (Konjac Flour, Rice Flour), Coconut Cream, Shallots, Water, Broccoli, Capsicum, Carrot, Green Beans, Onion, Water, Soybean Oil, Dark Soy Sauce (Sugar, Soy Sauce (Water, Soybean, Salt, Rice), Caramel (150a), Water, Salt, Food Acid (270)), Tomato Paste, Garlic, Sugar, Salt, Shallot, Dried Chilli, White Pepper, Turmeric, Peanut Butter (Roasted Peanuts (90%), Sugar, Vegetable Oils, Salt, Stabiliser), Curry Paste (Crustacean) (Garlic, Dried Red Chili, Lemongrass, Shallot, Salt, Galangal, Shrimp Paste (Shrimp, Salt), Kaffir Lime Peel, Pepper), Tomato Paste, Vegetable Oil, Sugar, Garlic, Massaman Curry Sauce Premix, Peanut.","meal_category":["Low Carb","Low Calorie"],"meal_subtitle":"with Low Carb Rice","product_ingredients":["Chicken Breast","Low Carb Rice (Konjac Flour, Rice Flour)","Coconut Cream","Shallots","Water","Broccoli","Capsicum","Carrot","Green Beans","Onion","Water","Soybean Oil","Dark Soy Sauce (Sugar, Soy Sauce (Water, Soybean, Salt, Rice), Caramel (150a), Water, Salt, Food Acid (270))","Tomato Paste","Garlic","Sugar","Salt","Shallot","Dried Chilli","White Pepper","Turmeric","Peanut Butter (Roasted Peanuts (90%), Sugar, Vegetable Oils, Salt, Stabiliser)","Curry Paste (Crustacean) (Garlic, Dried Red Chili, Lemongrass, Shallot, Salt, Galangal, Shrimp Paste (Shrimp, Salt), Kaffir Lime Peel, Pepper)","Tomato Paste","Vegetable Oil","Sugar","Garlic","Massaman Curry Sauce Premix","Peanut"],"product_instructions":{"type":"root","children":[{"type":"list","listType":"ordered","children":[{"type":"list-item","children":[{"type":"text","value":"Remove sleeve and peel film slightly from corner then heat in Microwave for 90 seconds"}]},{"type":"list-item","children":[{"type":"text","value":"Peel film off, stir \u0026 heat for an additional 30 seconds
2928if required"}]},{"type":"list-item","children":[{"type":"text","value":"Serve on a plate for the most delicious, healthy meal. Enjoy!"}]}]}]},"product_name_highlight":"Peanut Chicken","protein_per100":"12.9 g","protein_perserve":"43.9 g","protein_type":"Chicken","satfat_per100":"1.8 g","satfat_perserve":"6.1 g","sodium_per100":"194 mg","sodium_perserve":"658 mg","sugars_per100":"2.7 g","sugars_perserve":"9.2 g","why_good_for_you":"Chicken provides complete protein; broccoli, carrots, beans and peanuts contribute fibre, vitamin C, magnesium and healthy fats."}' 2929 data-allergen='null' 2930 data-instructions='null' 2931 onclick="if(window.quiqview){quiqview('nasi-goreng-peanut-chicken');return false;}" 2932 > 2933 <img 2934 class="img-fluid placeholder-image" 2935 loading="lazy" 2936 srcset=" 2937 //thrivemeals.com.au/cdn/shop/files/Peanutchickenrice.png?crop=center&height=400&v=1721014835&width=400 300w, 2938 //thrivemeals.com.au/cdn/shop/files/Peanutchickenrice.png?crop=center&height=400&v=1721014835&width=400 400w, 2939 //thrivemeals.com.au/cdn/shop/files/Peanutchickenrice.png?crop=center&height=400&v=1721014835&width=400 600w, 2940 //thrivemeals.com.au/cdn/shop/files/Peanutchickenrice.png?crop=center&height=400&v=1721014835&width=400 800w, 2941 //thrivemeals.com.au/cdn/shop/files/Peanutchickenrice.png?crop=center&height=400&v=1721014835&width=400 1200w 2942 " 2943 sizes="(max-width: 600px) 100vw, 400px" 2944 width="230" 2945 height="230" 2946 alt="Peanut Chicken" 2947 > 2948 </a> 2949 2950 2951 <span class="inboxb inbox-badge d-none">In box ×<span class="inbox-qty quantity-49781203796284">0</span></span> 2952 2953 2954 2955 2956 </div> 2957 2958 2959 2960 <div class="cat-bar lowcarb">Low Carb</div> 2961 2962 2963 2964 2965 <div class="macro-strip nutritionCount lowcarb"> 2966 2967 <span class="nutritionItem">391 CAL</span> 2968 2969 2970 <span class="nutritionItem">44 P</span> 2971 2972 2973 <span class="nutritionItem">13 C</span> 2974 2975 2976 <span class="nutritionItem">17 F</span> 2977 2978 </div> 2979 2980 2981 <div class="productContent mcard-b"> 2982 <div class="otherContent d-flex flex-column "> 2983 <div class="cardFilterIcons"> 2984 2985 <div class=""> 2986 <ul class="flex-nowrap justify-content-start"> 2987 2988 2989 2990 2991 2992 2993 <li class="filterTooltip" tip-title="Egg-Free"> 2994 <img src=" 2995 //thrivemeals.com.au/cdn/shop/files/EF-removebg-preview_50x.png?v=1759769778 2996 " alt="Filter Icons" width="30" height="30"> 2997 </li> 2998 2999 3000 3001 3002 <li class="filterTooltip" tip-title="Tree Nut-Free"> 3003 <img src=" 3004 //thrivemeals.com.au/cdn/shop/files/TNF-removebg-preview_50x.png?v=1759769778 3005 " alt="Filter Icons" width="30" height="30"> 3006 </li> 3007 3008 3009 3010 3011 3012 </ul> 3013</div> 3014 3015 </div> 3016 3017 <h3 class="mc-name"><a href="/products/nasi-goreng-peanut-chicken" title="Peanut Chicken">Peanut Chicken</a></h3><p class="mc-sub">with Low Carb Rice</p> 3018 3019 <div class="mt-auto"> 3020 3021 <div class="mc-foot d-flex align-items-baseline my-2 comparePriceOuter"> 3022 <span class="price-block mc-price" id="ProductPrice"> 3023 <b class="price-now">$12.95</b> 3024 </span> 3025 3026 <span class="products-weight serve-weight small">340g</span> 3027 3028 </div> 3029 3030
3031 <div class="priceAndAction mcard-action d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto"> 3032 3033 <div class="product-all product-id-9590788784444 " data-product-id="9590788784444"> 3034 <div class="add-cart-button d-none"> 3035 <a href="javascript:void(0);" onclick="localCart.addItemCondition(9590788784444, 49781203796284, 'Peanut Chicken', '/products/nasi-goreng-peanut-chicken', '//thrivemeals.com.au/cdn/shop/files/Peanutchickenrice_150X150_crop_center.png?v=1721014835', 1295, 1295, 1, 'LUNCH & DINNER', 689703944508, null , '', '')" class="add-to-cart ajax-spin-cart btn-style3 bg-green border-green "> 3036 <span class="cart-title fw-bolder">Add to box</span> 3037 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 3038 <span class="cart-added"><i class="ion-android-done"></i></span> 3039 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 3040 </a> 3041 </div> 3042 <div class="quantity-selector d-none"> 3043 <div class="upsell_quantity buttons d-flex"> 3044 <div class="product-quantity" data-variant="49781203796284"> 3045 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 3046 <div class="dec qtybutton" data-action="-"><i class="icon-minus fw-bolder"></i></div> 3047 <input 3048 value="1" 3049 class="qtyinputcs" 3050 type="text" 3051 name="quantity" 3052 min="1" 3053 pattern="[0-9]*" 3054 > 3055 3056 <span class="cusqtyspan quantity-49781203796284 quantity-var-9590788784444" 3057 >1</span 3058 > 3059 <div class="inc qtybutton" data-action="+"><i class="icon-plus fw-bolder"></i></div> 3060 </div> 3061 </div> 3062 </div> 3063 </div> 3064</div> 3065 3066 </div> 3067 3068 </div> 3069 </div> 3070 </div> 3071</div> 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083<div class="item menu-card-redesign mcard cat-lowcarb low_carb loop_index_0 is-ld-meal" data-ga4-item="{"item_id":"9093918196028","item_name":"Mexican Chicken and Rice","item_category":"LUNCH \u0026 DINNER","price":12.95}"> 3084 <div style="display:none;">1295 == 1295</div> 3085 3086 <div class="product-slider-image mcard-photo photo"> 3087 3088 <a 3089 class="desk-img f7-quick-view quick-view" 3090 href="/products/mexican-chicken-and-rice" 3091 id="productId_9093918196028" 3092 data-meta='{"allergen_information":{"type":"root","children":[{"type":"paragraph","children":[{"type":"text","value":"Food Allergy Notice: Our meals are prepared in a kitchen whose environment contains eggs, fish, milk, peanuts, sesame, crustaceans, soy, nuts, tree nuts, gluten, lupin, and sulphites. Though best practices are used in preparing the meal, inadvertent cross-contamination may occur. We cannot guarantee the complete absence of these allergens. Our nutrition data includes all sauces, dressings, condiments, and garnishes included with a dish. Every reasonable effort has been made to ensure the accuracy of all information at the time of publication. However, the information contained above is subject to change without prior notice."}]}]},"calories_per100":"100 Cal","calories_perserve":"341 Cal","carbs_per100":"7.2 g","carbs_perserve":"24.5 g","custom_filter":["No Gluten Added","Dairy-Free","Egg-Free","Peanut-Free","Tree Nut-Free","Soy-Free","Fish-Free","Crustacea-Free"],"energy_per100":"420 kJ","energy_perserve":"1430 kJ","fat_per100":"2.1 g","fat_perserve":"7.2 g","fibre_per100":"\u003c1g","fibre_perserve":"2.9 g","ingredients":"Chicken Breast, Capsicum, Basmati Rice, Onion, Tomatoes, Spring Onion, Olive Oil, Jalapenos, Taco Seasoning (Salt, Spices, Sugar, Maize Starch, Vegetable Powders, Food Acid (330), Spice Extract (160c),herb.), Garlic, Chicken Stock Powder, Cumin.","meal_category":["Low Carb"],"meal_subtitle":"with Rice","product_ingredients":["Chicken Breast","Capsicum","Basmati Rice","Onion","Tomatoes","Spring Onion","Olive Oil","Jalapenos","Taco Seasoning (Salt, Spices, Sugar, Maize Starch, Vegetable Powders, Food Acid (330), Spice Extract (160c), herb)","Garlic","Chicken Stock Powder","Cumin"],"product_instructions":{"type":"root","children":[{"type":"list","listType":"ordered","children":[{"type":"list-item","children":[{"type":"text","value":"Remove sleeve and peel film slightly from corner then heat in Microwave for 90 seconds"}]},{"type":"list-item","children":[{"type":"text","value":"Peel film off, stir \u0026 heat for an additional 30 seconds
3092if required"}]},{"type":"list-item","children":[{"type":"text","value":"Serve on a plate for the most delicious, healthy meal. Enjoy!"}]}]}]},"product_name_highlight":"Mexican Chicken","protein_per100":"12.4 g","protein_perserve":"42.3 g","protein_type":"Chicken","satfat_per100":"\u003c1g","satfat_perserve":"1.5 g","sodium_per100":"161 mg","sodium_perserve":"548 mg","sugars_per100":"2.2 g","sugars_perserve":"7.4 g","why_good_for_you":"Chicken provides complete protein; capsicum, tomato and onion contribute fibre, vitamin C, lycopene and folate."}' 3093 data-allergen='null' 3094 data-instructions='null' 3095 onclick="if(window.quiqview){quiqview('mexican-chicken-and-rice');return false;}" 3096 > 3097 <img 3098 class="img-fluid placeholder-image" 3099 loading="lazy" 3100 srcset=" 3101 //thrivemeals.com.au/cdn/shop/files/MexicanChickenwRice_f0a900b9-86f4-411c-af6e-6bc6a21119a6.png?crop=center&height=400&v=1736760460&width=400 300w, 3102 //thrivemeals.com.au/cdn/shop/files/MexicanChickenwRice_f0a900b9-86f4-411c-af6e-6bc6a21119a6.png?crop=center&height=400&v=1736760460&width=400 400w, 3103 //thrivemeals.com.au/cdn/shop/files/MexicanChickenwRice_f0a900b9-86f4-411c-af6e-6bc6a21119a6.png?crop=center&height=400&v=1736760460&width=400 600w, 3104 //thrivemeals.com.au/cdn/shop/files/MexicanChickenwRice_f0a900b9-86f4-411c-af6e-6bc6a21119a6.png?crop=center&height=400&v=1736760460&width=400 800w, 3105 //thrivemeals.com.au/cdn/shop/files/MexicanChickenwRice_f0a900b9-86f4-411c-af6e-6bc6a21119a6.png?crop=center&height=400&v=1736760460&width=400 1200w 3106 " 3107 sizes="(max-width: 600px) 100vw, 400px" 3108 width="230" 3109 height="230" 3110 alt="Mexican Chicken" 3111 > 3112 </a> 3113 3114 3115 <span class="inboxb inbox-badge d-none">In box ×<span class="inbox-qty quantity-48425146319164">0</span></span> 3116 3117 3118 3119 3120 </div> 3121 3122 3123 3124 <div class="cat-bar lowcarb">Low Carb</div> 3125 3126 3127 3128 3129 <div class="macro-strip nutritionCount lowcarb"> 3130 3131 <span class="nutritionItem">341 CAL</span> 3132 3133 3134 <span class="nutritionItem">42 P</span> 3135 3136 3137 <span class="nutritionItem">25 C</span> 3138 3139 3140 <span class="nutritionItem">7 F</span> 3141 3142 </div> 3143 3144 3145 <div class="productContent mcard-b"> 3146 <div class="otherContent d-flex flex-column "> 3147 <div class="cardFilterIcons"> 3148 3149 <div class=""> 3150 <ul class="flex-nowrap justify-content-start"> 3151 3152 3153 3154 3155 3156 3157 <li class="filterTooltip" tip-title="Dairy-Free"> 3158 <img src=" 3159 //thrivemeals.com.au/cdn/shop/files/DF-removebg-preview_50x.png?v=1759769779 3160 " alt="Filter Icons" width="30" height="30"> 3161 </li> 3162 3163 3164 3165 3166 <li class="filterTooltip" tip-title="Egg-Free"> 3167 <img src=" 3168 //thrivemeals.com.au/cdn/shop/files/EF-removebg-preview_50x.png?v=1759769778 3169 " alt="Filter Icons" width="30" height="30"> 3170 </li> 3171 3172 3173 3174 3175 <li class="filterTooltip" tip-title="Peanut-Free"> 3176 <img src=" 3177 //thrivemeals.com.au/cdn/shop/files/PF-removebg-preview_50x.png?v=1759769778 3178 " alt="Filter Icons" width="30" height="30"> 3179 </li> 3180 3181 3182 3183 3184 <li class="filterTooltip" tip-title="Tree Nut-Free"> 3185 <img src=" 3186 //thrivemeals.com.au/cdn/shop/files/TNF-removebg-preview_50x.png?v=1759769778 3187 " alt="Filter Icons" width="30" height="30"> 3188 </li> 3189 3190 3191 3192 3193 <li class="filterTooltip" tip-title="Soy-Free"> 3194 <img src=" 3195 //thrivemeals.com.au/cdn/shop/files/SF-removebg-preview_50x.png?v=1759769779 3196 " alt="Filter Icons" width="30" height="30"> 3197 </li> 3198 3199 3200 3201 3202 3203 3204 3205 <li class="filterTooltip" tip-title="Crustacea-Free"> 3206 <img src=" 3207 //thrivemeals.com.au/cdn/shop/files/CF-removebg-preview_50x.png?v=1759769779 3208 " alt="Filter Icons" width="30" height="30"> 3209 </li> 3210 3211 3212 </ul> 3213</div> 3214 3215 </div> 3216 3217 <h3 class="mc-name"><a href="/products/mexican-chicken-and-rice" title="Mexican Chicken">Mexican Chicken</a></h3><p class="mc-sub">with Rice</p> 3218 3219 <div class="mt-auto"> 3220 3221 <div class="mc-foot d-flex align-items-baseline my-2 comparePriceOuter">
3222 <span class="price-block mc-price" id="ProductPrice"> 3223 <b class="price-now">$12.95</b> 3224 </span> 3225 3226 <span class="products-weight serve-weight small">340g</span> 3227 3228 </div> 3229 3230 3231 <div class="priceAndAction mcard-action d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto"> 3232 3233 <div class="product-all product-id-9093918196028 " data-product-id="9093918196028"> 3234 <div class="add-cart-button d-none"> 3235 <a href="javascript:void(0);" onclick="localCart.addItemCondition(9093918196028, 48425146319164, 'Mexican Chicken', '/products/mexican-chicken-and-rice', '//thrivemeals.com.au/cdn/shop/files/MexicanChickenwRice_f0a900b9-86f4-411c-af6e-6bc6a21119a6_150X150_crop_center.png?v=1736760460', 1295, 1295, 1, 'LUNCH & DINNER', 689703944508, null , '', '')" class="add-to-cart ajax-spin-cart btn-style3 bg-green border-green "> 3236 <span class="cart-title fw-bolder">Add to box</span> 3237 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 3238 <span class="cart-added"><i class="ion-android-done"></i></span> 3239 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 3240 </a> 3241 </div> 3242 <div class="quantity-selector d-none"> 3243 <div class="upsell_quantity buttons d-flex"> 3244 <div class="product-quantity" data-variant="48425146319164"> 3245 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 3246 <div class="dec qtybutton" data-action="-"><i class="icon-minus fw-bolder"></i></div> 3247 <input 3248 value="1" 3249 class="qtyinputcs" 3250 type="text" 3251 name="quantity" 3252 min="1" 3253 pattern="[0-9]*" 3254 > 3255 3256 <span class="cusqtyspan quantity-48425146319164 quantity-var-9093918196028" 3257 >1</span 3258 > 3259 <div class="inc qtybutton" data-action="+"><i class="icon-plus fw-bolder"></i></div> 3260 </div> 3261 </div> 3262 </div> 3263 </div> 3264</div> 3265 3266 </div> 3267 3268 </div> 3269 </div> 3270 </div> 3271</div> 3272 3273 3274 3275 3276 3277<div class="item menu-card-redesign mcard cat-keto keto low_carb low_calorie loop_index_0 is-ld-meal" data-ga4-item="{"item_id":"8219775893820","item_name":"Butter Chicken with Broccoli and Cauliflower Rice","item_category":"LUNCH \u0026 DINNER","price":12.95}"> 3278 <div style="display:none;">1295 == 1295</div> 3279 3280 <div class="product-slider-image mcard-photo photo"> 3281 3282 <a 3283 class="desk-img f7-quick-view quick-view" 3284 href="/products/butter-chicken-with-broccoli-cauliflower-rice-1" 3285 id="productId_8219775893820" 3286 data-meta='{"allergen_information":{"type":"root","children":[{"type":"paragraph","children":[{"type":"text","value":"Contains Milk.","bold":true}]},{"type":"paragraph","children":[{"type":"text","value":""}]},{"type":"paragraph","children":[{"type":"text","value":"May Contain Peanut, Soy, Almond, Brazil Nut, Cashew, Hazelnut, Sesame, Macadamia, Pecan, Pine Nut, Pistachio, Walnut."}]},{"type":"paragraph","children":[{"type":"text","value":""}]},{"type":"paragraph","children":[{"type":"text","value":"Food Allergy Notice: Our meals are prepared in a kitchen whose environment contains eggs, fish, milk, peanuts, sesame, crustaceans, soy, nuts, tree nuts, gluten, lupin, and sulphites. Though best practices are used in preparing the meal, inadvertent cross-contamination may occur. We cannot guarantee the complete absence of these allergens. Our nutrition data includes all sauces, dressings, condiments, and garnishes included with a dish. Every reasonable effort has been made to ensure the accuracy of all information at the time of publication. However, the information contained above is subject to change without prior notice."}]}]},"calories_per100":"100 Cal","calories_perserve":"361 Cal","carbs_per100":"2.5 g","carbs_perserve":"8.9 g","custom_filter":["No Gluten Added","Egg-Free","Soy-Free","Fish-Free","Crustacea-Free","No Added Sugar"],"energy_per100":"419 kJ","energy_perserve":"1510 kJ","fat_per100":"5.6 g","fat_perserve":"20.0 g","fibre_per100":"1.7 g","fibre_perserve":"6.0 g","ingredients":"Chicken, Tomato, Broccoli Rice, Cauliflower Rice, Butter (Milk), Cream (Milk), Tandoori Paste, Yoghurt (Milk), Spinach, Olive Oil, Garlic, Ginger, Coriander, Lime Juice, Chilli, Salt, Garam Masala, Cardamom, Chilli Powder, Turmeric Powder, Fenugreek Leaves, Chilli Flakes, Thyme.","meal_category":["Keto","Low Carb","Low Calorie"],"meal_subtitle":"with Broccoli Cauli Rice","product_ingredients":["Chicken","Tomato","Broccoli Rice","Cauliflower Rice","Butter (Milk)","Cream (Milk)","Tandoori Paste","Yoghurt (Milk)","Spinach","Olive Oil","Garlic","Ginger","Coriander","Lime Juice","Chilli","Salt","Garam Masala","Cardamom","Chilli Powder","Turmeric Powder","Fenugreek Leaves","Chilli Flakes","Thyme"],"product_instructions":{"type":"root","children":[{"type":"list","listType":"ordered","children":[{"type":"list-item","children":[{"type":"text","value":"Remove sleeve and peel film slightly from corner then heat in Microwave for 90 seconds"}]},{"type":"list-item","children":[{"type":"text","value":"Peel film off, stir \u0026 heat for an additional 30 seconds
3286if required"}]},{"type":"list-item","children":[{"type":"text","value":"Serve on a plate for the most delicious, healthy meal. Enjoy!"}]}]}]},"product_name_highlight":"Butter Chicken","protein_per100":"9.3 g","protein_perserve":"33.3 g","protein_type":"Chicken","satfat_per100":"2.0 g","satfat_perserve":"7.1 g","sodium_per100":"259 mg","sodium_perserve":"931 mg","sugars_per100":"1.8 g","sugars_perserve":"6.3 g","why_good_for_you":"Chicken provides complete protein; broccoli, cauliflower, spinach, tomato, garlic and ginger contribute fibre, vitamin C, folate and glucosinolates."}' 3287 data-allergen='null' 3288 data-instructions='null' 3289 onclick="if(window.quiqview){quiqview('butter-chicken-with-broccoli-cauliflower-rice-1');return false;}" 3290 > 3291 <img 3292 class="img-fluid placeholder-image" 3293 loading="lazy" 3294 srcset=" 3295 //thrivemeals.com.au/cdn/shop/files/ButterChickenCurrywCauliRice.png?crop=center&height=400&v=1736760396&width=400 300w, 3296 //thrivemeals.com.au/cdn/shop/files/ButterChickenCurrywCauliRice.png?crop=center&height=400&v=1736760396&width=400 400w, 3297 //thrivemeals.com.au/cdn/shop/files/ButterChickenCurrywCauliRice.png?crop=center&height=400&v=1736760396&width=400 600w, 3298 //thrivemeals.com.au/cdn/shop/files/ButterChickenCurrywCauliRice.png?crop=center&height=400&v=1736760396&width=400 800w, 3299 //thrivemeals.com.au/cdn/shop/files/ButterChickenCurrywCauliRice.png?crop=center&height=400&v=1736760396&width=400 1200w 3300 " 3301 sizes="(max-width: 600px) 100vw, 400px" 3302 width="230" 3303 height="230" 3304 alt="Butter Chicken" 3305 > 3306 </a> 3307 3308 3309 <span class="inboxb inbox-badge d-none">In box ×<span class="inbox-qty quantity-44799323668796">0</span></span> 3310 3311 3312 3313 3314 </div> 3315 3316 3317 3318 <div class="cat-bar keto">Keto</div> 3319 3320 3321 3322 3323 <div class="macro-strip nutritionCount keto"> 3324 3325 <span class="nutritionItem">361 CAL</span> 3326 3327 3328 <span class="nutritionItem">33 P</span> 3329 3330 3331 <span class="nutritionItem">9 C</span> 3332 3333 3334 <span class="nutritionItem">20 F</span> 3335 3336 </div> 3337 3338 3339 <div class="productContent mcard-b"> 3340 <div class="otherContent d-flex flex-column "> 3341 <div class="cardFilterIcons"> 3342 3343 <div class=""> 3344 <ul class="flex-nowrap justify-content-start"> 3345 3346 3347 3348 3349 3350 3351 <li class="filterTooltip" tip-title="Egg-Free"> 3352 <img src=" 3353 //thrivemeals.com.au/cdn/shop/files/EF-removebg-preview_50x.png?v=1759769778 3354 " alt="Filter Icons" width="30" height="30"> 3355 </li> 3356 3357 3358 3359 3360 <li class="filterTooltip" tip-title="Soy-Free"> 3361 <img src=" 3362 //thrivemeals.com.au/cdn/shop/files/SF-removebg-preview_50x.png?v=1759769779 3363 " alt="Filter Icons" width="30" height="30"> 3364 </li> 3365 3366 3367 3368 3369 3370 3371 3372 <li class="filterTooltip" tip-title="Crustacea-Free"> 3373 <img src=" 3374 //thrivemeals.com.au/cdn/shop/files/CF-removebg-preview_50x.png?v=1759769779 3375 " alt="Filter Icons" width="30" height="30"> 3376 </li> 3377 3378 3379 3380 3381 <li class="filterTooltip" tip-title="No Added Sugar"> 3382 <img src=" 3383 //thrivemeals.com.au/cdn/shop/files/NAS-removebg-preview_50x.png?v=1759769779 3384 " alt="Filter Icons" width="30" height="30"> 3385 </li> 3386 3387 3388 </ul> 3389</div> 3390 3391 </div> 3392 3393 <h3 class="mc-name"><a href="/products/butter-chicken-with-broccoli-cauliflower-rice-1" title="Butter Chicken">Butter Chicken</a></h3><p class="mc-sub">with Broccoli Cauli Rice</p> 3394 3395 <div class="mt-auto"> 3396 3397 <div class="mc-foot d-flex align-items-baseline my-2 comparePriceOuter"> 3398 <span class="price-block mc-price" id="ProductPrice"> 3399 <b class="price-now">$12.95</b> 3400 </span> 3401 3402 <span class="products-weight serve-weight small">360g</span> 3403 3404 </div> 3405 3406
3407 <div class="priceAndAction mcard-action d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto"> 3408 3409 <div class="product-all product-id-8219775893820 " data-product-id="8219775893820"> 3410 <div class="add-cart-button d-none"> 3411 <a href="javascript:void(0);" onclick="localCart.addItemCondition(8219775893820, 44799323668796, 'Butter Chicken', '/products/butter-chicken-with-broccoli-cauliflower-rice-1', '//thrivemeals.com.au/cdn/shop/files/ButterChickenCurrywCauliRice_150X150_crop_center.png?v=1736760396', 1295, 1295, 1, 'LUNCH & DINNER', 689703944508, null , '', '')" class="add-to-cart ajax-spin-cart btn-style3 bg-green border-green "> 3412 <span class="cart-title fw-bolder">Add to box</span> 3413 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 3414 <span class="cart-added"><i class="ion-android-done"></i></span> 3415 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 3416 </a> 3417 </div> 3418 <div class="quantity-selector d-none"> 3419 <div class="upsell_quantity buttons d-flex"> 3420 <div class="product-quantity" data-variant="44799323668796"> 3421 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 3422 <div class="dec qtybutton" data-action="-"><i class="icon-minus fw-bolder"></i></div> 3423 <input 3424 value="1" 3425 class="qtyinputcs" 3426 type="text" 3427 name="quantity" 3428 min="1" 3429 pattern="[0-9]*" 3430 > 3431 3432 <span class="cusqtyspan quantity-44799323668796 quantity-var-8219775893820" 3433 >1</span 3434 > 3435 <div class="inc qtybutton" data-action="+"><i class="icon-plus fw-bolder"></i></div> 3436 </div> 3437 </div> 3438 </div> 3439 </div> 3440</div> 3441 3442 </div> 3443 3444 </div> 3445 </div> 3446 </div> 3447</div> 3448 3449 3450 3451 3452 3453<div class="item menu-card-redesign mcard cat-lowcarb low_carb low_calorie loop_index_0 is-ld-meal" data-ga4-item="{"item_id":"9093920719164","item_name":"Chicken Teriyaki with Asian Greens","item_category":"LUNCH \u0026 DINNER","price":12.95}"> 3454 <div style="display:none;">1295 == 1295</div> 3455 3456 <div class="product-slider-image mcard-photo photo"> 3457 3458 <a 3459 class="desk-img f7-quick-view quick-view" 3460 href="/products/chicken-teriyaki-with-asian-greens" 3461 id="productId_9093920719164" 3462 data-meta='{"allergen_information":{"type":"root","children":[{"type":"paragraph","children":[{"type":"text","value":"Contains Wheat, Soy.","bold":true}]},{"type":"paragraph","children":[{"type":"text","value":"Food Allergy Notice: Our meals are prepared in a kitchen whose environment contains eggs, fish, milk, peanuts, sesame, crustaceans, soy, nuts, tree nuts, gluten, lupin, and sulphites. Though best practices are used in preparing the meal, inadvertent cross-contamination may occur. We cannot guarantee the complete absence of these allergens. Our nutrition data includes all sauces, dressings, condiments, and garnishes included with a dish. Every reasonable effort has been made to ensure the accuracy of all information at the time of publication. However, the information contained above is subject to change without prior notice."}]},{"type":"paragraph","children":[{"type":"text","value":"","bold":true}]}]},"calories_per100":"94 Cal","calories_perserve":"319 Cal","carbs_per100":"4.2 g","carbs_perserve":"14.4 g","custom_filter":["No Gluten Added","Dairy-Free","Egg-Free","Peanut-Free","Tree Nut-Free","Fish-Free","Crustacea-Free","Low Sodium"],"energy_per100":"393 kJ","energy_perserve":"1340 kJ","fat_per100":"1.9 g","fat_perserve":"6.5 g","fibre_per100":"1.6 g","fibre_perserve":"5.4 g","ingredients":"Chicken Drumstick Fillet, Low Carb Rice (Konjac Flour, Rice Flour), Green Beans, Choy Sum, Soy Sauce, Garlic, Ginger, Mirin (Soy, Wheat).","meal_category":["Low Carb","Low Calorie"],"meal_subtitle":"with Asian Greens","product_ingredients":["Chicken Drumstick Fillet","Low Carb Rice (Konjac Flour, Rice Flour)","Green Beans","Choy Sum","S
3462oy Sauce","Garlic","Ginger","Mirin (Soy, Wheat)"],"product_instructions":{"type":"root","children":[{"type":"list","listType":"ordered","children":[{"type":"list-item","children":[{"type":"text","value":"Remove sleeve and peel film slightly from corner then heat in Microwave for 90 seconds"}]},{"type":"list-item","children":[{"type":"text","value":"Peel film off, stir \u0026 heat for an additional 30 seconds if required"}]},{"type":"list-item","children":[{"type":"text","value":"Serve on a plate for the most delicious, healthy meal. Enjoy!"}]}]}]},"product_name_highlight":"Chicken Teriyaki","protein_per100":"14.0 g","protein_perserve":"47.5 g","protein_type":"Chicken","satfat_per100":"\u003c1g","satfat_perserve":"3.1 g","sodium_per100":"144 mg","sodium_perserve":"490 mg","sugars_per100":"1.3 g","sugars_perserve":"4.5 g","why_good_for_you":"Chicken provides complete protein; choy sum, green beans, garlic and ginger contribute fibre, vitamin C, folate and potassium."}' 3463 data-allergen='null' 3464 data-instructions='null' 3465 onclick="if(window.quiqview){quiqview('chicken-teriyaki-with-asian-greens');return false;}" 3466 > 3467 <img 3468 class="img-fluid placeholder-image" 3469 loading="lazy" 3470 srcset=" 3471 //thrivemeals.com.au/cdn/shop/files/TeriyakiChickenwAsianGreens_d4f8a988-4b37-4e7e-8d1a-14fe09ec5341.png?crop=center&height=400&v=1736760232&width=400 300w, 3472 //thrivemeals.com.au/cdn/shop/files/TeriyakiChickenwAsianGreens_d4f8a988-4b37-4e7e-8d1a-14fe09ec5341.png?crop=center&height=400&v=1736760232&width=400 400w, 3473 //thrivemeals.com.au/cdn/shop/files/TeriyakiChickenwAsianGreens_d4f8a988-4b37-4e7e-8d1a-14fe09ec5341.png?crop=center&height=400&v=1736760232&width=400 600w, 3474 //thrivemeals.com.au/cdn/shop/files/TeriyakiChickenwAsianGreens_d4f8a988-4b37-4e7e-8d1a-14fe09ec5341.png?crop=center&height=400&v=1736760232&width=400 800w, 3475 //thrivemeals.com.au/cdn/shop/files/TeriyakiChickenwAsianGreens_d4f8a988-4b37-4e7e-8d1a-14fe09ec5341.png?crop=center&height=400&v=1736760232&width=400 1200w 3476 " 3477 sizes="(max-width: 600px) 100vw, 400px" 3478 width="230" 3479 height="230" 3480 alt="Chicken Teriyaki" 3481 > 3482 </a> 3483 3484 3485 <span class="inboxb inbox-badge d-none">In box ×<span class="inbox-qty quantity-48425156051260">0</span></span> 3486 3487 3488 3489 3490 </div> 3491 3492 3493 3494 <div class="cat-bar lowcarb">Low Carb</div> 3495 3496 3497 3498 3499 <div class="macro-strip nutritionCount lowcarb"> 3500 3501 <span class="nutritionItem">319 CAL</span> 3502 3503 3504 <span class="nutritionItem">48 P</span> 3505 3506 3507 <span class="nutritionItem">14 C</span> 3508 3509 3510 <span class="nutritionItem">7 F</span> 3511 3512 </div> 3513 3514 3515 <div class="productContent mcard-b"> 3516 <div class="otherContent d-flex flex-column "> 3517 <div class="cardFilterIcons"> 3518 3519 <div class=""> 3520 <ul class="flex-nowrap justify-content-start"> 3521 3522 3523 3524 3525 3526 3527 <li class="filterTooltip" tip-title="Dairy-Free"> 3528 <img src=" 3529 //thrivemeals.com.au/cdn/shop/files/DF-removebg-preview_50x.png?v=1759769779 3530 " alt="Filter Icons" width="30" height="30"> 3531 </li> 3532 3533 3534 3535 3536 <li class="filterTooltip" tip-title="Egg-Free"> 3537 <img src=" 3538 //thrivemeals.com.au/cdn/shop/files/EF-removebg-preview_50x.png?v=1759769778 3539 " alt="Filter Icons" width="30" height="30"> 3540 </li> 3541 3542 3543 3544 3545 <li class="filterTooltip" tip-title="Peanut-Free"> 3546 <img src=" 3547 //thrivemeals.com.au/cdn/shop/files/PF-removebg-preview_50x.png?v=1759769778 3548 " alt="Filter Icons" width="30" height="30"> 3549 </li> 3550 3551 3552 3553 3554 <li class="filterTooltip" tip-title="Tree Nut-Free"> 3555 <img src=" 3556 //thrivemeals.com.au/cdn/shop/files/TNF-removebg-preview_50x.png?v=1759769778 3557 " alt="Filter Icons" width="30" height="30"> 3558 </li> 3559 3560 3561 3562 3563 3564 3565 3566 <li class="filterTooltip" tip-title="Crustacea-Free"> 3567 <img src=" 3568 //thrivemeals.com.au/cdn/shop/files/CF-removebg-preview_50x.png?v=1759769779 3569 " alt="Filter Icons" width="30" height="30"> 3570 </li> 3571 3572 3573 3574 3575 <li class="filterTooltip" tip-title="Low Sodium"> 3576 <img src=" 3577 //thrivemeals.com.au/cdn/shop/files/LS-removebg-preview_50x.png?v=1759769778 3578" alt="Filter Icons" width="30" height="30"> 3579 </li> 3580 3581 3582 </ul> 3583</div> 3584 3585 </div> 3586 3587 <h3 class="mc-name"><a href="/products/chicken-teriyaki-with-asian-greens" title="Chicken Teriyaki">Chicken Teriyaki</a></h3><p class="mc-sub">with Asian Greens</p> 3588 3589 <div class="mt-auto"> 3590 3591 <div class="mc-foot d-flex align-items-baseline my-2 comparePriceOuter">
3592 <span class="price-block mc-price" id="ProductPrice"> 3593 <b class="price-now">$12.95</b> 3594 </span> 3595 3596 <span class="products-weight serve-weight small">340g</span> 3597 3598 </div> 3599 3600 3601 <div class="priceAndAction mcard-action d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto"> 3602 3603 <div class="product-all product-id-9093920719164 " data-product-id="9093920719164"> 3604 <div class="add-cart-button d-none"> 3605 <a href="javascript:void(0);" onclick="localCart.addItemCondition(9093920719164, 48425156051260, 'Chicken Teriyaki', '/products/chicken-teriyaki-with-asian-greens', '//thrivemeals.com.au/cdn/shop/files/TeriyakiChickenwAsianGreens_d4f8a988-4b37-4e7e-8d1a-14fe09ec5341_150X150_crop_center.png?v=1736760232', 1295, 1295, 1, 'LUNCH & DINNER', 689703944508, null , '', '')" class="add-to-cart ajax-spin-cart btn-style3 bg-green border-green "> 3606 <span class="cart-title fw-bolder">Add to box</span> 3607 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 3608 <span class="cart-added"><i class="ion-android-done"></i></span> 3609 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 3610 </a> 3611 </div> 3612 <div class="quantity-selector d-none"> 3613 <div class="upsell_quantity buttons d-flex"> 3614 <div class="product-quantity" data-variant="48425156051260"> 3615 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 3616 <div class="dec qtybutton" data-action="-"><i class="icon-minus fw-bolder"></i></div> 3617 <input 3618 value="1" 3619 class="qtyinputcs" 3620 type="text" 3621 name="quantity" 3622 min="1" 3623 pattern="[0-9]*" 3624 > 3625 3626 <span class="cusqtyspan quantity-48425156051260 quantity-var-9093920719164" 3627 >1</span 3628 > 3629 <div class="inc qtybutton" data-action="+"><i class="icon-plus fw-bolder"></i></div> 3630 </div> 3631 </div> 3632 </div> 3633 </div> 3634</div> 3635 3636 </div> 3637 3638 </div> 3639 </div> 3640 </div> 3641</div> 3642 3643 3644 3645 3646 3647 3648 3649 3650<div class="item menu-card-redesign mcard cat-lowcarb low_carb low_calorie loop_index_0 is-ld-meal" data-ga4-item="{"item_id":"9590789210428","item_name":"Massaman Beef Curry with Low Carb Rice","item_category":"LUNCH \u0026 DINNER","price":12.95}"> 3651 <div style="display:none;">1295 == 1295</div> 3652 3653 <div class="product-slider-image mcard-photo photo"> 3654 3655 <a 3656 class="desk-img f7-quick-view quick-view" 3657 href="/products/curry-with-carb-rice" 3658 id="productId_9590789210428" 3659 data-meta='{"allergen_information":{"type":"root","children":[{"type":"paragraph","children":[{"type":"text","value":"Contains Fish, Peanut, Soy.\n\n","bold":true},{"type":"text","value":"Food Allergy Notice: Our meals are prepared in a kitchen whose environment contains eggs, fish, milk, peanuts, sesame, crustaceans, soy, nuts, tree nuts, gluten, lupin, and sulphites. Though best practices are used in preparing the meal, inadvertent cross-contamination may occur. We cannot guarantee the complete absence of these allergens. Our nutrition data includes all sauces, dressings, condiments, and garnishes included with a dish. Every reasonable effort has been made to ensure the accuracy of all information at the time of publication. However, the information contained above is subject to change without prior notice."}]}]},"calories_per100":"121 Cal","calories_perserve":"422 Cal","carbs_per100":"5.1 g","carbs_perserve":"17.9 g","custom_filter":["No Gluten Added","Egg-Free","Tree Nut-Free","Crustacea-Free"],"energy_per100":"505 kJ","energy_perserve":"1770 kJ","fat_per100":"6.5 g","fat_perserve":"22.7 g","fibre_per100":"1.1 g","fibre_perserve":"3.9 g","ingredients":"Low Carb Rice (Konjac Flour, Rice Flour), Coconut Cream, Beef Strips, Carrot, Massaman Curry Paste (Soy), Olive Oil, Beef Stock, Fish Sauce, Sugar, Tamarind, Peanut, Cinnamon, Star Anise, Bay Leaves.","meal_category":["Low Carb","Low Calorie"],"meal_subtitle":"with Low Carb Rice","product_ingredients":["Low Carb Rice (Konjac Flour, Rice Flour)","Coconut Cream","Beef Strips","Carrot","Massaman Curry Paste (Soy)","Olive Oil","Beef Stock","Fish Sauce","Sugar","Tamarind","Peanut","Cinnamon","Star Anise","Bay Leaves"],"product_instructions":{"type":"root","children":[{"type":"list","listType":"ordered","children":[{"type":"list-item","children":[{"type":"text","value":"Remove sleeve and peel film slightly from corner then heat in Microwave for 90 seconds"}]},{"type":"list-item","children":[{"type":"text","value":"Peel film off, stir \u0026 heat for an additional 30 seconds
3659if required"}]},{"type":"list-item","children":[{"type":"text","value":"Serve on a plate for the most delicious, healthy meal. Enjoy!"}]}]}]},"product_name_highlight":"Massaman Beef","protein_per100":"9.2 g","protein_perserve":"32.3 g","protein_type":"Beef","satfat_per100":"4.3 g","satfat_perserve":"15.2 g","sodium_per100":"261 mg","sodium_perserve":"914 mg","sugars_per100":"2.2 g","sugars_perserve":"7.7 g","why_good_for_you":"Beef provides complete protein; carrot and peanuts contribute fibre, magnesium and potassium."}' 3660 data-allergen='null' 3661 data-instructions='null' 3662 onclick="if(window.quiqview){quiqview('curry-with-carb-rice');return false;}" 3663 > 3664 <img 3665 class="img-fluid placeholder-image" 3666 loading="lazy" 3667 srcset=" 3668 //thrivemeals.com.au/cdn/shop/files/MassamamCurryLowCarbRice.png?crop=center&height=400&v=1721014776&width=400 300w, 3669 //thrivemeals.com.au/cdn/shop/files/MassamamCurryLowCarbRice.png?crop=center&height=400&v=1721014776&width=400 400w, 3670 //thrivemeals.com.au/cdn/shop/files/MassamamCurryLowCarbRice.png?crop=center&height=400&v=1721014776&width=400 600w, 3671 //thrivemeals.com.au/cdn/shop/files/MassamamCurryLowCarbRice.png?crop=center&height=400&v=1721014776&width=400 800w, 3672 //thrivemeals.com.au/cdn/shop/files/MassamamCurryLowCarbRice.png?crop=center&height=400&v=1721014776&width=400 1200w 3673 " 3674 sizes="(max-width: 600px) 100vw, 400px" 3675 width="230" 3676 height="230" 3677 alt="Massaman Beef" 3678 > 3679 </a> 3680 3681 3682 <span class="inboxb inbox-badge d-none">In box ×<span class="inbox-qty quantity-49781204222268">0</span></span> 3683 3684 3685 3686 3687 </div> 3688 3689 3690 3691 <div class="cat-bar lowcarb">Low Carb</div> 3692 3693 3694 3695 3696 <div class="macro-strip nutritionCount lowcarb"> 3697 3698 <span class="nutritionItem">422 CAL</span> 3699 3700 3701 <span class="nutritionItem">32 P</span> 3702 3703 3704 <span class="nutritionItem">18 C</span> 3705 3706 3707 <span class="nutritionItem">23 F</span> 3708 3709 </div> 3710 3711 3712 <div class="productContent mcard-b"> 3713 <div class="otherContent d-flex flex-column "> 3714 <div class="cardFilterIcons"> 3715 3716 <div class=""> 3717 <ul class="flex-nowrap justify-content-start"> 3718 3719 3720 3721 3722 3723 3724 <li class="filterTooltip" tip-title="Egg-Free"> 3725 <img src=" 3726 //thrivemeals.com.au/cdn/shop/files/EF-removebg-preview_50x.png?v=1759769778 3727 " alt="Filter Icons" width="30" height="30"> 3728 </li> 3729 3730 3731 3732 3733 <li class="filterTooltip" tip-title="Tree Nut-Free"> 3734 <img src=" 3735 //thrivemeals.com.au/cdn/shop/files/TNF-removebg-preview_50x.png?v=1759769778 3736 " alt="Filter Icons" width="30" height="30"> 3737 </li> 3738 3739 3740 3741 3742 <li class="filterTooltip" tip-title="Crustacea-Free"> 3743 <img src=" 3744 //thrivemeals.com.au/cdn/shop/files/CF-removebg-preview_50x.png?v=1759769779 3745 " alt="Filter Icons" width="30" height="30"> 3746 </li> 3747 3748 3749 </ul> 3750</div> 3751 3752 </div> 3753 3754 <h3 class="mc-name"><a href="/products/curry-with-carb-rice" title="Massaman Beef">Massaman Beef</a></h3><p class="mc-sub">with Low Carb Rice</p> 3755 3756 <div class="mt-auto"> 3757 3758 <div class="mc-foot d-flex align-items-baseline my-2 comparePriceOuter"> 3759 <span class="price-block mc-price" id="ProductPrice"> 3760 <b class="price-now">$12.95</b> 3761 </span> 3762 3763 <span class="products-weight serve-weight small">350g</span> 3764 3765 </div> 3766 3767
3768 <div class="priceAndAction mcard-action d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto"> 3769 3770 <div class="product-all product-id-9590789210428 " data-product-id="9590789210428"> 3771 <div class="add-cart-button d-none"> 3772 <a href="javascript:void(0);" onclick="localCart.addItemCondition(9590789210428, 49781204222268, 'Massaman Beef', '/products/curry-with-carb-rice', '//thrivemeals.com.au/cdn/shop/files/MassamamCurryLowCarbRice_150X150_crop_center.png?v=1721014776', 1295, 1295, 1, 'LUNCH & DINNER', 689703944508, null , '', '')" class="add-to-cart ajax-spin-cart btn-style3 bg-green border-green "> 3773 <span class="cart-title fw-bolder">Add to box</span> 3774 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 3775 <span class="cart-added"><i class="ion-android-done"></i></span> 3776 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 3777 </a> 3778 </div> 3779 <div class="quantity-selector d-none"> 3780 <div class="upsell_quantity buttons d-flex"> 3781 <div class="product-quantity" data-variant="49781204222268"> 3782 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 3783 <div class="dec qtybutton" data-action="-"><i class="icon-minus fw-bolder"></i></div> 3784 <input 3785 value="1" 3786 class="qtyinputcs" 3787 type="text" 3788 name="quantity" 3789 min="1" 3790 pattern="[0-9]*" 3791 > 3792 3793 <span class="cusqtyspan quantity-49781204222268 quantity-var-9590789210428" 3794 >1</span 3795 > 3796 <div class="inc qtybutton" data-action="+"><i class="icon-plus fw-bolder"></i></div> 3797 </div> 3798 </div> 3799 </div> 3800 </div> 3801</div> 3802 3803 </div> 3804 3805 </div> 3806 </div> 3807 </div> 3808</div> 3809 3810 </div> 3811 </div> 3812 </div> 3813</section>
3814<script defer="defer"> 3815 $(document).ready(function(){ 3816 $("#product-slider").owlCarousel({ 3817 loop:true, 3818 autoplay: false, 3819 margin:15, 3820 responsiveClass:true, 3821 dots: false, 3822 nav: true, 3823 responsive:{ 3824 0:{ 3825 items:2, 3826 dots: false, 3827 nav: false 3828 }, 3829 540:{ 3830 items:2, 3831 dots: true, 3832 nav: false 3833 }, 3834 720:{ 3835 items:3, 3836 dots: true, 3837 nav: false 3838 }, 3839 1060:{ 3840 items:4, 3841 dots: false, 3842 nav:false, 3843 }, 3844 1400:{ 3845 items:5, 3846 dots: false, 3847 nav:false, 3848 } 3849 }, 3850 onInitialized: addAriaLabels, 3851 onTranslated: addAriaLabels 3852 }); 3853 function addAriaLabels(event) { 3854 // Add aria-label to the "next" button 3855 $('.owl-nav .owl-next').attr('aria-label', 'Next slide'); 3856 3857 // Add aria-label to the "prev" button 3858 $('.owl-nav .owl-prev').attr('aria-label', 'Previous slide'); 3859 3860 // Add aria-label to the dots (if dots are enabled) 3861 $('.owl-dot').each(function(index) { 3862 $(this).attr('aria-label', 'Go to slide ' + (index + 1)); 3863 }); 3864 } 3865 }) 3866</script>
3866 3867</div><div id="shopify-section-multi_column_with_image_fQay9t" class="shopify-section"><style data-shopify> 3868 .muteUnmute.muted .muteIcon{ 3869 display:block; 3870 } 3871 .muteUnmute.muted .unmuteIcon, .muteUnmute .muteIcon{ 3872 display:none; 3873 } 3874</style> 3875<section class="multiColumnWithImage healthyMeals3steps menu-page"> 3876 <div class="container"> 3877 <div class="multiColumnWithImageBlock"> 3878 3879 <div 3880 class="row multiColumnWithImageBlockTopSection" 3881 > 3882 3883 <div class=" sectionHeadingblock"> 3884 3885 3886 <h2 class="sectionHeading">HEALTHY MEALS IN <strong>3 EASY STEPS</strong></h2> 3887 3888 3889 <h4 class="subHeading">we are here to help you on your health journey</h4> 3890 3891 3892 </div> 3893 3894 <div class="buttonBlock "> 3895 3896 3897 <a class="btn themeBtn ms-2" href="/pages/build-your-box"> 3898 3899 3900 3901 Browse Full Menu 3902 3903 3904 </a> 3905 3906 </div> 3907 </div> 3908 3909 3910 3911 3912 <div class="multiColumnWithImageItems"> 3913 3914 3915 3916 3917 3918 3919 3920 3921 <div 3922 class="columnBlockItems sliderDisabled" 3923 3924 > 3925 3926 3927 <div class="columnBlockItem "> 3928 <div class="columnHeadingBlock "> 3929 3930 <div class="imageBlock"> 3931 3932 <img 3933 srcset=" 3934 //thrivemeals.com.au/cdn/shop/files/1_300x.svg?v=1715742501 300w, 3935 //thrivemeals.com.au/cdn/shop/files/1_400x.svg?v=1715742501 400w, 3936 //thrivemeals.com.au/cdn/shop/files/1_400x.svg?v=1715742501 600w, 3937 //thrivemeals.com.au/cdn/shop/files/1_400x.svg?v=1715742501 800w, 3938 //thrivemeals.com.au/cdn/shop/files/1_400x.svg?v=1715742501 900w, 3939 //thrivemeals.com.au/cdn/shop/files/1_400x.svg?v=1715742501 1200w, 3940 //thrivemeals.com.au/cdn/shop/files/1_400x.svg?v=1715742501 1400w 3941 " 3942 loading="lazy" 3943 sizes="(max-width: 768px) 100vw, 1440px" 3944 alt="" 3945 > 3946 </div> 3947 3948 <div class="blockContentBlock"> 3949 3950 3951 <h4 class="blockSubHeading">Select our Mouth-Watering meals</h4> 3952 3953 3954 <div class="blockDescription"> 3955 <p>Select from a wide range of meat-based, high protein, gluten free or keto meals from $7.95</p> 3956 </div> 3957 3958 3959 </div> 3960 </div> 3961 3962 </div> 3963 3964 3965 3966 <div class="columnBlockItem "> 3967 <div class="columnHeadingBlock "> 3968 3969 <div class="imageBlock"> 3970 3971 <img 3972 srcset=" 3973 //thrivemeals.com.au/cdn/shop/files/2_300x.svg?v=1715742492 300w, 3974 //thrivemeals.com.au/cdn/shop/files/2_400x.svg?v=1715742492 400w, 3975 //thrivemeals.com.au/cdn/shop/files/2_400x.svg?v=1715742492 600w, 3976 //thrivemeals.com.au/cdn/shop/files/2_400x.svg?v=1715742492 800w, 3977 //thrivemeals.com.au/cdn/shop/files/2_400x.svg?v=1715742492 900w, 3978 //thrivemeals.com.au/cdn/shop/files/2_400x.svg?v=1715742492 1200w, 3979 //thrivemeals.com.au/cdn/shop/files/2_400x.svg?v=1715742492 1400w 3980 " 3981 loading="lazy" 3982 sizes="(max-width: 768px) 100vw, 1440px" 3983 alt="" 3984 > 3985 </div> 3986 3987 <div class="blockContentBlock"> 3988 3989 3990 <h4 class="blockSubHeading">WE COOK THEM TO PERFECTION</h4> 3991 3992 3993 <div class="blockDescription"> 3994 <p>Let our gourmet chefs prepare, cook and perfectly craft your choices FRESH every single week</p> 3995 </div> 3996 3997 3998 </div> 3999 </div> 4000 4001 </div> 4002 4003 4004 4005 <div class="columnBlockItem "> 4006 <div class="columnHeadingBlock "> 4007 4008 <div class="imageBlock"> 4009 4010 <img 4011 srcset=" 4012 //thrivemeals.com.au/cdn/shop/files/3_300x.svg?v=1715742503 300w, 4013 //thrivemeals.com.au/cdn/shop/files/3_400x.svg?v=1715742503 400w, 4014 //thrivemeals.com.au/cdn/shop/files/3_400x.svg?v=1715742503 600w, 4015 //thrivemeals.com.au/cdn/shop/files/3_400x.svg?v=1715742503 800w, 4016 //thrivemeals.com.au/cdn/shop/files/3_400x.svg?v=1715742503 900w, 4017 //thrivemeals.com.au/cdn/shop/files/3_400x.svg?v=1715742503 1200w, 4018 //thrivemeals.com.au/cdn/shop/files/3_400x.svg?v=1715742503 1400w 4019 " 4020 loading="lazy" 4021 sizes="(max-width: 768px) 100vw, 1440px" 4022 alt="" 4023 > 4024 </div> 4025 4026 <div class="blockContentBlock"> 4027 4028 4029 <h4 class="blockSubHeading">WE DELIVER FRESH TO YOU</h4> 4030 4031 4032 <div class="blockDescription"> 4033 <p>Schedule the delivery at a time convenient to you and get real-time updates once it leaves our kitchen</p> 4034 </div> 4035 4036 4037 </div> 4038 </div> 4039 4040 </div> 4041 4042 4043 </div> 4044 </div> 4045 </div> 4046 </div> 4047</section> 4048 4049 4050 4051</div><div id="shopify-section-multi_column_with_image_px3rLV" class="shopify-section"><style data-shopify> 4052 .muteUnmute.muted .muteIcon{ 4053 display:block; 4054 } 4055 .muteUnmute.muted .unmuteIcon, .muteUnmute .muteIcon{ 4056 display:none; 4057 } 4058</style> 4059<section class="multiColumnWithImage shippingSubscription menu-page"> 4060 <div class="container"> 4061 <div class="multiColumnWithImageBlock"> 4062 4063 <div 4064 class="row multiColumnWithImageBlockTopSections mb-4" 4065 > 4066 4067 <div class="col-xl-8 col-lg-8 col-md-6 col-12 sectionHeadingblock"> 4068 4069 4070 <h2 class="sectionHeading">PLUS, UNLOCK FREE SHIPPING EVERY WEEK ON SUBSCRIPTION</h2> 4071 4072 4073 4074 </div> 4075 4076 <div class="buttonBlock col-xl-4 col-lg-4 col-md-6 col-12 d-flex align-items-center justify-content-end"> 4077 4078 <a href="https://thrivemeals.com.au/pages/subscribe-and-save" class="btn themeBtn margin"> 4079 Subscription Perks 4080 </a> 4081 4082 4083 <a class="btn themeBtn ms-2" href="https://thrivemeals.com.au/pages/where-we-deliver"> 4084 4085 4086 4087 Shipping Info 4088 4089 4090 </a> 4091 4092 </div> 4093 </div> 4094 4095 4096 4097 4098 <div class="multiColumnWithImageItems"> 4099 4100 4101 4102 <div class="imageBlock"> 4103 4104 <img 4105 srcset=" 4106 //thrivemeals.com.au/cdn/shop/files/Thrive-M_300x.webp?v=1751378912 300w, 4107 //thrivemeals.com.au/cdn/shop/files/Thrive-M_400x.webp?v=1751378912 400w, 4108 //thrivemeals.com.au/cdn/shop/files/Thrive-M_400x.webp?v=1751378912 600w, 4109 //thrivemeals.com.au/cdn/shop/files/Thrive-M_400x.webp?v=1751378912 800w, 4110 //thrivemeals.com.au/cdn/shop/files/Thrive-M_400x.webp?v=1751378912 900w, 4111 //thrivemeals.com.au/cdn/shop/files/Thrive-M_400x.webp?v=1751378912 1200w, 4112 //thrivemeals.com.au/cdn/shop/files/Thrive-M_400x.webp?v=1751378912 1400w 4113 " 4114 loading="lazy" 4115 sizes="(max-width: 768px) 100vw, 1440px" 4116 alt="" 4117 > 4118 </div> 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 <div 4130 class="columnBlockItems sliderDisabled" 4131 4132 > 4133 4134 4135 4136 4137 <div class="columnBlockItem "> 4138 <div class="columnHeadingBlock "> 4139 4140 <div class="imageBlock"> 4141 4142 <img 4143 srcset=" 4144 //thrivemeals.com.au/cdn/shop/files/Vector_17_1493ca65-29f1-4400-aa2f-d4c2bba9fae5_300x.svg?v=1715754627 300w, 4145 //thrivemeals.com.au/cdn/shop/files/Vector_17_1493ca65-29f1-4400-aa2f-d4c2bba9fae5_400x.svg?v=1715754627 400w, 4146 //thrivemeals.com.au/cdn/shop/files/Vector_17_1493ca65-29f1-4400-aa2f-d4c2bba9fae5_400x.svg?v=1715754627 600w, 4147 //thrivemeals.com.au/cdn/shop/files/Vector_17_1493ca65-29f1-4400-aa2f-d4c2bba9fae5_400x.svg?v=1715754627 800w, 4148 //thrivemeals.com.au/cdn/shop/files/Vector_17_1493ca65-29f1-4400-aa2f-d4c2bba9fae5_400x.svg?v=1715754627 900w, 4149 //thrivemeals.com.au/cdn/shop/files/Vector_17_1493ca65-29f1-4400-aa2f-d4c2bba9fae5_400x.svg?v=1715754627 1200w, 4150 //thrivemeals.com.au/cdn/shop/files/Vector_17_1493ca65-29f1-4400-aa2f-d4c2bba9fae5_400x.svg?v=1715754627 1400w 4151 " 4152 loading="lazy" 4153 sizes="(max-width: 768px) 100vw, 1440px" 4154 alt="" 4155 > 4156 </div> 4157 4158 <div class="blockContentBlock"> 4159 4160 4161 <h4 class="blockSubHeading">Free Delivery</h4> 4162 4163 4164 <div class="blockDescription"> 4165 <p>Get<strong> free delivery</strong> on every order and <strong>change your delivery date </strong>to suit you</p> 4166 </div> 4167 4168 4169 </div> 4170 </div> 4171 4172 </div> 4173 4174 4175 4176 <div class="columnBlockItem "> 4177 <div class="columnHeadingBlock "> 4178 4179 <div class="imageBlock"> 4180 4181 <img 4182 srcset=" 4183 //thrivemeals.com.au/cdn/shop/files/icon_7_300x.svg?v=1715754805 300w, 4184 //thrivemeals.com.au/cdn/shop/files/icon_7_400x.svg?v=1715754805 400w, 4185 //thrivemeals.com.au/cdn/shop/files/icon_7_400x.svg?v=1715754805 600w, 4186 //thrivemeals.com.au/cdn/shop/files/icon_7_400x.svg?v=1715754805 800w, 4187 //thrivemeals.com.au/cdn/shop/files/icon_7_400x.svg?v=1715754805 900w, 4188 //thrivemeals.com.au/cdn/shop/files/icon_7_400x.svg?v=1715754805 1200w, 4189 //thrivemeals.com.au/cdn/shop/files/icon_7_400x.svg?v=1715754805 1400w 4190 " 4191 loading="lazy" 4192 sizes="(max-width: 768px) 100vw, 1440px" 4193 alt="" 4194 > 4195 </div> 4196 4197 <div class="blockContentBlock"> 4198 4199 4200 <h4 class="blockSubHeading">Skip If You Need</h4> 4201 4202 4203 <div class="blockDescription"> 4204 <p>If you can't make your delivery next week, you can <strong>skip your order</strong> and then go right back to crushing your goals</p> 4205 </div> 4206 4207 4208 </div> 4209 </div> 4210 4211 </div> 4212 4213 4214 4215 <div class="columnBlockItem "> 4216 <div class="columnHeadingBlock "> 4217 4218 <div class="imageBlock"> 4219 4220 <img 4221 srcset=" 4222 //thrivemeals.com.au/cdn/shop/files/icon_6_300x.svg?v=1715754702 300w, 4223 //thrivemeals.com.au/cdn/shop/files/icon_6_400x.svg?v=1715754702 400w, 4224 //thrivemeals.com.au/cdn/shop/files/icon_6_400x.svg?v=1715754702 600w, 4225 //thrivemeals.com.au/cdn/shop/files/icon_6_400x.svg?v=1715754702 800w, 4226 //thrivemeals.com.au/cdn/shop/files/icon_6_400x.svg?v=1715754702 900w, 4227 //thrivemeals.com.au/cdn/shop/files/icon_6_400x.svg?v=1715754702 1200w, 4228 //thrivemeals.com.au/cdn/shop/files/icon_6_400x.svg?v=1715754702 1400w 4229 " 4230 loading="lazy" 4231 sizes="(max-width: 768px) 100vw, 1440px" 4232 alt="" 4233 > 4234 </div> 4235 4236 <div class="blockContentBlock"> 4237 4238 4239 <h4 class="blockSubHeading">No Lock In</h4> 4240 4241 4242 <div class="blockDescription"> 4243 <p>You can <strong>skip or cancel your subscription at any time</strong></p> 4244 </div> 4245 4246 4247 </div> 4248 </div> 4249 4250 </div> 4251 4252 4253 4254 <div class="columnBlockItem "> 4255 <div class="columnHeadingBlock "> 4256 4257 <div class="imageBlock"> 4258 4259 <img 4260 srcset=" 4261 //thrivemeals.com.au/cdn/shop/files/icon_8_300x.svg?v=1715754831 300w, 4262 //thrivemeals.com.au/cdn/shop/files/icon_8_400x.svg?v=1715754831 400w, 4263 //thrivemeals.com.au/cdn/shop/files/icon_8_400x.svg?v=1715754831 600w, 4264 //thrivemeals.com.au/cdn/shop/files/icon_8_400x.svg?v=1715754831 800w, 4265 //thrivemeals.com.au/cdn/shop/files/icon_8_400x.svg?v=1715754831 900w, 4266 //thrivemeals.com.au/cdn/shop/files/icon_8_400x.svg?v=1715754831 1200w, 4267 //thrivemeals.com.au/cdn/shop/files/icon_8_400x.svg?v=1715754831 1400w 4268 " 4269 loading="lazy" 4270 sizes="(max-width: 768px) 100vw, 1440px" 4271 alt="" 4272 > 4273
4273 </div> 4274 4275 <div class="blockContentBlock"> 4276 4277 4278 <h4 class="blockSubHeading">We'll Remind You!</h4> 4279 4280 4281 <div class="blockDescription"> 4282 <p><strong>We'll remind you about your upcoming order</strong> so you can modify your menu before your next delivery</p> 4283 </div> 4284 4285 4286 </div> 4287 </div> 4288 4289 </div> 4290 4291 4292 </div> 4293 </div> 4294 </div> 4295 </div> 4296</section> 4297 4298 4299 4300<style> #shopify-section-multi_column_with_image_px3rLV .shippingSubscription {background: linear-gradient(#ffffff 5%, #b0ec8b, #b0ec8b, #b0ec8b, #b0ec8b);} </style></div><div id="shopify-section-save_time_PfJpLF" class="shopify-section"><div class="sectionPadding saveTime benefitsTextImgSection"> 4301 <div class="container"> 4302 <div 4303 class="row align-items-center" 4304 style="flex-direction:row-reverse" 4305 > 4306 <div class="col-lg-6"> 4307 <div class="text-center saveTimeText"> 4308 4309 <div class="imageBlock"> 4310 <img 4311 srcset=" 4312 //thrivemeals.com.au/cdn/shop/files/image_5_2_300X.webp?v=1751378996 300w, 4313 //thrivemeals.com.au/cdn/shop/files/image_5_2_400X.webp?v=1751378996 400w, 4314 //thrivemeals.com.au/cdn/shop/files/image_5_2_600X.webp?v=1751378996 600w, 4315 //thrivemeals.com.au/cdn/shop/files/image_5_2_740X.webp?v=1751378996 900w, 4316 //thrivemeals.com.au/cdn/shop/files/image_5_2_740X.webp?v=1751378996 1200w 4317 " 4318 sizes="(max-width: 600px) 100vw, 1440px" 4319 alt="Thrive Meals"> 4320 </div> 4321 4322 4323 4324 4325 </div> 4326 </div> 4327 <div class="col-lg-6"> 4328 4329 <h2 class="sectionTitle ">THR1VE <strong>Benefits</strong></h2> 4330 4331 <table clas="table"> 4332 <thead class="d-none"> 4333 <tr> 4334 4335 <th><img src="//thrivemeals.com.au/cdn/shop/files/logo_thrive_24a314ae-392c-4973-8b31-55174d2d9e35.png?v=1720583101" alt="Thrive Meals"></th> 4336 4337 <th></th> 4338 4339 <th class="d-none"> 4340 <h4>Home-Cooking</h4> 4341 </th> 4342 4343 </tr> 4344 </thead> 4345 <tbody> 4346 4347 <tr> 4348 4349 <td> 4350 4351 4352 <svg 4353 class="icon check3Icon" 4354 width="54" 4355 height="54" 4356 viewBox="0 0 54 54" 4357 fill="none" 4358 xmlns="http://www.w3.org/2000/svg" 4359 > 4360 <path d="M27 0C12.09 0 0 12.09 0 27s12.09 27 27 27 27-12.088 27-27S41.912 0 27 0m17.15 19.316L25.769 37.7s-2.072 2.403-4.227 2.403-4.474-2.68-4.474-2.68l-7.355-8.354a3.174 3.174 0 1 1 4.765-4.195s6.123 7.555 7.088 7.627 18.097-17.672 18.097-17.672a3.174 3.174 0 0 1 4.489 4.488" fill="#4EB849"/> 4361 </svg> 4362 4363 4364 </td> 4365 4366 <td> 4367 <div class="benifitType"> 4368 SAVING YOU TIME<p>We've got your back, saving you precious time on shopping, meal prep, cooking, and cleaning!</p> 4369 </div> 4370 </td> 4371 4372 <td class="d-none"> 4373 4374 4375 </td> 4376 4377 </tr> 4378 4379 <tr> 4380 4381 <td> 4382 4383 4384 <svg 4385 class="icon check3Icon" 4386 width="54" 4387 height="54" 4388 viewBox="0 0 54 54" 4389 fill="none" 4390 xmlns="http://www.w3.org/2000/svg" 4391 > 4392 <path d="M27 0C12.09 0 0 12.09 0 27s12.09 27 27 27 27-12.088 27-27S41.912 0 27 0m17.15 19.316L25.769 37.7s-2.072 2.403-4.227 2.403-4.474-2.68-4.474-2.68l-7.355-8.354a3.174 3.174 0 1 1 4.765-4.195s6.123 7.555 7.088 7.627 18.097-17.672 18.097-17.672a3.174 3.174 0 0 1 4.489 4.488" fill="#4EB849"/> 4393 </svg> 4394 4395 4396 </td> 4397 4398 <td> 4399 <div class="benifitType"> 4400 SAVING YOU MONEY<p>In a world of soaring supermarket prices, weâve maintained budget-friendly to
4400save your wallet.</p> 4401 </div> 4402 </td> 4403 4404 <td class="d-none"> 4405 4406 4407 </td> 4408 4409 </tr> 4410 4411 <tr> 4412 4413 <td> 4414 4415 4416 <svg 4417 class="icon check3Icon" 4418 width="54" 4419 height="54" 4420 viewBox="0 0 54 54" 4421 fill="none" 4422 xmlns="http://www.w3.org/2000/svg" 4423 > 4424 <path d="M27 0C12.09 0 0 12.09 0 27s12.09 27 27 27 27-12.088 27-27S41.912 0 27 0m17.15 19.316L25.769 37.7s-2.072 2.403-4.227 2.403-4.474-2.68-4.474-2.68l-7.355-8.354a3.174 3.174 0 1 1 4.765-4.195s6.123 7.555 7.088 7.627 18.097-17.672 18.097-17.672a3.174 3.174 0 0 1 4.489 4.488" fill="#4EB849"/> 4425 </svg> 4426 4427 4428 </td> 4429 4430 <td> 4431 <div class="benifitType"> 4432 NUTRITIOUS MEALS<p>Our focus is on your well-being, offering dietitian-designed meals prepared by chefs fresh every week.</p> 4433 </div> 4434 </td> 4435 4436 <td class="d-none"> 4437 4438 4439 <svg 4440 class="icon check3Icon" 4441 width="54" 4442 height="54" 4443 viewBox="0 0 54 54" 4444 fill="none" 4445 xmlns="http://www.w3.org/2000/svg" 4446 > 4447 <path d="M27 0C12.09 0 0 12.09 0 27s12.09 27 27 27 27-12.088 27-27S41.912 0 27 0m17.15 19.316L25.769 37.7s-2.072 2.403-4.227 2.403-4.474-2.68-4.474-2.68l-7.355-8.354a3.174 3.174 0 1 1 4.765-4.195s6.123 7.555 7.088 7.627 18.097-17.672 18.097-17.672a3.174 3.174 0 0 1 4.489 4.488" fill="#4EB849"/> 4448 </svg> 4449 4450 4451 </td> 4452 4453 </tr> 4454 4455 <tr> 4456 4457 <td> 4458 4459 4460 <svg 4461 class="icon check3Icon" 4462 width="54" 4463 height="54" 4464 viewBox="0 0 54 54" 4465 fill="none" 4466 xmlns="http://www.w3.org/2000/svg" 4467 > 4468 <path d="M27 0C12.09 0 0 12.09 0 27s12.09 27 27 27 27-12.088 27-27S41.912 0 27 0m17.15 19.316L25.769 37.7s-2.072 2.403-4.227 2.403-4.474-2.68-4.474-2.68l-7.355-8.354a3.174 3.174 0 1 1 4.765-4.195s6.123 7.555 7.088 7.627 18.097-17.672 18.097-17.672a3.174 3.174 0 0 1 4.489 4.488" fill="#4EB849"/> 4469 </svg> 4470 4471 4472 </td> 4473 4474 <td> 4475 <div class="benifitType"> 4476 EASY TO TRACK MACROS<p>We assist in maintaining your diet by providing easy access to macros for each meal.</p> 4477 </div> 4478 </td> 4479 4480 <td class="d-none"> 4481 4482 4483 </td> 4484 4485 </tr> 4486 4487 <tr> 4488 4489 <td> 4490 4491 4492 <svg 4493 class="icon check3Icon" 4494 width="54" 4495 height="54" 4496 viewBox="0 0 54 54" 4497 fill="none" 4498 xmlns="http://www.w3.org/2000/svg" 4499 > 4500 <path d="M27 0C12.09 0 0 12.09 0 27s12.09 27 27 27 27-12.088 27-27S41.912 0 27 0m17.15 19.316L25.769 37.7s-2.072 2.403-4.227 2.403-4.474-2.68-4.474-2.68l-7.355-8.354a3.174 3.174 0 1 1 4.765-4.195s6.123 7.555 7.088 7.627 18.097-17.672 18.097-17.672a3.174 3.174 0 0 1 4.489 4.488" fill="#4EB849"/> 4501 </svg> 4502 4503 4504 </td> 4505 4506 <td> 4507 <div class="benifitType"> 4508 PREPARED BY CHEFS<p>Our meals, crafted by top chefs, cater to those who donât like to cook every day â we do the work for you!</p> 4509 </div> 4510 </td> 4511 4512 <td class="d-none"> 4513 4514 4515 </td> 4516 4517 </tr> 4518 4519 </tbody> 4520 </table> 4521 </div> 4522 </div> 4523 </div> 4524</div> 4525 4526<style> #shopify-section-save_time_PfJpLF .benefitsTextImgSection {background: linear-gradient(#b0ec8b 0%, #ffffff, #ffffff, #ffffff);} </style></div><div id="shopify-section-multi_column_with_image_Qgk8gW" class="shopify-section"><style data-shopify> 4527 .muteUnmute.muted .muteIcon{ 4528 display:block; 4529 } 4530 .muteUnmute.muted .unmuteIcon, .muteUnmute .muteIcon{ 4531 display:none; 4532 } 4533</style> 4534<section class="multiColumnWithImage videoGridSection menu-page"> 4535 <div class="container"> 4536 <div class="multiColumnWithImageBlock"> 4537 4538 <div class=" sectionHeadingblock"> 4539 4540 4541 <h2 class="sectionHeading">DISCOVER WHYÂ <strong>AUSTRALIANS LOVE THRIVE</strong></h2> 4542 4543 4544 4545 </div> 4546 4547 4548 4549 4550 <div class="multiColumnWithImageItems"> 4551 4552 4553 4554 4555 4556 4557 4558 4559 <div 4560 class="columnBlockItems sliderDisabled" 4561 4562 > 4563 4564 4565 <div class="columnBlockItem "> 4566 <div class="columnHeadingBlock "> 4567 4568 <div class="blockContentBlock"> 4569 4570 4571 4572 4573 <div class="videoBlock"> 4574 <button class="videoPlayBtn"> 4575 <img 4576 src="https://cdn.shopify.com/s/files/1/0729/8243/0012/files/play.svg?v=1715826575" 4577 height="24" 4578 width="24" 4579 > 4580 </button> 4581 4582 4583 4584 <video 4585 class="multiVideo" 4586 playsinline 4587 preload="metadata" 4588 poster="//thrivemeals.com.au/cdn/shop/files/preview_images/e585c72529964eb0a93a8696c98a1a93.thumbnail.0000000000_410x.jpg?v=1716205928" 4589 preload="none" 4590 > 4591 <source src="//thrivemeals.com.au/cdn/shop/videos/c/vp/e585c72529964eb0a93a8696c98a1a93/e585c72529964eb0a93a8696c98a1a93.HD-1080p-7.2Mbps-29365735.mp4?v=0" type="video/mp4"> 4592 <source src="" type=""> 4593 <source src="//thrivemeals.com.au/cdn/shop/videos/c/vp/e585c72529964eb0a93a8696c98a1a93/e585c72529964eb0a93a8696c98a1a93.m3u8?v=0" type="application/x-mpegURL"> 4594 <source src="" type=""> 4595 <img 4596 srcset=" 4597 //thrivemeals.com.au/cdn/shop/files/preview_images/e585c72529964eb0a93a8696c98a1a93.thumbnail.0000000000_410x.jpg?v=1716205928 480w, 4598 //thrivemeals.com.au/cdn/shop/files/preview_images/e585c72529964eb0a93a8696c98a1a93.thumbnail.0000000000_410x.jpg?v=1716205928 720w, 4599 //thrivemeals.com.au/cdn/shop/files/preview_images/e585c72529964eb0a93a8696c98a1a93.thumbnail.0000000000_410x.jpg?v=1716205928 1080w 4600 " 4601 sizes="(max-width: 768px) 100vw, 800px" 4602 alt="Video thumbnail" 4603 loading="lazy" 4604 decoding="async" 4605 /> 4606 </video> 4607 4608 4609 <div class="videoButtons"> 4610 <div class="customProgressBar"> 4611 <input type="range" name="videoTimeStamp" min="0" max="100" style="display:none;"> 4612 </div> 4613 <div class="muteUnmute">
4614 <span class="iconBlock"> 4615 4616 <svg 4617 class="icon unmuteIcon" 4618 width="24" 4619 height="24" 4620 fill="none" 4621 xmlns="http://www.w3.org/2000/svg" 4622 > 4623 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.5 5.102 8.778 8.35a2.5 2.5 0 0 1-1.643.616H4.5v6.065h2.632a2.5 2.5 0 0 1 1.644.617l3.724 3.25zM14 19.998c0 .858-1.01 1.318-1.658.753L7.79 16.778a1 1 0 0 0-.658-.247H4a1 1 0 0 1-1-1V8.466a1 1 0 0 1 1-1h3.135a1 1 0 0 0 .657-.246l4.55-3.971C12.99 2.684 14 3.143 14 4.002zM15.25 7a.75.75 0 0 1 .75-.75 5.75 5.75 0 0 1 0 11.5.75.75 0 0 1 0-1.5 4.25 4.25 0 0 0 0-8.5.75.75 0 0 1-.75-.75M16 9.25a.75.75 0 0 0 0 1.5 1.25 1.25 0 1 1 0 2.5.75.75 0 0 0 0 1.5 2.75 2.75 0 1 0 0-5.5" fill="currentColor"/> 4624 </svg> 4625 4626 4627 <svg class="icon muteIcon" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4628 <path fill-rule="evenodd" clip-rule="evenodd" d="m15.5 5.08-3.742 3.171a3 3 0 0 1-.243.182L15.5 12.4zm1.5 8.814V4.002a1 1 0 0 0-1.646-.763l-4.566 3.868a1 1 0 0 1-.398.206L6.53 3.468a.75.75 0 1 0-1.06 1.063l14 13.94a.75.75 0 1 0 1.06-1.063zM6.293 7.637l1.208 1.207H7.5v5.8h2.642a2.5 2.5 0 0 1 1.616.593l3.742 3.17v-1.564l1.5 1.5v1.143a1 1 0 0 1-1.646.763l-4.566-3.868a1 1 0 0 0-.646-.237H7a1 1 0 0 1-1-1v-6.8c0-.276.112-.526.293-.707" fill="currentColor"/> 4629 </svg> 4630 4631 </span> 4632 </div> 4633 </div> 4634 </div> 4635 4636 </div> 4637 </div> 4638 4639 </div> 4640 4641 4642 4643 <div class="columnBlockItem "> 4644 <div class="columnHeadingBlock "> 4645 4646 <div class="blockContentBlock"> 4647 4648 4649 4650 4651 <div class="videoBlock"> 4652 <button class="videoPlayBtn"> 4653 <img 4654 src="https://cdn.shopify.com/s/files/1/0729/8243/0012/files/play.svg?v=1715826575" 4655 height="24" 4656 width="24" 4657 > 4658 </button> 4659 4660 4661 4662 <video 4663 class="multiVideo" 4664 playsinline 4665 preload="metadata" 4666 poster="//thrivemeals.com.au/cdn/shop/files/preview_images/1494f47f703b4124bfc8128587d8af26.thumbnail.0000000000_410x.jpg?v=1715750582" 4667 preload="none" 4668 > 4669 <source src="//thrivemeals.com.au/cdn/shop/videos/c/vp/1494f47f703b4124bfc8128587d8af26/1494f47f703b4124bfc8128587d8af26.HD-1080p-3.3Mbps-29150019.mp4?v=0" type="video/mp4"> 4670 <source src="" type=""> 4671 <source src="//thrivemeals.com.au/cdn/shop/videos/c/vp/1494f47f703b4124bfc8128587d8af26/1494f47f703b4124bfc8128587d8af26.m3u8?v=0" type="application/x-mpegURL"> 4672 <source src="" type=""> 4673 <img 4674 srcset=" 4675 //thrivemeals.com.au/cdn/shop/files/preview_images/1494f47f703b4124bfc8128587d8af26.thumbnail.0000000000_410x.jpg?v=1715750582 480w, 4676 //thrivemeals.com.au/cdn/shop/files/preview_images/1494f47f703b4124bfc8128587d8af26.thumbnail.0000000000_410x.jpg?v=1715750582 720w, 4677 //thrivemeals.com.au/cdn/shop/files/preview_images/1494f47f703b4124bfc8128587d8af26.thumbnail.0000000000_410x.jpg?v=1715750582 1080w 4678 " 4679 sizes="(max-width: 768px) 100vw, 800px" 4680 alt="Video thumbnail" 4681 loading="lazy" 4682 decoding="async" 4683 /> 4684 </video> 4685 4686 4687 <div class="videoButtons"> 4688 <div class="customProgressBar"> 4689 <input type="range" name="videoTimeStamp" min="0" max="100" style="display:none;"> 4690 </div> 4691 <div class="muteUnmute">
4692 <span class="iconBlock"> 4693 4694 <svg 4695 class="icon unmuteIcon" 4696 width="24" 4697 height="24" 4698 fill="none" 4699 xmlns="http://www.w3.org/2000/svg" 4700 > 4701 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.5 5.102 8.778 8.35a2.5 2.5 0 0 1-1.643.616H4.5v6.065h2.632a2.5 2.5 0 0 1 1.644.617l3.724 3.25zM14 19.998c0 .858-1.01 1.318-1.658.753L7.79 16.778a1 1 0 0 0-.658-.247H4a1 1 0 0 1-1-1V8.466a1 1 0 0 1 1-1h3.135a1 1 0 0 0 .657-.246l4.55-3.971C12.99 2.684 14 3.143 14 4.002zM15.25 7a.75.75 0 0 1 .75-.75 5.75 5.75 0 0 1 0 11.5.75.75 0 0 1 0-1.5 4.25 4.25 0 0 0 0-8.5.75.75 0 0 1-.75-.75M16 9.25a.75.75 0 0 0 0 1.5 1.25 1.25 0 1 1 0 2.5.75.75 0 0 0 0 1.5 2.75 2.75 0 1 0 0-5.5" fill="currentColor"/> 4702 </svg> 4703 4704 4705 <svg class="icon muteIcon" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4706 <path fill-rule="evenodd" clip-rule="evenodd" d="m15.5 5.08-3.742 3.171a3 3 0 0 1-.243.182L15.5 12.4zm1.5 8.814V4.002a1 1 0 0 0-1.646-.763l-4.566 3.868a1 1 0 0 1-.398.206L6.53 3.468a.75.75 0 1 0-1.06 1.063l14 13.94a.75.75 0 1 0 1.06-1.063zM6.293 7.637l1.208 1.207H7.5v5.8h2.642a2.5 2.5 0 0 1 1.616.593l3.742 3.17v-1.564l1.5 1.5v1.143a1 1 0 0 1-1.646.763l-4.566-3.868a1 1 0 0 0-.646-.237H7a1 1 0 0 1-1-1v-6.8c0-.276.112-.526.293-.707" fill="currentColor"/> 4707 </svg> 4708 4709 </span> 4710 </div> 4711 </div> 4712 </div> 4713 4714 </div> 4715 </div> 4716 4717 </div> 4718 4719 4720 4721 <div class="columnBlockItem "> 4722 <div class="columnHeadingBlock "> 4723 4724 <div class="blockContentBlock"> 4725 4726 4727 4728 4729 <div class="videoBlock"> 4730 <button class="videoPlayBtn"> 4731 <img 4732 src="https://cdn.shopify.com/s/files/1/0729/8243/0012/files/play.svg?v=1715826575" 4733 height="24" 4734 width="24" 4735 > 4736 </button> 4737 4738 4739 4740 <video 4741 class="multiVideo" 4742 playsinline 4743 preload="metadata" 4744 poster="//thrivemeals.com.au/cdn/shop/files/preview_images/b8d0cd5c3b404d2ca319e18d83b18961.thumbnail.0000000000_410x.jpg?v=1715750580" 4745 preload="none" 4746 > 4747 <source src="//thrivemeals.com.au/cdn/shop/videos/c/vp/b8d0cd5c3b404d2ca319e18d83b18961/b8d0cd5c3b404d2ca319e18d83b18961.HD-1080p-3.3Mbps-29150018.mp4?v=0" type="video/mp4"> 4748 <source src="" type=""> 4749 <source src="//thrivemeals.com.au/cdn/shop/videos/c/vp/b8d0cd5c3b404d2ca319e18d83b18961/b8d0cd5c3b404d2ca319e18d83b18961.m3u8?v=0" type="application/x-mpegURL"> 4750 <source src="" type=""> 4751 <img 4752 srcset=" 4753 //thrivemeals.com.au/cdn/shop/files/preview_images/b8d0cd5c3b404d2ca319e18d83b18961.thumbnail.0000000000_410x.jpg?v=1715750580 480w, 4754 //thrivemeals.com.au/cdn/shop/files/preview_images/b8d0cd5c3b404d2ca319e18d83b18961.thumbnail.0000000000_410x.jpg?v=1715750580 720w, 4755 //thrivemeals.com.au/cdn/shop/files/preview_images/b8d0cd5c3b404d2ca319e18d83b18961.thumbnail.0000000000_410x.jpg?v=1715750580 1080w 4756 " 4757 sizes="(max-width: 768px) 100vw, 800px" 4758 alt="Video thumbnail" 4759 loading="lazy" 4760 decoding="async" 4761 /> 4762 </video> 4763 4764 4765 <div class="videoButtons"> 4766 <div class="customProgressBar"> 4767 <input type="range" name="videoTimeStamp" min="0" max="100" style="display:none;"> 4768 </div> 4769 <div class="muteUnmute">
4770 <span class="iconBlock"> 4771 4772 <svg 4773 class="icon unmuteIcon" 4774 width="24" 4775 height="24" 4776 fill="none" 4777 xmlns="http://www.w3.org/2000/svg" 4778 > 4779 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.5 5.102 8.778 8.35a2.5 2.5 0 0 1-1.643.616H4.5v6.065h2.632a2.5 2.5 0 0 1 1.644.617l3.724 3.25zM14 19.998c0 .858-1.01 1.318-1.658.753L7.79 16.778a1 1 0 0 0-.658-.247H4a1 1 0 0 1-1-1V8.466a1 1 0 0 1 1-1h3.135a1 1 0 0 0 .657-.246l4.55-3.971C12.99 2.684 14 3.143 14 4.002zM15.25 7a.75.75 0 0 1 .75-.75 5.75 5.75 0 0 1 0 11.5.75.75 0 0 1 0-1.5 4.25 4.25 0 0 0 0-8.5.75.75 0 0 1-.75-.75M16 9.25a.75.75 0 0 0 0 1.5 1.25 1.25 0 1 1 0 2.5.75.75 0 0 0 0 1.5 2.75 2.75 0 1 0 0-5.5" fill="currentColor"/> 4780 </svg> 4781 4782 4783 <svg class="icon muteIcon" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4784 <path fill-rule="evenodd" clip-rule="evenodd" d="m15.5 5.08-3.742 3.171a3 3 0 0 1-.243.182L15.5 12.4zm1.5 8.814V4.002a1 1 0 0 0-1.646-.763l-4.566 3.868a1 1 0 0 1-.398.206L6.53 3.468a.75.75 0 1 0-1.06 1.063l14 13.94a.75.75 0 1 0 1.06-1.063zM6.293 7.637l1.208 1.207H7.5v5.8h2.642a2.5 2.5 0 0 1 1.616.593l3.742 3.17v-1.564l1.5 1.5v1.143a1 1 0 0 1-1.646.763l-4.566-3.868a1 1 0 0 0-.646-.237H7a1 1 0 0 1-1-1v-6.8c0-.276.112-.526.293-.707" fill="currentColor"/> 4785 </svg> 4786 4787 </span> 4788 </div> 4789 </div> 4790 </div> 4791 4792 </div> 4793 </div> 4794 4795 </div> 4796 4797 4798 </div> 4799 </div> 4800 </div> 4801 </div> 4802</section> 4803 4804 4805 4806</div><div id="shopify-section-logo_with_description_XhVhrA" class="shopify-section"><!-- our-brand-area start --> 4807<div class="sectionPadding logoWithDescription "> 4808 <div class="container"> 4809 <div class="row"> 4810 <div class="col"> 4811 4812 <div class="brand-logo row"> 4813 4814 <div class="item text-center col-lg-3 col-md-6 col-sm-6 col-12 p-2 border-none"> 4815 <a 4816 href="https://www.gq.com.au" 4817 class="brand-img" 4818 aria-label=""They were among the first to get fresh, healthy ready-made meals"" 4819 > 4820 <img 4821 class="placeholder-image" 4822 src="//thrivemeals.com.au/cdn/shop/files/imgpsh_fullsize_anim_1_d6419988-c6c0-4204-8f5d-7636934eb457_5x5.png?v=1727685022" 4823 data-src="//thrivemeals.com.au/cdn/shop/files/imgpsh_fullsize_anim_1_d6419988-c6c0-4204-8f5d-7636934eb457_180x.png?v=1727685022" 4824 alt="" 4825 > 4826 </a> 4827 <p class="fst-italic"> 4828 "They were among the first to get fresh, healthy ready-made meals" 4829 </p> 4830 </div> 4831 4832 <div class="item text-center col-lg-3 col-md-6 col-sm-6 col-12 p-2 border-none"> 4833 <a 4834 href="https://www.choice.com.au" 4835 class="brand-img" 4836 aria-label=""Healthy meals with no carbohydrates that are delicious, fresh and presented well"" 4837 > 4838 <img 4839 class="placeholder-image" 4840 src="//thrivemeals.com.au/cdn/shop/files/imgpsh_fullsize_anim_2_5x5.png?v=1727674701" 4841 data-src="//thrivemeals.com.au/cdn/shop/files/imgpsh_fullsize_anim_2_180x.png?v=1727674701" 4842 alt="" 4843 > 4844 </a> 4845 <p class="fst-italic"> 4846 "Healthy meals with no carbohydrates that are delicious, fresh and presented well" 4847 </p> 4848 </div> 4849 4850 <div class="item text-center col-lg-3 col-md-6 col-sm-6 col-12 p-2 border-none"> 4851 <a 4852 href="https://www.womenshealth.com.au" 4853 class="brand-img" 4854 aria-label=""Stands out from the majority of other fresh delivered meals as Thr1ve specifically caters for low carb, keto fans"" 4855 > 4856 <img 4857 class="placeholder-image" 4858 src="//thrivemeals.com.au/cdn/shop/files/WomensHealth_5x5.png?v=1713424863" 4859 data-src="//thrivemeals.com.au/cdn/shop/files/WomensHealth_180x.png?v=1713424863" 4860 alt="" 4861 > 4862 </a> 4863 <p class="fst-italic"> 4864 "Stands out from the majority of other fresh delivered meals as Thr1ve specifically caters for low carb, keto fans" 4865 </p> 4866 </div> 4867 4868 <div class="item text-center col-lg-3 col-md-6 col-sm-6 col-12 p-2 border-none"> 4869 <a 4870 href="https://www.bodyandsoul.com.au" 4871 class="brand-img" 4872 aria-label=""My keto meals were satisfying and if you committed to the diet long-term, the changes to your weight, skin and energy levels would be dramatic"" 4873 > 4874 <img 4875 class="placeholder-image" 4876 src="//thrivemeals.com.au/cdn/shop/files/image_10_5x5.png?v=1706180057" 4877 data-src="//thrivemeals.com.au/cdn/shop/files/image_10_180x.png?v=1706180057" 4878 alt="" 4879 > 4880 </a> 4881 <p class="fst-italic"> 4882 "My keto meals were satisfying and if you committed to the diet long-term, the changes to your weight, skin and energy levels would be dramatic" 4883 </p> 4884 </div> 4885 4886 </div> 4887 </div> 4888 </div> 4889 </div> 4890</div> 4891 4892<!-- our-brand-area end -->
4893<script defer="defer"> 4894 $(document).ready(function(){ 4895 $('#brand-logo-logo_with_description_XhVhrA').owlCarousel({ 4896 loop: false, 4897 rewind: true, 4898 margin: 0, 4899 nav: true, 4900 dots: false,autoplay: true, 4901 slideTransition: 'linear', 4902 autoplaySpeed: 3000, 4903 autoplayHoverPause: true, 4904 responsive:{ 4905 0:{ 4906 items:1 4907 }, 4908 479:{ 4909 items:2 4910 }, 4911 768:{ 4912 items:2 4913 }, 4914 979:{ 4915 items:3 4916 }, 4917 1199:{ 4918 items:4 4919 } 4920 }, 4921 onInitialized: addAriaLabels, 4922 onTranslated: addAriaLabels 4923 }); 4924 function addAriaLabels(event) { 4925 // Add aria-label to the "next" button 4926 $('.owl-nav .owl-next').attr('aria-label', 'Next slide'); 4927 4928 // Add aria-label to the "prev" button 4929 $('.owl-nav .owl-prev').attr('aria-label', 'Previous slide'); 4930 4931 // Add aria-label to the dots (if dots are enabled) 4932 $('.owl-dot').each(function(index) { 4933 $(this).attr('aria-label', 'Go to slide ' + (index + 1)); 4934 }); 4935 } 4936 }); 4937</script>
4937 4938 4939<style> 4940 .our-brand-logo { 4941 padding-top: 0px; 4942 padding-bottom: 0px; 4943 } 4944 @media(max-width: 1199px) { 4945 .our-brand-logo { 4946 padding-top: 0px; 4947 padding-bottom: 0px; 4948 } 4949 } 4950</style> 4951</div><div id="shopify-section-b60027b3-6c0b-4c81-8f8e-7bc81142c84d" class="shopify-section"><div class="news-letter"> 4952 <div class="container"> 4953 <div class="row"> 4954 <div class="col-xl-8 col-md-12 col-12 offset-xl-2"> 4955 <div class="newsletter-block"> 4956 4957 4958 <div class="subscribe-content"> 4959 <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 4960 4961 4962 <input type="hidden" name="contact[tags]" value="newsletter"> 4963 <div class="subscribe-block"> 4964 <input type="email" name="contact[email]" class="email form-control mail text-medium" id="E-mail" value="" placeholder="Email Address" autocapitalize="off" required> 4965 <button type="submit" class="" name="commit" id="Subscribe">JOIN THE COMMUNITY & GET $10 OFF</button> 4966 </div> 4967 4968 </form> 4969 </div> 4970 <div class="section-title"> 4971 4972 4973 <h2 class="cusnewsltrtitle newstitle-color text-center">Sign up for our newsletter, and youâll be the first to receive exclusive offers, new product announcements, and lifestyle content from our wellness experts.</h2> 4974 4975 </div> 4976 </div> 4977 </div> 4978 </div> 4979 </div> 4980</div> 4981 4982<style> 4983 .news-letter{ 4984 4985 background-color: #fafafa; 4986 4987 4988 padding-top:80px; 4989 padding-bottom:80px; 4990 } 4991 .newstitle-color{ 4992 color: #232323; 4993 } 4994 .newstext-color{ 4995 color: #232323; 4996 } 4997 @media (max-width: 767px){ 4998 .news-letter { 4999 padding-top: 0px; 5000 padding-bottom: 30px; 5001 } 5002 } 5003</style><style> #shopify-section-b60027b3-6c0b-4c81-8f8e-7bc81142c84d h2 {line-height: 1.5em;} </style></div><div id="shopify-section-37411423-55f5-4ce2-831c-bdbaaf36ef7e" class="shopify-section"><section 5004 5005 class="sectionPadding faq-page other-page faqMain" 5006> 5007 5008 <div class="container"> 5009 <div class="row"> 5010 <div class="col"> 5011 5012 <h2 5013 class="faqSectionHeading sectionTitle fw-semibold mb-3" 5014 data-scroll="FREQUENTLY ASKED QUESTIONS" 5015 section-id="scrollSectionHeading" 5016 > 5017 FREQUENTLY ASKED QUESTIONS 5018 </h2> 5019 5020 5021 <div class="que-ans "> 5022 <ul class="faqGroup-37411423-55f5-4ce2-831c-bdbaaf36ef7e"> 5023 5024 5025 5026 <li> 5027 <a 5028 href="#collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-1" 5029 data-bs-toggle="collapse" 5030 class="questionSection" 5031 5032 >What exact time will my meals arrive?<span class="faqDropdownArrow"> 5033 <svg 5034 class="icon icon-dropdownArrow" 5035 width="13" 5036 height="9" 5037 viewBox="0 0 13 9" 5038 fill="none" 5039 xmlns="http://www.w3.org/2000/svg" 5040 > 5041 <path d="M6.5 5.913 1.55.963.136 2.377 6.5 8.741l6.364-6.364L11.45.963z" fill="#000"/> 5042 </svg> 5043 5044 </span> 5045 </a> 5046 <div 5047 class="collapse answerSection" 5048 id="collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-1" 5049 data-parent="faqGroup-37411423-55f5-4ce2-831c-bdbaaf36ef7e" 5050 > 5051 <div class="answerBlock"> 5052 <p>We cannot confirm an exact delivery time, but the night before your delivery you will receive an SMS code to inform you of a tight window within when your delivery will arrive. Included in that SMS is a tracking link that you can use to keep up-to-date information of your delivery!</p> 5053 5054 </div> 5055 </div> 5056 </li> 5057 5058 5059 <li> 5060 <a 5061 href="#collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-2" 5062 data-bs-toggle="collapse" 5063 class="questionSection" 5064 5065 >What makes THR1VE ready meals different?<span class="faqDropdownArrow"> 5066 <svg 5067 class="icon icon-dropdownArrow" 5068 width="13" 5069 height="9"
5070 viewBox="0 0 13 9" 5071 fill="none" 5072 xmlns="http://www.w3.org/2000/svg" 5073 > 5074 <path d="M6.5 5.913 1.55.963.136 2.377 6.5 8.741l6.364-6.364L11.45.963z" fill="#000"/> 5075 </svg> 5076 5077 </span> 5078 </a> 5079 <div 5080 class="collapse answerSection" 5081 id="collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-2" 5082 data-parent="faqGroup-37411423-55f5-4ce2-831c-bdbaaf36ef7e" 5083 > 5084 <div class="answerBlock"> 5085 <p>Our mission is to make clean, nourishing and delicious food. To do this, we make our meals from real food. This means fresh seasonal produce, quality proteins and no added chemical nasties. Our meals are chef-designed and nutritionist-approved, so you know theyâll taste great and be nourishing, too.</p> 5086 5087 </div> 5088 </div> 5089 </li> 5090 5091 5092 <li> 5093 <a 5094 href="#collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-3" 5095 data-bs-toggle="collapse" 5096 class="questionSection" 5097 5098 >What allergens are in your products?<span class="faqDropdownArrow"> 5099 <svg 5100 class="icon icon-dropdownArrow" 5101 width="13" 5102 height="9" 5103 viewBox="0 0 13 9" 5104 fill="none" 5105 xmlns="http://www.w3.org/2000/svg" 5106 > 5107 <path d="M6.5 5.913 1.55.963.136 2.377 6.5 8.741l6.364-6.364L11.45.963z" fill="#000"/> 5108 </svg> 5109 5110 </span> 5111 </a> 5112 <div 5113 class="collapse answerSection" 5114 id="collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-3" 5115 data-parent="faqGroup-37411423-55f5-4ce2-831c-bdbaaf36ef7e" 5116 > 5117 <div class="answerBlock"> 5118 <p>You can see the full nutritional details of all our items when you click into the chosen item. Please be aware that all our meals may be manufactured on equipment that processes egg, wheat/gluten, soy, milk, tree nuts, peanuts, fish, shellfish, sesame, lupin and sulphites. Even though an item may be listed as free from as a direct ingredient, we cannot guarantee against cross contamination. Be sure to check with us if you are unsure about any allergens.</p> 5119 5120 </div> 5121 </div> 5122 </li> 5123 5124 5125 <li> 5126 <a 5127 href="#collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-4" 5128 data-bs-toggle="collapse" 5129 class="questionSection" 5130 5131 >How long do my meals last for?<span class="faqDropdownArrow"> 5132 <svg 5133 class="icon icon-dropdownArrow" 5134 width="13" 5135 height="9" 5136 viewBox="0 0 13 9" 5137 fill="none" 5138 xmlns="http://www.w3.org/2000/svg" 5139 > 5140 <path d="M6.5 5.913 1.55.963.136 2.377 6.5 8.741l6.364-6.364L11.45.963z" fill="#000"/> 5141 </svg> 5142 5143 </span> 5144 </a> 5145 <div 5146 class="collapse answerSection" 5147 id="collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-4" 5148 data-parent="faqGroup-37411423-55f5-4ce2-831c-bdbaaf36ef7e" 5149 > 5150 <div class="answerBlock"> 5151 <p>Our meals are delivered fresh, so they have a shelf life of at least 5 days. Check the expiry date on the packets, as these dates do vary depending on the product. You may choose to freeze some of our ready meals.</p> 5152 5153 </div> 5154 </div> 5155 </li> 5156 5157 5158 <li> 5159 <a 5160 href="#collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-5" 5161 data-bs-toggle="collapse" 5162 class="questionSection" 5163 5164 >Do your meals arrive fresh or frozen?<span class="faqDropdownArrow"> 5165 <svg 5166 class="icon icon-dropdownArrow" 5167 width="13" 5168 height="9" 5169 viewBox="0 0 13 9" 5170 fill="none" 5171 xmlns="http://www.w3.org/2000/svg" 5172 > 5173 <path d="M6.5 5.913 1.55.963.136 2.377 6.5 8.741l6.364-6.364L11.45.963z" fill="#000"/> 5174 </svg> 5175 5176 </span> 5177 </a> 5178 <div 5179 class="collapse answerSection" 5180 id="collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-5" 5181 data-parent="faqGroup-37411423-55f5-4ce2-831c-bdbaaf36ef7e" 5182 > 5183 <div class="answerBlock"> 5184 <p>All meals arrive fresh to your door and can be frozen before their expiry. We recommend that our meals are consumed fresh, but if you canât get to any before the use by date just pop them in the freezer for a later date.</p> 5185 5186 </div> 5187 </div> 5188 </li> 5189 5190 5191 <li> 5192 <a 5193 href="#collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-6" 5194 data-bs-toggle="collapse" 5195 class="questionSection" 5196 5197 >Are your meals halal certified?<span class="faqDropdownArrow"> 5198 <svg 5199 class="icon icon-dropdownArrow" 5200 width="13" 5201 height="9"
5202 viewBox="0 0 13 9" 5203 fill="none" 5204 xmlns="http://www.w3.org/2000/svg" 5205 > 5206 <path d="M6.5 5.913 1.55.963.136 2.377 6.5 8.741l6.364-6.364L11.45.963z" fill="#000"/> 5207 </svg> 5208 5209 </span> 5210 </a> 5211 <div 5212 class="collapse answerSection" 5213 id="collapse37411423-55f5-4ce2-831c-bdbaaf36ef7e-6" 5214 data-parent="faqGroup-37411423-55f5-4ce2-831c-bdbaaf36ef7e" 5215 > 5216 <div class="answerBlock"> 5217 <p>Yes! All our meals are 100% halal certified. You can find our certificate at the link here: 5218<a href="https://cdn.shopify.com/s/files/1/0729/8243/0012/files/Halal_Certificate_-_Thr1ve.pdf?v=1729939261">Halal Meal Certificate Link</a></p> 5219 5220 </div> 5221 </div> 5222 </li> 5223 5224 </ul> 5225 </div> 5226 </div> 5227 </div> 5228 </div> 5229</section> 5230 5231</div><div id="shopify-section-faq_nEY3ph" class="shopify-section"><section 5232 5233 class="sectionPadding faq-page other-page faqSingle" 5234> 5235 5236 <div class="container"> 5237 <div class="row"> 5238 <div class="col"> 5239 5240 5241 <div class="que-ans "> 5242 <ul class="faqGroup-faq_nEY3ph"> 5243 5244 5245 5246 <li> 5247 <a 5248 href="#collapsefaq_nEY3ph-1" 5249 data-bs-toggle="collapse" 5250 class="questionSection" 5251 5252 >Healthy Prepared Low Carb Meals delivered right to your door<span class="faqDropdownArrow"> 5253 <svg 5254 class="icon icon-dropdownArrow" 5255 width="13" 5256 height="9" 5257 viewBox="0 0 13 9" 5258 fill="none" 5259 xmlns="http://www.w3.org/2000/svg" 5260 > 5261 <path d="M6.5 5.913 1.55.963.136 2.377 6.5 8.741l6.364-6.364L11.45.963z" fill="#000"/> 5262 </svg> 5263 5264 </span> 5265 </a> 5266 <div 5267 class="collapse answerSection" 5268 id="collapsefaq_nEY3ph-1" 5269 data-parent="faqGroup-faq_nEY3ph" 5270 > 5271 <div class="answerBlock"> 5272 <p>Thrive Meals provides healthy and fresh ready made meals, that are nutritionist designed and delivered right to your door. Our meal selections have been carefully built by our nutritionists and dieticians to cater for high protein, keto, gluten-free, weight loss and low carb meals. Whatever your goal is such as losing weight, gaining muscle or performing at your peak, our range of healthy prepared meals, keto and low carb snacks keep you striving towards your goals. 5273 5274Leave the meal prep delivery to the professionals so you can do you. 5275 5276Our meal delivery menu is made fresh to order and is delivered across Australia, 7 days a week.</p> 5277 5278 </div> 5279 </div> 5280 </li> 5281 5282 </ul> 5283 </div> 5284 </div> 5285 </div> 5286 </div> 5287</section> 5288 5289</div><!-- END content_for_index --> 5290 </main> 5291 <div class="mm-fullscreen-bg"></div> 5292 <div id="shopify-section-footer" class="shopify-section"><section class="footer-top-area" data-section-id="footer" data-section-type="app-section-feed" data-section-settings=''> 5293 <div class="container"> 5294 <div class="footer-list-wrap"> 5295 <ul class="footer-list"> 5296 <li class="ftlink-li footer-info"> 5297 <div class="logo"><a href="https://thrivemeals.com.au" class="theme-footer-logo"> 5298 <img src="//thrivemeals.com.au/cdn/shop/files/thriveDark.png?v=1688699364" class="img-fluid" alt="Thrive Meals" style="width: 105px;"> 5299</a><style> 5300 /* logo css */ 5301 a.theme-footer-logo { 5302 display: block; 5303 } 5304 5305 /* store css */ 5306 a.shop-footer-name { 5307 display: block; 5308 } 5309 a.shop-footer-name span { 5310 color: var(--color-secondary); 5311 font-size: 16px; 5312 font-weight: 600; 5313 } 5314</style></div> 5315 <div class="logo-desc"> 5316 <p>We created THR1VE to transform the health and wellness of all Australians, through the delicious simplicity of real food nutrition and an active lifestyle.</p> 5317 </div> 5318 <div class="foologo_link"> 5319 <ul class=""> 5320 5321 5322 </ul> 5323 </div> 5324 </li> 5325 5326 <li class="ftlink-li link-list "> 5327 <h2 class="ft-title">Menu & Diets</h2>
5328 <a data-bs-toggle="collapse" href="#collapse-menu-diets" class="ft-title"> 5329 <span>Menu & Diets</span> 5330 <i class="ti-plus"></i> 5331 </a> 5332 <ul class="footer-sublist collapse" id="collapse-menu-diets"> 5333 5334 5335 5336 <li class="ftsublink-li"> 5337 <a href="https://thrivemeals.com.au/collections/fresh-ready-meals" class="ft-sublink">Meals</a> 5338 </li> 5339 5340 5341 5342 <li class="ftsublink-li"> 5343 <a href="https://thrivemeals.com.au/pages/keto" class="ft-sublink">Ketogenic</a> 5344 </li> 5345 5346 5347 5348 <li class="ftsublink-li"> 5349 <a href="https://thrivemeals.com.au/pages/weight-loss" class="ft-sublink">Weight Loss</a> 5350 </li> 5351 5352 5353 5354 <li class="ftsublink-li"> 5355 <a href="https://thrivemeals.com.au/pages/low-carb" class="ft-sublink">Low Carb</a> 5356 </li> 5357 5358 5359 5360 <li class="ftsublink-li"> 5361 <a href="https://thrivemeals.com.au/pages/gluten-free" class="ft-sublink">Gluten Free</a> 5362 </li> 5363 5364 5365 </ul> 5366 </li> 5367 5368 <li class="ftlink-li link-list "> 5369 <h2 class="ft-title">About Us</h2> 5370 <a data-bs-toggle="collapse" href="#collapse-about-us" class="ft-title"> 5371 <span>About Us</span> 5372 <i class="ti-plus"></i> 5373 </a> 5374 <ul class="footer-sublist collapse" id="collapse-about-us"> 5375 5376 5377 5378 <li class="ftsublink-li"> 5379 <a href="https://thrivemeals.com.au" class="ft-sublink">Home</a> 5380 </li> 5381 5382 5383 5384 <li class="ftsublink-li"> 5385 <a href="/pages/about-us" class="ft-sublink">About</a> 5386 </li> 5387 5388 5389 5390 <li class="ftsublink-li"> 5391 <a href="https://thrivemeals.com.au/pages/ndis" class="ft-sublink">NDIS</a> 5392 </li> 5393 5394 5395 5396 <li class="ftsublink-li"> 5397 <a href="/collections/fresh-ready-meals" class="ft-sublink">Full Menu</a> 5398 </li> 5399 5400 5401 5402 <li class="ftsublink-li"> 5403 <a href="https://thrivemeals.com.au/pages/subscribe-and-save" class="ft-sublink">Subscribe and Save</a> 5404 </li> 5405 5406 5407 5408 <li class="ftsublink-li"> 5409 <a href="/collections/gift-cards" class="ft-sublink">Gift Cards</a> 5410 </li> 5411 5412 5413 5414 <li class="ftsublink-li"> 5415 <a href="/blogs/news" class="ft-sublink">Blog</a> 5416 </li> 5417 5418 5419 </ul> 5420 </li> 5421 5422 <li class="ftlink-li link-list policies_link"> 5423 <h2 class="ft-title">Policies</h2> 5424 <a data-bs-toggle="collapse" href="#collapse-policies" class="ft-title"> 5425 <span>Policies</span> 5426 <i class="ti-plus"></i> 5427 </a> 5428 <ul class="footer-sublist collapse" id="collapse-policies"> 5429 5430 5431 5432 <li class="ftsublink-li"> 5433 <a href="/pages/privacy-policy" class="ft-sublink">Privacy Policy</a> 5434 </li> 5435 5436 5437 5438 <li class="ftsublink-li"> 5439 <a href="/pages/refund-policy" class="ft-sublink">Refund Policy</a> 5440 </li> 5441 5442 5443 5444 <li class="ftsublink-li"> 5445 <a href="/pages/terms-conditions" class="ft-sublink">Terms of Service</a> 5446 </li> 5447 5448 5449 5450 <li class="ftsublink-li"> 5451 <a href="https://thrivemeals.com.au/pages/where-we-deliver" class="ft-sublink">Shipping</a> 5452 </li> 5453 5454 5455 </ul> 5456 </li> 5457 5458 <li class="ftlink-li link-list "> 5459 <h2 class="ft-title">Support</h2> 5460 <a data-bs-toggle="collapse" href="#collapse-support" class="ft-title">
5461 <span>Support</span> 5462 <i class="ti-plus"></i> 5463 </a> 5464 <ul class="footer-sublist collapse" id="collapse-support"> 5465 5466 5467 5468 <li class="ftsublink-li"> 5469 <a href="https://thrivemeals.com.au/pages/contact-us" class="ft-sublink">Contact Us</a> 5470 </li> 5471 5472 5473 5474 <li class="ftsublink-li"> 5475 <a href="https://thrivemeals.com.au/pages/how-it-works" class="ft-sublink">How it Works</a> 5476 </li> 5477 5478 5479 5480 <li class="ftsublink-li"> 5481 <a href="https://thrivemeals.com.au/pages/faqs-and-contact?type=null" class="ft-sublink">FAQ</a> 5482 </li> 5483 5484 5485 5486 <li class="ftsublink-li"> 5487 <a href="https://thrivemeals.com.au/pages/where-we-deliver" class="ft-sublink">Shipping</a> 5488 </li> 5489 5490 5491 5492 <li class="ftsublink-li"> 5493 <a href="https://thrivemeals.com.au/pages/privacy-policy" class="ft-sublink">Privacy</a> 5494 </li> 5495 5496 5497 5498 <li class="ftsublink-li"> 5499 <a href="https://thrivemeals.com.au/pages/terms-conditions" class="ft-sublink">Terms</a> 5500 </li> 5501 5502 5503 5504 <li class="ftsublink-li"> 5505 <a href="https://thrivemeals.com.au/pages/refund-policy" class="ft-sublink">Returns</a> 5506 </li> 5507 5508 5509 </ul> 5510 </li> 5511 5512 <li class="ftlink-li contactsec-li"> 5513 <h2 class="ft-title">Contact Us</h2> 5514 <p>Have a question? We are here to help!</p> 5515<a class="fooemail" href="mailto:[email protected]">[email protected]</a> 5516<p> Call Us: (02) 7251 6686</p> 5517<a onclick="GorgiasChat.open();">Start a chat with our team</a> 5518 <div class="pt-2"><a href="javascript:void(0)" class="payment-icon"> 5519 5520 5521 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-afterpay"><title id="pi-afterpay">Afterpay</title><path fill="#b2fce4" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="m27.4 6.8-2.7-1.6-2.7-1.6c-1.8-1-4.1.3-4.1 2.4v.4c0 .2.1.4.3.5l1.3.7c.4.2.8-.1.8-.5v-.8c0-.4.4-.7.8-.5l2.5 1.4 2.4 1.5c.4.2.4.7 0 .9l-2.5 1.4-2.5 1.6c-.4.2-.8-.1-.8-.5v-.4c0-2.1-2.3-3.4-4.1-2.4l-2.7 1.6-2.7 1.6c-1.8 1-1.8 3.7 0 4.7l2.7 1.6 2.7 1.6c1.8 1 4.1-.3 4.1-2.4v-.4c0-.2-.1-.4-.3-.5l-1.3-.7c-.4-.2-.8.1-.8.5v.8c0 .4-.4.7-.8.5l-2.5-1.4-2.5-1.5c-.4-.2-.4-.7 0-.9l2.5-1.4 2.5-1.4c.4-.2.8.1.8.5v.4c0 2.1 2.3 3.4 4.1 2.4l2.7-1.6 2.7-1.6c1.9-1.2 1.9-3.8.1-4.9z"/></svg> 5522 5523 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558
55230 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" /><path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg> 5524 5525 5526 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
552606zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg> 5527 5528 5529 <svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/><path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2
55290-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg> 5530 5531 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 5532 5533 5534 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg> 5535 5536 5537 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778
553716.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 5538 5539 5540 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg> 5541 5542 5543</a> 5544<style> 5545 .payment-icon svg { 5546 width: 45px; 5547 height: auto; 5548 5549 margin-right: 5px; 5550 5551 display: inline-block; 5552 } 5553 .payment-icon svg:last-child{ 5554 5555 margin-right: 0px; 5556 5557 } 5558</style></div> 5559 </li> 5560 </ul><div class="footer-sub-note"> 5561 <p>Subscriptions auto-renew â edit, skip or cancel before <strong>Tuesday 9:00pm (AEST)</strong>; we bill the following <strong>Monday 9:30am</strong>. New one-off orders are also cut off <strong>Tuesday 9:00pm (AEST)</strong>.</p> 5562 </div> 5563 <div class="copyrightSection mt-4 border-top pt-4"> 5564 <div class="row justify-content-between align-items-center"> 5565 <div class="col-auto"><ul class="social-icon"> 5566 5567 <li><a href="https://www.facebook.com/THR1VEME/" aria-label="Social Media Link for Thrive Meals"><i class="fa fa-facebook"></i></a></li> 5568 5569 5570 <li><a href="https://www.instagram.com/Thr1ve/" aria-label="Social Media Link for Thrive Meals"><i class="fa fa-instagram"></i></a></li> 5571 5572 5573 5574 5575 5576 5577 5578</ul> 5579<style type="text/css"> 5580.social-icon li{ 5581 display: inline-block; 5582 5583 padding-right: 15px; 5584 5585} 5586.social-icon li:last-child{ 5587 5588 padding-right: 0; 5589 5590} 5591.social-icon li a{ 5592 font-size: 18px; 5593} 5594</style></div> 5595 <div class="col-auto"> 5596 <div class="copyright"> 5597 <p>©THR1VE 2025</p> 5598 </div> 5599 </div> 5600 </div> 5601 </div> 5602 </div> 5603 </div> 5604</section> 5605 5606<style> 5607.footer-top-area{ 5608 padding-top: 40px; 5609 padding-bottom: 40px; 5610 5611 background-color: #000000; 5612 5613} 5614@media(max-width: 1199px) { 5615 .footer-top-area{ 5616 padding-top: 50px; 5617 padding-bottom: 50px; 5618 } 5619} 5620 5621.footer-list-wrap ul.footer-list{ 5622 display: flex; 5623 -ms-flex-wrap: wrap; 5624 flex-wrap: wrap; 5625 5626 margin-left: -30px; 5627 5628} 5629.footer-list-wrap ul.footer-list li.ftlink-li{ 5630 5631 margin-left: 30px; 5632 5633} 5634.footer-list-wrap ul.footer-list li.ftlink-li.link-list{ 5635 width: calc(11% - 30px); 5636} 5637.footer-list-wrap ul.footer-list li.ftlink-li.footer-info{ 5638 width: calc(22% - 30px); 5639} 5640.contactsec-li { 5641 width: calc(34% - 30px); 5642 border-left: 1px solid; 5643 padding-left: 40px; 5644} 5645/* .footer-list-wrap ul.footer-list li.ftlink-li .logo-desc { 5646 margin-top: 30px; 5647} */ 5648.footer-list-wrap ul.footer-list li.ftlink-li .logo-desc p{ 5649 font-size: 14px; 5650 width: 70%; 5651} 5652.footer-list-wrap ul.footer-list li.ftlink-li .footer-social{ 5653 margin-top: 24px; 5654} 5655.footer-list-wrap ul.footer-list li.ftlink-li.footer-info .logo h2, 5656.footer-list-wrap ul.footer-list li.ftlink-li .ft-title{ 5657 font-size: 20px; 5658 line-height: 1; 5659 font-weight: 400; 5660 text-transform: capitalize; 5661 text-decoration: underline; 5662} 5663.footer-list-wrap ul.footer-list li.ftlink-li a.ft-title{ 5664 display: none; 5665} 5666.footer-list-wrap ul.footer-list li.ftlink-li .footer-sublist.collapse:not(.show){ 5667 display: block; 5668} 5669/* .footer-list-wrap ul.footer-list li.ftlink-li ul.footer-sublist{ 5670 margin-top: 30px; 5671} */ 5672.footer-list-wrap ul.footer-list li.ftlink-li ul.footer-sublist li.ftsublink-li, 5673.footer-list-wrap ul.footer-list li.ftlink-li ul.footer-sublist li.ftcon-li{ 5674 margin-top: 13px; 5675} 5676 5677.footer-list-wrap ul.footer-list li.ftlink-li ul.footer-sublist li.ftsublink-li:first-child{ 5678 margin-top: 0px; 5679} 5680.footer-list-wrap ul.footer-list li.ftlink-li ul.footer-sublist li.ftsublink-li a{ 5681 color: #fff; 5682 font-size: 16px; 5683 text-decoration: underline; 5684} 5685.footer-list-wrap ul.footer-list li.ftlink-li ul.footer-sublist li.ftsublink-li a:hover{ 5686 color: #4cb849; 5687} 5688.footer-list-wrap ul.footer-list li.ftlink-li.insta-li h2.ft-title{ 5689 display: block; 5690} 5691.footer-list-wrap ul.footer-list li.ftlink-li ul.footer-sublist .insta-wrap{ 5692 margin-top: 23px; 5693} 5694.footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li p.ft-description { 5695 font-size: 14px; 5696 margin-top: 30px; 5697} 5698.footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li .news-content{ 5699 margin-top: 30px; 5700} 5701.footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li .subscribe-block { 5702 position: relative; 5703} 5704.footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li .subscribe-block input{ 5705 width: 100%; 5706 color: #6f6f6f; 5707 font-size: 14px; 5708 padding: 15px; 5709 border: none; 5710 background-color: #fff; 5711} 5712 5713.footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li .subscribe-block button{ 5714 font-size: 20px; 5715 line-height: 1; 5716 position: absolute; 5717 5718 right: 15px; 5719 5720 bottom: 50%; 5721 transform: translateY(50%); 5722} 5723.footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li .subscribe-block button:hover{ 5724 color: #4cb849; 5725} 5726.footer-list-wrap .social-icon { 5727 margin-top: 5px; 5728} 5729.footer-top-area ul li a { 5730 font-size: 14px; 5731 text-decoration: underline; 5732} 5733ul.social-icon li a i { 5734 color: #62be40; 5735} 5736.fa-instagram:before, .fa-facebook-f:before, .fa-facebook:before { 5737 font-size: 30px; 5738} 5739.contactsec-li p { 5740 font-size: 16px; 5741 margin: 10px 0 0 0; 5742} 5743.contactsec-li a { 5744font-size: 16px; 5745color: #62be40 !important; 5746} 5747.contactsec-li a.payment-icon { 5748 margin-top: 11px; 5749 display: block; 5750 text-decoration: none; 5751} 5752.footer-list-wrap ul.footer-list li.ftlink-li .ft-title { 5753 display: none; 5754} 5755.footer-list-wrap ul.footer-list li.contactsec-li h2.ft-title { 5756 display: block !important; 5757 } 5758 5759@media (max-width : 1199px){ 5760 .contactsec-li { 5761 border-left: none; 5762 padding-left: 0; 5763} 5764 .footer-list-wrap .social-icon, 5765 .footer-list-wrap ul.footer-list li.ftlink-li .logo-desc{ 5766 margin-top: 15px; 5767 } 5768 .footer-list-wrap ul.footer-list li.ftlink-li .logo-desc p{ 5769 width: 100%; 5770 } 5771 .footer-list-wrap ul.footer-list li.ftlink-li .ft-title{ 5772 font-size: 16px; 5773 } 5774 .footer-list-wrap ul.footer-list li.ftlink-li ul.footer-sublist li.ftsublink-li a{ 5775 font-size: 16px; 5776 } 5777} 5778@media (max-width : 991px){ 5779 .footer-list-wrap ul.footer-list li.ftlink-li.footer-info{ 5780 margin-bottom: 30px; 5781 } 5782 .footer-list-wrap ul.footer-list li.ftlink-li.footer-info, 5783 .footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li, 5784 .footer-list-wrap ul.footer-list li.ftlink-li.link-list, 5785 .footer-list-wrap ul.footer-list li.ftlink-li{ 5786 width: calc(100% - 30px); 5787 } 5788 .footer-list-wrap ul.footer-list li.ftlink-li .footer-social{ 5789 margin: 20px 0; 5790 } 5791 .footer-list-wrap ul.footer-list li.contactsec-li h2.ft-title { 5792 display: block !important; 5793 margin-top: 10px; 5794 } 5795 .footer-list-wrap ul.footer-list li.ftlink-li h2.ft-title{ 5796 display: none; 5797 text-transform: uppercase; 5798 } 5799 .footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li { 5800 margin-top: 30px; 5801 } 5802 .footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li h2.ft-title{ 5803 display: block; 5804 font-size: 16px; 5805 } 5806 .footer-list-wrap ul.footer-list li.ftlink-li a.ft-title{ 5807 display: flex; 5808 font-size: 16px; 5809 align-items: center; 5810 justify-content: space-between; 5811 padding: 15px 0; 5812 border-bottom: 1px solid rgba(0,0,0,0.1); 5813 } 5814 .footer-list-wrap ul.footer-list li.ftlink-li a.ft-title i{ 5815 font-size: 14px; 5816 } 5817 .footer-list-wrap ul.footer-list li.ftlink-li a.ft-title[aria-expanded="true"] i:before{ 5818 content: "\e622"; 5819 } 5820 .footer-list-wrap ul.footer-list li.ftlink-li .footer-sublist{ 5821 5822 text-align: left; 5823 5824 } 5825 .footer-list-wrap ul.footer-list li.ftlink-li .footer-sublist.collapse:not(.show){ 5826 display: none; 5827 } 5828 .footer-list-wrap ul.footer-list li.ftlink-li ul.footer-sublist{ 5829 margin-top: 15px; 5830 } 5831 .footer-list-wrap ul.footer-list li.ftlink-li ul.footer-sublist li.ftsublink-li a{ 5832 font-size: 14px; 5833 } 5834 .footer-list-wrap ul.footer-list li.ftlink-li.insta-li ul.footer-sublist{ 5835 margin-top: 10px; 5836 border-top: 1px solid rgba(0,0,0,0.1); 5837 } 5838 .footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li .subscribe-block input{ 5839 font-size: 14px; 5840 } 5841 .footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li p.ft-description{ 5842 margin-top: 15px; 5843 } 5844 .footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li .news-content{ 5845 margin-top: 15px; 5846 } 5847} 5848@media (max-width : 767px){ 5849 .contactsec-li { 5850 border-left: none; 5851 padding-left: 0; 5852} 5853 .footer-list-wrap ul.footer-list{ 5854 5855 margin-left: -15px; 5856 5857 } 5858 .footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li, 5859 .footer-list-wrap ul.footer-list li.ftlink-li.link-list, 5860 .footer-list-wrap ul.footer-list li.ftlink-li{ 5861 width: calc(100% - 15px); 5862 5863 margin-left: 15px; 5864 5865 } 5866 .footer-list-wrap ul.footer-list li.ftlink-li.footer-info p{ 5867 max-width: 100%; 5868 } 5869 .footer-list-wrap ul.footer-list li.ftlink-li a.ft-title{ 5870 font-size: 14px; 5871 } 5872 .footer-list-wrap ul.footer-list li.ftlink-li.newsletter-li h2.ft-title{ 5873 font-size: 14px; 5874 } 5875} 5876</style></div> 5877 5878 5879 <div id="shopify-section-postal-code" class="shopify-section"> 5880 5881</div> 5882 5883 5884 5885 <div> 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895
5896<div class="mini-cart col-12 col-md-8 col-lg-7 col-xl-5 container" id="mini-cart" style="display:none;"><div id="loading-screen" style="display: none;"> 5897 <div class="thr-colo" role="status" aria-live="polite"> 5898 <div class="thr-colo-ring"> 5899 <svg class="thr-colo-spin" width="60" height="60" viewBox="0 0 60 60" aria-hidden="true"> 5900 <circle cx="30" cy="30" r="26" fill="none" stroke="#e8f5e2" stroke-width="4"></circle> 5901 <circle cx="30" cy="30" r="26" fill="none" stroke="#54B52A" stroke-width="4" stroke-linecap="round" stroke-dasharray="40 200"></circle> 5902 </svg> 5903 <span class="thr-colo-mark"><span>1</span>V</span> 5904 </div> 5905 <div class="thr-colo-title">Taking you to <span>checkout</span>â¦</div> 5906 <div class="thr-colo-sub">Securing your order</div> 5907 <div class="thr-colo-list"><div class="thr-colo-item" style="animation-delay:0ms"> 5908 <span class="thr-colo-tick"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6L9 17l-5-5"></path></svg></span> 5909 <span>Dietitian approved</span> 5910 </div><div class="thr-colo-item" style="animation-delay:55ms"> 5911 <span class="thr-colo-tick"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6L9 17l-5-5"></path></svg></span> 5912 <span>Trusted by 30,000+ Australians</span> 5913 </div><div class="thr-colo-item" style="animation-delay:110ms"> 5914 <span class="thr-colo-tick"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6L9 17l-5-5"></path></svg></span> 5915 <span>Built on 150+ years of combined food experience</span> 5916 </div><div class="thr-colo-item" style="animation-delay:165ms"> 5917 <span class="thr-colo-tick"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6L9 17l-5-5"></path></svg></span> 5918 <span>Independently HACCP certified</span> 5919 </div><div class="thr-colo-item" style="animation-delay:220ms"> 5920 <span class="thr-colo-tick"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6L9 17l-5-5"></path></svg></span> 5921 <span>Every batch traceable</span> 5922 </div><div class="thr-colo-item" style="animation-delay:275ms"> 5923 <span class="thr-colo-tick"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6L9 17l-5-5"></path></svg></span> 5924 <span>Made fresh, never frozen</span> 5925 </div><div class="thr-colo-item" style="animation-delay:330ms"> 5926 <span class="thr-colo-tick"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6L9 17l-5-5"></path></svg></span> 5927 <span>Clean ingredients. No preservatives. Ever.</span> 5928 </div><div class="thr-colo-item" style="animation-delay:385ms"> 5929 <span class="thr-colo-tick"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6L9 17l-5-5"></path></svg></span> 5930 <span>Hours of cooking saved every week</span> 5931 </div></div> 5932 </div> 5933 </div> 5934 <style> 5935 /* #loading-screen is relocated to <body> on load (escapes the drawer's transform so this fixed 5936 overlay covers the FULL viewport, including the header). Selectors are location-independent. */ 5937 #loading-screen { position: fixed !important; inset: 0 !important; z-index: 2147483600 !important; background: #F4F5F6 !important; } 5938 #loading-screen:before, #loading-screen:after { content: none !important; display: none !important; background: none !important; } 5939 .thr-colo { position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px 26px; background: #F4F5F6; font-family: 'Montserrat', system-ui, -apple-system, sans-serif; } 5940 .thr-colo-ring { position: relative; width: 60px; height: 60px; margin-bottom: 18px; } 5941 .thr-colo-spin { position: absolute; inset: 0; animation: thrColoSpin .9s linear infinite; }
5942 @keyframes thrColoSpin { to { transform: rotate(360deg); } } 5943 .thr-colo-mark { position: absolute; inset: 0; display: grid; place-items: center; font-weight: 900; font-size: 26px; line-height: 1; letter-spacing: -1px; color: #141414; } 5944 .thr-colo-mark > span { color: #54B52A; } 5945 .thr-colo-title { font-weight: 800; font-size: 18px; text-align: center; letter-spacing: -.2px; color: #141414; } 5946 .thr-colo-title span { color: #54B52A; } 5947 .thr-colo-sub { font-size: 12.5px; color: #8a8a82; margin-top: 4px; margin-bottom: 20px; text-align: center; } 5948 .thr-colo-list { width: 100%; max-width: 320px; display: flex; flex-direction: column; gap: 9px; } 5949 .thr-colo-item { display: flex; align-items: center; gap: 10px; animation: thrColoPop .34s cubic-bezier(.2,.8,.3,1) both; } 5950 @keyframes thrColoPop { 0% { transform: translateY(7px); } 100% { transform: translateY(0); } } 5951 .thr-colo-tick { flex: 0 0 auto; width: 20px; height: 20px; border-radius: 999px; background: #54B52A; display: grid; place-items: center; box-shadow: 0 1px 0 rgba(0,0,0,.04); } 5952 .thr-colo-item > span:last-child { font-size: 13.5px; font-weight: 600; color: #3a3a36; line-height: 1.25; } 5953 @media (prefers-reduced-motion: reduce) { .thr-colo-spin, .thr-colo-item { animation: none !important; } } 5954 </style> 5955
5955<script> 5956 /* Relocate #loading-screen to <body> so its fixed overlay isn't trapped inside the cart drawer's 5957 transform (which scoped it below the header). Cart engine toggles it by ID â location-agnostic. */ 5958 (function () { 5959 var ls = document.getElementById("loading-screen"); 5960 if (ls && ls.parentNode !== document.body) document.body.appendChild(ls); 5961 })(); 5962 </script>
5962<div class="cart-drawer-handle" aria-hidden="true"></div> 5963 <div class="row h-100 p-0 m-0"> 5964 5965 <div class="col-lg-4 border-end d-lg-block p-0 upsell-desk-custom"> 5966 <div class="upsell-products upsell-pro-custom d-flex flex-column align-items-center justify-content-between p-3 border-start productSliderSection overflow-auto max-h-100vh bg-light-green"> 5967 <h6 class="mb-1">Boost your cart ð</h6> 5968 <div class="d-flex flex-column"> 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 5979 <img src="//thrivemeals.com.au/cdn/shop/files/Caramel_Slice_120X120_crop_center.jpg?v=1737023316" width="auto" height="auto" class="m-2 rounded m-auto" alt="Caramel Slice" /> 5980 <div class="mt-auto w-100 px-2"> 5981 <p class="mb-1 lh-sm fs-14">Caramel Slice</p> 5982 <p class="fs-16 fw-bold comparePriceOuter">$4.95 5983 </p> 5984 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 5985 5986 <div class="product-all w-100 product-id-9882190217532 " data-product-id="9882190217532"> 5987 <div class="add-cart-button d-none"> 5988 <a href="javascript:void(0);" onclick="localCart.addItem(9882190217532, 50756423713084, 'Caramel Slice', '/products/low-carb-caramel-slice', '//thrivemeals.com.au/cdn/shop/files/Caramel_Slice_150X150_crop_center.jpg?v=1737023316', 495, 495, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 5989 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 5990 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 5991 <span class="cart-added"><i class="ion-android-done"></i></span> 5992 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 5993 </a> 5994 </div> 5995 <div class="quantity-selector d-none"> 5996 <div class="upsell_quantity buttons d-flex"> 5997 <div class="product-quantity" data-variant="50756423713084"> 5998 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 5999 <input 6000 value="1" 6001 class="qtyinputcs" 6002 type="text" 6003 name="quantity" 6004 min="1" 6005 pattern="[0-9]*" 6006 > 6007 6008 <span class="cusqtyspan quantity-50756423713084 quantity-var-9882190217532" 6009 >1</span 6010 > 6011 </div> 6012 </div> 6013 </div> 6014 </div> 6015</div> 6016 6017 6018 </div> 6019 </div> 6020 </div> 6021 6022 6023 6024 6025 6026 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6027 <img src="//thrivemeals.com.au/cdn/shop/files/LowCarbBlondie_120X120_crop_center.jpg?v=1738747519" width="auto" height="auto" class="m-2 rounded m-auto" alt="Coconut Blondie" /> 6028 <div class="mt-auto w-100 px-2"> 6029 <p class="mb-1 lh-sm fs-14">Coconut Blondie</p> 6030 <p class="fs-16 fw-bold comparePriceOuter">$4.95 6031 </p> 6032 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6033 6034 <div class="product-all w-100 product-id-9882190971196 " data-product-id="9882190971196"> 6035 <div class="add-cart-button d-none"> 6036 <a href="javascript:void(0);" onclick="localCart.addItem(9882190971196, 50756426596668, 'Coconut Blondie', '/products/low-carb-coconut-blondie', '//thrivemeals.com.au/cdn/shop/files/LowCarbBlondie_150X150_crop_center.jpg?v=1738747519', 495, 495, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6037 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6038 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6039 <span class="cart-added"><i class="ion-android-done"></i></span> 6040 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6041 </a> 6042 </div> 6043 <div class="quantity-selector d-none"> 6044 <div class="upsell_quantity buttons d-flex"> 6045 <div class="product-quantity" data-variant="50756426596668"> 6046 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6047 <input 6048 value="1" 6049 class="qtyinputcs" 6050 type="text" 6051 name="quantity" 6052 min="1" 6053 pattern="[0-9]*" 6054 > 6055
6056 <span class="cusqtyspan quantity-50756426596668 quantity-var-9882190971196" 6057 >1</span 6058 > 6059 </div> 6060 </div> 6061 </div> 6062 </div> 6063</div> 6064 6065 6066 </div> 6067 </div> 6068 </div> 6069 6070 6071 6072 6073 6074 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6075 <img src="//thrivemeals.com.au/cdn/shop/files/zucciniSlice_120X120_crop_center.jpg?v=1738747422" width="auto" height="auto" class="m-2 rounded m-auto" alt="Zucchini Slice" /> 6076 <div class="mt-auto w-100 px-2"> 6077 <p class="mb-1 lh-sm fs-14">Zucchini Slice</p> 6078 <p class="fs-16 fw-bold comparePriceOuter">$4.95 6079 </p> 6080 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6081 6082 <div class="product-all w-100 product-id-9882191364412 " data-product-id="9882191364412"> 6083 <div class="add-cart-button d-none"> 6084 <a href="javascript:void(0);" onclick="localCart.addItem(9882191364412, 50756427088188, 'Zucchini Slice', '/products/crustless-zucchini-slice', '//thrivemeals.com.au/cdn/shop/files/zucciniSlice_150X150_crop_center.jpg?v=1738747422', 495, 495, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6085 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6086 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6087 <span class="cart-added"><i class="ion-android-done"></i></span> 6088 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6089 </a> 6090 </div> 6091 <div class="quantity-selector d-none"> 6092 <div class="upsell_quantity buttons d-flex"> 6093 <div class="product-quantity" data-variant="50756427088188"> 6094 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6095 <input 6096 value="1" 6097 class="qtyinputcs" 6098 type="text" 6099 name="quantity" 6100 min="1" 6101 pattern="[0-9]*" 6102 > 6103 6104 <span class="cusqtyspan quantity-50756427088188 quantity-var-9882191364412" 6105 >1</span 6106 > 6107 </div> 6108 </div> 6109 </div> 6110 </div> 6111</div> 6112 6113 6114 </div> 6115 </div> 6116 </div> 6117 6118 6119 6120 6121 6122 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6123 <img src="//thrivemeals.com.au/cdn/shop/files/MacadamiaShortbread_120X120_crop_center.jpg?v=1738747284" width="auto" height="auto" class="m-2 rounded m-auto" alt="Macadamia Shortbread" /> 6124 <div class="mt-auto w-100 px-2"> 6125 <p class="mb-1 lh-sm fs-14">Macadamia Shortbread</p> 6126 <p class="fs-16 fw-bold comparePriceOuter">$4.95 6127 </p> 6128 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6129 6130 <div class="product-all w-100 product-id-9882192576828 " data-product-id="9882192576828"> 6131 <div class="add-cart-button d-none"> 6132 <a href="javascript:void(0);" onclick="localCart.addItem(9882192576828, 50756428431676, 'Macadamia Shortbread', '/products/macadamia-shortbread', '//thrivemeals.com.au/cdn/shop/files/MacadamiaShortbread_150X150_crop_center.jpg?v=1738747284', 495, 495, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6133 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6134 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6135 <span class="cart-added"><i class="ion-android-done"></i></span> 6136 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6137 </a> 6138 </div> 6139 <div class="quantity-selector d-none"> 6140 <div class="upsell_quantity buttons d-flex"> 6141 <div class="product-quantity" data-variant="50756428431676"> 6142 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6143 <input 6144 value="1" 6145 class="qtyinputcs" 6146 type="text" 6147 name="quantity" 6148 min="1" 6149 pattern="[0-9]*" 6150 > 6151
6152 <span class="cusqtyspan quantity-50756428431676 quantity-var-9882192576828" 6153 >1</span 6154 > 6155 </div> 6156 </div> 6157 </div> 6158 </div> 6159</div> 6160 6161 6162 </div> 6163 </div> 6164 </div> 6165 6166 6167 6168 6169 6170 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6171 <img src="//thrivemeals.com.au/cdn/shop/files/BlueberryMuffin1_120X120_crop_center.jpg?v=1737023439" width="auto" height="auto" class="m-2 rounded m-auto" alt="Berry Muffin" /> 6172 <div class="mt-auto w-100 px-2"> 6173 <p class="mb-1 lh-sm fs-14">Berry Muffin</p> 6174 <p class="fs-16 fw-bold comparePriceOuter">$4.95 6175 </p> 6176 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6177 6178 <div class="product-all w-100 product-id-8969868312892 " data-product-id="8969868312892"> 6179 <div class="add-cart-button d-none"> 6180 <a href="javascript:void(0);" onclick="localCart.addItem(8969868312892, 48069527339324, 'Berry Muffin', '/products/blueberry-muffin', '//thrivemeals.com.au/cdn/shop/files/BlueberryMuffin1_150X150_crop_center.jpg?v=1737023439', 495, 495, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6181 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6182 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6183 <span class="cart-added"><i class="ion-android-done"></i></span> 6184 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6185 </a> 6186 </div> 6187 <div class="quantity-selector d-none"> 6188 <div class="upsell_quantity buttons d-flex"> 6189 <div class="product-quantity" data-variant="48069527339324"> 6190 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6191 <input 6192 value="1" 6193 class="qtyinputcs" 6194 type="text" 6195 name="quantity" 6196 min="1" 6197 pattern="[0-9]*" 6198 > 6199 6200 <span class="cusqtyspan quantity-48069527339324 quantity-var-8969868312892" 6201 >1</span 6202 > 6203 </div> 6204 </div> 6205 </div> 6206 </div> 6207</div> 6208 6209 6210 </div> 6211 </div> 6212 </div> 6213 6214 6215 6216 6217 6218 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6219 <img src="//thrivemeals.com.au/cdn/shop/files/ChocBrownie34_120X120_crop_center.jpg?v=1737023381" width="auto" height="auto" class="m-2 rounded m-auto" alt="Chocolate Brownie" /> 6220 <div class="mt-auto w-100 px-2"> 6221 <p class="mb-1 lh-sm fs-14">Chocolate Brownie</p> 6222 <p class="fs-16 fw-bold comparePriceOuter">$3.95 6223 </p> 6224 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6225 6226 <div class="product-all w-100 product-id-8969884631356 " data-product-id="8969884631356"> 6227 <div class="add-cart-button d-none"> 6228 <a href="javascript:void(0);" onclick="localCart.addItem(8969884631356, 48069558174012, 'Chocolate Brownie', '/products/keto-brownie', '//thrivemeals.com.au/cdn/shop/files/ChocBrownie34_150X150_crop_center.jpg?v=1737023381', 395, 395, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6229 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6230 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6231 <span class="cart-added"><i class="ion-android-done"></i></span> 6232 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6233 </a> 6234 </div> 6235 <div class="quantity-selector d-none"> 6236 <div class="upsell_quantity buttons d-flex"> 6237 <div class="product-quantity" data-variant="48069558174012"> 6238 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6239 <input 6240 value="1" 6241 class="qtyinputcs" 6242 type="text" 6243 name="quantity" 6244 min="1" 6245 pattern="[0-9]*" 6246 > 6247
6248 <span class="cusqtyspan quantity-48069558174012 quantity-var-8969884631356" 6249 >1</span 6250 > 6251 </div> 6252 </div> 6253 </div> 6254 </div> 6255</div> 6256 6257 6258 </div> 6259 </div> 6260 </div> 6261 6262 6263 6264 6265 6266 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6267 <img src="//thrivemeals.com.au/cdn/shop/files/Nutessa_Slice_120X120_crop_center.jpg?v=1737074717" width="auto" height="auto" class="m-2 rounded m-auto" alt="Nutessa Slice" /> 6268 <div class="mt-auto w-100 px-2"> 6269 <p class="mb-1 lh-sm fs-14">Nutessa Slice</p> 6270 <p class="fs-16 fw-bold comparePriceOuter">$3.95 6271 </p> 6272 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6273 6274 <div class="product-all w-100 product-id-8219781759292 " data-product-id="8219781759292"> 6275 <div class="add-cart-button d-none"> 6276 <a href="javascript:void(0);" onclick="localCart.addItem(8219781759292, 44799334580540, 'Nutessa Slice', '/products/nutessa-slice', '//thrivemeals.com.au/cdn/shop/files/Nutessa_Slice_150X150_crop_center.jpg?v=1737074717', 395, 395, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6277 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6278 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6279 <span class="cart-added"><i class="ion-android-done"></i></span> 6280 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6281 </a> 6282 </div> 6283 <div class="quantity-selector d-none"> 6284 <div class="upsell_quantity buttons d-flex"> 6285 <div class="product-quantity" data-variant="44799334580540"> 6286 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6287 <input 6288 value="1" 6289 class="qtyinputcs" 6290 type="text" 6291 name="quantity" 6292 min="1" 6293 pattern="[0-9]*" 6294 > 6295 6296 <span class="cusqtyspan quantity-44799334580540 quantity-var-8219781759292" 6297 >1</span 6298 > 6299 </div> 6300 </div> 6301 </div> 6302 </div> 6303</div> 6304 6305 6306 </div> 6307 </div> 6308 </div> 6309 6310 6311 6312 6313 6314 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6315 <img src="//thrivemeals.com.au/cdn/shop/files/106_120X120_crop_center.png?v=1744607550" width="auto" height="auto" class="m-2 rounded m-auto" alt="Chicken Veggie Pizza" /> 6316 <div class="mt-auto w-100 px-2"> 6317 <p class="mb-1 lh-sm fs-14">Chicken Veggie Pizza</p> 6318 <p class="fs-16 fw-bold comparePriceOuter">$9.95 6319 </p> 6320 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6321 6322 <div class="product-all w-100 product-id-9995289821500 " data-product-id="9995289821500"> 6323 <div class="add-cart-button d-none"> 6324 <a href="javascript:void(0);" onclick="localCart.addItem(9995289821500, 51601956700476, 'Chicken Veggie Pizza', '/products/chickenveg-pizza', '//thrivemeals.com.au/cdn/shop/files/106_150X150_crop_center.png?v=1744607550', 995, 995, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6325 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6326 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6327 <span class="cart-added"><i class="ion-android-done"></i></span> 6328 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6329 </a> 6330 </div> 6331 <div class="quantity-selector d-none"> 6332 <div class="upsell_quantity buttons d-flex"> 6333 <div class="product-quantity" data-variant="51601956700476"> 6334 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6335 <input 6336 value="1" 6337 class="qtyinputcs" 6338 type="text" 6339 name="quantity" 6340 min="1" 6341 pattern="[0-9]*" 6342 > 6343
6344 <span class="cusqtyspan quantity-51601956700476 quantity-var-9995289821500" 6345 >1</span 6346 > 6347 </div> 6348 </div> 6349 </div> 6350 </div> 6351</div> 6352 6353 6354 </div> 6355 </div> 6356 </div> 6357 6358 6359 6360 6361 6362 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6363 <img src="//thrivemeals.com.au/cdn/shop/files/107_120X120_crop_center.png?v=1744607020" width="auto" height="auto" class="m-2 rounded m-auto" alt="Pepperoni Pizza" /> 6364 <div class="mt-auto w-100 px-2"> 6365 <p class="mb-1 lh-sm fs-14">Pepperoni Pizza</p> 6366 <p class="fs-16 fw-bold comparePriceOuter">$9.95 6367 </p> 6368 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6369 6370 <div class="product-all w-100 product-id-9995289854268 " data-product-id="9995289854268"> 6371 <div class="add-cart-button d-none"> 6372 <a href="javascript:void(0);" onclick="localCart.addItem(9995289854268, 51601956733244, 'Pepperoni Pizza', '/products/mammamia-pizza', '//thrivemeals.com.au/cdn/shop/files/107_150X150_crop_center.png?v=1744607020', 995, 995, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6373 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6374 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6375 <span class="cart-added"><i class="ion-android-done"></i></span> 6376 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6377 </a> 6378 </div> 6379 <div class="quantity-selector d-none"> 6380 <div class="upsell_quantity buttons d-flex"> 6381 <div class="product-quantity" data-variant="51601956733244"> 6382 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6383 <input 6384 value="1" 6385 class="qtyinputcs" 6386 type="text" 6387 name="quantity" 6388 min="1" 6389 pattern="[0-9]*" 6390 > 6391 6392 <span class="cusqtyspan quantity-51601956733244 quantity-var-9995289854268" 6393 >1</span 6394 > 6395 </div> 6396 </div> 6397 </div> 6398 </div> 6399</div> 6400 6401 6402 </div> 6403 </div> 6404 </div> 6405 6406 6407 6408 6409 6410 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6411 <img src="//thrivemeals.com.au/cdn/shop/files/SnackGroup13_120X120_crop_center.jpg?v=1741136946" width="auto" height="auto" class="m-2 rounded m-auto" alt="Variety Snack Bundle" /> 6412 <div class="mt-auto w-100 px-2"> 6413 <p class="mb-1 lh-sm fs-14">Variety Snack Bundle</p> 6414 <p class="fs-16 fw-bold comparePriceOuter">$29.95 6415 </p> 6416 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6417 6418 <div class="product-all w-100 product-id-9604639260988 " data-product-id="9604639260988"> 6419 <div class="add-cart-button d-none"> 6420 <a href="javascript:void(0);" onclick="localCart.addItem(9604639260988, 49814596682044, 'Variety Snack Bundle', '/products/snack-bundle', '//thrivemeals.com.au/cdn/shop/files/SnackGroup13_150X150_crop_center.jpg?v=1741136946', 2995, 2995, 1, 'Bundle', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6421 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6422 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6423 <span class="cart-added"><i class="ion-android-done"></i></span> 6424 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6425 </a> 6426 </div> 6427 <div class="quantity-selector d-none"> 6428 <div class="upsell_quantity buttons d-flex"> 6429 <div class="product-quantity" data-variant="49814596682044"> 6430 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6431 <input 6432 value="1" 6433 class="qtyinputcs" 6434 type="text" 6435 name="quantity" 6436 min="1" 6437 pattern="[0-9]*" 6438 > 6439
6440 <span class="cusqtyspan quantity-49814596682044 quantity-var-9604639260988" 6441 >1</span 6442 > 6443 </div> 6444 </div> 6445 </div> 6446 </div> 6447</div> 6448 6449 6450 </div> 6451 </div> 6452 </div> 6453 6454 6455 6456 6457 6458 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6459 <img src="//thrivemeals.com.au/cdn/shop/files/Snack_Bundle_120X120_crop_center.png?v=1741136946" width="auto" height="auto" class="m-2 rounded m-auto" alt="Saver Snack Bundle" /> 6460 <div class="mt-auto w-100 px-2"> 6461 <p class="mb-1 lh-sm fs-14">Saver Snack Bundle</p> 6462 <p class="fs-16 fw-bold comparePriceOuter">$11.95 6463 </p> 6464 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6465 6466 <div class="product-all w-100 product-id-9937929437500 " data-product-id="9937929437500"> 6467 <div class="add-cart-button d-none"> 6468 <a href="javascript:void(0);" onclick="localCart.addItem(9937929437500, 51432648343868, 'Saver Snack Bundle', '/products/saver-snack-bundle', '//thrivemeals.com.au/cdn/shop/files/Snack_Bundle_150X150_crop_center.png?v=1741136946', 1195, 1195, 1, 'Bundle', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6469 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6470 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6471 <span class="cart-added"><i class="ion-android-done"></i></span> 6472 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6473 </a> 6474 </div> 6475 <div class="quantity-selector d-none"> 6476 <div class="upsell_quantity buttons d-flex"> 6477 <div class="product-quantity" data-variant="51432648343868"> 6478 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6479 <input 6480 value="1" 6481 class="qtyinputcs" 6482 type="text" 6483 name="quantity" 6484 min="1" 6485 pattern="[0-9]*" 6486 > 6487 6488 <span class="cusqtyspan quantity-51432648343868 quantity-var-9937929437500" 6489 >1</span 6490 > 6491 </div> 6492 </div> 6493 </div> 6494 </div> 6495</div> 6496 6497 6498 </div> 6499 </div> 6500 </div> 6501 6502 6503 6504 6505 6506 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6507 <img src="//thrivemeals.com.au/cdn/shop/files/Quest_TortillaStyle-ProteinChips_32g_ChiliLimeFlavour_120X120_crop_center.png?v=1758599025" width="auto" height="auto" class="m-2 rounded m-auto" alt="Quest Chips" /> 6508 <div class="mt-auto w-100 px-2"> 6509 <p class="mb-1 lh-sm fs-14">Quest Chips</p> 6510 <p class="fs-16 fw-bold comparePriceOuter">$5.95 6511 </p> 6512 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6513 6514 <div class="product-all w-100 product-id-10167998513468 " data-product-id="10167998513468"> 6515 <div class="add-cart-button d-none"> 6516 <a href="javascript:void(0);" onclick="localCart.addItem(10167998513468, 52204785762620, 'Quest Chips', '/products/quest-protein-chips-tortilla-style-chili-lime-flavour', '//thrivemeals.com.au/cdn/shop/files/Quest_TortillaStyle-ProteinChips_32g_ChiliLimeFlavour_150X150_crop_center.png?v=1758599025', 595, 595, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6517 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6518 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6519 <span class="cart-added"><i class="ion-android-done"></i></span> 6520 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6521 </a> 6522 </div> 6523 <div class="quantity-selector d-none"> 6524 <div class="upsell_quantity buttons d-flex"> 6525 <div class="product-quantity" data-variant="52204785762620"> 6526 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6527 <input 6528 value="1" 6529 class="qtyinputcs" 6530 type="text" 6531 name="quantity" 6532 min="1" 6533 pattern="[0-9]*" 6534 > 6535
6536 <span class="cusqtyspan quantity-52204785762620 quantity-var-10167998513468" 6537 >1</span 6538 > 6539 </div> 6540 </div> 6541 </div> 6542 </div> 6543</div> 6544 6545 6546 </div> 6547 </div> 6548 </div> 6549 6550 6551 6552 6553 6554 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6555 <img src="//thrivemeals.com.au/cdn/shop/files/Quest_TortillaStyle-ProteinChips_32g_NachoCheese_120X120_crop_center.png?v=1758600266" width="auto" height="auto" class="m-2 rounded m-auto" alt="Quest Chips" /> 6556 <div class="mt-auto w-100 px-2"> 6557 <p class="mb-1 lh-sm fs-14">Quest Chips</p> 6558 <p class="fs-16 fw-bold comparePriceOuter">$5.95 6559 </p> 6560 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6561 6562 <div class="product-all w-100 product-id-10168002117948 " data-product-id="10168002117948"> 6563 <div class="add-cart-button d-none"> 6564 <a href="javascript:void(0);" onclick="localCart.addItem(10168002117948, 52204828000572, 'Quest Chips', '/products/quest-protein-chips-tortilla-style-nacho-cheese', '//thrivemeals.com.au/cdn/shop/files/Quest_TortillaStyle-ProteinChips_32g_NachoCheese_150X150_crop_center.png?v=1758600266', 595, 595, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6565 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6566 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6567 <span class="cart-added"><i class="ion-android-done"></i></span> 6568 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6569 </a> 6570 </div> 6571 <div class="quantity-selector d-none"> 6572 <div class="upsell_quantity buttons d-flex"> 6573 <div class="product-quantity" data-variant="52204828000572"> 6574 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6575 <input 6576 value="1" 6577 class="qtyinputcs" 6578 type="text" 6579 name="quantity" 6580 min="1" 6581 pattern="[0-9]*" 6582 > 6583 6584 <span class="cusqtyspan quantity-52204828000572 quantity-var-10168002117948" 6585 >1</span 6586 > 6587 </div> 6588 </div> 6589 </div> 6590 </div> 6591</div> 6592 6593 6594 </div> 6595 </div> 6596 </div> 6597 6598 6599 6600 6601 6602 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6603 <img src="//thrivemeals.com.au/cdn/shop/files/Gemini_Generated_Image_3fc5us3fc5us3fc5_transparent_064ea253-f2ff-4038-8951-424a195c3cc1_120X120_crop_center.png?v=1781165345" width="auto" height="auto" class="m-2 rounded m-auto" alt="Peanut Granola" /> 6604 <div class="mt-auto w-100 px-2"> 6605 <p class="mb-1 lh-sm fs-14">Peanut Granola</p> 6606 <p class="fs-16 fw-bold comparePriceOuter">$9.95 6607 </p> 6608 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6609 6610 <div class="product-all w-100 product-id-10142720983356 " data-product-id="10142720983356"> 6611 <div class="add-cart-button d-none"> 6612 <a href="javascript:void(0);" onclick="localCart.addItem(10142720983356, 52093242704188, 'Peanut Granola', '/products/peanut-granola', '//thrivemeals.com.au/cdn/shop/files/Gemini_Generated_Image_3fc5us3fc5us3fc5_transparent_064ea253-f2ff-4038-8951-424a195c3cc1_150X150_crop_center.png?v=1781165345', 995, 995, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6613 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6614 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6615 <span class="cart-added"><i class="ion-android-done"></i></span> 6616 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6617 </a> 6618 </div> 6619 <div class="quantity-selector d-none"> 6620 <div class="upsell_quantity buttons d-flex"> 6621 <div class="product-quantity" data-variant="52093242704188"> 6622 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6623 <input 6624 value="1" 6625 class="qtyinputcs" 6626 type="text" 6627 name="quantity" 6628 min="1" 6629 pattern="[0-9]*" 6630 > 6631
6632 <span class="cusqtyspan quantity-52093242704188 quantity-var-10142720983356" 6633 >1</span 6634 > 6635 </div> 6636 </div> 6637 </div> 6638 </div> 6639</div> 6640 6641 6642 </div> 6643 </div> 6644 </div> 6645 6646 6647 6648 6649 6650 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 6651 <img src="//thrivemeals.com.au/cdn/shop/files/Gemini_Generated_Image_pwc5fjpwc5fjpwc5_transparent_120X120_crop_center.png?v=1781165219" width="auto" height="auto" class="m-2 rounded m-auto" alt="Almond Granola" /> 6652 <div class="mt-auto w-100 px-2"> 6653 <p class="mb-1 lh-sm fs-14">Almond Granola</p> 6654 <p class="fs-16 fw-bold comparePriceOuter">$9.95 6655 </p> 6656 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 6657 6658 <div class="product-all w-100 product-id-10142721278268 " data-product-id="10142721278268"> 6659 <div class="add-cart-button d-none"> 6660 <a href="javascript:void(0);" onclick="localCart.addItem(10142721278268, 52093247619388, 'Almond Granola', '/products/almond-granola', '//thrivemeals.com.au/cdn/shop/files/Gemini_Generated_Image_pwc5fjpwc5fjpwc5_transparent_150X150_crop_center.png?v=1781165219', 995, 995, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 6661 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 6662 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 6663 <span class="cart-added"><i class="ion-android-done"></i></span> 6664 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 6665 </a> 6666 </div> 6667 <div class="quantity-selector d-none"> 6668 <div class="upsell_quantity buttons d-flex"> 6669 <div class="product-quantity" data-variant="52093247619388"> 6670 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 6671 <input 6672 value="1" 6673 class="qtyinputcs" 6674 type="text" 6675 name="quantity" 6676 min="1" 6677 pattern="[0-9]*" 6678 > 6679 6680 <span class="cusqtyspan quantity-52093247619388 quantity-var-10142721278268" 6681 >1</span 6682 > 6683 </div> 6684 </div> 6685 </div> 6686 </div> 6687</div> 6688 6689 6690 </div> 6691 </div> 6692 </div> 6693 6694 6695 6696 6697 </div> 6698 </div> 6699 </div> 6700 6701 <div class="col-lg-8 ps-0 d-flex flex-column p-0 h-100 main-cart-container"> 6702 6703 6704 6705 <div class="flex-grow-1 overflow-auto"> 6706 6707 6708 <style> 6709 #mini-cart .timerContainer.pill-static .cutoff-note { 6710 margin: 0; 6711 } 6712 #mini-cart .timerContainer.pill-static { 6713 flex-direction: row; 6714 align-items: center; 6715 } 6716</style><div class="timerContainer pill-static d-flex flex-column gap-2 not_added"> 6717 <div class="timerOuter"> 6718 <p class="cutoff-note fs-11 mb-0">Edit this order until <strong>Tuesday 9:00pm (AEST)</strong></p> 6719 </div> 6720</div> 6721<div class="cart-plan-strip d-none" style="display:none;"> 6722 <div class="cart-plan-strip-main"> 6723 <div class="cart-plan-strip-text"> 6724 <div class="cart-plan-strip-title"></div> 6725 <div class="cart-plan-strip-sub"></div> 6726 </div><a href="/pages/build-your-box" class="cart-plan-strip-change" data-action="change-plan" role="button">Change</a> 6727 </div> 6728 <div class="cart-plan-strip-note d-none"> 6729 <span class="cart-plan-strip-note-icon" aria-hidden="true"></span> 6730 <span class="cart-plan-strip-note-text"></span> 6731 </div> 6732 </div> 6733 <div class="cartHead d-flex align-items-center justify-content-between py-1"> 6734 <div class="d-flex align-items-center"> 6735 <div class="cartTitle"> 6736 <p>Your box</p> 6737 </div> 6738 <a href="/collections/fresh-ready-meals" class="text-green addmore">+ Add More Items</a> 6739 </div> 6740 <a href="javascript:void(0)" class="shopping-cart-close"> 6741 <i class="ion-close-round"></i> 6742 </a> 6743 </div> 6744 <div class="cartBody pm-3"> 6745 <div class="nonStickyBOttom px-2"><div class="cart-tempty-title emptyCArt" style="display:block;"> 6746 <i class="icon-handbag"></i> 6747 <p class="text-center mb-4">You have no items in your cart</p> 6748 <div class="empty-cart-actions"> 6749 <a href="/collections/fresh-ready-meals" class="btn btn-style3">Browse the menu</a> 6750 <a href="/collections/supplements" class="btn btn-style3 btn-outline-empty">Browse supplements</a> 6751 </div> 6752 </div> 6753 <div id="cart-item-title" class="cart-item-title" style="display:none;"> 6754 <div class="d-flex align-items-center justify-content-between my-1"> 6755 <p class="p-0 countOuterBOx fs-16">
6756 <span class="cart-count-desc fs-16">Items</span> 6757 <span class="cart-count-item bigcounter fs-16">0</span> 6758 <span class="cart-count-desc fs-16"></span> 6759 </p> 6760 <a class="p-0" onclick="localCart.clearCartDataLocal();" href="javascript:void(0);">Clear Cart</a> 6761 </div> 6762 </div><div class="alacarte-eyebrow d-none" style="display:none;"> 6763 <span class="alacarte-eyebrow-title">à la carte meals · <span class="alacarte-filled">0</span></span><span class="alacarte-eyebrow-nudge d-none"></span> 6764 </div><div class="cart-break-nudge d-none" style="display:none;"> 6765 <div class="cart-break-nudge-main"> 6766 <div class="cart-break-nudge-text"></div> 6767 <div class="cart-break-nudge-sub"></div> 6768 </div> 6769 <button type="button" class="cart-break-nudge-cta" data-action="add-meals">Add more</button> 6770 </div> 6771 <ul id="cart-item-wrap" class="cart-item-loop cart-item-wrap" style="display:none;"> 6772 </ul><div class="cart-supplements-section d-none" style="display:none;"> 6773 <div class="cart-supp-eyebrow"> 6774 <span class="cart-supp-eyebrow-title">Supplements & extras</span> 6775 <span class="cart-supp-eyebrow-flat">flat price</span> 6776 </div><div class="cart-supp-cadence cart-supp-cadence--single" aria-label="Supplement frequency"> 6777 <span class="cart-supp-cadence-pill is-active" data-cadence="onetime">One-time</span> 6778 </div> 6779 <ul class="cart-supp-list"></ul> 6780 <div class="cart-supp-note"> 6781 <i class="fa-solid fa-circle-info me-1"></i> 6782 <span>Supplements don't count toward your meal tier, and bill on their own schedule.</span> 6783 </div> 6784 </div><a href="/collections/fresh-ready-meals" class="cart-add-more-bottom" style="display:none;" role="button"> 6785 <span class="cart-add-more-bottom-plus" aria-hidden="true">+</span> Add more from the menu 6786 </a><link href="//thrivemeals.com.au/cdn/shop/t/214/assets/postal-code.css?v=48089929789762766361783673534" rel="stylesheet" type="text/css" media="all" /> 6787<link href="//thrivemeals.com.au/cdn/shop/t/214/assets/mini-cart-steps.css?v=61382785397838109361783673534" rel="stylesheet" type="text/css" media="all" />
6788<script type="application/json" id="customer-default-address"> 6789{ 6790 "email": "", 6791 "phone": "", 6792 "address": "", 6793 "address2": "", 6794 "suburb": "", 6795 "state": "", 6796 "postcode": "" 6797} 6798</script>
6798<script src="https://cdn.jsdelivr.net/npm/dayjs@1/dayjs.min.js" defer></script>
vendor: 1 bytes, line 6798
6798
6799<script src="https://cdn.jsdelivr.net/npm/dayjs@1/plugin/utc.js" defer></script>
vendor: 1 bytes, line 6799
6799
6800<script src="https://cdn.jsdelivr.net/npm/dayjs@1/plugin/timezone.js" defer></script>
vendor: 1 bytes, line 6800
6800
6801<script src="https://cdn.jsdelivr.net/npm/dayjs@1/plugin/isSameOrBefore.js" defer></script>
vendor: 1 bytes, line 6801
6801
6802<script src="//thrivemeals.com.au/cdn/shop/t/214/assets/mini-cart-steps.js?v=101600843831297644891784701492" defer></script>
vendor: 1 bytes, line 6802
6802
6803<script src="//thrivemeals.com.au/cdn/shop/t/214/assets/postal-code-new.js?v=139027243019570931851783673534" defer></script>
6803 6804<link href="//thrivemeals.com.au/cdn/shop/t/214/assets/address-check.css?v=81337098211773317121789129135" rel="stylesheet" type="text/css" media="all" /> 6805 <div class="acheck acheck--drawer" id="acheck-drawer"> 6806 <div class="acheck-phone"> 6807 <header class="acheck-appbar"> 6808 <button type="button" class="acheck-back" data-action="drawer-back" aria-label="Back"> 6809 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 12H5M11 18l-6-6 6-6"/></svg> 6810 </button> 6811 <div class="acheck-appbar-title">Delivery address</div> 6812 <span class="acheck-appbar-right"></span> 6813 </header> 6814 6815 <div class="acheck-body" data-state="form"> 6816 <div class="acheck-eyebrow">Last step before payment</div> 6817 <h1 class="acheck-display">Where are we<br>delivering?</h1> 6818 <p class="acheck-intro">We just need a verified delivery address to complete your order. We check your <strong>suburb</strong>, not just your postcode.</p> 6819 <a href="https://thrivemeals.com.au/customer_authentication/redirect?locale=en®ion_country=AU" class="acheck-login"> 6820 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/></svg> 6821 <span>Returning? <strong>Log in</strong> â we'll use your saved address.</span> 6822 <svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6l6 6-6 6"/></svg> 6823 </a> 6824 <div class="acheck-fields"> 6825 <label class="acheck-field"><span>Street address</span><input id="acheck-d-line" type="text" placeholder="42 Example St" autocomplete="address-line1"></label><div class="acheck-note acheck-note--unit" id="acheck-d-unit-note" hidden> 6826 <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:0 0 auto;margin-top:1px"><path d="M3 21h18"/><path d="M5 21V7l7-4 7 4v14"/><path d="M9 9h.01M9 13h.01M9 17h.01M15 9h.01M15 13h.01M15 17h.01"/></svg> 6827 <p>Unit <strong class="acheck-unit-val"></strong> â added to your delivery address for checkout.</p> 6828 </div> 6829 <label class="acheck-field"><span>Suburb</span><input id="acheck-d-suburb" type="text" placeholder="Suburb" autocomplete="address-level2"></label> 6830 <div class="acheck-row"> 6831 <label class="acheck-field acheck-field--state"><span>State</span><input id="acheck-d-state" type="text" placeholder="NSW" autocomplete="address-level1"></label> 6832 <label class="acheck-field"><span>Postcode</span><input id="acheck-d-postcode" type="text" inputmode="numeric" placeholder="2026" autocomplete="postal-code"></label> 6833 </div> 6834 </div> 6835 <div class="acheck-note"> 6836 <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:0 0 auto;margin-top:1px"><path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z"/><path d="M9 12l2 2 4-4"/></svg> 6837 <p>Checked against THR1VE's own delivery network â we verify your <strong>suburb</strong>, not just your postcode, so your box reaches the right door.</p> 6838 </div> 6839 <div class="acheck-error" role="alert" hidden></div> 6840 </div> 6841 6842 <div class="acheck-body" data-state="schedule" hidden> 6843 <div class="acheck-zone-ok"> 6844 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg> 6845 <span>Good news â we deliver to <span class="acheck-suburb-ok">your area</span></span> 6846 </div> 6847 <h1 class="acheck-display">Pick your first<br><span style="color:var(--ac-green)">delivery</span>.</h1> 6848 <p class="acheck-intro">We dispatch Friday and deliver Saturday onwards. You can change this any week before the cutoff.</p> 6849 <div class="acheck-eyebrow" style="margin:22px 0 10px">Delivery date</div> 6850 <div class="acheck-dates" id="acheck-d-dates"></div> 6851 <div class="acheck-note acheck-note--leaf"> 6852 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:0 0 auto;margin-top:1px"><path d="M11 20A7 7 0 0 1 4 13c0-4 3-8 9-9 1 6-1 10-5 12"/><path d="M4 21c2-4 5-6 9-7"/></svg> 6853 <p>Earlier dates arrive with more fridge life. Every box lands with at least <strong>5 days fresh</strong>.</p> 6854 </div> 6855 <div class="acheck-eyebrow" style="margin:22px 0 10px">Time window</div> 6856 <div class="acheck-windows"> 6857 <button type="button" class="acheck-window" data-window="day" data-start="07:00" data-end="18:00"> 6858 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg>
6859 <span class="acheck-window-text"><b>Daytime</b><i>7am â 6pm</i></span> 6860 <span class="acheck-window-radio"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg></span> 6861 </button> 6862 <button type="button" class="acheck-window" data-window="early" data-start="00:00" data-end="08:00"> 6863 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg> 6864 <span class="acheck-window-text"><b>Early morning</b><i>12am â 8am</i></span> 6865 <span class="acheck-window-radio"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg></span> 6866 </button> 6867 </div> 6868 <div class="acheck-note acheck-note--truck"> 6869 <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex:0 0 auto;margin-top:1px"><path d="M3 7h11v8H3zM14 10h4l3 3v2h-7z"/><circle cx="7" cy="18" r="1.5"/><circle cx="17" cy="18" r="1.5"/></svg> 6870 <p class="acheck-sched-summary">Choose a date and window â we'll text you a tighter time on the day.</p> 6871 </div> 6872 </div> 6873 6874 <div class="acheck-body" data-state="waitlist" hidden> 6875 <div class="acheck-icon-tile acheck-icon-tile--orange"> 6876 <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7h11v8H3zM14 10h4l3 3v2h-7z"/><circle cx="7" cy="18" r="1.5"/><circle cx="17" cy="18" r="1.5"/></svg> 6877 </div> 6878 <h1 class="acheck-display">We're not in<br><span class="acheck-suburb-out">your area</span> yet.</h1> 6879 <p class="acheck-intro">Our delivery network doesn't reach <strong class="acheck-suburb-out2">your area</strong> right now. Leave your email and we'll tell you the moment we do.</p> 6880 <div class="acheck-fields" style="margin-top:20px"><label class="acheck-field"><span>Email</span><input id="acheck-d-wl-email" type="email" placeholder="[email protected]" autocomplete="email"></label></div> 6881 <button type="button" class="acheck-btn acheck-btn--go" data-action="join-waitlist" disabled style="margin-top:14px">Join the waitlist 6882 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></button> 6883 <button type="button" class="acheck-link acheck-link--green" data-action="try-again">Try a different address</button> 6884 </div> 6885 6886 <div class="acheck-body acheck-body--center" data-state="joined" hidden> 6887 <div class="acheck-icon-circle"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg></div> 6888 <h1 class="acheck-display">You're on the list.</h1> 6889 <p class="acheck-intro acheck-intro--center">We'll email <strong class="acheck-wl-email-out">you</strong> as soon as we deliver to your area.</p> 6890 <button type="button" class="acheck-btn acheck-btn--ghost" data-action="drawer-back" style="margin-top:22px;max-width:220px">Back to cart</button> 6891 </div> 6892 6893 <div class="acheck-sticky" data-state="form"> 6894 <button type="button" class="acheck-btn acheck-btn--go" data-action="check" disabled>Confirm address & continue 6895 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></button> 6896 </div> 6897 <div class="acheck-sticky" data-state="schedule" hidden> 6898 <button type="button" class="acheck-btn acheck-btn--go" data-action="confirm-schedule" disabled>Pick a date and time 6899 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></button> 6900 <button type="button" class="acheck-link acheck-link--muted" data-action="back-to-form">Change address</button> 6901 </div> 6902 </div> 6903</div> 6904
6905<script> 6906(function () { 6907 var root = document.getElementById("acheck-drawer"); 6908 if (!root || root.dataset.wired) return; root.dataset.wired = "1"; 6909 var API = "https://83cv7ta60b.execute-api.ap-southeast-2.amazonaws.com"; 6910 var DOW = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"], MON = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 6911 var line = root.querySelector("#acheck-d-line"), suburb = root.querySelector("#acheck-d-suburb"), 6912 stateEl = root.querySelector("#acheck-d-state"), postcode = root.querySelector("#acheck-d-postcode"), 6913 checkBtn = root.querySelector('[data-action="check"]'), errEl = root.querySelector(".acheck-error"), 6914 datesWrap = root.querySelector("#acheck-d-dates"), confirmBtn = root.querySelector('[data-action="confirm-schedule"]'), 6915 schedSummary = root.querySelector(".acheck-sched-summary"), 6916 unitNote = root.querySelector("#acheck-d-unit-note"), unitValEl = root.querySelector(".acheck-unit-val"); 6917 // capturedUnit = the unit/apartment (checkout address2) AUTO-CAPTURED from the last AddressFinder 6918 // selection. Never typed by the customer. Cleared when they retype the street or pick a unit-less 6919 // address, so a stale unit can never ride along (empty => no address2, address1 stays clean). 6920 var currentAddr = null, selectedDateKey = "", selectedWindow = null, DATES = [], API_DATES = null, capturedUnit = ""; 6921 function setCapturedUnit(v){ capturedUnit = (v || "").toString().trim(); 6922 if(unitNote){ if(capturedUnit){ if(unitValEl) unitValEl.textContent = capturedUnit; unitNote.hidden = false; } else { unitNote.hidden = true; } } } 6923 6924 function showState(s){ root.querySelectorAll(".acheck-body,.acheck-sticky").forEach(function(b){ b.hidden = b.getAttribute("data-state") !== s; }); } 6925 function setText(sel,v){ root.querySelectorAll(sel).forEach(function(e){ e.textContent = v; }); } 6926 // STATE IS REQUIRED (T-0069). The cart engine's validateBeforeCheckout() rejects checkout unless 6927 // window_state has address AND suburb AND state AND postcode. This gate used to omit State, so a 6928 // customer who typed the address by hand (AddressFinder autofills State; manual entry does not) 6929 // could confirm with State blank â saveValidated() then wrote state:"" while still flagging the 6930 // address "validated", and checkout dead-ended silently with no error and no network. Requiring 6931 // the same four parts the checkout validator requires is what keeps the two in agreement. 6932 function addrComplete(){ return !!(line.value.trim() && suburb.value.trim() && stateEl.value.trim() && postcode.value.trim()); } 6933 function syncCheck(){ 6934 var ok = addrComplete(); 6935 checkBtn.disabled = !ok; 6936 // Say WHY the button is inert. A greyed-out button with no reason is its own trap â and the 6937 // State box shows a grey "NSW" placeholder that reads like a filled value, so the customer has 6938 // no way to guess. Only speak once the other three fields are in, so we don't nag mid-typing. 6939 // Reuses the existing .acheck-error element; tagged so we only ever clear our OWN message. 6940 var needState = !ok && !stateEl.value.trim() && line.value.trim() && suburb.value.trim() && postcode.value.trim(); 6941 // Mark the FIELD, not just the banner. The State box shows a grey "NSW" placeholder that reads 6942 // like an entered value, so a message alone still leaves the customer hunting for which box is 6943 // blocking them. Inline so this needs no stylesheet change (the two surfaces load different CSS). 6944 if (stateEl) { 6945 // 2px, not the default 1px: measured at 1px the red border was present in the DOM but did not 6946 // read as a marker in the rendered page, which defeats the point of marking the field at all. 6947 stateEl.style.borderColor = needState ? "#E23B3B" : ""; 6948 stateEl.style.borderWidth = needState ? "2px" : ""; 6949 stateEl.setAttribute("aria-invalid", needState ? "true" : "false"); 6950 } 6951 if (!errEl) return; 6952 if (needState) { 6953 errEl.textContent = "Add your state (e.g. QLD) to continue."; 6954 errEl.hidden = false; errEl.dataset.stateHint = "1"; 6955 } else if (errEl.dataset.stateHint === "1") { 6956 errEl.hidden = true; delete errEl.dataset.stateHint; 6957 } 6958 } 6959 [line,suburb,stateEl,postcode].forEach(function(el){ el && el.addEventListener("input", syncCheck); }); 6960 // A genuine keystroke in the street field means the customer is editing it by hand â drop any 6961 // previously auto-captured unit so a stale unit can't ride along (AddressFinder fills the field 6962 // programmatically WITHOUT a keydown, so this only fires on manual typing; result:select re-captures). 6963 if(line) line.addEventListener("keydown", function(){ if(capturedUnit) setCapturedUnit(""); }); 6964 6965 // Street-address autocomplete â reuse the theme's AddressFinder (GNAF, AU) widget on the street
6966 // field. On select it autofills street + suburb + state + postcode AND auto-captures any unit/ 6967 // apartment as checkout address2 (no manual entry), so the customer doesn't retype (same provider/ 6968 // key the product-add address popup uses). Serviceability is still decided by the HDC API on 6969 // "Confirm address" â this only speeds up data entry. 6970 function initAcheckAutocomplete(){ 6971 if (!window.AddressFinder || !line || line.dataset.afWired) return; 6972 line.dataset.afWired = "1"; 6973 try { 6974 var w = new AddressFinder.Widget(line, "XDGLJVBHMQAKF68W4CT7", "AU", { address_params: { gnaf: "1" } }); 6975 w.on("result:select", function (fullAddress, meta) { 6976 meta = meta || {}; 6977 // AU GNAF sub-dwelling convention (verified against the real widget response): 6978 // NON-unit -> address_line_1 = STREET ("42 Hall Street"), address_line_2 = null. 6979 // UNIT/apt -> address_line_1 = the UNIT prefix ("Unit 5" / "Unit 504, Level 5"), 6980 // address_line_2 = the STREET line ("17-23 Wallis Parade"). 6981 // So the STREET is address_line_2 when a sub-dwelling exists, else address_line_1; and the 6982 // UNIT (checkout address2) is address_line_1 when a sub-dwelling exists, else empty. This also 6983 // FIXES the prior bug where a unit address dropped the street and put "Unit 5" in #acheck-d-line. 6984 var hasSub = !!(meta.address_line_2 && String(meta.address_line_2).trim()); 6985 var streetLine = (hasSub ? meta.address_line_2 : meta.address_line_1) || meta.address_line_combined || fullAddress || line.value; 6986 line.value = streetLine; 6987 if (suburb) suburb.value = meta.locality_name || suburb.value; 6988 if (stateEl) stateEl.value = meta.state_territory || stateEl.value; 6989 if (postcode) postcode.value = meta.postcode || postcode.value; 6990 // Auto-capture the unit as address2 (empty when the address has none). 6991 setCapturedUnit(hasSub ? (meta.address_line_1 || (((meta.unit_type || "") + " " + (meta.unit_identifier || "")).trim())) : ""); 6992 syncCheck(); 6993 }); 6994 } catch (e) {} 6995 } 6996 if (window.AddressFinder) { initAcheckAutocomplete(); } 6997 else { 6998 var afSrc = "https://api.addressfinder.io/assets/v3/widget.js"; 6999 var existing = document.querySelector('script[src="' + afSrc + '"]'); 7000 if (existing) { existing.addEventListener("load", initAcheckAutocomplete); } 7001 else { var s = document.createElement("script"); s.src = afSrc; s.async = true; s.onload = initAcheckAutocomplete; document.body.appendChild(s); } 7002 } 7003 7004 // "Validated" must mean "complete enough for checkout" (T-0069). proceedToCheckout() SKIPS the 7005 // address step whenever thr1ve_address_validated === "1", so flagging an incomplete address as 7006 // validated is what turns a missing field into an unrecoverable dead end rather than a re-ask. 7007 // Returns false (and flags nothing) when a part is missing, so the caller can keep the customer 7008 // on the form instead of sending them into checkout. 7009 function saveValidated(a){ 7010 if(!(a && a.line && a.suburb && a.state && a.postcode)) return false; 7011 try { 7012 // address2 = the auto-captured unit (empty when none). custom-cart-ajax-local.js.liquid's 7013 // validatedAddress() + pushDeliveryAddressToCart() read widgetAddress.address2 and pass it as 7014 // checkout[shipping_address][address2] / Storefront deliveryAddressPreferences (both filter out 7015 // empties, so a blank unit never corrupts address1). 7016 var _unit = (capturedUnit || "").trim(); 7017 localStorage.setItem("widgetAddress", JSON.stringify({ address_line_combined:a.line, locality_name:a.suburb, state_territory:a.state, postcode:a.postcode, address2:_unit })); 7018 localStorage.setItem("thr1ve_address_validated","1"); 7019 var ws={}; try{ws=JSON.parse(localStorage.getItem("window_state")||"{}");}catch(e){} 7020 ws.address=[a.line,a.suburb,a.state,a.postcode].filter(Boolean).join(", "); ws.postcode=a.postcode; ws.suburb=a.suburb; ws.state=a.state; 7021 if(!ws.freq){ var ca={}; try{ca=JSON.parse(localStorage.getItem("cartAttributes")||"{}");}catch(e){} ws.freq=(ca&&ca.orderType&&ca.orderType.type)||"WeeklySubscription"; } 7022 // Supplements-only carts cannot take a subscription selling_plan â force One-Time so create-order succeeds.
7023 try { if(window.localCart && typeof localCart.supplementCartState==="function"){ var _ss=localCart.supplementCartState(localCart.cart&&localCart.cart.items); if(_ss.hasSupplement && _ss.nonSuppSubtotalCents===0) ws.freq="OneTimePurchase"; } } catch(e){} 7024 localStorage.setItem("window_state", JSON.stringify(ws)); 7025 } catch(e){} 7026 return true; } 7027 7028 // Delivery dates come from the HDC /delivery-dates API (the real, schedule-aware calculator used 7029 // by postal-code.js) â NOT a local guess. The API returns { data: { "YYYY-MM-DD": [windowsâ¦] } }; 7030 // its keys ARE the valid delivery dates (Friday-dispatch schedule etc.). Parse the key parts by 7031 // hand so the weekday isn't shifted a day by UTC date parsing. (Was: local "next Saturday + 6 7032 // consecutive days" which wrongly showed e.g. Sat 4 Jul instead of the API's dates.) 7033 function deliveryDates(){ var out=[]; var keys = API_DATES ? Object.keys(API_DATES).sort().slice(0,6) : []; 7034 keys.forEach(function(key,i){ var pp=String(key).split("-"); var x=new Date(+pp[0],(+pp[1])-1,+pp[2]); 7035 out.push({key:key,dow:DOW[x.getDay()],day:x.getDate(),mon:MON[x.getMonth()],soonest:i===0}); }); return out; } 7036 function renderDates(){ if(!datesWrap) return; DATES=deliveryDates(); if(!DATES.length){ datesWrap.innerHTML=""; selectedDateKey=""; updateSched(); return; } selectedDateKey=DATES[0].key; selectedWindow=null; 7037 root.querySelectorAll(".acheck-window").forEach(function(w){ w.classList.remove("is-on"); }); 7038 datesWrap.innerHTML = DATES.map(function(d){ return '<button type="button" class="acheck-date'+(d.key===selectedDateKey?' is-on':'')+'" data-date="'+d.key+'">'+(d.soonest?'<span class="acheck-date-fresh">Freshest</span>':'')+'<span class="acheck-date-dow">'+d.dow+'</span><span class="acheck-date-day">'+d.day+'</span><span class="acheck-date-mon">'+d.mon+'</span></button>'; }).join(""); updateSched(); } 7039 function chosen(){ return DATES.filter(function(d){return d.key===selectedDateKey;})[0]; } 7040 function updateSched(){ var cd=chosen(); 7041 if(confirmBtn){ var ready=!!cd&&!!selectedWindow; confirmBtn.disabled=!ready; confirmBtn.childNodes[0].nodeValue=ready?"Confirm delivery & continue ":"Pick a date and time "; } 7042 if(schedSummary){ schedSummary.innerHTML = cd?("Arriving <strong>"+cd.dow+" "+cd.day+" "+cd.mon+"</strong>"+(selectedWindow?", "+selectedWindow.range:"")+". We'll text you a tighter window on the day."):"Choose a date and window â we'll text you a tighter time on the day."; } } 7043 7044 function check(){ var a={line:line.value.trim(),suburb:suburb.value.trim(),state:stateEl.value.trim(),postcode:postcode.value.trim()}; 7045 if(errEl) errEl.hidden=true; checkBtn.disabled=true; var lbl=checkBtn.innerHTML; checkBtn.textContent="Checkingâ¦"; 7046 var onErr=function(){ checkBtn.innerHTML=lbl; syncCheck(); if(errEl){errEl.textContent="We couldn't check that address just now â please try again.";errEl.hidden=false;} }; 7047 var done=function(ok,data){ checkBtn.innerHTML=lbl; syncCheck(); if(ok){ currentAddr=a; API_DATES=data||null; setText(".acheck-suburb-ok",a.suburb||"your area"); renderDates(); showState("schedule"); } 7048 else { setText(".acheck-suburb-out, .acheck-suburb-out2",a.suburb||"your area"); showState("waitlist"); } }; 7049 // Sydney-local "today" as the query start date (matches postal-code.js; avoids a UTC off-by-one). 7050 var today=new Date().toLocaleDateString("en-CA",{timeZone:"Australia/Sydney"}); 7051 fetch(API+"/delivery-dates/"+encodeURIComponent(a.suburb)+"/"+encodeURIComponent(a.postcode)+"/2/"+today).then(function(r){return r.text();}) 7052 .then(function(t){ var ok=false,data=null; try{var j=JSON.parse(t); data=j.data||null; ok=(j.status===true||j.status==="true")&&data&&Object.keys(data).length>0;}catch(e){} done(ok,data); }).catch(onErr); } 7053 7054 function confirmSchedule(){ var cd=chosen(); if(!cd||!selectedWindow||!currentAddr) return; 7055 // Never hand an incomplete address to checkout (T-0069): proceedToCheckout() would be rejected by 7056 // validateBeforeCheckout() and the customer would sit on "Taking you to checkoutâ¦" forever with 7057 // no message. Send them back to the form with the missing field named instead. 7058 if(!saveValidated(currentAddr)){ 7059 showState("form"); 7060 if(errEl){ errEl.textContent="Please add your state to complete the delivery address."; errEl.hidden=false; }
7061 if(stateEl && !stateEl.value.trim()) stateEl.focus(); 7062 syncCheck(); return; } 7063 var di={ suburb:currentAddr.suburb,postcode:currentAddr.postcode,state:currentAddr.state,deliveryDate:cd.key, 7064 deliveryStart:selectedWindow.start,deliveryEnd:selectedWindow.end,deliveryLabel:cd.dow+" "+cd.day+" "+cd.mon,timestamp:Date.now() }; 7065 try { var sh=localStorage.getItem("shipping_amount"); if(!sh||sh===""||sh==="null") localStorage.setItem("shipping_amount","0"); 7066 var ws={}; try{ws=JSON.parse(localStorage.getItem("window_state")||"{}");}catch(e){} ws.date=cd.key; ws.time=selectedWindow.range; localStorage.setItem("window_state",JSON.stringify(ws)); } catch(e){} 7067 confirmBtn.childNodes[0].nodeValue="Taking you to checkout⦠"; 7068 var go=function(){ try{localStorage.setItem("deliveryInfo",JSON.stringify(di));}catch(e){} 7069 // We're INSIDE the cart drawer â run checkout in-context, no page navigation. 7070 if(window.localCart && typeof localCart.proceedToCheckout==="function"){ localCart.proceedToCheckout("mini-cart"); } 7071 }; 7072 fetch(API+"/packing-dates/"+encodeURIComponent(currentAddr.suburb)+"/"+encodeURIComponent(currentAddr.postcode)+"/2/"+cd.key) 7073 .then(function(r){return r.text();}).then(function(t){ try{var j=JSON.parse(t); if(j.status&&j.data) di.packingDate=j.data;}catch(e){} go(); }).catch(go); } 7074 7075 function closeDrawer(){ 7076 if(window.localCart && typeof localCart.closeAddressCheckInDrawer==="function"){ localCart.closeAddressCheckInDrawer(); } 7077 else { root.style.display="none"; document.querySelectorAll(".acheck-hidden").forEach(function(el){ el.classList.remove("acheck-hidden"); }); window.__thr1veInFinalFlow=false; } 7078 } 7079 7080 root.addEventListener("click", function(e){ 7081 var t=e.target.closest("[data-action], .acheck-date, .acheck-window"); if(!t) return; 7082 if(t.classList.contains("acheck-date")){ selectedDateKey=t.getAttribute("data-date"); root.querySelectorAll(".acheck-date").forEach(function(d){ d.classList.toggle("is-on",d===t); }); updateSched(); return; } 7083 if(t.classList.contains("acheck-window")){ selectedWindow={id:t.getAttribute("data-window"),start:t.getAttribute("data-start"),end:t.getAttribute("data-end"),range:t.querySelector(".acheck-window-text i").textContent}; 7084 root.querySelectorAll(".acheck-window").forEach(function(w){ w.classList.toggle("is-on",w===t); }); updateSched(); return; } 7085 var a=t.getAttribute("data-action"); 7086 if(a==="check") check(); 7087 else if(a==="confirm-schedule") confirmSchedule(); 7088 else if(a==="back-to-form") showState("form"); 7089 else if(a==="drawer-back") closeDrawer();
7090 else if(a==="try-again") showState("form"); 7091 else if(a==="join-waitlist"){ var em=root.querySelector("#acheck-d-wl-email"); setText(".acheck-wl-email-out",(em&&em.value.trim())||""); showState("joined"); } 7092 }); 7093 var wl=root.querySelector("#acheck-d-wl-email"), jb=root.querySelector('[data-action="join-waitlist"]'); 7094 if(wl&&jb) wl.addEventListener("input", function(){ jb.disabled=!wl.value.trim(); }); 7095 7096 // Heal a stale "validated" flag left by the pre-T-0069 form (or any other writer) over an address 7097 // that checkout will reject. proceedToCheckout() skips the address step on that flag alone, so an 7098 // incomplete address behind it dead-ends checkout; dropping the flag turns that into a normal 7099 // re-ask on the form, which now requires all four parts. 7100 try { 7101 if(localStorage.getItem("thr1ve_address_validated")==="1"){ 7102 var _ws0={}; try{_ws0=JSON.parse(localStorage.getItem("window_state")||"{}");}catch(e){} 7103 if(!(_ws0.address&&_ws0.suburb&&_ws0.state&&_ws0.postcode)) localStorage.removeItem("thr1ve_address_validated"); 7104 } 7105 } catch(e){} 7106 7107 // Entry point used by the checkout intercept: reset to the form and reveal. 7108 window.thr1veOpenAddressCheck = function(){ showState("form"); root.style.display="block"; }; 7109})(); 7110</script>
7110 7111 7112 </div> 7113 </div><div class="col-lg-12 d-lg-none d-flex flex-column bg-light-green productSliderSection mt-4 upsell-pro-custom upsell-mob-custom"> 7114 <h6 class="mt-3 text-center">Boost your cart ð</h6> 7115 <div class=" d-flex flex-row overflow-auto gap-2 px-2"> 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7126 <img src="//thrivemeals.com.au/cdn/shop/files/Caramel_Slice_120X120_crop_center.jpg?v=1737023316" width="auto" height="auto" class="m-2 rounded m-auto" alt="Caramel Slice" /> 7127 <div class="mt-auto w-100 px-2"> 7128 <p class="mb-1 lh-sm fs-14">Caramel Slice</p> 7129 <p class="fs-16 fw-bold comparePriceOuter">$4.95 7130 </p> 7131 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7132 7133 <div class="product-all w-100 product-id-9882190217532 " data-product-id="9882190217532"> 7134 <div class="add-cart-button d-none"> 7135 <a href="javascript:void(0);" onclick="localCart.addItem(9882190217532, 50756423713084, 'Caramel Slice', '/products/low-carb-caramel-slice', '//thrivemeals.com.au/cdn/shop/files/Caramel_Slice_150X150_crop_center.jpg?v=1737023316', 495, 495, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7136 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7137 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7138 <span class="cart-added"><i class="ion-android-done"></i></span> 7139 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7140 </a> 7141 </div> 7142 <div class="quantity-selector d-none"> 7143 <div class="upsell_quantity buttons d-flex"> 7144 <div class="product-quantity" data-variant="50756423713084"> 7145 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7146 <input 7147 value="1" 7148 class="qtyinputcs" 7149 type="text" 7150 name="quantity" 7151 min="1" 7152 pattern="[0-9]*" 7153 > 7154 7155 <span class="cusqtyspan quantity-50756423713084 quantity-var-9882190217532" 7156 >1</span 7157 > 7158 </div> 7159 </div> 7160 </div> 7161 </div> 7162</div> 7163 7164 7165 </div> 7166 </div> 7167 </div> 7168 7169 7170 7171 7172 7173 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7174 <img src="//thrivemeals.com.au/cdn/shop/files/LowCarbBlondie_120X120_crop_center.jpg?v=1738747519" width="auto" height="auto" class="m-2 rounded m-auto" alt="Coconut Blondie" /> 7175 <div class="mt-auto w-100 px-2"> 7176 <p class="mb-1 lh-sm fs-14">Coconut Blondie</p> 7177 <p class="fs-16 fw-bold comparePriceOuter">$4.95 7178 </p> 7179 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7180 7181 <div class="product-all w-100 product-id-9882190971196 " data-product-id="9882190971196"> 7182 <div class="add-cart-button d-none"> 7183 <a href="javascript:void(0);" onclick="localCart.addItem(9882190971196, 50756426596668, 'Coconut Blondie', '/products/low-carb-coconut-blondie', '//thrivemeals.com.au/cdn/shop/files/LowCarbBlondie_150X150_crop_center.jpg?v=1738747519', 495, 495, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7184 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7185 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7186 <span class="cart-added"><i class="ion-android-done"></i></span> 7187 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7188 </a> 7189 </div> 7190 <div class="quantity-selector d-none"> 7191 <div class="upsell_quantity buttons d-flex"> 7192 <div class="product-quantity" data-variant="50756426596668"> 7193 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7194 <input 7195 value="1" 7196 class="qtyinputcs" 7197 type="text" 7198 name="quantity" 7199 min="1" 7200 pattern="[0-9]*" 7201 > 7202
7203 <span class="cusqtyspan quantity-50756426596668 quantity-var-9882190971196" 7204 >1</span 7205 > 7206 </div> 7207 </div> 7208 </div> 7209 </div> 7210</div> 7211 7212 7213 </div> 7214 </div> 7215 </div> 7216 7217 7218 7219 7220 7221 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7222 <img src="//thrivemeals.com.au/cdn/shop/files/zucciniSlice_120X120_crop_center.jpg?v=1738747422" width="auto" height="auto" class="m-2 rounded m-auto" alt="Zucchini Slice" /> 7223 <div class="mt-auto w-100 px-2"> 7224 <p class="mb-1 lh-sm fs-14">Zucchini Slice</p> 7225 <p class="fs-16 fw-bold comparePriceOuter">$4.95 7226 </p> 7227 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7228 7229 <div class="product-all w-100 product-id-9882191364412 " data-product-id="9882191364412"> 7230 <div class="add-cart-button d-none"> 7231 <a href="javascript:void(0);" onclick="localCart.addItem(9882191364412, 50756427088188, 'Zucchini Slice', '/products/crustless-zucchini-slice', '//thrivemeals.com.au/cdn/shop/files/zucciniSlice_150X150_crop_center.jpg?v=1738747422', 495, 495, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7232 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7233 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7234 <span class="cart-added"><i class="ion-android-done"></i></span> 7235 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7236 </a> 7237 </div> 7238 <div class="quantity-selector d-none"> 7239 <div class="upsell_quantity buttons d-flex"> 7240 <div class="product-quantity" data-variant="50756427088188"> 7241 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7242 <input 7243 value="1" 7244 class="qtyinputcs" 7245 type="text" 7246 name="quantity" 7247 min="1" 7248 pattern="[0-9]*" 7249 > 7250 7251 <span class="cusqtyspan quantity-50756427088188 quantity-var-9882191364412" 7252 >1</span 7253 > 7254 </div> 7255 </div> 7256 </div> 7257 </div> 7258</div> 7259 7260 7261 </div> 7262 </div> 7263 </div> 7264 7265 7266 7267 7268 7269 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7270 <img src="//thrivemeals.com.au/cdn/shop/files/MacadamiaShortbread_120X120_crop_center.jpg?v=1738747284" width="auto" height="auto" class="m-2 rounded m-auto" alt="Macadamia Shortbread" /> 7271 <div class="mt-auto w-100 px-2"> 7272 <p class="mb-1 lh-sm fs-14">Macadamia Shortbread</p> 7273 <p class="fs-16 fw-bold comparePriceOuter">$4.95 7274 </p> 7275 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7276 7277 <div class="product-all w-100 product-id-9882192576828 " data-product-id="9882192576828"> 7278 <div class="add-cart-button d-none"> 7279 <a href="javascript:void(0);" onclick="localCart.addItem(9882192576828, 50756428431676, 'Macadamia Shortbread', '/products/macadamia-shortbread', '//thrivemeals.com.au/cdn/shop/files/MacadamiaShortbread_150X150_crop_center.jpg?v=1738747284', 495, 495, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7280 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7281 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7282 <span class="cart-added"><i class="ion-android-done"></i></span> 7283 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7284 </a> 7285 </div> 7286 <div class="quantity-selector d-none"> 7287 <div class="upsell_quantity buttons d-flex"> 7288 <div class="product-quantity" data-variant="50756428431676"> 7289 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7290 <input 7291 value="1" 7292 class="qtyinputcs" 7293 type="text" 7294 name="quantity" 7295 min="1" 7296 pattern="[0-9]*" 7297 > 7298
7299 <span class="cusqtyspan quantity-50756428431676 quantity-var-9882192576828" 7300 >1</span 7301 > 7302 </div> 7303 </div> 7304 </div> 7305 </div> 7306</div> 7307 7308 7309 </div> 7310 </div> 7311 </div> 7312 7313 7314 7315 7316 7317 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7318 <img src="//thrivemeals.com.au/cdn/shop/files/BlueberryMuffin1_120X120_crop_center.jpg?v=1737023439" width="auto" height="auto" class="m-2 rounded m-auto" alt="Berry Muffin" /> 7319 <div class="mt-auto w-100 px-2"> 7320 <p class="mb-1 lh-sm fs-14">Berry Muffin</p> 7321 <p class="fs-16 fw-bold comparePriceOuter">$4.95 7322 </p> 7323 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7324 7325 <div class="product-all w-100 product-id-8969868312892 " data-product-id="8969868312892"> 7326 <div class="add-cart-button d-none"> 7327 <a href="javascript:void(0);" onclick="localCart.addItem(8969868312892, 48069527339324, 'Berry Muffin', '/products/blueberry-muffin', '//thrivemeals.com.au/cdn/shop/files/BlueberryMuffin1_150X150_crop_center.jpg?v=1737023439', 495, 495, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7328 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7329 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7330 <span class="cart-added"><i class="ion-android-done"></i></span> 7331 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7332 </a> 7333 </div> 7334 <div class="quantity-selector d-none"> 7335 <div class="upsell_quantity buttons d-flex"> 7336 <div class="product-quantity" data-variant="48069527339324"> 7337 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7338 <input 7339 value="1" 7340 class="qtyinputcs" 7341 type="text" 7342 name="quantity" 7343 min="1" 7344 pattern="[0-9]*" 7345 > 7346 7347 <span class="cusqtyspan quantity-48069527339324 quantity-var-8969868312892" 7348 >1</span 7349 > 7350 </div> 7351 </div> 7352 </div> 7353 </div> 7354</div> 7355 7356 7357 </div> 7358 </div> 7359 </div> 7360 7361 7362 7363 7364 7365 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7366 <img src="//thrivemeals.com.au/cdn/shop/files/ChocBrownie34_120X120_crop_center.jpg?v=1737023381" width="auto" height="auto" class="m-2 rounded m-auto" alt="Chocolate Brownie" /> 7367 <div class="mt-auto w-100 px-2"> 7368 <p class="mb-1 lh-sm fs-14">Chocolate Brownie</p> 7369 <p class="fs-16 fw-bold comparePriceOuter">$3.95 7370 </p> 7371 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7372 7373 <div class="product-all w-100 product-id-8969884631356 " data-product-id="8969884631356"> 7374 <div class="add-cart-button d-none"> 7375 <a href="javascript:void(0);" onclick="localCart.addItem(8969884631356, 48069558174012, 'Chocolate Brownie', '/products/keto-brownie', '//thrivemeals.com.au/cdn/shop/files/ChocBrownie34_150X150_crop_center.jpg?v=1737023381', 395, 395, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7376 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7377 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7378 <span class="cart-added"><i class="ion-android-done"></i></span> 7379 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7380 </a> 7381 </div> 7382 <div class="quantity-selector d-none"> 7383 <div class="upsell_quantity buttons d-flex"> 7384 <div class="product-quantity" data-variant="48069558174012"> 7385 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7386 <input 7387 value="1" 7388 class="qtyinputcs" 7389 type="text" 7390 name="quantity" 7391 min="1" 7392 pattern="[0-9]*" 7393 > 7394
7395 <span class="cusqtyspan quantity-48069558174012 quantity-var-8969884631356" 7396 >1</span 7397 > 7398 </div> 7399 </div> 7400 </div> 7401 </div> 7402</div> 7403 7404 7405 </div> 7406 </div> 7407 </div> 7408 7409 7410 7411 7412 7413 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7414 <img src="//thrivemeals.com.au/cdn/shop/files/Nutessa_Slice_120X120_crop_center.jpg?v=1737074717" width="auto" height="auto" class="m-2 rounded m-auto" alt="Nutessa Slice" /> 7415 <div class="mt-auto w-100 px-2"> 7416 <p class="mb-1 lh-sm fs-14">Nutessa Slice</p> 7417 <p class="fs-16 fw-bold comparePriceOuter">$3.95 7418 </p> 7419 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7420 7421 <div class="product-all w-100 product-id-8219781759292 " data-product-id="8219781759292"> 7422 <div class="add-cart-button d-none"> 7423 <a href="javascript:void(0);" onclick="localCart.addItem(8219781759292, 44799334580540, 'Nutessa Slice', '/products/nutessa-slice', '//thrivemeals.com.au/cdn/shop/files/Nutessa_Slice_150X150_crop_center.jpg?v=1737074717', 395, 395, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7424 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7425 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7426 <span class="cart-added"><i class="ion-android-done"></i></span> 7427 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7428 </a> 7429 </div> 7430 <div class="quantity-selector d-none"> 7431 <div class="upsell_quantity buttons d-flex"> 7432 <div class="product-quantity" data-variant="44799334580540"> 7433 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7434 <input 7435 value="1" 7436 class="qtyinputcs" 7437 type="text" 7438 name="quantity" 7439 min="1" 7440 pattern="[0-9]*" 7441 > 7442 7443 <span class="cusqtyspan quantity-44799334580540 quantity-var-8219781759292" 7444 >1</span 7445 > 7446 </div> 7447 </div> 7448 </div> 7449 </div> 7450</div> 7451 7452 7453 </div> 7454 </div> 7455 </div> 7456 7457 7458 7459 7460 7461 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7462 <img src="//thrivemeals.com.au/cdn/shop/files/106_120X120_crop_center.png?v=1744607550" width="auto" height="auto" class="m-2 rounded m-auto" alt="Chicken Veggie Pizza" /> 7463 <div class="mt-auto w-100 px-2"> 7464 <p class="mb-1 lh-sm fs-14">Chicken Veggie Pizza</p> 7465 <p class="fs-16 fw-bold comparePriceOuter">$9.95 7466 </p> 7467 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7468 7469 <div class="product-all w-100 product-id-9995289821500 " data-product-id="9995289821500"> 7470 <div class="add-cart-button d-none"> 7471 <a href="javascript:void(0);" onclick="localCart.addItem(9995289821500, 51601956700476, 'Chicken Veggie Pizza', '/products/chickenveg-pizza', '//thrivemeals.com.au/cdn/shop/files/106_150X150_crop_center.png?v=1744607550', 995, 995, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7472 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7473 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7474 <span class="cart-added"><i class="ion-android-done"></i></span> 7475 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7476 </a> 7477 </div> 7478 <div class="quantity-selector d-none"> 7479 <div class="upsell_quantity buttons d-flex"> 7480 <div class="product-quantity" data-variant="51601956700476"> 7481 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7482 <input 7483 value="1" 7484 class="qtyinputcs" 7485 type="text" 7486 name="quantity" 7487 min="1" 7488 pattern="[0-9]*" 7489 > 7490
7491 <span class="cusqtyspan quantity-51601956700476 quantity-var-9995289821500" 7492 >1</span 7493 > 7494 </div> 7495 </div> 7496 </div> 7497 </div> 7498</div> 7499 7500 7501 </div> 7502 </div> 7503 </div> 7504 7505 7506 7507 7508 7509 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7510 <img src="//thrivemeals.com.au/cdn/shop/files/107_120X120_crop_center.png?v=1744607020" width="auto" height="auto" class="m-2 rounded m-auto" alt="Pepperoni Pizza" /> 7511 <div class="mt-auto w-100 px-2"> 7512 <p class="mb-1 lh-sm fs-14">Pepperoni Pizza</p> 7513 <p class="fs-16 fw-bold comparePriceOuter">$9.95 7514 </p> 7515 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7516 7517 <div class="product-all w-100 product-id-9995289854268 " data-product-id="9995289854268"> 7518 <div class="add-cart-button d-none"> 7519 <a href="javascript:void(0);" onclick="localCart.addItem(9995289854268, 51601956733244, 'Pepperoni Pizza', '/products/mammamia-pizza', '//thrivemeals.com.au/cdn/shop/files/107_150X150_crop_center.png?v=1744607020', 995, 995, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7520 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7521 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7522 <span class="cart-added"><i class="ion-android-done"></i></span> 7523 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7524 </a> 7525 </div> 7526 <div class="quantity-selector d-none"> 7527 <div class="upsell_quantity buttons d-flex"> 7528 <div class="product-quantity" data-variant="51601956733244"> 7529 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7530 <input 7531 value="1" 7532 class="qtyinputcs" 7533 type="text" 7534 name="quantity" 7535 min="1" 7536 pattern="[0-9]*" 7537 > 7538 7539 <span class="cusqtyspan quantity-51601956733244 quantity-var-9995289854268" 7540 >1</span 7541 > 7542 </div> 7543 </div> 7544 </div> 7545 </div> 7546</div> 7547 7548 7549 </div> 7550 </div> 7551 </div> 7552 7553 7554 7555 7556 7557 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7558 <img src="//thrivemeals.com.au/cdn/shop/files/SnackGroup13_120X120_crop_center.jpg?v=1741136946" width="auto" height="auto" class="m-2 rounded m-auto" alt="Variety Snack Bundle" /> 7559 <div class="mt-auto w-100 px-2"> 7560 <p class="mb-1 lh-sm fs-14">Variety Snack Bundle</p> 7561 <p class="fs-16 fw-bold comparePriceOuter">$29.95 7562 </p> 7563 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7564 7565 <div class="product-all w-100 product-id-9604639260988 " data-product-id="9604639260988"> 7566 <div class="add-cart-button d-none"> 7567 <a href="javascript:void(0);" onclick="localCart.addItem(9604639260988, 49814596682044, 'Variety Snack Bundle', '/products/snack-bundle', '//thrivemeals.com.au/cdn/shop/files/SnackGroup13_150X150_crop_center.jpg?v=1741136946', 2995, 2995, 1, 'Bundle', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7568 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7569 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7570 <span class="cart-added"><i class="ion-android-done"></i></span> 7571 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7572 </a> 7573 </div> 7574 <div class="quantity-selector d-none"> 7575 <div class="upsell_quantity buttons d-flex"> 7576 <div class="product-quantity" data-variant="49814596682044"> 7577 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7578 <input 7579 value="1" 7580 class="qtyinputcs" 7581 type="text" 7582 name="quantity" 7583 min="1" 7584 pattern="[0-9]*" 7585 > 7586
7587 <span class="cusqtyspan quantity-49814596682044 quantity-var-9604639260988" 7588 >1</span 7589 > 7590 </div> 7591 </div> 7592 </div> 7593 </div> 7594</div> 7595 7596 7597 </div> 7598 </div> 7599 </div> 7600 7601 7602 7603 7604 7605 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7606 <img src="//thrivemeals.com.au/cdn/shop/files/Snack_Bundle_120X120_crop_center.png?v=1741136946" width="auto" height="auto" class="m-2 rounded m-auto" alt="Saver Snack Bundle" /> 7607 <div class="mt-auto w-100 px-2"> 7608 <p class="mb-1 lh-sm fs-14">Saver Snack Bundle</p> 7609 <p class="fs-16 fw-bold comparePriceOuter">$11.95 7610 </p> 7611 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7612 7613 <div class="product-all w-100 product-id-9937929437500 " data-product-id="9937929437500"> 7614 <div class="add-cart-button d-none"> 7615 <a href="javascript:void(0);" onclick="localCart.addItem(9937929437500, 51432648343868, 'Saver Snack Bundle', '/products/saver-snack-bundle', '//thrivemeals.com.au/cdn/shop/files/Snack_Bundle_150X150_crop_center.png?v=1741136946', 1195, 1195, 1, 'Bundle', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7616 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7617 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7618 <span class="cart-added"><i class="ion-android-done"></i></span> 7619 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7620 </a> 7621 </div> 7622 <div class="quantity-selector d-none"> 7623 <div class="upsell_quantity buttons d-flex"> 7624 <div class="product-quantity" data-variant="51432648343868"> 7625 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7626 <input 7627 value="1" 7628 class="qtyinputcs" 7629 type="text" 7630 name="quantity" 7631 min="1" 7632 pattern="[0-9]*" 7633 > 7634 7635 <span class="cusqtyspan quantity-51432648343868 quantity-var-9937929437500" 7636 >1</span 7637 > 7638 </div> 7639 </div> 7640 </div> 7641 </div> 7642</div> 7643 7644 7645 </div> 7646 </div> 7647 </div> 7648 7649 7650 7651 7652 7653 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7654 <img src="//thrivemeals.com.au/cdn/shop/files/Quest_TortillaStyle-ProteinChips_32g_ChiliLimeFlavour_120X120_crop_center.png?v=1758599025" width="auto" height="auto" class="m-2 rounded m-auto" alt="Quest Chips" /> 7655 <div class="mt-auto w-100 px-2"> 7656 <p class="mb-1 lh-sm fs-14">Quest Chips</p> 7657 <p class="fs-16 fw-bold comparePriceOuter">$5.95 7658 </p> 7659 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7660 7661 <div class="product-all w-100 product-id-10167998513468 " data-product-id="10167998513468"> 7662 <div class="add-cart-button d-none"> 7663 <a href="javascript:void(0);" onclick="localCart.addItem(10167998513468, 52204785762620, 'Quest Chips', '/products/quest-protein-chips-tortilla-style-chili-lime-flavour', '//thrivemeals.com.au/cdn/shop/files/Quest_TortillaStyle-ProteinChips_32g_ChiliLimeFlavour_150X150_crop_center.png?v=1758599025', 595, 595, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7664 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7665 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7666 <span class="cart-added"><i class="ion-android-done"></i></span> 7667 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7668 </a> 7669 </div> 7670 <div class="quantity-selector d-none"> 7671 <div class="upsell_quantity buttons d-flex"> 7672 <div class="product-quantity" data-variant="52204785762620"> 7673 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7674 <input 7675 value="1" 7676 class="qtyinputcs" 7677 type="text" 7678 name="quantity" 7679 min="1" 7680 pattern="[0-9]*" 7681 > 7682
7683 <span class="cusqtyspan quantity-52204785762620 quantity-var-10167998513468" 7684 >1</span 7685 > 7686 </div> 7687 </div> 7688 </div> 7689 </div> 7690</div> 7691 7692 7693 </div> 7694 </div> 7695 </div> 7696 7697 7698 7699 7700 7701 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7702 <img src="//thrivemeals.com.au/cdn/shop/files/Quest_TortillaStyle-ProteinChips_32g_NachoCheese_120X120_crop_center.png?v=1758600266" width="auto" height="auto" class="m-2 rounded m-auto" alt="Quest Chips" /> 7703 <div class="mt-auto w-100 px-2"> 7704 <p class="mb-1 lh-sm fs-14">Quest Chips</p> 7705 <p class="fs-16 fw-bold comparePriceOuter">$5.95 7706 </p> 7707 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7708 7709 <div class="product-all w-100 product-id-10168002117948 " data-product-id="10168002117948"> 7710 <div class="add-cart-button d-none"> 7711 <a href="javascript:void(0);" onclick="localCart.addItem(10168002117948, 52204828000572, 'Quest Chips', '/products/quest-protein-chips-tortilla-style-nacho-cheese', '//thrivemeals.com.au/cdn/shop/files/Quest_TortillaStyle-ProteinChips_32g_NachoCheese_150X150_crop_center.png?v=1758600266', 595, 595, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7712 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7713 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7714 <span class="cart-added"><i class="ion-android-done"></i></span> 7715 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7716 </a> 7717 </div> 7718 <div class="quantity-selector d-none"> 7719 <div class="upsell_quantity buttons d-flex"> 7720 <div class="product-quantity" data-variant="52204828000572"> 7721 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7722 <input 7723 value="1" 7724 class="qtyinputcs" 7725 type="text" 7726 name="quantity" 7727 min="1" 7728 pattern="[0-9]*" 7729 > 7730 7731 <span class="cusqtyspan quantity-52204828000572 quantity-var-10168002117948" 7732 >1</span 7733 > 7734 </div> 7735 </div> 7736 </div> 7737 </div> 7738</div> 7739 7740 7741 </div> 7742 </div> 7743 </div> 7744 7745 7746 7747 7748 7749 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7750 <img src="//thrivemeals.com.au/cdn/shop/files/Gemini_Generated_Image_3fc5us3fc5us3fc5_transparent_064ea253-f2ff-4038-8951-424a195c3cc1_120X120_crop_center.png?v=1781165345" width="auto" height="auto" class="m-2 rounded m-auto" alt="Peanut Granola" /> 7751 <div class="mt-auto w-100 px-2"> 7752 <p class="mb-1 lh-sm fs-14">Peanut Granola</p> 7753 <p class="fs-16 fw-bold comparePriceOuter">$9.95 7754 </p> 7755 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7756 7757 <div class="product-all w-100 product-id-10142720983356 " data-product-id="10142720983356"> 7758 <div class="add-cart-button d-none"> 7759 <a href="javascript:void(0);" onclick="localCart.addItem(10142720983356, 52093242704188, 'Peanut Granola', '/products/peanut-granola', '//thrivemeals.com.au/cdn/shop/files/Gemini_Generated_Image_3fc5us3fc5us3fc5_transparent_064ea253-f2ff-4038-8951-424a195c3cc1_150X150_crop_center.png?v=1781165345', 995, 995, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7760 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7761 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7762 <span class="cart-added"><i class="ion-android-done"></i></span> 7763 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7764 </a> 7765 </div> 7766 <div class="quantity-selector d-none"> 7767 <div class="upsell_quantity buttons d-flex"> 7768 <div class="product-quantity" data-variant="52093242704188"> 7769 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7770 <input 7771 value="1" 7772 class="qtyinputcs" 7773 type="text" 7774 name="quantity" 7775 min="1" 7776 pattern="[0-9]*" 7777 > 7778
7779 <span class="cusqtyspan quantity-52093242704188 quantity-var-10142720983356" 7780 >1</span 7781 > 7782 </div> 7783 </div> 7784 </div> 7785 </div> 7786</div> 7787 7788 7789 </div> 7790 </div> 7791 </div> 7792 7793 7794 7795 7796 7797 <div class="item my-3 py-2 w-100 d-flex flex-column align-items-center text-center px-2" style="min-width: 9rem;"> 7798 <img src="//thrivemeals.com.au/cdn/shop/files/Gemini_Generated_Image_pwc5fjpwc5fjpwc5_transparent_120X120_crop_center.png?v=1781165219" width="auto" height="auto" class="m-2 rounded m-auto" alt="Almond Granola" /> 7799 <div class="mt-auto w-100 px-2"> 7800 <p class="mb-1 lh-sm fs-14">Almond Granola</p> 7801 <p class="fs-16 fw-bold comparePriceOuter">$9.95 7802 </p> 7803 <div class="priceAndAction d-flex flex-column flex-sm-row align-items-center justify-content-center mt-auto "> 7804 7805 <div class="product-all w-100 product-id-10142721278268 " data-product-id="10142721278268"> 7806 <div class="add-cart-button d-none"> 7807 <a href="javascript:void(0);" onclick="localCart.addItem(10142721278268, 52093247619388, 'Almond Granola', '/products/almond-granola', '//thrivemeals.com.au/cdn/shop/files/Gemini_Generated_Image_pwc5fjpwc5fjpwc5_transparent_150X150_crop_center.png?v=1781165219', 995, 995, 1, 'SNACKS', 689703944508)" class="add-to-cart bg-green border-green fs-14 ajax-spin-cart btn-style3 "> 7808 <span class="cart-title fw-bolder"><i class="icon-handbag me-2"></i>Add</span> 7809 <span class="cart-loading load-anim"><i class="ion-load-a"></i></span> 7810 <span class="cart-added"><i class="ion-android-done"></i></span> 7811 <span class="cart-unavailable"><i class="ion-android-alert"></i></span> 7812 </a> 7813 </div> 7814 <div class="quantity-selector d-none"> 7815 <div class="upsell_quantity buttons d-flex"> 7816 <div class="product-quantity" data-variant="52093247619388"> 7817 <div class="cart-plus-minus d-flex bg-green border-green rounded-pill"> 7818 <input 7819 value="1" 7820 class="qtyinputcs" 7821 type="text" 7822 name="quantity" 7823 min="1" 7824 pattern="[0-9]*" 7825 > 7826 7827 <span class="cusqtyspan quantity-52093247619388 quantity-var-10142721278268" 7828 >1</span 7829 > 7830 </div> 7831 </div> 7832 </div> 7833 </div> 7834</div> 7835 7836 7837 </div> 7838 </div> 7839 </div> 7840 7841 7842 7843 7844 </div> 7845 </div> 7846 </div> 7847 <div class="border-topbg-white" id="border-topbg-white"> 7848 <ul class="subtotal-title-area" style="display:none;"> 7849 <li class="minicart-msg-section hazy-content-direct"> 7850 <div class="cart-FreeShippingMsg text-end pb-0 d-flex align-items-center justify-content-between"> 7851 <div class="d-flex align-items-center justify-content-start"> 7852 <p class="notification-message-mini-cart bold"></p> 7853 </div> 7854 <a href="javascript:void(0);" class="text-green d-flex flex-column align-items-center mini-shipping-board d-none checkPostalBtnShipping" 7855 > 7856 </a> 7857 7858 </div> 7859 </li> 7860 <li class="offer-list-section hazy-content-direct"> 7861 <ul 7862 class="d-flex align-items-center justify-between rounded-pill list-unstyled lh-05 my-2 sm-font-10 fw-bolder offer-list" 7863 id="offer-list" 7864 ></ul> 7865 </li> 7866 <li class="subtotal-titles"> 7867 <div class="sub-total-section d-flex align-items-center justify-content-between d-none"> 7868 <label class="fs-13">Subtotal</label> 7869 <span class="fs-13 sub-total-amount"></span> 7870 </div> 7871 <div class="total-discounts-with-shipping d-flex align-items-center justify-content-between d-none"> 7872 <label class="fs-13">Cart Discount</label> 7873 <span class="fs-13 fw-bold total-discounts-with-shipping-amount color-green"></span> 7874 </div><div class="welcome-discounts-with-shipping d-flex align-items-center justify-content-between d-none"> 7875 <label class="fs-13 d-flex align-items-center gap-1"> 7876 Discount<span class="welcome-discount-code-label fw-bold"></span> 7877 <button 7878 type="button" 7879 class="welcome-discount-remove remove-welcome25 border-0 p-0" 7880 data-discount-code="" 7881 title="Remove discount" 7882 aria-label="Remove discount" 7883 >
7884 <i class="fa-solid fa-trash"></i> 7885 </button> 7886 </label> 7887 <span class="fs-13 fw-bold welcome-discounts-with-shipping-amount color-green"></span> 7888 </div> 7889 <div class="free-shipping-section-whole"> 7890 <div class="without-email"> 7891 <div id="withlogin" class="hazy-content"> 7892 <div id="withlogininner"> 7893 <div class="discount-section d-flex align-items-center justify-content-between d-none"> 7894 <label class="fs-13">Discount<span class="discount_code d-none"></span></label> 7895 <span class="badge rounded-pill text-green-discount fw-bold discount-amount"></span> 7896 </div><div class="discount-entry" style="display:none;"> 7897 <button type="button" class="discount-entry-toggle" aria-expanded="false"> 7898 <i class="fa-solid fa-tag"></i>Add a discount code 7899 </button> 7900 <div class="discount-entry-field d-none"> 7901 <input type="text" class="discount-entry-input" placeholder="Promo code" 7902 autocomplete="off" autocapitalize="characters" spellcheck="false"> 7903 <button type="button" class="discount-entry-apply">Apply</button> 7904 </div> 7905 <div class="discount-entry-applied d-none" style="display:none;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding:7px 10px;background:#f0faf3;border:1px solid #4cb849;border-radius:9px;"> 7906 <span class="discount-entry-applied-label fs-13 fw-bold" style="color:#1a7a2e;"></span> 7907 <button type="button" class="discount-entry-remove" style="border:none;background:transparent;color:#A85400;font-weight:700;cursor:pointer;font-size:12px;padding:0;">Remove</button> 7908 </div> 7909 <div class="discount-code-feedback fs-12 d-none"></div> 7910 </div><div class="per-serving-section d-flex align-items-center justify-content-between d-none"> 7911 <label class="fs-13">Price Per Serving</label> 7912 <span class="fw-bold per-serving-amount"></span> 7913 </div><div class="cart-meals-line d-none d-flex align-items-center justify-content-between"> 7914 <span class="fs-13 color-ink"><span class="cart-meals-line-count">0 meals</span> <span class="cart-meals-line-rate text-muted"></span></span> 7915 <span class="fw-bold cart-meals-line-total fs-14"></span> 7916 </div> 7917 <div class="free-shipping-section d-flex align-items-center justify-content-between"> 7918 <label class="fs-13">Shipping<!--<span class="fs-8 fw-bold">(Shipping applied at checkout)</span>--></label> 7919 <span class=""> 7920 <span class="free-shipping-text text-grren py-0 fs-13 text-uppercase">free</span> 7921 <span class="free-shipping-amount fs-13">$15</span> 7922 </span> 7923 </div><div class="shipping-est-note fs-11 text-muted d-none" style="margin-top:2px;line-height:1.35;"> 7924 Final shipping is calculated from your delivery address. 7925 </div><div class="shipment-disclosure fs-11" style="opacity:.85;" data-shipments="1"> 7926 <div class="shipment-line shipment-single d-flex align-items-center justify-content-between"> 7927 <span><i class="fa-solid fa-truck me-1"></i>Ships chilled in one delivery (Sat onwards)</span><a href="#" class="change-delivery-addr d-none" data-change-delivery role="button" style="text-decoration:underline;font-weight:600;white-space:nowrap;margin-left:8px;color:inherit;flex:0 0 auto;">Change Delivery Addr.</a> 7928 </div> 7929 <div class="shipment-line shipment-ridewith d-none d-flex align-items-center justify-content-between">
7930 <span><i class="fa-solid fa-truck me-1"></i>Your supplements ship with your order â one chilled delivery (Sat onwards)</span> 7931 <a href="#" class="change-delivery-addr d-none" data-change-delivery role="button" style="text-decoration:underline;font-weight:600;white-space:nowrap;margin-left:8px;color:inherit;flex:0 0 auto;">Change Delivery Addr.</a> 7932 </div> 7933 <div class="shipment-line shipment-supps d-none d-flex align-items-center justify-content-between"> 7934 <span><i class="fa-solid fa-box me-1"></i>Your supplements ship separately via Australia Post</span> 7935 </div> 7936 </div><div class="supp-min-note d-none" role="note" style="display:flex;gap:8px;align-items:flex-start;margin:8px 0 4px;padding:9px 11px;background:#FFF3E0;border:1.5px solid #FF8F00;border-radius:10px;"> 7937 <i class="fa-solid fa-circle-info" style="color:#A85400;margin-top:2px;flex:0 0 auto;font-size:12px;"></i> 7938 <span style="font-size:11.5px;line-height:1.4;color:#A85400;font-weight:600;">Supplements have <strong>no minimum</strong> â you can order them on their own. The <strong>$89 minimum</strong> only applies to a food order (meals, snacks, drinks & bundles), which bills separately.</span> 7939 </div> 7940 7941 <hr class="my-1"> 7942 <div class="total-price-section d-flex align-items-center justify-content-between"> 7943 <label class="fs-14 fw-bold">Total Amount</label> 7944 <span class="fw-bold "> 7945 <span class="total-discount-amount text-decoration-line-through"></span> 7946 <span class="total-price-amount fs-14 color-green"></span> 7947 </span> 7948 </div><div class="cart-ndis-panel d-none"> 7949 <div class="cart-ndis-row cart-ndis-paytoday d-flex align-items-center justify-content-between"> 7950 <span class="cart-ndis-label">You pay today (<span class="cart-ndis-copay-pct"></span>%)</span> 7951 <span class="cart-ndis-copay-amount fw-bold"></span> 7952 </div> 7953 <div class="cart-ndis-row cart-ndis-covered d-flex align-items-center justify-content-between"> 7954 <span class="cart-ndis-label">NDIS covers <span class="cart-ndis-covered-pct"></span>% (meal cost + shipping)</span> 7955 <span class="cart-ndis-covered-amount fw-bold"></span> 7956 </div> 7957 <div class="cart-ndis-row cart-ndis-full d-flex align-items-center justify-content-between"> 7958 <span class="cart-ndis-label">Full goods price</span> 7959 <span class="cart-ndis-full-amount"></span> 7960 </div> 7961 </div> 7962 </div> 7963 <span id="showintheop"> 7964 <a id="movetostep1" href="javascript:void(0);">ð Login to unlock your discounts & savings â</a> 7965 </span> 7966 </div> 7967 </div> 7968 <div class="with-email"> 7969 7970 </div> 7971 </div> 7972 <hr class="my-1"> 7973 7974 <!--<div id="meal_style_wrap" class="only_logedin_notattch" style="display:none;"> 7975 <div id="meal_style" class=" d-flex gap-3 align-items-center"> 7976 <h4 class="fs-12 fw-bold mb-2 w-50">Choose your goal?</h4> 7977 <select id="mealStyleSelect" class="form-control fs-12 fw-bold w-50"> 7978 <option value="low-carb" selected>Low Carb</option> 7979 <option value="performance">Performance</option> 7980 <option value="keto">Keto</option> 7981 <option value="mixed">Mixed / Other</option> 7982 </select> 7983 </div> 7984 </div>--> 7985 7986 <div id="meal_style_wrap" class="only_logedin_notattch" style="display:none;"> 7987 <div id="meal_style_inner_wrap" class="d-flex gap-1 justify-content-around"> 7988 <h4 class="fs-12 fw-bold mb-2 w-20">You Like:</h4> 7989 <div id="meal_style" class="d-flex gap-1 justify-content-around w-80"> 7990 <label class="meal-tag keto"> 7991 <input type="radio" name="meal_style" value="keto" hidden> 7992 Keto 7993 </label> 7994 <label class="meal-tag low-carb"> 7995 <input type="radio" name="meal_style" value="low-carb" checked hidden> 7996 Low Carb 7997 </label> 7998 <label class="meal-tag performance"> 7999 <input type="radio" name="meal_style" value="performance" hidden> 8000 Performance 8001 </label>
8002 <label class="meal-tag mixed"> 8003 <input type="radio" name="meal_style" value="mixed" hidden> 8004 Mixed / Other 8005 </label> 8006 </div> 8007 </div> 8008 </div> 8009 8010 <hr class="my-1 only_logedin_notattch" style="display:none;"> 8011 <!--<div class="total-price-discount total-price-discount-section d-none align-items-center justify-content-between"> 8012 <label class="fs-12">DISCOUNT OF <span class="total-price-discount-amount"></span> has been applied and will be adjusted to your subtotal at checkout.</label> 8013 </div> 8014 <hr class="my-1 total-price-discount-hr d-none">--><div class="minimum-text-info d-flex align-items-center justify-content-between d-none"> 8015 <label class="fs-16 fw-bold"></label> 8016 <span class="d-flex align-items-center gap-2"> 8017 <span class="total-minimum-limit text-danger total-applied-amount fs-12 fw-bold"></span> 8018 <details class="min-why"> 8019 <summary class="min-why-toggle" aria-label="Why is there a $89 minimum?"> 8020 <i class="fa-solid fa-circle-info"></i>Why? 8021 </summary> 8022 <div class="min-why-pop fs-11"> 8023 The $89 minimum applies to your food order (meals, snacks, drinks and bundles 8024 combined). It keeps every recurring delivery worthwhile on its own. Supplements 8025 are excluded â they bill on their own schedule and don't count toward the $89. 8026 </div> 8027 </details> 8028 </span> 8029 </div> 8030 <div id="wrapper-response" class="responseMsg"></div> 8031 <div id="min-response"></div> 8032 <div class="show_error_checkout"></div> 8033 </li> 8034 <li class="mini-cart-btns guest-order"> 8035 <div class="d-flex justify-content-between frequency-selector"> 8036 8037 8038<div class="d-flex align-items-center"> 8039 <p class="fs-16">Frequency:</p> 8040</div> 8041<div class="d-flex box align-items-center "> 8042 <span class="d-none cart-loading load-anim" id="order-frequency-loader"><i class="ion-load-a"></i></span> 8043 <select class="fs-14 fw-bold " id="order-frequency"> 8044 8045 <option value="WeeklySubscription" id="weekly-subscription" purchase-option="Weakly Subscription" selected>Weekly Subscription</option> 8046 <option value="FortnightlySubscription" id="fortnightly-subscription" purchase-option="Fortnightly Subscription" >Fortnightly Subscription</option> 8047 <option value="OneTimePurchase" id="one-time-purchase" purchase-option="One Time Purchase" >One Time Purchase</option> 8048 </select> 8049</div> 8050 8051 </div> 8052 <div class="cart-btns"> 8053 <a class="btn btn-style1 min-cal create-order-btn mt-2 px-0" 8054 id="continue_to_shipping" data-action="primary">Select Delivery Date and Checkout 8055 </a> 8056 </div> 8057 </li> 8058 <li class="mini-cart-btns subsciption-update"> 8059 <div class="cart-btns"> 8060 <button type="button" class="update-subscription-btn" onclick="localCart.updateSubscriptionLocal();">Update Subscription</button> 8061 </div> 8062</li> 8063 </ul> 8064 </div> 8065 </div> 8066 8067 </div> 8068</div> 8069<style> 8070.mini-cart { 8071 display: flex; 8072 flex-direction: column; 8073} 8074.checkPostalCodeBox2 { 8075 position: inherit; 8076} 8077.subtotal-title-area { 8078 margin-top: auto; /* Push the subtotal area to the bottom */ 8079} 8080.cart-item-loop .cart-title{ 8081 justify-content: space-between !important; 8082} 8083/* Pin the qty stepper to the RIGHT regardless of product-title length: the title box 8084 fills the row (min-width:0 lets long titles wrap/shrink inside it) and the stepper is 8085 a fixed-width sibling pushed to the far right, so it never shifts with the title. */ 8086.cart-item-loop .cart-title{ flex: 1 1 auto; min-width: 0; } 8087.cart-item-loop .cart-qty-inline{ flex: 0 0 auto; margin-left: auto; } 8088/* Same right-pin for SUPPLEMENT rows (different markup: .cart-supp-row-info / -qty). */ 8089.cart-supp-row .cart-supp-row-info{ flex: 1 1 auto; min-width: 0; } 8090.cart-supp-row .cart-supp-row-qty{ flex: 0 0 auto; margin-left: auto; } 8091.max-h-100vh { 8092 max-height: 100vh; 8093} 8094body.mini-cart-open{ 8095 overflow: hidden; 8096 height: 100vh; 8097 position: fixed; 8098 width: 100%; 8099} 8100.display-none{ 8101 display:none !important; 8102} 8103</style> 8104 8105<link href="//thrivemeals.com.au/cdn/shop/t/214/assets/mini-cart.css?v=47102755019431736591783673534" rel="stylesheet" type="text/css" media="all"> 8106<link href="//thrivemeals.com.au/cdn/shop/t/214/assets/cart-drawer-redesign.css?v=11177231783965611151784623868" rel="stylesheet" type="text/css" media="all">
8107<script src="//thrivemeals.com.au/cdn/shop/t/214/assets/cookie-management.js?v=180761083481196546071783673534" ></script>
vendor: 1 bytes, line 8107
8107
8108<script> 8109function cartBodyHeightCalc() { 8110 const headHeight = $(".cartHead").innerHeight() || 0; 8111 const footHeight = $(".subtotal-title-area").innerHeight() || 0; 8112 const firstLiHeight = $(".subtotal-title-area li:first-child").innerHeight() || 0; 8113 const checkPostalCodeBox2 = $(".checkPostalCodeBox2").innerHeight() || 0; 8114 const adjustedFootHeight = footHeight - firstLiHeight; 8115 const extraPadding = 50; 8116 const cartBodyMaxHeight = `calc(100vh - ${headHeight + adjustedFootHeight + extraPadding}px)`; 8117 // $(".cartBody").css("max-height", cartBodyMaxHeight); 8118 if ($(".checkPostalCodeBox2").is(":visible")) { 8119 // $(".postCodeForm").css("max-height", `calc(100vh - ${headHeight + adjustedFootHeight + extraPadding-50}px)`); 8120 } 8121} 8122 8123 $(document).on("click", ".checkPostalBtn2", function () { 8124 $(".checkPostalCodeBox2").slideToggle(); // Toggle visibility of the postal code section 8125 $(".backdropMiniCart").fadeToggle(); 8126 $(this).toggleClass("clicked"); 8127 cartBodyHeightCalc(); 8128 $('.postCodeForm').animate({ 8129 scrollTop: $(".windowDate").offset().top 8130 }, 1000); 8131 }); 8132 8133 8134 $(".checkPostalBtn2Close, .checkPostalBtnShipping").click(function(){ 8135 $(".subtotal-title-area").css("display", "block"); 8136 $(".checkPostalCodeBox2").slideToggle() 8137 $(".backdropMiniCart").fadeToggle() 8138 $(this).toggleClass("clicked"); 8139 8140 }) 8141 $(document).ready(function(){cartBodyHeightCalc()}) 8142 /* BUGFIX (Saahil): `$(window).resize(fn)` throws "$(...).resize is not a function" on this 8143 store's jQuery (the .resize() event shorthand is gone), which ABORTED the rest of this 8144
8144<script> â so every delegated click handler below (break-nudge Add-more / Add-N upgrade, 8145 "+ Add more from the menu" close, the under-min CTA close, â¦) silently never registered. 8146 Use a native resize listener so the block always runs. */ 8147 window.addEventListener("resize", function(){ cartBodyHeightCalc(); }); 8148 8149 /* Cart-drawer redesign â discount-code entry (screens-cart.jsx §12). 8150 Pure UI wiring: expands the field and hands the code to the EXISTING 8151 LocalCart.applyDiscountCode(). No pricing/better-price-wins logic here â 8152 that stays in custom-cart-ajax-local.js. */ 8153 (function () { 8154 var root = document.querySelector("#mini-cart .discount-entry"); 8155 if (!root) return; 8156 var toggle = root.querySelector(".discount-entry-toggle"); 8157 var field = root.querySelector(".discount-entry-field"); 8158 var input = root.querySelector(".discount-entry-input"); 8159 var applyBtn = root.querySelector(".discount-entry-apply"); 8160 var feedback = root.querySelector(".discount-code-feedback"); 8161 var appliedRow = root.querySelector(".discount-entry-applied"); 8162 var appliedLabel = root.querySelector(".discount-entry-applied-label"); 8163 var removeBtn = root.querySelector(".discount-entry-remove"); 8164 8165 function openField() { 8166 field.classList.remove("d-none"); 8167 toggle.classList.add("d-none"); 8168 toggle.setAttribute("aria-expanded", "true"); 8169 input.focus(); 8170 } 8171 // Show the "applied" chip (code + Remove). offText is optional (e.g. "$25.00"). 8172 function showApplied(code, offText) { 8173 if (appliedLabel) appliedLabel.textContent = code + (offText ? " â " + offText + " off at checkout" : " â applied at checkout"); 8174 if (appliedRow) { appliedRow.classList.remove("d-none"); appliedRow.style.display = "flex"; } 8175 if (field) field.classList.add("d-none"); 8176 if (toggle) { toggle.classList.add("d-none"); toggle.setAttribute("aria-expanded", "false"); } 8177 setFeedback("", false); 8178 } 8179 // Clear the stored code and revert to the "Add a discount code" entry point. 8180 // note: optional message shown below the toggle (used by the auto-drop re-evaluation). 8181 function clearApplied(note) { 8182 try { localStorage.removeItem("thr1ve_manual_discount"); } catch (e) {} 8183 try { localStorage.removeItem("thr1ve_manual_discount_meta"); } catch (e) {} 8184 // Belt-and-braces (Codex L2): also clear the cart-transform discount attributes on the Shopify 8185 // cart, so removing a code can't leave a stale _thr1ve_discount_* that the Function re-applies on 8186 // a later checkout even if the checkout-time clear later fails. Best-effort / fire-and-forget. 8187 try { 8188 fetch('/cart/update.js', { 8189 method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, 8190 body: JSON.stringify({ attributes: { "_thr1ve_discount_code": "", "_thr1ve_discount_kind": "", "_thr1ve_discount_amount": "", "_thr1ve_discount_percent": "" } }) 8191 }).catch(function () {}); 8192 } catch (e) {} 8193 if (appliedRow) { appliedRow.classList.add("d-none"); appliedRow.style.display = "none"; } 8194 if (field) field.classList.add("d-none"); 8195 if (input) input.value = ""; 8196 if (toggle) { toggle.classList.remove("d-none"); toggle.setAttribute("aria-expanded", "false"); } 8197 setFeedback(note || "", !!note); 8198 } 8199 function setFeedback(msg, isError) { 8200 if (!feedback) return; 8201 feedback.textContent = msg || ""; 8202 feedback.classList.toggle("d-none", !msg); 8203 feedback.classList.toggle("is-error", !!isError); 8204 } 8205 /* Doc5 §4 discount guard (LOCKED): validate the entered code against Shopify via the 8206 Storefront API, then apply the better-of / reject-and-tell rule. The "existing discount" 8207 the customer already has = their TIER saving vs the $12.95 full price 8208 ((1295 â tierPerMeal) à meals). If the code doesn't beat that, we DON'T apply it and tell 8209 them their current pricing is already better. If it does, we apply it (the B5 cart-transform 8210 Function enforces base-then-apply / never-stack at checkout). */ 8211 var SF_DOMAIN = "thrive-meals-oppenheimer.myshopify.com"; 8212 // Public Storefront API token (safe to embed) â used to validate promo codes against Shopify. 8213 // A theme setting overrides it if set, otherwise this token is used. 8214 var SF_TOKEN = ("6ff1d070c714073d7c5a8509427acab4" || "6ff1d070c714073d7c5a8509427acab4"); 8215 function _money(c) { return "$" + (Math.round(c) / 100).toFixed(2); }
8216 // Current order type (drives the ONE-TIME tier cap). One-time caps at the 18 tier ($10.95); 8217 // the 25 tier ($9.95) is subscriber-only, so a one-time 25+ cart is charged $10.95 not $9.95. 8218 function _orderType() { 8219 try { return (JSON.parse(localStorage.getItem("window_state") || "{}").freq) || "WeeklySubscription"; } 8220 catch (e) { return "WeeklySubscription"; } 8221 } 8222 function tierSavingCents() { 8223 try { 8224 var lc = window.localCart; if (!lc) return 0; 8225 var meals = lc.countLunchAndDinnerMeals(lc.cart.items) || 0; 8226 if (meals <= 0) return 0; 8227 // Use the box-size tier for a FIXED box (matches what each meal is actually charged), 8228 // else the live-count tier for flexible. Saving = (full â tier) à meals currently in cart. 8229 var bt = 0; try { bt = Number(localStorage.getItem("thr1ve_box_target")) || 0; } catch (e) {} 8230 var t = lc.getDoc5MealTier(bt > 0 ? Math.max(meals, bt) : meals); 8231 var per = (t && t.currentPerMealCents != null) ? t.currentPerMealCents : 1295; 8232 per = lc.capRateForOrder(per, _orderType()); // one-time caps at the 18 tier ($10.95) 8233 return Math.max(0, (1295 - per) * meals); // 1295 = Doc5 full per-meal price 8234 } catch (e) { return 0; } 8235 } 8236 function mealCartLines() { 8237 try { 8238 var lc = window.localCart; if (!lc || !lc.cart) return []; 8239 // LocalCart items carry variant_id + qty (not id/quantity). Compare the code against the 8240 // MEAL lines â that's what the tier pricing competes with (Doc5 §4 "per eligible line"). 8241 return (lc.cart.items || []).filter(function (i) { 8242 return i && i.variant_id && i.product_type === "LUNCH & DINNER"; 8243 }).map(function (i) { 8244 return { merchandiseId: "gid://shopify/ProductVariant/" + i.variant_id, quantity: (i.qty || i.quantity || 1) }; 8245 }); 8246 } catch (e) { return []; } 8247 } 8248 async function cartDiscount(lines, code) { 8249 var query = "mutation($lines:[CartLineInput!]!,$codes:[String!]!){cartCreate(input:{lines:$lines,discountCodes:$codes}){cart{discountCodes{applicable code} cost{subtotalAmount{amount}} discountAllocations{discountedAmount{amount}}} userErrors{message}}}"; 8250 var r = await fetch("https://" + SF_DOMAIN + "/api/2024-10/graphql.json", { 8251 method: "POST", 8252 headers: { "Content-Type": "application/json", "X-Shopify-Storefront-Access-Token": SF_TOKEN }, 8253 body: JSON.stringify({ query: query, variables: { lines: lines, codes: [code] } }) 8254 }); 8255 var j = await r.json(); 8256 var cart = j && j.data && j.data.cartCreate && j.data.cartCreate.cart; 8257 if (!cart) return null; 8258 return { 8259 applicable: (cart.discountCodes || []).some(function (d) { return d.applicable && String(d.code).toUpperCase() === code; }), 8260 offCents: Math.round((cart.discountAllocations || []).reduce(function (s, a) { return s + parseFloat((a.discountedAmount && a.discountedAmount.amount) || 0); }, 0) * 100), 8261 subCents: Math.round(parseFloat((cart.cost && cart.cost.subtotalAmount && cart.cost.subtotalAmount.amount) || 0) * 100) 8262 }; 8263 } 8264 async function lookupShopifyDiscount(code) { 8265 if (!SF_TOKEN) return { reason: "no-token" }; 8266 var lines = mealCartLines(); 8267 if (!lines.length) return { reason: "empty" }; 8268 try { 8269 // Query the REAL cart plus a LARGE reference cart (first variant à 40) so we can tell a 8270 // FIXED $ code (flat â doesn't scale with the cart) from a PERCENTAGE (scales). 8271 var refLines = [{ merchandiseId: lines[0].merchandiseId, quantity: 40 }]; 8272 var out = await Promise.all([cartDiscount(lines, code), cartDiscount(refLines, code)]); 8273 var cur = out[0], ref = out[1]; 8274 if (!cur) return { reason: "error" }; 8275 if (!cur.applicable) return { reason: "invalid" }; 8276 var rate = (ref && ref.subCents > 0) ? (ref.offCents / ref.subCents) : 0; 8277 var expectedIfPct = Math.round(rate * cur.subCents); 8278 var isFixed = ref ? (Math.abs(cur.offCents - expectedIfPct) > 30) : false; // > 30c off a proportional % â flat $ 8279 return { ok: true, offCents: cur.offCents, subCents: cur.subCents, isFixed: isFixed }; 8280 } catch (e) { return { reason: "error" }; } 8281 } 8282 function mealTierSubtotalCents() {
8283 try { 8284 var lc = window.localCart; if (!lc) return 0; 8285 var meals = lc.countLunchAndDinnerMeals(lc.cart.items) || 0; 8286 if (meals <= 0) return 0; 8287 var bt = 0; try { bt = Number(localStorage.getItem("thr1ve_box_target")) || 0; } catch (e) {} 8288 var t = lc.getDoc5MealTier(bt > 0 ? Math.max(meals, bt) : meals); 8289 var per = (t && t.currentPerMealCents != null) ? t.currentPerMealCents : 1295; 8290 per = lc.capRateForOrder(per, _orderType()); // one-time caps at the 18 tier ($10.95) 8291 return per * meals; 8292 } catch (e) { return 0; } 8293 } 8294 var FIXED_CODE_MIN_CENTS = 8900; // $89 order minimum before a fixed-$ code can apply 8295 async function applyCode() { 8296 var code = (input.value || "").trim().toUpperCase(); 8297 if (!code) { input.focus(); return; } 8298 setFeedback("Checking " + code + "â¦", false); 8299 applyBtn.disabled = true; 8300 try { 8301 var res = await lookupShopifyDiscount(code); 8302 // If we can't validate via Storefront (no token yet / empty cart / network) fall back to 8303 // the existing apply path so nothing regresses. 8304 if (res.reason === "no-token" || res.reason === "empty" || res.reason === "error") { 8305 // Can't validate right now â store the code so it carries to checkout (validated there).
8306 // NEVER call applyDiscountCode â it overwrites the LocalCart from the empty Shopify cart 8307 // and wipes every item. 8308 try { localStorage.setItem("thr1ve_manual_discount", code); } catch (e) {} 8309 showApplied(code, ""); 8310 return; 8311 } 8312 if (res.reason === "invalid") { setFeedback("We couldn't find that code.", true); return; } 8313 // A FIXED-value code can't sensibly apply to a small cart (Shopify caps it at the cart 8314 // value) â it only applies once the order reaches the $89 minimum. Percentage codes scale, 8315 // so they're fine at any size. 8316 if (res.isFixed && mealTierSubtotalCents() < FIXED_CODE_MIN_CENTS) { 8317 setFeedback("This is a fixed-value code â it can only be applied once your order reaches the $89 minimum. Add more meals and try again.", true); 8318 return; 8319 } 8320 var tier = tierSavingCents(); 8321 if (res.offCents <= tier) { 8322 // reject-and-tell: their tier pricing already beats the code â keep the better price. 8323 setFeedback("You're already getting a better deal (" + _money(tier) + " off) than this code (" + _money(res.offCents) + " off) â we've kept your better price.", true); 8324 return; 8325 } 8326 // Code beats the tier â STORE it so it carries to checkout (&discount=), where the B5 8327 // Function enforces base-then-apply / better-of. Do NOT call applyDiscountCode: it 8328 // overwrites the LocalCart from the empty Shopify cart and deletes every item. 8329 try { 8330 localStorage.setItem("thr1ve_manual_discount", code); 8331 // Remember what this code was worth (and %/fixed) so we can re-check it against the tier 8332 // saving if the meal count later changes and pushes the box into a cheaper tier. 8333 localStorage.setItem("thr1ve_manual_discount_meta", JSON.stringify({ code: code, offCents: res.offCents, subCents: res.subCents, isFixed: !!res.isFixed })); 8334 } catch (e) {} 8335 showApplied(code, _money(res.offCents)); 8336 } catch (e) { 8337 setFeedback("We couldn't apply that code right now.", true); 8338 } finally { 8339 applyBtn.disabled = false; 8340 } 8341 } 8342 8343 // Re-run the Doc5 §4 guard against a code that's ALREADY stored, in case the meal count 8344 // changed since it was applied (e.g. 14 â 18 crosses into a cheaper tier whose saving now 8345 // beats the code). If the tier now wins, drop the code and tell them â same reject-and-tell 8346 // outcome they'd get typing it in at the new count. The B5 Function still enforces better-of 8347 // at checkout; this keeps the drawer honest. Client-side, no API call. 8348 function reevaluateStored() { 8349 var code, meta; 8350 try { 8351 code = localStorage.getItem("thr1ve_manual_discount"); 8352 meta = JSON.parse(localStorage.getItem("thr1ve_manual_discount_meta") || "null"); 8353 } catch (e) { return; } 8354 if (!code) return; 8355 // A code stored WITHOUT meta came from the no-validation fallback â we have no value to 8356 // compare, so leave it (checkout validates it). Only re-check codes we priced. 8357 if (!meta || meta.offCents == null) return; 8358 var meals = 0; 8359 try { var lc = window.localCart; meals = (lc && lc.cart) ? (lc.countLunchAndDinnerMeals(lc.cart.items) || 0) : 0; } catch (e) {} 8360 if (meals <= 0) return; 8361 var tier = tierSavingCents(); 8362 var sub = mealTierSubtotalCents(); 8363 // Fixed $ codes keep their value; % codes scale with the (new) meal subtotal. 8364 var codeOff = meta.isFixed ? meta.offCents 8365 : (meta.subCents > 0 ? Math.round((meta.offCents / meta.subCents) * sub) : meta.offCents); 8366 // Fixed code can no longer apply if the order dropped below the $89 minimum. 8367 if (meta.isFixed && sub < FIXED_CODE_MIN_CENTS) { 8368 clearApplied("Removed " + code + " â a fixed-value code needs the $89 order minimum. Add more meals to use it."); 8369 return; 8370 } 8371 // Tier now beats the code â drop it and keep the better price (reject-and-tell). 8372 if (codeOff <= tier) {
8373 clearApplied("Removed " + code + " â your box pricing now saves " + _money(tier) + ", which beats this code (" + _money(codeOff) + "). We've kept your better price."); 8374 return; 8375 } 8376 // Still the better deal â keep it, but refresh the chip's amount for % codes as it scales. 8377 showApplied(code, _money(codeOff)); 8378 } 8379 8380 toggle.addEventListener("click", openField); 8381 applyBtn.addEventListener("click", applyCode); 8382 if (removeBtn) removeBtn.addEventListener("click", function () { clearApplied(); }); 8383 input.addEventListener("keydown", function (e) { 8384 if (e.key === "Enter") { e.preventDefault(); applyCode(); } 8385 }); 8386 // Restore the applied chip if a code is already stored (persists across drawer opens / reloads). 8387 try { 8388 var _stored = localStorage.getItem("thr1ve_manual_discount"); 8389 if (_stored) showApplied(_stored, ""); 8390 } catch (e) {} 8391 // Watch the drawer for cart-line changes (add/remove/qty) and re-check the stored code. 8392 // Debounced, and gated on the meal count actually changing, so it can't loop on our own 8393 // chip-toggling DOM writes. 8394 (function () { 8395 var host = document.getElementById("mini-cart") || root; 8396 if (!host || typeof MutationObserver === "undefined") return; 8397 var lastMeals = -1, timer = null; 8398 function tick() { 8399 var m = 0; 8400 try { var lc = window.localCart; m = (lc && lc.cart) ? (lc.countLunchAndDinnerMeals(lc.cart.items) || 0) : 0; } catch (e) {} 8401 if (m === lastMeals) return; 8402 lastMeals = m; 8403 reevaluateStored(); 8404 } 8405 var obs = new MutationObserver(function () { 8406 if (timer) clearTimeout(timer); 8407 timer = setTimeout(tick, 450); 8408 }); 8409 obs.observe(host, { childList: true, subtree: true, characterData: true }); 8410 // Prime the baseline once so the first real change is detected (not the initial render). 8411 setTimeout(tick, 600); 8412 })(); 8413 })(); 8414 8415 /* F3 box-picker â plan strip "Change" button (screens-cart.jsx PLAN STRIP). 8416 Navigates to the standalone Box-size picker PAGE (/pages/build-your-box, 8417 section box-size-picker.liquid) where the customer changes box size + 8418 frequency, then returns. The current cart is preserved (we only navigate; 8419 nothing is cleared) and the picker writes the SAME canonical window_state 8420 {plan,freq} this drawer reads, so the chosen plan carries straight back. 8421 Delegated so it survives cart re-renders. 8422 SAFE FALLBACK: if the picker page is somehow unreachable, fall back to the 8423 legacy in-drawer Plan step so the button NEVER dead-ends (Saahil: "Change 8424 goes nowhere"). */ 8425 document.addEventListener("click", function (e) { 8426 var changeBtn = e.target.closest && e.target.closest(".cart-plan-strip-change, [data-action='change-plan']"); 8427 if (!changeBtn) return; 8428 8429 // FIX #1 (menu-refine3): the control is now a real <a href>. If it carries a 8430 // usable href, DO NOT preventDefault â let the browser navigate natively so the 8431 // link works with zero JS dependency (this handler keeps failing at runtime for 8432 // Saahil; the native anchor is the robust path). We only take over (and 8433 // preventDefault) for the legacy non-anchor / hashed case. 8434 var nativeHref = changeBtn.getAttribute && changeBtn.getAttribute("href"); 8435 if (changeBtn.tagName === "A" && nativeHref && nativeHref.charAt(0) !== "#" && 8436 nativeHref.indexOf("javascript:") !== 0) { 8437 return; // browser handles navigation 8438 } 8439 e.preventDefault(); 8440 8441 // Primary: go to the box-size picker page. Allow a theme override of the 8442 // handle via window.THR1VE_BOX_PICKER_URL; default to the built handle. 8443 var pickerUrl = (typeof window !== "undefined" && window.THR1VE_BOX_PICKER_URL) || "/pages/build-your-box"; 8444 var onPicker = window.location && window.location.pathname && 8445 window.location.pathname.indexOf("/pages/build-your-box") === 0; 8446 if (pickerUrl && !onPicker) { 8447 window.location.href = pickerUrl; 8448 return; 8449 } 8450 8451 // Fallback A â the existing helper opens the drawer and jumps to the Plan step. 8452 if (typeof window.openMiniCartToDeliveryStep === "function") { 8453 window.openMiniCartToDeliveryStep(); 8454 return; 8455 } 8456 // Fallback B â open the cart drawer and advance to the Plan step ourselves 8457 // so the flow is always reachable even if the helper hasn't loaded. 8458 var cartTrigger = document.querySelector(".cart-count"); 8459 if (cartTrigger) cartTrigger.click(); 8460 setTimeout(function () { 8461 var flow = document.getElementById("finalflow"); 8462 if (flow) { 8463 // Cart-drawer redesign: customer is actively entering the #finalflow checkout 8464 // step â keep it shown across the cart re-renders that follow (see the render 8465 // default in custom-cart-ajax-local.js.liquid + the lifecycle reset below). 8466 window.__thr1veInFinalFlow = true; 8467 flow.style.display = "block"; 8468 if (typeof window.show === "function") {
8469 if (window.state) window.state.step = 2; 8470 window.show("#step2"); 8471 } else { 8472 var sections = document.querySelectorAll("#finalflow .section"); 8473 for (var i = 0; i < sections.length; i++) sections[i].classList.add("hidden"); 8474 var step2 = document.getElementById("step2"); 8475 if (step2) step2.classList.remove("hidden"); 8476 } 8477 flow.scrollIntoView({ behavior: "smooth", block: "start" }); 8478 } 8479 }, 250); 8480 }); 8481 8482 /* FIX #1 (Saahil, dev â menu-refine2): BlueFit's cart "Change" went nowhere. 8483 The delegated handler above is segment-agnostic and DOES navigate, but to make 8484 BlueFit bullet-proof against any path where the delegated listener is missed 8485 (e.g. the snippet is double-included via landing-page-header, leaving a stale 8486 duplicate strip; or the BlueFit drawer renders the Change control before this 8487 script's listener attaches), we ALSO bind the navigation DIRECTLY onto every 8488 `.cart-plan-strip-change` element each time the cart drawer opens/re-renders. 8489 The BlueFit picker (sections/box-size-picker.liquid `is_bluefit` variant) lives 8490 at the SAME /pages/build-your-box URL, so BlueFit and standard customers go to 8491 the same destination â the picker chooses the BlueFit variant from customer.tags. 8492 Idempotent (a data-flag prevents double-binding). */ 8493 (function () { 8494 var PICKER_URL = (typeof window !== "undefined" && window.THR1VE_BOX_PICKER_URL) || "/pages/build-your-box"; 8495 function goToPicker(e) { 8496 // FIX #1 (menu-refine3): the control is a real <a href> now. If it has a usable 8497 // href, let the browser navigate natively â don't preventDefault (so it works 8498 // with zero JS). Only force navigation for the non-anchor / hashed legacy case. 8499 var el = e && e.currentTarget; 8500 var nativeHref = el && el.getAttribute && el.getAttribute("href"); 8501 if (el && el.tagName === "A" && nativeHref && nativeHref.charAt(0) !== "#" && 8502 nativeHref.indexOf("javascript:") !== 0) { 8503 return; // browser handles navigation 8504 } 8505 if (e) e.preventDefault(); 8506 var onPicker = window.location && window.location.pathname && 8507 window.location.pathname.indexOf("/pages/build-your-box") === 0; 8508 if (!onPicker) { window.location.href = PICKER_URL; } 8509 } 8510 function bindChangeButtons() { 8511 var btns = document.querySelectorAll(".cart-plan-strip-change, [data-action='change-plan']"); 8512 for (var i = 0; i < btns.length; i++) { 8513 if (btns[i].getAttribute("data-change-bound") === "1") continue; 8514 btns[i].setAttribute("data-change-bound", "1"); 8515 btns[i].addEventListener("click", goToPicker); 8516 } 8517 } 8518 if (document.readyState !== "loading") bindChangeButtons(); 8519 else document.addEventListener("DOMContentLoaded", bindChangeButtons); 8520 // Re-bind after each cart open (the drawer is shown via .cart-count / shopping-cart triggers) 8521 // and after async re-renders, so a freshly-rendered BlueFit strip is always wired. 8522 document.addEventListener("click", function (e) { 8523 var t = e.target.closest && e.target.closest(".cart-count, .shopping-cart, .cartIcon, .header-cart"); 8524 if (t) setTimeout(bindChangeButtons, 300); 8525 }); 8526 window.THR1VE_bindCartChange = bindChangeButtons; 8527 })(); 8528 8529 /* FIX #2 (Saahil, dev â menu-refine3): the locked checkout CTA ("$X to go to reach 8530 the $89 minimum") did NOTHING â the cart JS strips its onclick in the under-minimum 8531 branches, leaving #continue_to_shipping inert, so a customer who is short of $89 is 8532 stuck with no way out of the drawer. Make the LOCKED state ACTIONABLE: clicking it 8533 CLOSES the cart drawer so the customer can go add more items. 8534 Robust this time: ONE delegated listener on document (survives every cart 8535 re-render, like the Change/break-nudge handlers above) + the close is the proven 8536 `.shopping-cart-close` DOM-class teardown (no dependency on a fragile per-element 8537 binding). We only act when the button is in the LOCKED state â detected by the 8538 absence of the `bg-orange` class that the active "Checkout Now" state always adds 8539 (and the absence of a checkout onclick) â so we never hijack a real checkout click. 8540 If the drawer-close classes somehow don't apply, we fall back to navigating to the 8541 menu so the control is NEVER a dead end. */ 8542 function thr1veCloseCartDrawer() { 8543 var closed = false;
8544 try { 8545 var mc = document.querySelector(".mini-cart"); 8546 if (mc) { mc.classList.remove("show"); closed = true; } 8547 var bg = document.querySelector(".mm-fullscreen-bg"); 8548 if (bg) bg.classList.remove("active"); 8549 document.body.classList.remove("hidden"); 8550 document.body.classList.remove("mini-cart-open"); 8551 // also click the real close affordance if present (re-uses the proven handler) 8552 var closeEl = document.querySelector(".mini-cart .shopping-cart-close i, .shopping-cart-close i"); 8553 if (closeEl) closeEl.click(); 8554 } catch (err) { closed = false; } 8555 return closed; 8556 } 8557 window.thr1veCloseCartDrawer = thr1veCloseCartDrawer; 8558 8559 document.addEventListener("click", function (e) { 8560 var cta = e.target.closest && e.target.closest("#continue_to_shipping"); 8561 if (!cta) return; 8562 // Active/checkout state carries `bg-orange` and a proceedToCheckout onclick â leave it alone. 8563 var onclick = cta.getAttribute && cta.getAttribute("onclick"); 8564 var isCheckoutState = cta.classList.contains("bg-orange") || 8565 (onclick && onclick.indexOf("proceedToCheckout") !== -1); 8566 if (isCheckoutState) return; 8567 // Locked / "to reach the $89 minimum" state â make it do something useful. 8568 e.preventDefault(); 8569 var closed = thr1veCloseCartDrawer(); 8570 if (!closed) { window.location.href = "/collections/fresh-ready-meals"; } 8571 }); 8572 8573 /* Cart-drawer redesign â #finalflow sticky-flag lifecycle. The drawer now DEFAULTS to 8574 the meal list (custom-cart-ajax-local.js.liquid render) and only shows the #finalflow 8575 DeliveryâPlan checkout steps while window.__thr1veInFinalFlow is true. That flag is set 8576 when the customer explicitly proceeds (proceedToCheckout / openMiniCartToDeliveryStep / 8577 plan-strip Change). Here we RESET it so a fresh drawer open or a close always returns 8578 to the meal list: 8579 - opening the drawer (.cart-count / .review-continue-btn, when NOT a control already 8580 inside #finalflow) â land on meals; openMiniCartToDeliveryStep re-sets the flag in 8581 its own setTimeout (which runs after this click), so the explicit proceed still wins. 8582 - closing the drawer (.shopping-cart-close) â next open shows meals. 8583 Capture phase so this runs before any same-click open handler. */ 8584 document.addEventListener("click", function (e) { 8585 var t = e.target.closest && e.target.closest( 8586 ".cart-count, .review-continue-btn, .shopping-cart-close, .shopping-cart-close i"); 8587 if (!t) return; 8588 if (t.closest && (t.closest("#finalflow") || t.closest("#acheck-drawer"))) return; // control inside the steps â leave state alone 8589 window.__thr1veInFinalFlow = false; 8590 // Reset the delivery/address-check overlay so the drawer opens (or closes) on the CART view. 8591 // Without this, closing from the delivery step via the backdrop/X left everything `acheck-hidden` 8592 // and the drawer reopened BLANK (plan strip / header / footer / meal list all hidden). This 8593 // restores them + clears the leftover scroll. (openAddressCheckInDrawer re-hides afterwards when 8594 // it deliberately opens the delivery step, so the checkout flow is unaffected.) 8595 try { if (window.localCart && typeof localCart.closeAddressCheckInDrawer === "function") localCart.closeAddressCheckInDrawer(); } catch (err) {} 8596 }, true); 8597 8598 /* Scroll-position preservation for the cart drawer (Saahil: clicking "Review your box" on the 8599 menu jumped the page to the top). Opening the drawer adds `body.mini-cart-open`, which is 8600 position:fixed (background scroll-lock) â but with no top offset the fixed body pins to the 8601 viewport top, so the page loses the customer's place. Capture scrollY when the lock goes on, 8602 pin the body at -y (so the same content stays in view), and restore the scroll when the lock 8603 lifts. Observer-based so it works for EVERY open/close path (main.js, added-for-optimize-js, 8604 backdrop, thr1veCloseCartDrawer) without touching each one. */ 8605 (function () { 8606 var body = document.body; 8607 var drawer = document.getElementById("mini-cart"); 8608 if (!body || !drawer || typeof MutationObserver === "undefined") return; 8609 var locked = false, savedY = 0, pendingY = null; 8610 function isDrawerOpen() { return drawer.classList.contains("show"); } 8611 // Capture scrollY on the OPENING click, in the capture phase â i.e. BEFORE main.js / 8612 // added-for-optimize-js add `body.mini-cart-open` and call cartBodyHeightCalc(), which forces 8613 // a reflow that applies position:fixed and zeroes window.scrollY. If we waited until the 8614 // MutationObserver microtask, scrollY would already read 0. This runs first, so we keep the 8615 // real position. 8616 document.addEventListener("click", function (e) { 8617 var t = e.target.closest && e.target.closest(".cart-count, .review-continue-btn"); 8618 if (!t || (t.closest && t.closest("#finalflow"))) return; 8619 pendingY = window.scrollY || window.pageYOffset || 0; 8620 }, true); 8621 function lock() { 8622 if (locked) return; 8623 savedY = (pendingY != null) ? pendingY : (window.scrollY || window.pageYOffset || 0); 8624 pendingY = null; 8625 body.style.top = (-savedY) + "px"; 8626 body.style.left = "0"; 8627 body.style.right = "0"; 8628 body.style.width = "100%"; 8629 locked = true; 8630 } 8631 function unlock() { 8632 if (!locked) return; 8633 var y = savedY; 8634 // Some close paths only remove the drawer's `.show` and leave body.mini-cart-open â which is 8635 // what the stylesheet uses to make the body position:fixed. Strip it (
8635and any inline 8636 // position/overflow) so the body un-fixes; otherwise scrollTo can't move the document and the 8637 // page stays stuck at the top. Restore the scroll on the next frame, once styles settle. 8638 body.classList.remove("mini-cart-open"); 8639 body.style.top = ""; 8640 body.style.left = ""; 8641 body.style.right = ""; 8642 body.style.width = ""; 8643 body.style.position = ""; 8644 body.style.overflow = ""; 8645 locked = false; 8646 if (window.requestAnimationFrame) { 8647 requestAnimationFrame(function () { window.scrollTo(0, y); }); 8648 } else { 8649 window.scrollTo(0, y); 8650 } 8651 } 8652 // Drive the lock off the drawer's visible open state (.show) rather than body.mini-cart-open â 8653 // it's the reliable open/close signal across every path. Watch both nodes for class changes. 8654 var obs = new MutationObserver(function () { 8655 if (isDrawerOpen()) lock(); else unlock(); 8656 }); 8657 obs.observe(body, { attributes: true, attributeFilter: ["class"] }); 8658 obs.observe(drawer, { attributes: true, attributeFilter: ["class"] }); 8659 if (isDrawerOpen()) lock(); 8660 })(); 8661 8662 /* F2 cart-deferred â break-nudge "Add more" button (screens-cart.jsx breakNudge "Add N"). 8663 Routes to the menu â the same canonical add-meals path as the ".addmore" link and the 8664 empty-state "Browse the menu" button. Delegated so it survives cart re-renders. */ 8665 document.addEventListener("click", function (e) { 8666 var addBtn = e.target.closest && e.target.closest('.cart-break-nudge-cta[data-action="add-meals"]'); 8667 if (!addBtn) return; 8668 e.preventDefault(); 8669 window.location.href = "/collections/fresh-ready-meals"; 8670 }); 8671 8672 /* Saving-nudge "Add N" (fixed box, full) â SWAP the box selection up a tier: store the new 8673 fill target and route to the menu so the customer adds the extra meals and gets the cheaper 8674 whole-box rate. (Saahil: "swap the selection from 14 to 18 ... go for the savings".) */ 8675 document.addEventListener("click", function (e) { 8676 var up = e.target.closest && e.target.closest('.cart-break-nudge-cta[data-action="upgrade-box"]'); 8677 if (!up) return; 8678 e.preventDefault(); 8679 var to = up.getAttribute("data-upgrade-to"); 8680 if (to) { try { localStorage.setItem("thr1ve_box_target", to); } catch (err) {} } 8681 window.location.href = "/collections/fresh-ready-meals"; 8682 }); 8683 8684 /* #9 (Saahil) â "+ Add more from the menu" at the bottom of the cart. If you're already on 8685 the menu, just MINIMISE (close) the drawer; otherwise let the anchor route you there 8686 (the drawer closes with the page change). Delegated so it survives cart re-renders. */ 8687 document.addEventListener("click", function (e) { 8688 var more = e.target.closest && e.target.closest(".cart-add-more-bottom"); 8689 if (!more) return; 8690 var onMenu = /\/collections\/fresh-ready-meals/.test(window.location.pathname); 8691 if (onMenu) { 8692 e.preventDefault(); 8693 if (typeof window.thr1veCloseCartDrawer === "function") window.thr1veCloseCartDrawer(); 8694 } 8695 }); 8696 8697 /* F4 cart-deferred â global supplement One-time/Monthly cadence toggle (screens-cart.jsx). 8698 Doc5 §2c: a single frequency across ALL supplements (cart-scoped), so this is ONE global 8699 control, not per-row. The selection is persisted via LocalCart.setSupplementCadence and the 8700 cart re-renders so the pills reflect the choice. NOTE (flagged follow-up): the BACKEND 8701 supplement selling-plan wiring (so "Monthly" actually creates a monthly supplement 8702 contract / bill-on-send cadence) is NOT yet in place â this sets the UI preference only and 8703 does NOT fake a recurring charge. Delegated so it survives cart re-renders. */ 8704 document.addEventListener("click", function (e) { 8705 var pill = e.target.closest && e.target.closest(".cart-supp-cadence-pill"); 8706 if (!pill) return; 8707 e.preventDefault(); 8708 var cadence = pill.getAttribute("data-cadence"); 8709 if (window.localCart && typeof window.localCart.setSupplementCadence === "function") { 8710 window.localCart.setSupplementCadence(cadence); 8711 if (typeof window.localCart.updateCartInfoFromLocal === "function") { 8712 window.localCart.updateCartInfoFromLocal(".cart-item-loop"); 8713 } 8714 } 8715 }); 8716 8717 /* Change-delivery link (Saahil 2026-07-06): the "Change Delivery Addr." link beside the 8718 ships-chilled line opens the delivery/address step, but ONLY once a delivery date has been 8719 chosen (localStorage.deliveryInfo.deliveryDate â written by the address-check flow). Reveal is 8720 re-synced on every cart mutation (the shipment lines are toggled on re-render); the click is 8721 delegated so it survives re-renders. Idempotent toggling avoids an observer loop. */ 8722 (function () { 8723 function hasDeliveryDate() {
8724 try { 8725 var di = JSON.parse(localStorage.getItem("deliveryInfo") || "null"); 8726 return !!(di && di.deliveryDate); 8727 } catch (e) { return false; } 8728 } 8729 function syncChangeDeliveryLink() { 8730 var show = hasDeliveryDate(); 8731 document.querySelectorAll(".change-delivery-addr").forEach(function (a) { 8732 var hidden = a.classList.contains("d-none"); 8733 if (show && hidden) a.classList.remove("d-none"); 8734 else if (!show && !hidden) a.classList.add("d-none"); 8735 }); 8736 } 8737 document.addEventListener("DOMContentLoaded", syncChangeDeliveryLink); 8738 syncChangeDeliveryLink(); 8739 var host = document.getElementById("mini-cart"); 8740 if (host && typeof MutationObserver !== "undefined") { 8741 var t = null; 8742 new MutationObserver(function () { 8743 if (t) clearTimeout(t); 8744 t = setTimeout(syncChangeDeliveryLink, 200); 8745 }).observe(host, { childList: true, subtree: true }); 8746 } 8747 document.addEventListener("click", function (e) { 8748 var el = e.target.closest && e.target.closest("[data-change-delivery]"); 8749 if (!el) return; 8750 e.preventDefault(); 8751 if (window.localCart && typeof window.localCart.openAddressCheckInDrawer === "function") { 8752 window.localCart.openAddressCheckInDrawer(); 8753 } 8754 }); 8755 })(); 8756 8757</script>
vendor: 1 bytes, line 8757
8757
8758<script src="//thrivemeals.com.au/cdn/shop/t/214/assets/custom-cart-implementation.js?v=168019415316875140241783673534"></script>
8758</div> 8759 8760 <div id="shopify-section-copyright" class="shopify-section"><footer class="footer-bottom-area"> 8761 <div class="container"> 8762 <ul class="footer-bottom"> 8763 <li class="ftlink-li"> 8764 <div class="copy-right"> 8765 <p>©THR1VE 2025</p> 8766 </div> 8767 </li> 8768 <li class="ftlink-li"> 8769 <a href="javascript:void(0)" class="payment-icon"> 8770 8771 8772 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-afterpay"><title id="pi-afterpay">Afterpay</title><path fill="#b2fce4" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="m27.4 6.8-2.7-1.6-2.7-1.6c-1.8-1-4.1.3-4.1 2.4v.4c0 .2.1.4.3.5l1.3.7c.4.2.8-.1.8-.5v-.8c0-.4.4-.7.8-.5l2.5 1.4 2.4 1.5c.4.2.4.7 0 .9l-2.5 1.4-2.5 1.6c-.4.2-.8-.1-.8-.5v-.4c0-2.1-2.3-3.4-4.1-2.4l-2.7 1.6-2.7 1.6c-1.8 1-1.8 3.7 0 4.7l2.7 1.6 2.7 1.6c1.8 1 4.1-.3 4.1-2.4v-.4c0-.2-.1-.4-.3-.5l-1.3-.7c-.4-.2-.8.1-.8.5v.8c0 .4-.4.7-.8.5l-2.5-1.4-2.5-1.5c-.4-.2-.4-.7 0-.9l2.5-1.4 2.5-1.4c.4-.2.8.1.8.5v.4c0 2.1 2.3 3.4 4.1 2.4l2.7-1.6 2.7-1.6c1.9-1.2 1.9-3.8.1-4.9z"/></svg> 8773 8774 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 0 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" />
8774<path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg> 8775 8776 8777 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
877706zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg> 8778 8779 8780 <svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/><path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2
87800-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg> 8781 8782 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 8783 8784 8785 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg> 8786 8787 8788 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778
878816.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 8789 8790 8791 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg> 8792 8793 8794</a> 8795<style> 8796 .payment-icon svg { 8797 width: 45px; 8798 height: auto; 8799 8800 margin-right: 5px; 8801 8802 display: inline-block; 8803 } 8804 .payment-icon svg:last-child{ 8805 8806 margin-right: 0px; 8807 8808 } 8809</style> 8810 </li> 8811 </ul> 8812 </div> 8813</footer> 8814<style> 8815 .footer-bottom-area { 8816 background-color: #f6f6f6; 8817 padding-top: 20px; 8818 padding-bottom: 20px; 8819 border-top: 1px solid #e2e2e2; 8820 } 8821 8822 ul.footer-bottom { 8823 display: flex; 8824 align-items: center; 8825 justify-content: space-between; 8826 } 8827 ul.footer-bottom li.ftlink-li .copy-right p{ 8828 font-size: 14px; 8829 } 8830 @media(max-width: 767px){ 8831 ul.footer-bottom{ 8832 flex-direction: column; 8833 } 8834 ul.footer-bottom li:first-child{ 8835 margin-top: 0; 8836 } 8837 ul.footer-bottom li{ 8838 margin-top: 15px; 8839 } 8840 } 8841</style> 8842</div> 8843 <!-- Necessary JS --> 8844 8845
8846<script src="//thrivemeals.com.au/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" async="async"></script>
vendor: 1 bytes, line 8846
8846
8847<script src="//thrivemeals.com.au/cdn/shop/t/214/assets/added-for-optimize-js.js?v=97239576666909471681783673534" async="async"></script>
vendor: 1 bytes, line 8847
8847
8848<script> 8849Shopify.money_format = "${{amount}}"; 8850 8851</script>
8851<script> 8852 8853 /*
vendor: 369 bytes, lines 8853-8857
8853(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 8854 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 8855 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 8856 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 8857 ga('create', '
8857UA-110326897-1
vendor: 40 bytes, lines 8857-8858
8857', 'auto'); 8858 ga('send', 'pageview');
8858*/ 8859 8860window.addEventListener('load', function () { 8861 setTimeout(function () {
vendor: 411 bytes, lines 8861-8874
8861 8862 (function(i,s,o,g,r,a,m){ 8863 i['GoogleAnalyticsObject']=r; 8864 i[r]=i[r]||function(){ 8865 (i[r].q=i[r].q||[]).push(arguments) 8866 }, i[r].l=1*new Date(); 8867 a=s.createElement(o), 8868 m=s.getElementsByTagName(o)[0]; 8869 a.async=1; 8870 a.src=g; 8871 m.parentNode.insertBefore(a,m) 8872 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 8873 8874 ga('create', '
8874UA-110326897-1
vendor: 42 bytes, lines 8874-8876
8874', 'auto'); 8875 ga('send', 'pageview'); 8876
8876}, 5000); // Delay by 5 seconds 8877}); 8878</script>
8878 8879
8879<script> 8880(function () { 8881 window.dataLayer = window.dataLayer || []; 8882 function push(o) { try { window.dataLayer.push(o); } catch (e) {} } 8883 function parseItem(el) { 8884 try { return JSON.parse(el.getAttribute('data-ga4-item')); } catch (e) { return null; } 8885 } 8886 8887 // --- view_item_list: on load, read every tile in a product grid and emit once --- 8888 function emitViewItemList() { 8889 var grids = document.querySelectorAll('[data-ga4-list]'); 8890 for (var g = 0; g < grids.length; g++) { 8891 var grid = grids[g]; 8892 var listName = grid.getAttribute('data-ga4-list') || ''; 8893 var els = grid.querySelectorAll('[data-ga4-item]'); 8894 var items = []; 8895 for (var i = 0; i < els.length; i++) { 8896 var it = parseItem(els[i]); 8897 if (it) { it.index = i + 1; it.item_list_name = listName; items.push(it); } 8898 } 8899 if (items.length) { 8900 push({ ecommerce: null }); // clear previous ecommerce object 8901 push({ event: 'view_item_list', ecommerce: { item_list_name: listName, items: items } }); 8902 return; // emit once â the theme renders duplicate #product-grid variants 8903 } 8904 } 8905 } 8906 8907 // --- select_item: delegated click on any tile carrying data-ga4-item --- 8908 function onSelectItem(e) { 8909 var el = e.target.closest ? e.target.closest('[data-ga4-item]') : null; 8910 if (!el) return; 8911 var it = parseItem(el); 8912 if (!it) return; 8913 var grid = el.closest('[data-ga4-list]'); 8914 it.item_list_name = grid ? (grid.getAttribute('data-ga4-list') || '') : ''; 8915 if (grid) { 8916 var els = grid.querySelectorAll('[data-ga4-item]'); 8917 for (var i = 0; i < els.length; i++) { if (els[i] === el) { it.index = i + 1; break; } } 8918 } 8919 push({ ecommerce: null }); 8920 push({ event: 'select_item', ecommerce: { item_list_name: it.item_list_name, items: [it] } }); 8921 } 8922 8923 // --- cta_click: delegated click on any element carrying data-ga4-cta --- 8924 function onCtaClick(e) { 8925 var el = e.target.closest ? e.target.closest('[data-ga4-cta]') : null; 8926 if (!el) return; 8927 push({ 8928 event: 'cta_click', 8929 cta_label: el.getAttribute('data-ga4-cta') || (el.textContent || '').trim().slice(0, 100), 8930 cta_location: el.getAttribute('data-ga4-cta-location') || '', 8931 cta_url: el.getAttribute('href') || '' 8932 }); 8933 } 8934 8935 function ready(fn) { 8936 if (document.readyState !== 'loading') fn(); 8937 else document.addEventListener('DOMContentLoaded', fn); 8938 } 8939 ready(function () { 8940 emitViewItemList(); 8941 document.addEventListener('click', onSelectItem, true); 8942 document.addEventListener('click', onCtaClick, true); 8943 }); 8944})(); 8945</script>
8945 8946 8947 8948 <a href="javascript:void(0)" id="top" class="scroll"> 8949 <i class="fa fa-angle-double-up"></i> 8950 </a> 8951 <div class="modal fade customPopupModal" id="customPopupModal" tabindex="-1" aria-hidden="true"> 8952 <div class="modal-dialog modal-dialog-centered"> 8953 <div class="modal-content p-3"> 8954 <div style="text-align: center;"> 8955 <img src="https://cdn.shopify.com/s/files/1/0729/8243/0012/files/express-delivery_1.png?v=1750077141"> 8956 </div> 8957 <div class="modal-header"> 8958 <div class="first_section"> 8959 <h5 class="modal-title">Enter your postcode to check if <span id="productTitle" class="productTitle"></span> is available for delivery to your area</h5> 8960 </div> 8961 <div class="second_section"> 8962 <h5 class="modal-title"><span id="showMessageAddres" class="showMessageAddres"></span></h5> 8963 </div> 8964 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 8965 </div> 8966 <div class="modal-body"> 8967 <input type="hidden" id="modalVariantId" class="modalVariantId"> 8968 <input type="hidden" id="modalQuantity" class="modalQuantity"> 8969 <input type="hidden" id="modalSellingPlan" class="modalSellingPlan"> 8970 <input type="hidden" id="modalProductId" class="modalProductId"> 8971 <input type="hidden" id="modalTitle" class="modalTitle"> 8972 <input type="hidden" id="modalUrl" class="modalUrl"> 8973 <input type="hidden" id="modalImage" class="modalImage"> 8974 <input type="hidden" id="modalPrice" class="modalPrice"> 8975 <input type="hidden" id="modalQty" class="modalQty"> 8976 <input type="hidden" id="modalProductType" class="modalProductType"> 8977 <div class="first_section"> 8978 <input type="text" class="form-control address form-input search_postcode" id="search_postcode" placeholder="Search your Postcode here 8979..."> 8980 <span class="showMessage" id="showMessage"></span> 8981 </div> 8982 8983 </div> 8984 8985 <div class="mt-1 first_section" style="text-align: center;"> 8986 <a href="javascript:void(0);" id="toggleLearnMore" style="color: blue;">Learn More</a> 8987 </div> 8988 8989 <div id="deliveryMessage" style="display: none; margin-top: 10px; text-align: center; color: #333;"> 8990 Due to extended delivery times to certain areas, we are unable to guarantee the product's quality upon arrival. 8991 To ensure it reaches you in optimal condition, we currently limit shipping of this item to select locations. 8992 We appreciate your understanding.</div> 8993 </div> 8994 </div> 8995</div>
8996<script> 8997$('#toggleLearnMore').on('click', function () { 8998 $('#deliveryMessage').slideToggle(); 8999 const currentText = $(this).text(); 9000 console.log(currentText,'currentText'); 9001 $(this).text(currentText === 'Learn More' ? 'Show Less' : 'Learn More'); 9002}); 9003 9004$('#customPopupModal').on('hidden.bs.modal', function () { 9005 const input = document.getElementById('search_postcode'); 9006 const messageBox = document.querySelector('.showMessage'); 9007 if (input) { 9008 input.value = ''; 9009 } 9010 if (messageBox) { 9011 messageBox.textContent = ''; 9012 } 9013}); 9014 9015/* F4 â out-of-zone copy (Document #5 §1, exact, ACL-compliant). Renders the 9016 Instagram link in a new tab. Serviceability itself is decided by the merged 9017 B6 API (addressConfirmPostCode -> /delivery-dates), NOT by a static list or 9018 a client-side postcode-prefix guess. */ 9019function setOutOfZoneMessage(messageBox) { 9020 if (!messageBox) return; 9021 messageBox.innerHTML = 9022 window.THR1VE_OUT_OF_ZONE_HTML || 9023 'We are not currently servicing your area yet â follow our ' + 9024 '<a href="https://www.instagram.com/thr1ve/" target="_blank" rel="noopener">Instagram</a> for updates!'; 9025} 9026</script>
vendor: 1 bytes, line 9026
9026
9027<script> 9028(function () { 9029 var widgetInitialized = false; 9030 var widget; 9031 9032 function initAddressFinder() { 9033 if (widgetInitialized) return; 9034 widgetInitialized = true; 9035 9036 widget = new AddressFinder.Widget( 9037 document.getElementById('search_postcode'), 9038 'XDGLJVBHMQAKF68W4CT7', // Replace with your API key 9039 'AU', 9040 { 9041 address_params: { gnaf: '1' } 9042 } 9043 ); 9044 // Listen for when suggestions are updated. 9045 // F4: no client-side postcode-prefix block here â WA (6xxx) is a SERVICED 9046 // state (Document #5 §1) and must NOT be rejected. Serviceability is 9047 // decided by the B6 API on result:select. 9048 widget.on('results:update', function (results) { 9049 const messageBox = document.querySelector('.showMessage'); 9050 if (messageBox) messageBox.textContent = ""; 9051 }); 9052 widget.on('results:empty', function () { 9053 const input = document.getElementById('search_postcode'); 9054 const value = input?.value.trim(); 9055 const messageBox = document.querySelector('.showMessage'); 9056 if (value && value.length > 1) { 9057 setOutOfZoneMessage(messageBox); 9058 } else if (messageBox) { 9059 messageBox.textContent = ""; 9060 } 9061 }); 9062 // When a user selects a result â the merged B6 API is the single source of 9063 // truth for serviceability (it correctly serves WA and excludes SA). 9064 widget.on('result:select', function (fullAddress, metaData) { 9065 const input = document.getElementById('search_postcode'); 9066 const messageBox = document.querySelector('.showMessage'); 9067 { 9068 addressConfirmPostCode(metaData.postcode, metaData.locality_name).then((response) => { 9069 if(response=='Success'){ 9070 localStorage.setItem("widgetAddress", JSON.stringify(metaData)); 9071 messageBox.textContent = ""; 9072 if (input) { 9073 input.value = ''; 9074 } 9075 //if (typeof window.CheckAddressPopupAddToCart === 'function') { 9076 const variantId = parseInt(document.getElementById('modalVariantId').value); 9077 const quantity = document.getElementById('modalQuantity').value; 9078 const sellingPlan = parseInt(document.getElementById('modalSellingPlan').value); 9079 const productId = parseInt(document.getElementById('modalProductId').value); 9080 const title = document.getElementById('modalTitle').value; 9081 const url = document.getElementById('modalUrl').value; 9082 const image = document.getElementById('modalImage').value; 9083 const price = document.getElementById('modalPrice').value; 9084 const qty = parseInt(document.getElementById('modalQty').value); 9085 const product_type = document.getElementById('modalProductType').value; 9086 //window.CheckAddressPopupAddToCart(variantId, quantity, sellingPlan); 9087 //console.log(productId, variantId, title, url, image, price, qty, product_type, sellingPlan); 9088 localCart.addItem(productId, variantId, title, url, image, price, qty, product_type, sellingPlan); 9089 $('.customPopupModal').modal('hide'); 9090 9091 //} 9092 }else{ 9093 setOutOfZoneMessage(messageBox); 9094 } 9095 }).catch((error) => { 9096 if(error){ 9097 setOutOfZoneMessage(messageBox); 9098 } 9099 }); 9100 } 9101 }); 9102 9103 } 9104 9105 function downloadAddressFinder() { 9106 const script = document.createElement('script'); 9107 script.src = 'https://api.addressfinder.io/assets/v3/widget.js'; 9108 script.async = true; 9109 script.onload = initAddressFinder; 9110 document.body.appendChild(script); 9111 } 9112 9113 document.addEventListener('DOMContentLoaded', function () { 9114 const input = document.getElementById('search_postcode'); 9115 const messageBox = document.querySelector('.showMessage'); 9116 9117 if (!input || !messageBox) return; 9118 9119 input.addEventListener('input', function () { 9120 const value = input.value.trim(); 9121 9122 // F4: no client-side postcode-prefix block â WA (6xxx) is serviced and 9123 // must reach the AddressFinder + B6 check. SA (5xxx) is excluded by the 9124 // B6 API itself (it returns no delivery dates), not by a prefix guess. 9125 9126 // Allow widget resume if valid input 9127 if (value.length >= 3) { 9128 messageBox.textContent = ""; 9129 9130 if (!window.AddressFinder && !window.widgetInitialized) { 9131 downloadAddressFinder(); 9132 } else if (widget && typeof widget.resume === 'function') { 9133 widget.resume(); 9134 } else { 9135 initAddressFinder(); 9136 } 9137 } else { 9138 messageBox.textContent = ""; 9139 } 9140 }); 9141 }); 9142})(); 9143</script>
9143 9144 9145 9146 9147<style> 9148 .showMessage { 9149 margin-top: 10px; 9150 font-size: 14px; 9151 } 9152 .btn-close { 9153 position: absolute; 9154 top: 13px; 9155 right: 14px; 9156 } 9157 .first_section{ 9158 display:contents; 9159 } 9160 .second_section{ 9161 display:contents; 9162 } 9163 9164 .modal-title { 9165 text-align: center; 9166 font-size: 16px; 9167 max-width: 292px; 9168 margin: 0 auto; } 9169 #search_postcode { border: 1px solid #ddd; } 9170 .modal-header { border-bottom: 0px; } 9171 9172</style> 9173 9174 9175 9176 9177 <div class="modal fade customAKModal" id="customAKModal" tabindex="-1" aria-hidden="true"> 9178 <div class="modal-dialog modal-dialog-centered"> 9179 <div class="modal-content p-3"> 9180 9181 <div style="text-align: center;"> 9182 <img src="https://cdn.shopify.com/s/files/1/0729/8243/0012/files/express-delivery_1.png?v=1750077141"> 9183 </div> 9184 9185 <div class="modal-header"> 9186 <h5 class="modal-title">Acknowledge Message</h5> 9187 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 9188 </div> 9189 9190 <div class="modal-body"> 9191 <!-- <input type="hidden" id="akVariantId" class="akVariantId"> 9192 <input type="hidden" id="akQuantity" class="akQuantity"> 9193 <input type="hidden" id="akSellingPlan" class="akSellingPlan"> 9194 <input type="hidden" id="akTitle" class="akTitle"> 9195 <input type="hidden" id="akProductId" class="akProductId"> 9196 <input type="hidden" id="akUrl" class="akUrl"> 9197 <input type="hidden" id="akImage" class="akImage"> 9198 <input type="hidden" id="akPrice" class="akPrice"> 9199 <input type="hidden" id="akProductType" class="akProductType"> --> 9200 <p id="ackMessage"></p> 9201 </div> 9202 9203 <div class="modal-footer"> 9204 <button type="button" class="btn btn-primary succesBtn" id="succesBtn" >Ok</button> 9205 <button type="button" class="btn btn-secondary ackClose" id="ackClose">Close</button> 9206 </div> 9207 9208 </div> 9209 9210 </div> 9211</div> 9212 9213<!-- JavaScript -->
9214<script> 9215 function getExpiryDateAustralia() { 9216 const ausTime = new Date().toLocaleString("en-US", { timeZone: "Australia/Sydney" }); 9217 const today = new Date(ausTime); 9218 9219 const weekday = today.getDay(); // 0=Sun, 1=Mon, ..., 6=Sat 9220 // console.log('weekday',weekday,'weekday'); 9221 const daysAhead = (3 - weekday + 7) % 7; // 3 = Wednesday 9222 9223 let nextWednesday = new Date(today); 9224 // console.log(nextWednesday); 9225 nextWednesday.setDate(today.getDate() + daysAhead); 9226 9227 const diffDays = Math.floor((nextWednesday - today) / (1000 * 60 * 60 * 24)); 9228 if (diffDays <= 2) { 9229 nextWednesday.setDate(nextWednesday.getDate() + 7); 9230 } 9231 9232 const options = { timeZone: "Australia/Sydney", weekday: "long", year: "numeric", month: "long", day: "numeric" }; 9233 return nextWednesday.toLocaleDateString("en-AU", options); 9234 } 9235 9236 // $(document).ready(function () { 9237 9238 // Fill message with expiry date when modal is shown 9239 $('#customAKModal').on('show.bs.modal', function () { 9240 const expiryDate = getExpiryDateAustralia(); 9241 $('#ackMessage').html( 9242 `You acknowledge that the meals in this bundle may have less than 5 day shelf life and you acknowledge that THR1VE meals are selected by team members. The expiry date for these meals is set to <strong>${expiryDate}</strong>.` 9243 ); 9244 }); 9245 9246 // Close modal on 'Close' button 9247 $(document).on('click', '.ackClose', function () { 9248 $('.customAKModal').modal('hide'); 9249 }); 9250 9251 9252$(document).on('click', '.succesBtn', function () { 9253 9254 const $modal = $('#customAKModal'); 9255 9256 const variantId = $modal.data('variant-id'); 9257 const qty = parseInt($modal.data('qty')); 9258 const sellingPlan = $modal.data('selling-plan'); 9259 const title = $modal.data('title'); 9260 const productId = parseInt($modal.data('product-id')); 9261 const url = $modal.data('url'); 9262 const image = $modal.data('image'); 9263 const price = $modal.data('price'); 9264 const product_type = $modal.data('product-type'); 9265 9266 // localCart.addItem(productId, variantId, title, url, image, price, qty, product_type, sellingPlan); 9267 localCart.addItem(9962548986172, 51524694540604, "20 Meal Value Pack", "/products/20-meal-value-pack-copy", "//thrivemeals.com.au/cdn/shop/files/DeliveryBundle1_390X450_crop_center.jpg?v=1742439641", 19900, 1, "Bundle", 689703944508); 9268 9269 9270 // â Option 3 â Use timeout to delay modal close just after blur 9271 setTimeout(() => { 9272 // Step 1: Clear focus globally 9273 document.activeElement?.blur(); 9274 9275 // Step 2: Then hide modal 9276 $('.customAKModal').modal('hide'); 9277 }, 100); // Delay helps ensure browser commits focus change 9278}); 9279 9280 // }); 9281</script>
9281 9282 9283<!-- Styles --> 9284<style> 9285 .showMessage { 9286 margin-top: 10px; 9287 font-size: 14px; 9288 } 9289 .btn-close { 9290 position: absolute; 9291 top: 13px; 9292 right: 14px; 9293 } 9294 .modal-title { 9295 text-align: center; 9296 font-size: 16px; 9297 max-width: 292px; 9298 margin: 0 auto; 9299 } 9300 #search_postcode { 9301 border: 1px solid #ddd; 9302 } 9303 .modal-header { 9304 border-bottom: 0px; 9305 } 9306</style> 9307 9308
9308<script> 9309 window.shopUrl = 'https://thrivemeals.com.au'; 9310 window.routes = { 9311 cart_add_url: '/cart/add', 9312 cart_change_url: '/cart/change', 9313 cart_update_url: '/cart/update', 9314 predictive_search_url: '/search/suggest' 9315 }; 9316 </script>
9316 9317
9317<script> 9318 document.addEventListener("DOMContentLoaded", function() { 9319 function observeImages() { 9320 const images = document.querySelectorAll('.placeholder-image[data-src]'); 9321 const observer = new IntersectionObserver(entries => { 9322 entries.forEach(entry => { 9323 if (entry.isIntersecting) { 9324 const img = entry.target; 9325 img.src = img.dataset.src; // Set the actual source 9326 img.classList.remove('placeholder-image'); // Remove the placeholder class 9327 observer.unobserve(img); // Stop observing this image once it's loaded 9328 } 9329 }); 9330 }, { 9331 rootMargin: '100px' // Start loading slightly before image is visible 9332 }); 9333 9334 images.forEach(image => observer.observe(image)); 9335 } 9336 observeImages(); 9337 const config = { childList: true, subtree: true }; 9338 const mutationObserver = new MutationObserver((mutationsList) => { 9339 for (const mutation of mutationsList) { 9340 if (mutation.type === 'childList') { 9341 observeImages(); // Re-run observer for newly added images 9342 } 9343 } 9344 }); 9345 mutationObserver.observe(document.body, config); 9346 }); 9347 localStorage.setItem('shipping', "removed"); 9348 </script>
9348 9349 9350
9350<script> 9351 (function () { 9352 // Menu / Order Now / Browse Full Menu CTAs point at the bundle picker. Once a box has been 9353 // chosen (fixed OR flexible), send those CTAs straight to the menu instead â only shoppers 9354 // who haven't chosen get the picker. "Change box" links always keep going to the picker. 9355 document.addEventListener('click', function (e) { 9356 var a = e.target && e.target.closest ? e.target.closest('a[href*="/pages/build-your-box"]') : null; 9357 if (!a) return; 9358 if (a.matches('.menu-plan-change, .cart-plan-strip-change, [data-action="change-plan"]')) return; 9359 var chosen = false; 9360 try { chosen = localStorage.getItem('thr1ve_box_chosen') === '1'; } catch (_) {} 9361 if (chosen) { e.preventDefault(); window.location.href = '/collections/fresh-ready-meals'; } 9362 }, true); 9363 })(); 9364 </script>
9364 9365
9365<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
9365 9366</body> 9367</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.